Spring은 어떻게 매개변수만 적으면 라우팅을 해주는걸까
Spring의 라우팅은 URI가 서버의 특정 리소스에 직접 연결된 기존 웹 애플리케이션과 상당히 다릅니다.
대신 Spring은 들어오는 웹 요청을 처리하는 방법을 결정하기 위해 컨트롤러, 메소드 및 주석 시스템을 사용합니다.
Understanding Controllers and Request Mapping
Spring에서 컨트롤러는 들어오는 웹 요청을 처리하는 클래스입니다.
클래스에 @Controller
주석을 추가하여 컨트롤러로 지정됩니다.
이러한 컨트롤러 클래스 내에서 다양한 유형의 요청을 처리하기 위한 메서드가 정의됩니다.
이러한 메서드는 @RequestMapping
주석을 사용하여 특정 URL 또는 URL 패턴에 매핑됩니다.
예를 들면 다음과 같습니다.
@Controller public class HomeController { @RequestMapping("/home") public String home() { return "home"; } }
이 예제에서 /home
URL에 대한 GET 요청이 생성되면 Spring은 해당 요청을 HomeController
클래스의 home
메서드로 라우팅합니다.
경로 변수 및 쿼리 매개변수
URL의 일부 또는 특정 쿼리 매개변수를 기반으로 요청을 라우팅하려는 경우가 있습니다.
Spring에서는 경로 변수와 쿼리 매개변수를 사용하여 이를 수행할 수 있습니다.
경로 변수는 변수인 URL의 일부입니다.
예를 들어 URL /user/123
에서 123
은 사용자의 ID를 나타내는 경로 변수입니다.
Spring에서는 @PathVariable
주석을 사용하여 경로 변수를 매핑할 수 있습니다.
@Controller public class UserController { @RequestMapping("/user/{userId}") public String getUser(@PathVariable String userId) { // get user based on userId return "user"; } }
검색어 매개변수는 URL에서 ‘?’ 뒤에 제공되는 추가 매개변수입니다.
예를 들어 URL /search?query=spring
에서 query
는 쿼리 매개변수입니다.
Spring에서는 @RequestParam
주석을 사용하여 쿼리 매개변수를 매핑할 수 있습니다.
@Controller public class SearchController { @RequestMapping("/search") public String search(@RequestParam String query) { // perform search based on query return "searchResults"; } }
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'DEV > Java' 카테고리의 다른 글
Spring MVC의 Redirect와 Forward (2) | 2023.05.19 |
---|---|
DispatcherServlet (0) | 2023.05.19 |
Spring MVC @ModelAttribute (0) | 2023.05.19 |
Servlet filter (0) | 2023.05.19 |
Expression Language(EL) (0) | 2023.05.19 |