요르딩딩

[Spring 분석]Dispatcher-Servlet 란 본문

[Web]/[Spring]

[Spring 분석]Dispatcher-Servlet 란

요르딩딩 2021. 3. 21. 17:34
728x90
반응형
Dispatcher_servlet이란
:  Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일 앞에 둬서 중앙집중식으로 처리해주는 프론트 컨트롤러(Front Controller)

제일 먼저 서버로 들어오는 모든 요청을 처리하는 프론트컨트롤러 

공통처리 작업을 Dispatcher 서블릿이 처리한 후, 세부 컨트롤러로 작업을 위임해줍니다.

Dispatcher-Servlet이 처리하는 url패턴을 지정해줘야하는데 일반적으로 /*.do와 같이

'/'로 시작하여 '.do'로 끝나는 url패턴에 대해서 처리하라고 지정해 줍니다.

 

[Dispatcher-Servlet의 장점]

- 해당 어플리케이션으로 들어오는 모든 요청을 핸들링해주면서 web.xml의 역할을 상당히 축소됬습니다.

- 서블릿을 이용하여 @MVC도 사용할 수 있게 되었습니다.

 

[Dispatcher-Servlet의 흐름]

1. 클라이언트 > Dispatcher-Servlet

   : URL로 접근하여 정보를 요청

 

2. Dispatcher-Servlet > HandlerMapping

   : 해당 요청을 매핑한 컨트롤러가 있는지 검색

 

3. HandlerMapping > Controller

   : 처리요청

 

4. Controller > Dispatcher-Servlet

   : 클라이언트의 요청을 처리하고 결과를 출력할 View의 이름을 리턴

 

5. Dispatcher-Servlet > ViewResolver

   : 컨트롤ㄹ러에서 보내온 View이름을 토대로 처리 View를 검색

 

6. ViewResolver > View 

   : 처리결과를 View에 송신

 

7. View > Dispatcher-Servlet

   : 처리결과가 포함된 View를 Dispatcher-Servlet에 송신 

 

8. Dispatcher-Servlet > 클라이언트

   : 최종결과 출력

 

[Dispatcher-Servlet을 사용으로 Spring 장점 ]

 

모든 요청을 Dispatcher-Servlet에서 처리하다 보면 JavaScript, CSS파일을 불러오지 못하는 경우가 생깁니다. 이러한 문제를 해결하고 편리하게해주는  방법을 제공해주는데,

 

1. /app의 URL로 접근하면Dispatcher-Servlet이 담당한다.

2. /resources의 URL로 접근하면 Dispatcher-Servlet이 컨트롤러할 수 없으므로 담당하지 않는다. 

 

그것이 바로 <mvc:resources />이다.

이는 Dispatcher-Servlet에서 해당 요청에 대한 컨트롤러를 찾을 수 없는 경우에, 2차적으로 설정된 경로에서 요청을 탐색하여 자원을 찾아내는 것입니다.

 

 

 

728x90
반응형
Comments