Spring MVC구성요소 1

MVC 요청 처리 과정 - 흐름 파악 중요

MVC 요청 처리 과정 - 흐름 파악 중요

  1. DispatcherServlet(web.xml 파일에 설정 → root-context.xml 파일 참조하는 곳)이 이를 받아

    <servlet>
    		<!-- 모든 요청을 DispatcherServlet 이 받아서 request가 어디로 갈지 물어봄.-->
    
    		<!-- DispatcherServlet 이라는 클래스를 appServlet 이라는 이름으로 사용할 것을 명명 -->
    		<servlet-name>appServlet</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<!-- DispatcherServlet 은 servlet-context.xml 설정 파일을 따른다. -->
    			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
    		<servlet-name>appServlet</servlet-name>
    		<!-- url-pattern 에 '/' 로 작성한 것은 서버로 요청한 모든 url 을 받겠다는 뜻 -->
    		<url-pattern>/</url-pattern>
    		<!-- 혹은 아래와 같이 *.do 로 작성해서 .do 로 끝나는 모든 url 을 받도록
    		설정할 수 있다.
    		<url-pattern>*.do</url-pattern>
    		-->
    </servlet-mapping>
    
  2. HandlerMapping 으로 URL 과 매핑되는 컨트롤러를 검색하게 합니다.

  3. 해당 컨트롤러를 리턴하여 로직 수행 후에

  4. ViewResolver(컨트롤러가 전달한 값을 이용해서 응답 화면을 생성할 뷰를 결정)를 통해

    <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>
    
  5. 실행 결과 view(JSP나 Velocity 등을 이용하여 뷰영역의 코드를 작성)를 리턴하여 응답 생성하고 출력합니다.