🔎DispatcherServlet

DispatcherServlet은 Spring 프레임워크에서 웹 요청을 받아들이고, 해당 요청을 처리할 컨트롤러에게 전달하는 중앙 집중식 컨트롤러입니다. Spring MVC 애플리케이션에서 모든 HTTP 요청의 진입점 역할을 합니다.

DispatcherServlet은 웹 애플리케이션의 web.xml 또는 Java Config 클래스에서 설정되며, 설정된 URL 패턴과 매핑된 요청을 처리합니다.

일반적으로 Spring MVC 설정 파일인 dispatcher-servlet.xml에 빈으로 정의됩니다. 다음은 DispatcherServlet의 간단한 설정 예시입니다:

<!-- dispatcher-servlet.xml -->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- Enable component scanning for Spring MVC controllers -->
    <context:component-scan base-package="com.example.controllers" />

    <!-- Declare Spring MVC annotation-driven -->
    <mvc:annotation-driven />

</beans>

이 설정은 DispatcherServletcom.example.controllers 패키지 내의 컨트롤러들을 찾아서 요청을 라우팅할 수 있게 합니다. <mvc:annotation-driven />은 Spring MVC에서 어노테이션 기반의 컨트롤러를 활성화합니다.

DispatcherServlet이 수행하는 주요 역할은 다음과 같습니다:

  1. 클라이언트 요청의 수신: 모든 클라이언트 HTTP 요청을 받습니다.

  2. 핸들러 매핑: 요청 URL을 처리할 적절한 컨트롤러를 찾습니다.

  3. 핸들러 어댑터 호출: 찾은 컨트롤러의 메서드를 실행하여 요청을 처리합니다.

  4. 뷰 리졸버 호출: 컨트롤러가 리턴한 뷰 이름을 기반으로 실제 뷰를 찾습니다.

  5. 뷰 렌더링: 최종적으로 뷰를 클라이언트에게 렌더링합니다.

이러한 단계를 통해 DispatcherServlet은 클라이언트의 요청을 처리하고, 결과를 클라이언트에게 응답으로 보냅니다. 이를 통해 Spring MVC 애플리케이션은 클라이언트 요청에 동적으로 응답할 수 있게 됩니다.

Last updated