Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

waitedForU

[25][spring] Spring기반 MVC의 원리(주요구성요소, 처리순서,web.xml 설정) 본문

Mvc_Spring

[25][spring] Spring기반 MVC의 원리(주요구성요소, 처리순서,web.xml 설정)

Mr.Bini 2016. 5. 26. 15:26

[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는 클라이언트에게 전송할 응답을 생성 




  enlightened   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> 

Comments