Skip to Content
Suffering builds character

9. HTTP 응답 처리

HTTP 응답 처리는 HTML 파일을 렌더링하여 응답할 수도 있고, JSON 형식의 포매팅된 데이터, .css, .js, .png와 같은 정적 리소스 등 다양한 방식으로 컨텐츠를 처리할 수 있음

Spring MVC에서 html 파일을 응답하기 위한 프로세스

  1. 컨트롤러는 요청 처리 후 요청 경로에 적합한 .html페이지 명을 담아 ModelAndView 객체 생성

  2. 생성한 ModelAndView 객체를 DispatcherServlet에게 전달

  3. ModelAndView 객체를 전달받은 DispatcherServlet은 적절한 View 파일이 위치한 경로를 찾기 위해 InternalResourceViewResolver 호출

  4. 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