Spring boot

[Spring Study Group] Spring MVC 요청 경로/클래스 레벨/경로 패턴 / Http 메서드 매핑설정

민뭉아치 2021. 11. 7. 03:53

본 포스팅은 스프링 스터디에서 진행하는 내용을 학습하며 정리한 것입니다.

잘못된 부분이 있거나 보충이 필요한 부분이 있다면 많은 조언 부탁드립니다 : )

 

 

Controller에서 클라이언트 요청에 매핑하는 4가지 방법에 대해서 알아보자.

1.  요청 경로 매핑

@RequsetMapping 어노테이션은 클라이언트의 URL 요청을 매핑하기 위해 사용한다.

  • value 속성 : 경로 설정
  • method 속성 : 메서드에서 처리할 HTTP의 전송방식 설정

 

Controller Request Path / Method Views
HomeController / Get /views/home.jsp
@Controller
public class HomeController {

    @RequestMapping(value = "/", 
      method = RequestMethod.GET)
    public String home() {
		...
    }
}

 

2. 클래스 레벨 매핑

클래스와 메서드에 @RequsetMapping 어노테이션을 사용하여 클래스에 적용된 값과 메서드에 적용된 값을 합쳐 매핑될 경로를 설정한다.

Controller Request Path / Method Views
BoardController
/board
/ Get /views/home.jsp
@Controller
@ReqeustMapping(value = "/board")
public class BoardController {

    @RequestMapping(value = "/list", 
      method = RequestMethod.GET)
    public String list() {
		...
    }
}

3. 경로 패턴 매핑

@PathVariable 어노테이션을 이용하여 @RequestMapping 어노테이션 경로에 변수의 값을 파라미터로 전달받아 경로 패턴을 매핑하는 방법이다.

  • 경로 변수는 한 개 이상 사용 가능하다.
  • 파라미터 타입으로 변활할 수 없을 경우, 400 에러코드를 전송한다.

 

@Controller
@ReqeustMapping(value = "/board")
public class BoardController {

    @RequestMapping(value = "/read/{boardNo}", 
      method = RequestMethod.GET)
    public String read(@PathVariable int boardNo) {
		...
    }
}

 

4. Http 메서드 매핑

@RequestMapping의 method 속성에서 전송방식을 설정하여 동일한 경로값에 다른 HTTP 전송방식을 매핑하는 방법이다.

@Controller
@ReqeustMapping(value = "/board")
public class BoardController {

    @RequestMapping(value = "/read/{boardNo}", 
      method = RequestMethod.GET)
    public String register() {
		...
    }
    @RequestMapping(value = "/read/{boardNo}", 
      method = RequestMethod.POST)
    public String register() {
		...
    }
}

 

마무리

SpirngMVC Controller에서 어노테이션을 활용해 매핑하여 View 반환하는 경로를 매핑하는 방법은 아주 다양한다.

클라이언트가 URL로 보낸 요청을 처리할 때 경로 매핑을 잘못한 경우가 종종 있었다.

매핑 방법에 대해서 하나씩 살펴보니 다음에는 실수를 줄일 수 있을거 같다.

다음 시간에도 다양한 요청결로를 매핑하는 방법에 대해서 포스팅해야겟다.

 

반응형