동작순서
- 핸들러 조회 : 핸들러 매핑을 통해 URL에 매핑된 핸들러(컨트롤러) 조회
- 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터 조회
- 핸들러 어댑터 실행: 핸들러 어댑터 실행
- 핸들러 실행: 핸들러 어댑터가 실제 핸들러를 실행
- ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해 반환.
- viewResolver 호출: 뷰 리졸버를 찾아 실행한다.
⇒ JSP: InternalResourceViewResolver가 자등 등록되어 사용된다.
- View 반환: 뷰 리졸버는 뷰의 논리 이름을 물이 이름으로 바꾸고 렌더링 역할을 담당하는 뷰 객체 반환.
⇒ JSP: InternalResourceView(JstlView)를 반환하는데, 내부에는 forward() 가 있다.
- 뷰 렌더링: 뷰를 통해서 뷰를 렌더링한다.
참고 https://catsbi.oopy.io/f52511f3-1455-4a01-b8b7-f10875895d5b