Archive/예전 TIL

Spring Web MVC의 Dispatcher Servlet의 동작 원리

khu2172 2024. 10. 4. 20:36
  • DispatcherServlet이란?
    • Web Application Server(tomcat)가 사용자의 요청을 바4ㄷ으면 가장 먼저 요청을 받아 적합한 Controller에 역할을 위임해 주는 동작을 하는데 이러한 역할을 하기 때문에 DispatcherServlet은 Front Controller라고도 불린다.
  • Dispatcher Servlet의 동작 과정
    1. 클라이언트의 요청인 http servlet request를 수신한다. 클라이언트의 요청을 수신한 Dispatcher Servlet은 Accept-Language나 cookie 값을 분석하는 Local Resolver 외에 Theme Resolver(theme resolving 필요한 경우 view 테마 설정), MultiPart Resolver(파일 전달된 경우 파일 업로드 처리) 인터페이스 구현체에서 request를 분석한다.
    2. 요청을 HandlingMapping에 위임하여 해당 요청을 처리할 Controller를 탐색한다. Handler Mapping은 Request Url과 매칭되는 Controller를 찾는다.
    3. Handler Adaptor를 사용하여 찾은 Controller의 메소드를 실행하고 비즈니스 로직을 수행한다.
    4. Controller가 ResponseEntity를 반환하고 HandlerAdaptor가 반환 받은 ResponseEntity를 통해 Response 처리를 진행한다.
    5. HandlerAdaptor가 처리한 Response를 클라이언트로 반환한다.