SPRING

[SPRING] DISPATCHER-SERVLET

집한구석 2021. 6. 7. 21:59
728x90

DispatcherServlet 정의

  • 서버로 들어오는 모든 요청(Request)을 처리하는 프론트 컨트롤러 (서블릿컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 요청을 받아서 처리해주는 컨트롤러를 프론트컨트롤러라고 정의함)
  • 요청을 받아들여서 적절한 Controller로 요청을 위임해줌
  • Spring MVC 사용전에는 JSP환경에서는 서블릿 객체를 직접 생성하여 web.xml에 매핑을 해줘야 했으나 Spring MVC를 사용하면서 DispatchServlet이 모든 요청을 핸들링 처리를 해줘서 해당 작업이 필요가 없어짐
  • 요청에 맞는 핸들러로 요청을 Dispatch하고 핸들러 실행 결과를 Http Response형태로 응답해줌

DispatcherServlet 구조

https://stackoverflow.com/questions/46107104/http-requests-are-not-being-delegated-to-controllers-of-root-webapplicationconte 참고

  • DispatcherServlet은 ServletContext에 등록된 ApplicationContext를 상속받아서 WebApplicationContext를 생성함
  • Servlet WebApplicationContext는 Root WebApplicationContext를 상속받아 만들어짐, 해당 DispatchServlet에 Controller, View 같은 Bean들이 등록

DispatcherServlet 흐름

https://ask.lecturenotes.in/question/explain-the-architecture-of-spring-mvc-framework.-skjux65o0 참고

  1. 요청이 DispatcherServlet에 전달
  2. DispatcherServlet은 전달 받은 요청을 HandlerMapping을 통하여 Controller에 전달, Contoller는 처리결과를 응답
  3. DispatcherServlet은 ViewResolver로부터 응답결과를 생성한 View를 추출
  4. View는 요청한 Client에 응답

'SPRING' 카테고리의 다른 글

[SPRING] AOP  (0) 2021.07.31
[SPRING] Interceptor  (0) 2021.07.11
[SPRING] Bean  (0) 2021.05.23
[SPRING] 컨테이너 (Container)  (0) 2021.05.23
[SPRING] JPA 연관관계  (0) 2021.05.19