본문 바로가기
Spring/Spring-detail

DispatchServlet(디스패처 서블릿) 에 대해 알아보자.

by YoonJong 2022. 10. 14.
728x90

DispatchServlet 의미  (Dispatch = 파견, 보내다)

  • http 에서 들어온 모든 요청을 가장 앞단에서 받아 적합한 컨트롤러에 위임하는 프론트 컨트롤러이다.
    * 프론트 컨트롤러 : 서블릿 컨테이너의 제일 앞단에서 서버에 들어오는 클라이언트의 모든 요청을 받아 처리하는 컨트롤러
  • 요청을 받아 어떤 controller 에게 위임을 할지 handlerMapping 을 통해 확인 후 HandlerAdapter를 통해 위임을 진행한다.
  • Spring MVC 는 디스패처 서블릿이 등장함에 따라, web.xml 에서 각각 url 매핑을 등록하던 작업을 스킵하고 모든 요청을 핸들링하고 공통작업을 처리하면서 편리하게 이용이 가능해졌다.

 

모든 요청을 디스패처 서블릿이 받아 편리해진 것은 사실이다.

 

하지만, 이미지나 HTML 과 같은 정적 리소스에 관련한 요청을 받을 경우 리소스를 불러오지 못하는 상황이 발생할 수 있다.

 

이러한 문제점을 해결하기 위해 2가지 방법을 제시한다. 그 중 2번째 방법이 효율적인 방법이다.

1. 정적 리소스에 대한 요청과 애플리케이션에 대한 요청을 분리한다.

 - /apps 의 rul로 접근할 경우 디스패처 서블릿이 처리를 담당한다.

 - /resources 로 접근할 경우 디스패처 서블릿이 담당하지 않는다.

 

해당 방법은 모든 요청에 /apps 등을 붙여야하므로 번거로우며 직관적이지 않다.

 

2. 어플리케이션에 대한 요청을 탐색하고, 없을 경우 정적 리소스에 대한 요청을 처리한다.

 - 모든 요청은 디스패처 서블릿이 탐색하고, 맞는 컨트롤러가 없을 경우 2차적으로 설정된 정석 리소스 경로를 탐색해 찾는 방식

 

 

참고

https://ggop-n.tistory.com/72

 

[Spring] 스프링 디스패처 서블릿 (Dispatcher Servlet)

서블릿이 무엇인지는 지난 포스팅 에서 살펴봤다. 이번엔 서블릿이 무엇인지 호기심을 갖게 한 스프링의 디스패처 서블릿에 대해서 살펴보려 한다. 디스패처 서블릿 (Dispatcher Servlet) 디스패처

ggop-n.tistory.com

https://mangkyu.tistory.com/18

 

[Spring] Dispatcher-Servlet(디스패처 서블릿)이란? 디스패처 서블릿의 개념과 동작 과정

이번에는 servlet의 심화 또는 대표주자인 dispatcher-servlet에 대해서 알아보도록 하겠습니다. 1. Dispatcher-Servlet(디스패처 서블릿)의 개념 [ Dispatcher-Servlet(디스패처 서블릿) 이란? ] 디스패처..

mangkyu.tistory.com

 

728x90

댓글