IT•개발 끄적/Spring

[SPRING] 스프링 MVC 및 DispatcherServlet 등록

소다맛사탕 2021. 6. 19. 22:53
반응형

안녕하세요. 소다맛사탕 입니다.

오늘은 스프링 MVC의  수행 흐름 구조와 프로젝트에 DispatcherServlet등록하는 것을 알아보겠습니다.

 

스프링 MVC 수행 흐름

스프링 MVC 수행 흐름 그림

1) Client로부터의 모든 Mapping 요청을 DispatcherServlet이 받는다.

※ Mapping 요청 ; 웹사이트 .com과 같은.. 기본적으로 *.do

2) DispatcherServlet은 HandlerMapping을 통해 처리할 Controller를 검색한다.

3) DispatcherServlet은 검색된 Controller를 실행하여 클라이언트의 요청을 처리한다.

4) Controller는 비즈니스로직의 수행 결과로 얻어낸 Model 정보와 View 정보를 ModelAndView 객체에 저장하여 리턴한다.

5) DispatcherServlet은 ModelAndView로부터 View 정보를 추출하고, ViewResolver를 이용하여 응답으로 사용할 View를 얻어낸다.

6) DispatcherServlet은 ViewResolver를 통해 찾아낸 VIew를 실행하여 응답을 전송한다.

 

DispatcherServlet 등록

; Spring MVC에서 가장 중요한 요소가 모든 클라이언트의 요청을 가장 먼저 받아들이는 DispatcherServlet.

파일 위치 : 프로젝트의 WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- Processes application requests -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

저는 url-pattern이 '/'로 설정했지만 기본적으로 '*.do'

서블릿 컨테이너는 클라이언트 '*.do' 요청이 있어야 DispatcherServlet 객체를 생성한다.

 

참조 : https://velog.io/@lacomaco/Spring-MVC-%ED%99%9C%EC%9A%A9