Dispatcher-Servlet은 서블릿 컨테이너에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 가장 앞에서 처리해주는 프론트 컨트롤러 역할을 한다.
즉, 클라이언트의 요청이 서버로 들어오기 전, Dispatcher-Servlet이 공통 작업을 처리하고, 세부 작업을 담당할 컨트롤러로 요청을 전달해주는 것이다.
프론트 컨트롤러 역할
Dispatcher-Servlet은 웹 애플리케이션의 진입점으로 모든 HTTP 요청을 수신한다. 이를 통해 개별 컨트롤러가 아닌 한 곳에서 공통 작업(인증, 로깅 등)을 처리한 뒤 해당 요청에 맞는 컨트롤러로 요청을 전달할 수 있다.
URL 패턴 처리
처리할 URL 패턴을 설정하여 Dispatcher-Servlet이 특정 요청만을 받아서 처리하게 할 수 있다. 예를 들어, .mvc
로 끝나는 URL만 처리하도록 설정할 수 있다.
web.xml 역할 축소
기존에는 모든 서블릿을 URL 매핑하여 web.xml에 등록해야 했지만, Dispatcher-Servlet이 모든 요청을 한 번에 관리함으로써 web.xml에서의 설정을 줄이고, 코드의 가독성과 유지보수를 높인다.
MVC 패턴 구현 지원
Dispatcher-Servlet은 스프링 MVC에서의 중앙 컨트롤러 역할을 수행해 웹 개발의 효율성을 높여준다. MVC 패턴을 활용하여 다양한 요청에 유연하게 대응할 수 있다.
Dispatcher-Servlet이 특정 패턴을 처리하도록 web.xml에 다음과 같이 설정할 수 있다.
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.mvc</url-pattern>
</servlet-mapping>
위와 같이 설정하면, .mvc
로 끝나는 모든 URL 요청은 Dispatcher-Servlet이 우선적으로 처리하게 된다.
Dispatcher-Servlet은 웹 애플리케이션에서 HTTP 요청을 프론트 컨트롤러로서 일괄 처리하고, 공통작업을 담당하며, 요청에 적합한 컨트롤러로 작업을 위임한다. 이를 통해 MVC 패턴의 활용이 가능해져 웹 애플리케이션의 관리 및 유지보수가 훨씬 용이해진다.