
Dispatcher Servlet에 있는 dispatch는 "보내다"라는 뜻을 가진다.Dispatcher Servlet 은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 보내주는 Front Controller 이다.Front Controller 는 주로 서블릿 컨테이너의 제일 앞단에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨트롤러 ( MVC 구조에서 함께 사용되는 디자인 패턴 )Dispatcher Servlet은 Front Controller로서 클라이언트로 부터 어떠한 요청이 오게 되면 모든 요청을 자신이 먼저 받게 되고, 이러한 요청들을 세부 컨트롤러에게 전달하는 역할 !Dispatcher Servlet은 해당 어플리케이션으로 들어오는 모든 요청을 핸들링 해주기 때문에, 우리는 컨트롤러를 구현해두기만 하면 Dispatcher Servlet가 알아서 적합한 컨트롤러로 위임을 해주는 구조가 된다.
Dispatcher Servlet에 전달controller 검색하여 Handler Mapping에 전달HandlerMapping에서 해당 controller에 처리 요청controller에서 처리 결과를 Handler Adapter에서 ModelAndView 객체로 변환하여 Dispatcher Servlet에 전달Dispatcher Servlet에서 전달받은 ModelAndView 객체를 이용하여 매핑되는 View를 검색viewResolver에서 처리 결과를 view에 전달view를 Dispatcher Servlet에 전달Dispatcher Servlet에서 최종 응답 결과를 클라이언트에게 반환doService() 메서드가 호출됨doService()의 코드는 맨 아래에서 doDispatch() 메서드가 호출됨
doDispatch()에서는 클라이언트의 요청에 해당하는 핸들러를 조회하고(getHandler()),getHandlerAdapter())
handle() 메서드를 호출processDispatchResult() 메서드를 호출
processDispatchResult() 메서드는 안에서 render() 메서드를 또 다시 호출
render() 메서드 안에서는 뷰 리졸버(viewResolver)를 통해 view를 찾고, 해당 view를 반환받음
이렇게 코드들을 따라가보면 결국 위 과정에 따른 순서대로 Dispatcher Servlet이 동작하는 것을 알 수 있다 !
참고 자료
[스프링/Spring] 스프링 MVC? DispatcherServlet 이해하기
Spring MVC - DispatcherServlet 동작 원리
[Spring] Dispatcher-Servlet(디스패처 서블릿)이란? 디스패처 서블릿의 개념과 동작 과정
[Spring] MVC DispatcherServlet 동작 원리