Spring MVC 구조
구성요소
DispatcherServlet
- 클라이언트의 요청을 전달받아 요청에 맞는 컨트롤러가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성
HandlerMapping
- 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정
Controller
- 클라이언트의 요청을 처리한 뒤, 결과를 DispatcherServlet에게 리턴
ModelAndView
- 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음.
ViewResolver
View
- 컨트롤러의 처리 결과 화면을 생성, JSP 또는 Velocity 템플릿 파일 등을 뷰로 사용.
Spring MVC 동작 순서
- 핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다.
- 핸들러 어뎁터 조회 : 핸들러를 실행할 수 있는 핸들러 어뎁터를 조회한다.
- 핸들러 어뎁터 실행 : 핸들러 어뎁터를 실행한다.
- 핸들러 실행 : 핸들러 어댑터가 실제 핸들러를 실행한다.
- ModelAndView 반환 : 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해서 반환한다.
- viewResolver 호출 : 뷰 리졸버를 찾고 실행한다.
- JSP의 경우
nternalResourceViewResolver
가 자동 등록되고, 사용된다.
- View 반환 : 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역확을 담당하는 뷰 객체를 반환한다.
- 뷰 렌더링 : 뷰를 통해서 뷰를 렌더링 한다.
Resference