
스프링 MVC 요청 라이프 사이클
Filter -> Dispatcher servlet -> Controller -> View resolver -> view rendering
-
Filter
- HTTP 요청과 응답을 수정하거나 요청에 대한 로깅, 보안검사, 문자 인코딩, 설정등을 수행합니다.
- Dispatcher sevelet 이전에 수행됩니다.
-
Dispatcher servlet
- Handler mapping을 사용하여 요청된 URL과 일치하는 controller를 찾습니다.
-
Controller
- 요청을 수행할 컨트롤러는 비즈니스 로직을 처리하고 필요한 데이터를 모델에 저장하며 뷰 이름을 리턴합니다.
- RESTful API 형태의 개발에서는 Response DTO와 HTTP 응답 상태 코드를 리턴합니다.
- Response DTO는 일반적으로 JSON 형식으로 변환됩니다.
HTTP 상태코드는 200, 400, 404등 요청의 처리 상태를 리턴합니다.
-
View Resolver
- 컨트롤러가 반환한 뷰 이름을 사용하여 View Resolver가 실제 뷰(View) 객체를 찾습니다.
- View Resolver는 뷰 이름을 기반으로 실제 JSP, Thymeleaf, Freemarker 등의 뷰 템플릿을 찾습니다.
-
View rendering
- 찾아진 뷰는 모델에 저장된 데이터를 사용하여 클라이언트에게 보여줄 HTML을 생성합니다.
- 이 HTML 응답이 클라이언트로 전송됩니다.