구성 요소 | 설 명 |
DispatcherServlet | 클라이언트의 요청을 전달받는다. 컨트롤러에게 클라이언트의 요청을 전달하고, 컨트롤러가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성하도록 한다. |
HandlerMapping | 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다. |
Controller | 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에 알려준다, 스트럿츠의 Action과 동일한 역할을 수행한다. |
ModelAndView | 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다. |
ViewResolver | 컨트롤러의 처리 결과를 생성할 뷰를 결정한다. |
View | 컨트롤러의 처리 결과 화면을 생성한다. JSP나 Velocity 템플릿 파일 등을 뷰로 사용한다. |
이들 각 구성 요소의 메시지 흐름은 다음과 같다.
1. 클라이언트의 요청이 DispatcherServlet에 전달된다.
2. DispatcherServlet은 HandlerMapping을 사용하여 클라이언트의 요청을 처리할 컨트롤러의 객체를 구한다.
3. DispatcherServlet은 컨트롤러 객체를 이용해서 클라이언트의 요청을 처리한다.
4. 컨트롤러는 클라이언트의 요청 처리 결과 정보를 담은 ModelAndView 객체를 리턴한다.
5. DispatcherServlet은 ViewResolver로부터 응답 결과를 생성할 뷰 객체를 구한다.
6. 뷰는 클라이언트에 전송할 응답을 생성한다.
이 과정에서 개발자가 직접 개발해야 할 부분은 클라이언트의 요청을 처리할 컨트롤러와 클라이언트에 응답 결과 화면을 전송할 JSP나 Velocity 템플릿 등의 뷰 코드이다. 나머지 DispatcherServlet이나 HandlerMapping, ViewResolver 등은 스프링이 기본적으로 제공하는 구현 클래스를 사용하게 된다.
댓글 없음:
댓글 쓰기