개발 일지/Spring

[Spring MVC] DispatcherServlet

미숫가루설탕많이 2023. 2. 15. 16:24

 DispatcherServlet은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아서 적합한 컨트롤러에게 위임해주기 때문에 프론트 컨트롤러(Front Controller)라고 할 수 있다.

 

 Spring MVC의 요청 처리 흐름을 보면 DispatcherServlet이 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용하면서 클라이언트의 요청을 처리하는데, 이러한 패턴을 프론트 컨트롤러 패턴(Front Controller Pattern)이라고 한다.

 

 개발자가 컨트롤러를 구현만 해두면 DispatcherServlet이 알아서 적합한 컨트롤러로 위임해주기 때문에 매우 편리하다.

 

 

 

 

Spring MVC의 요청 처리 흐름

 

  1. 클라이언트가 요청을 전송하면 DispatcherServlet이라는 클래스에 요청이 전달된다.

  2. DispatcherServlet은 HandlerMapping 인터페이스에게 Controller의 검색을 위임한다.

  3. DispatcherServlet은 검색된 Controller 정보를 토대로 HandlerAdapter 인터페이스에게 Controller 클래스 내에 있는 Handler 메서드의 호출을 위임한다.

  4. HandlerAdapter 인터페이스는 Controller 클래스의 Handler 메서드를 호출한다.

  5. DispatcherServlet은 ViewResolver에게 View의 검색을 위임한다.

  6. DispatcherServlet은 View에게 Model 데이터를 포함한 응답 데이터 생성을 위임한다.

  7. DispatcherServlet이 최종 응답 데이터를 클라이언트에게 전달한다.

'개발 일지 > Spring' 카테고리의 다른 글

Spring Boot DB 오류(Failed to configure a DataSource)  (0) 2023.02.16
[Spring MVC] DTO  (0) 2023.02.15
[Spring MVC] Spring MVC  (0) 2023.02.13
[Spring] 의존관계 주입 방법  (0) 2023.02.07
[Spring] Component Scan  (0) 2023.02.07