Spring MVC의 라이프사이클
http://terasolunaorg.github.io/guideline/1.0.1.RELEASE/en/Overview/SpringMVCOverview.html#id2
브라우저로 부터 요청(Request)을 받고 응답(Response)하기까지 Spring MVC의 처리 흐름은 위와 같다.
1. 먼저 브라우저로부터 요청이 들어오면 일단 Filter을 거치게 된다. Filter에서 하는 대표적인 처리를 보면 Encoding이 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <Web.xml 의 Filter> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> | cs |
2. 다음으로 DispatcherServlet이 Controller에 요청을 전달하기 전에 가로챈다. 요청을 가로챈 후 HandlerMapping을 통해 요청에 해당하는 적절한 Controller을 찾게 된다. 그리고 DispatcherServlet에 그것을 전달한다.
3. DispatcherServlet은 실행할 Controller 정보를 HandlerAdapter에 전달하게 된다.
4. HandlerAdapter는 해당 Controller을 호출하게 된다.
5. Controller에서는 전달된 요청을 처리한다. 예를 들어 게시판의 글 목록을 가져오는 요청을 받으면 Controller는 게시판 Service를 호출하고 Service에서는 DAO를 통해 게시판 글 목록을 가져오게 된다.
요청을 처리한 후 그 결과를 Model에 담고, View의 이름을 HandlerAdapter에게 전달하게 된다.
6. 전달받은 View의 이름을 가지고 ViewResolver에서 매핑된 View를 찾아서 반환한다.
7. DispatcherServlet은 반환된 View를 넘기게 된다.
'코딩 > Spring' 카테고리의 다른 글
Spring MVC 예제 실행 전 준비사항 (1) | 2017.05.02 |
---|---|
Spring MVC - home.jsp의 동작원리 (22) | 2017.05.01 |
Spring MVC 프로젝트 실행시 404 에러 (10) | 2017.02.01 |
스프링 MVC 프로젝트 생성하기 (9) | 2017.01.31 |
스프링 개발을 위한 STS 다운로드 및 설치 (2) | 2017.01.30 |