9. HTTP 응답 처리
HTTP 응답 처리는 HTML 파일을 렌더링하여 응답할 수도 있고, JSON 형식의 포매팅된 데이터, .css, .js, .png와 같은 정적 리소스 등 다양한 방식으로 컨텐츠를 처리할 수 있음
Spring MVC에서 html 파일을 응답하기 위한 프로세스
-
컨트롤러는 요청 처리 후 요청 경로에 적합한 .html페이지 명을 담아 ModelAndView 객체 생성
-
생성한 ModelAndView 객체를 DispatcherServlet에게 전달
-
ModelAndView 객체를 전달받은 DispatcherServlet은 적절한 View 파일이 위치한 경로를 찾기 위해 InternalResourceViewResolver 호출
-
InternalResourceViewResolver는 ModelAndView에 담긴 View 경로를 토대로,
<property>로 지정한 경로와 조합하여 해당하는 .jsp 파일을 찾아서 forward(.jsp파일 실행)
servlet-context.xml
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<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>실행 로그
IDE 콘솔
TRACE: org.springframework.web.servlet.DispatcherServlet - Rendering view [org.springframework.web.servlet.view.JstlView: name 'test.jsp'; URL [/WEB-INF/views/test.jsp.jsp]]
DEBUG: org.springframework.web.servlet.view.JstlView - View name 'test.jsp', model {}
DEBUG: org.springframework.web.servlet.view.JstlView - Forwarding to [/WEB-INF/views/test.jsp.jsp]1. 응답 처리에 사용되는 스프링 내장 클래스
1-1. JstlView
InternalResourceViewResolver는 해당 프로젝트 내에 JSTL 라이브러리를 사용 중인 것을 확인할 경우, InternalResourceView를 상속받은 JstlView를 반환하여 사용함
1-2. ThymeleafViewResolver
Thymeleaf 템플릿을 사용하기 위해서 추가해야 하는 설정
추가 개념 BeanNameViewResolver
Last updated on