DispatcherServlet

잡동사니

DispatcherServletSpring MVC에서 서블릿 컨테이너가 호출하는 서블릿이다.

구현한 인터페이스Servlet이고 상위 클래스 중 HttpServlet이 있다. HttpServlet 클래스는 요청을 service(ServletRequest, ServletResponse) 메서드와 service(HttpServletRequest, HttpServletResponse) 메서드에 통해 요청이 각 doHttpMethod으로 분리한다. 하지만 DispatcherServlet의 상위 클래스 FrameworkServlet에서 doHttpMethod를 모두 doService(ServletRequest, ServletResponse)로 다시 통합하기 때문에 실제로 요청을 처리하는 메서드는 doService이다. 또 doService 메서드는 약간의 처리를 거쳐 #doDispatch 메서드를 호출한다. 따라서 DispatcherServlet 클래스에서 중요한 메서드는 #doDispatch다.

목차

주요 메서드

doDispatch

인자
  1. HttpServletRequest
  2. HttpServletResponse

doDispatch 메서드의 주요 처리 과정은 다음과 같다.

  1. 핸들러 얻기: #getHandler 메서드로 요청에 맞는 핸들러 체인을 얻는다.
  2. 어댑터 얻기: #getHandlerAdapter 메서드로 핸들러 체인의 핸들러에 맞는 어댑터를 얻는다.
  3. 어댑터 처리: 어댑터의 handle 메서드를 호출하여 모델-뷰를 얻는다.
  4. 그리기: #render 메서드로 모델-뷰를 그린다.

getHandler

getHandlerAdapter

render

연결 고리