[Spring] DispatcherServlet
[Java] Servlet
개요Servlet은 자바로 개발된 웹 애플리케이션에서 클라이언트의 HTTP 요청에 대해 적절한 동작을 수행하고 응답을 작성하도록 설계된 자바 인터페이스입니다. 검색해보면 Servlet에 대해 대부분 이
zzzzseong.tistory.com
DispatcherServlet
DispatcherServlet은 모든 HTTP 요청을 가장 먼저 받아 적합한 Controller로 전달하는 역할은 합니다. Spring에서 HTTP 요청 및 응답을 처리하는 핵심 기술이라고 할 수 있습니다. 또한, DispatcherServlet은 FrontController라고도 불립니다. 아래는 DispatcherServlet의 생명주기입니다.
DispatcherServlet 동작과정
DispatcherServlet이 동작하는 과정을 보면서 개념을 확실히 이해해보자. 먼저, 클라이언트에서 HTTP 요청을 보내면 DispatcherServlet은 클라이언트의 HTTP 요청을 분석한다. 그리고 분석한 데이터를 토대로 HandlerMapping을 통해 API Path가 일치하는 Controller를 검색한다.
클라이언트의 HTTP 요청에 적합한 Controller가 있다면 HandlerAdapter를 이용해 Controller의 비즈니스 로직의 실행 작업을 위임한다. 이후, HandlerAdapter가 Controller의 비즈니스로직 실행을 호출하고 결과를 반환받는다.
HandlerAdapter를 통해 결과를 반환받은 DispatcherServlet은 이를 클라이언트에 반환한다. Spring MVC 라면 ModelAndView를 반환해 ViewResolver를 호출할 것이고, Rest API를 이용한다면 ViewResolver를 거치지 않고 클라이언트에 응답을 전해준다.
DispatcherServlet이 없다면
DispatcherServlet이 없다면 아래와 같이 API Path에 따라 모든 HttpServlet을 상속받는 모든 클래스를 선언해줘야한다.
[ 참고자료 ]
Spring MVC - HandlerMapping의 동작방식 이해하기 1편
HandlerMapping은 어떻게 동작할까? request에 맞는 handler만 어떻게 가져올 수 있을까?
velog.io
Spring DispatcherServlet(디스패처서블릿) 개념부터 동작 과정까지
🔗 DispatcherServlet 안녕하세요, 이번 포스팅에서는 Spring에서 HTTP 요청 및 응답과 관련하여 가장 핵심 기술인 DispatcherServlet에 대해 살펴보고자 합니다. 평소에 개념에 대해서는 어느 정도 알고 있
zzang9ha.tistory.com