※ DispatcherServlet 이란?
프론트 컨트롤러(Front Controller) 이다.
Servlet 컨테이너에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 제일앞에서 처리할 수 있는 컨트롤러.
※ 동작 방식
- 자바 서버의 서블릿 컨테이너의 요청이 들어오면 DispatcherServlet이 해당 요청을 받는다.
- DispatcherServlet은 URL, 파라미터 정보, HTTP 명령 등을 참고하여 HandlerMapping를 통해 어떤 컨트롤러에게 보낼지 결정된다.
- DispatcherServlet이 모든 웹 요청 정보가 담긴 HttpServletRequest 타입의 오브젝트를 핸들러 어댑터에게 전달하면 핸들러 어댑터는컨트롤러가 받을 수 있는 파라미터로 적절히 변환하여 해당 컨트롤러에게 전달해준다.
- 컨트롤러가 작업을 완료하면 모델과 뷰를 DispatcherServlet에게 돌려준다.
- 컨트롤러가 직접 뷰오브젝트를 리턴 할수도 있지만, 보통은 뷰의 이름을 리턴해주면 DispatcherServlet의 뷰 리졸버가 이를 이용해 뷰 오브젝트를 생성한다.
servlet-context.xml 중 일부
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
- 뷰 리졸버를 통해 받은 뷰오브젝트에게 모델을 전달해주고 클라이언트에게 돌려줄 최정 결과물을 생성해달라고 요청한다.
- View의 처리결과를 DispatcherServlet에 보낸다.
- 뷰 작업을 통해 전달받은 최종 결과물은 HttpServletResponse 오브젝트에 담아 넘긴다.
*아래는 MVC의 흐름에 대한 그림이다. 위의 숫자와는 상관이 없고 설명이 잘 된것 같아 퍼왔다.
이미지 출처 : http://hunit.tistory.com/
'플밍 is 뭔들 > SPRING' 카테고리의 다른 글
[SPRING] 마리아(Maria)DB연동 및 Mybatis 설정하기 (0) | 2017.07.04 |
---|---|
[SPRING & GIT] 이클립스 / 스프링 프로젝트 GitHub(깃허브)와 연동하기 (0) | 2017.06.24 |
[SPRING] web.xml , root-context.xml , servlet-context.xml 에 관하여... (0) | 2017.06.21 |
[SPRING] 스프링 기본 프로젝트 파일 분석 (0) | 2017.06.21 |
[SPRING] 빈(Bean) 관련해서 오류가난다면? (0) | 2016.12.27 |