2024. 5. 13. 22:01ㆍBackend/Spring

📝 인프런에서 강의를 하고 계시는 김영한 님의 Spring Framework를 공부하고 있습니다. 틀리거나 다른 부분이 있을 수 있습니다.
Spring MVC 의 핵심은 Dispatcher Servlet입니다.

그리고 DispatcherServlet의 부모 클래스를 찾아가다보면, HttpServlet을 만나게 됩니다.

HttpServlet 은 HTTP 프로토콜을 기반으로 클라이언트의 요청을 처리하는 데 사용되는 클래스입니다. 따라서 HttpServlet의 여러 기능들을 상속받은 DispatcherServlet 또한, HTTP 요청을 처리하는 기능을 제공한다고 할 수 있습니다.
클라이언트가 HTTP 요청을 하고, 이후의 Spring MVC 의 동작 순서는 다음과 같습니다.
1) 핸들러를 조회합니다. @RequestMapping 처럼 핸들러 매핑을 통해 요청에 매핑된 컨트롤러를 조회하게 됩니다.
2) 핸들러 어댑터를 조회합니다. 조회된 핸들러를 실행할 수 있는 어댑터를 찾게 됩니다.
3) 핸들러 어댑터를 실행합니다. 찾은 어댑터를 실행합니다.
4) 핸들러가 실행됩니다. 어댑터가 컨트롤러를 실행하게 됩니다.
5) ModelAndView를 반환하게 됩니다. 어댑터는 컨트롤러가 반환하는 정보를 ModelAndView 객체에 담아 반환하게 됩니다.
6) ViewResolver를 호출합니다. View를 반환할 수 있는 ViewResolver가 실행됩니다.
7) View를 반환합니다. ViewResolver는 View 객체를 반환하는데, View의 논리 이름을 물리 이름으로 바꾸는 기능을 담당합니다.
8) Rendering. 반환된 View를 이용해서, View를 Rendering 하게 됩니다.
Reference
'Backend > Spring' 카테고리의 다른 글
| [Error/Spring] 메시지 테스트 중 에러 - 한글이 깨진다면? (0) | 2024.08.10 |
|---|---|
| [Spring] JDK isn't compatible with Gradle (0) | 2024.08.03 |
| [Spring] Http Servlet - Request / Response (0) | 2024.03.10 |
| [Spring] AOP (0) | 2024.03.10 |
| [Spring] Spring Controller - InitBinder, Model, ModelAttribute (0) | 2024.03.10 |