Dispatcher Servlet

youngkyu MIn·2023년 12월 4일

Dispatcher Servlet

Dispatcher Servlet은 Spring MVC 프레임워크에서 웹 애플리케이션의 모든 클라이언트 요청을 중앙에서 관리하고 적절한 처리를 위해 다른 컴포넌트로 전달하는 프론트 컨트롤러(Front Controller)의 역할을 수행한다.


주요 기능과 특징

  • 중앙 집중식 요청 처리: 모든 HTTP 요청은 먼저 Dispatcher Servlet을 통과한다. 이것은 애플리케이션의 진입점 역할을 하며, 요청을 받고, 해석한 후 적절한 컨트롤러로 전달한다.

  • 컨트롤러 매핑: Dispatcher Servlet은 요청 URL을 분석하여 해당하는 컨트롤러를 찾는다. 이는 컨트롤러에 정의된 매핑 정보(URL 패턴, HTTP 메소드 등)에 따라 이루어진다.

  • 모델 및 뷰 결정: 컨트롤러가 요청을 처리하고 나면, Dispatcher Servlet은 결과 데이터(모델)와 이를 표시할 뷰를 결정한다. 뷰 리졸버(View Resolver)를 통해 반환된 뷰 이름에 해당하는 실제 뷰 페이지(예: JSP 파일)를 찾는다.

  • 예외 처리: 애플리케이션 내에서 발생하는 예외를 처리한다. 전역 예외 핸들러를 구성하여 일관된 예외 처리 메커니즘을 제공할 수 있다.

  • 통합 지원: Dispatcher Servlet은 Spring의 다른 기능들과 원활하게 통합된다. 예를 들어, Spring의 의존성 주입, 데이터 접근, 트랜잭션 관리 등과 같은 기능을 요청 처리 과정에서 사용할 수 있다.

  • 요청 및 응답 변환: 클라이언트와 서버 간의 데이터 변환을 담당힌다. 예를 들어, JSON이나 XML 형식의 데이터를 자바 객체로 변환하거나 그 반대의 과정을 수행한다.


동작

Dispatcher Servlet 의 동작

1 요청 수신: 사용자 또는 클라이언트가 웹 애플리케이션에 HTTP 요청을 보낸다. 이 요청은 먼저 Dispatcher Servlet에 도달한다.

2 요청 분석 및 매핑: Dispatcher Servlet은 요청의 URL, HTTP 메소드 등을 분석하여 어떤 컨트롤러가 이 요청을 처리해야 할지 결정한다. 이는 HandlerMapping을 통해 이루어진다.

3 컨트롤러 실행: 매핑된 컨트롤러가 호출되고, 해당 컨트롤러는 요청을 처리한다. 이 과정에서 비즈니스 로직이 실행되고, 필요한 데이터가 모델에 저장된다.

4 모델 및 뷰 선택: 컨트롤러가 처리를 마치면, 처리 결과와 함께 사용할 뷰의 이름을 반환한다. Dispatcher Servlet은 이 정보를 기반으로 ViewResolver를 사용하여 실제 뷰를 결정한다.

5 뷰 렌더링: 결정된 뷰는 모델 데이터를 사용하여 최종적으로 사용자에게 보여줄 HTML 페이지나 다른 형태의 응답을 생성한다.

6 응답 반환: 생성된 응답이 사용자의 브라우저로 전송된다. 이렇게 하여 요청-응답 사이클이 완료된다.

7 예외 처리: 요청 처리 중에 발생하는 예외는 Dispatcher Servlet에서 잡아 처리할 수 있다. @ExceptionHandler와 같은 메커니즘을 통해 에러에 대한 적절한 처리를 할 수 있다.

profile
한 줄 소개

0개의 댓글