waitedForU
[25][spring] Spring기반 MVC의 원리(주요구성요소, 처리순서,web.xml 설정) 본문
[01] 스프링 MVC의 주요 구성 요소
- DispatcherServlet (Controller)
클라이언트의 요청을 전달받는다. Controller(Action)에게
클라이언트의 요청을 전달하고, 컨트롤러가 리턴한 결과값을
View에 전달하여 알맞은 응답을 생성하도록 합니다.
- HandlerMapping (action-config.properties)
클라이언트의 요청 URL을 어떤 Controller(Action)가 처리할지를
결정한다. 요청 URL과 Controller클래스의 맵핑을 관리합니다.
- Controller(Action)
클라이언트의 요청을 처리한 뒤, 그 처리 결과를 ModelAndView
에 담아서 DispatcherServlet에 반환합니다.
스트럿츠의 Action과 동일한 역할을 수행한다.
- ModelAndView
Controller(Action)가 모델의 처리한 결과 및 뷰 선택에 필요한 정보를
담는다
- ViewResolver 예전꺼는 view가 jsp,html밖에 없었지만 지금은 Json,xcell, pdf 등등 많은 view중 맞는 형식을 선택한다.
Controller(Action)의 처리 결과를 생성할 뷰를 결정한다.
View정보가 논리적인 View이름일 경우에는 bean설정 파일에 정의되어
있는 ViewResolver클래스를 이용하여 클라이언트에게 출력할 View
객체를 얻게 됩니다.
- View
Controller(Action)의 처리 결과 화면을 생성합니다.
출력데이터를 설정합니다.
1. Spring의 MVC의 처리 순서
1) 클라이언트의 요청이 DispatcherServlet에게 전달
2) DispatcherServlet은 HandlerMapping을 사용하여 클라이언트의 요청을
처리할 Controller 객체 추출
3) DispatcherServlet은 컨트롤러 객체의 handleRequest()메소드를 호출
하여 클라이언트의 요청을 처리
4) 콘트롤러의 메소드는 처리 결과 정보를 담은 ModelAndView 객체를 리턴
5) DispatcherServlet은 ViewResolver로부터 응답 결과를 생성할 뷰 객체 추출
6) View는 클라이언트에게 전송할 응답을 생성
Spring MVC
2. DispatcherServlet,스프링 컨텍스트 설정 및 한글처리
- 자바 웹어플리케이션 설정파일인 web.xml에 세개의 정보를 설정합니다.
1) 클라이언트의 요청을 전달받을 DispatcherServlet 설정
2) 공통으로 사용할 어플리케이션 컨텍스트 설정
3) 한글처리용 필터 설정
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/appServlet/dispatcher-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
'Mvc_Spring' 카테고리의 다른 글
[28][spring] @MVC, @MVC 기반 Spring MVC 프로젝트 실습, Local 저장소 변경 (2) | 2016.05.27 |
---|---|
[27][spring] Annotation 설정, component-scan (0) | 2016.05.27 |
[21][Spring] STS 다운로드 및 설치, Spring Framework 특징, Spring Framework 주요 모듈 (1) | 2016.05.26 |