1. DispatcherServlet: 프론트 컨트롤러로서 역할 + 스프링 컨테이너로서의 역할. Spring MVC에 필요한 객체들을 관리하는 컨테이너로서의 역할
2. Controller: ModelAndView를 만들어 냄
3. ModelAndView: 응답을 만들기 위해 필요한 정보(재료)들의 집합체. 아직 완벽한 응답은 아님
4. ViewResolver와 View를 거쳐 완벽한 응답이 만들어짐
- 클라이언트 요청이 들어오면 DispatcherServlet이 받는다.
- HandlerMapping이 어떤 Controller가 요청을 처리할지 결정한다.
- DispatcherServlet은 Controller에 요청을 전달
- Controller는 요청을 처리한다.
- 결과(요청처리를 위한 data, 결과를 보여줄 view의 이름)를 ModelAndView에 담아 반환
- ViewResolver에 의해서 실제 결과를 처리할 View를 결정하고 반환
- 결과를 처리할 View에 Model를 전달
- DispatcherServlet은 View가 만들어낸 응답을 반환