[Servlet] Dispatcher ServletWeb_Backend/Spring2023. 5. 28. 14:22
Table of Contents
Dispatcher Servlet
Servlet이란?
✅ 서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술을 말함.
자바 서블릿(Java Servlet)은
자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말하며, 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.
- 코드의 지저분함(모든 서블릿을 web.xml등록
- 높은 의존성
- HttpServlet 기능을 필수로 Override 해야 하고, 더 이상 일반 객체로 사용할 수 없다.
- 중복되는 작업
- 모든 서블릿이 공통으로 처리하는 작업이나, 가장 우선시 되야하는 작업
Dispatcher Servlet이란?
📌 Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일 앞에서 받아 공통 작업을 진행하고 세부 컨트롤러로 위임하는 방식으로 중앙집중식으로 처리해 주는 프론트 컨트롤러(Front Controller)
- 동작방식 및 구조
- 클라이언트의 요청을 디스패처 서블릿이 받음
- 요청 정보를 통해 요청을 위임할 컨트롤러를 찾음
- 요청을 컨트롤러로 위임할 핸들러 어댑터를 찾아서 전달함
- 핸들러 어댑터가 컨트롤러로 요청을 위임함
- 비지니스 로직을 처리함
- 컨트롤러가 반환값을 반환함
- 핸들러 어댑터가 반환값을 처리함
- 서버의 응답을 클라이언트로 반환함
정적자원과 동적 자원을 분할 처리함.
Dispatcher Servlet 장점
- 기존에는 URL 매핑을 위해 web.xml 에 모든 서블릿을 등록해줘야 했지만, dispatcher Servlet이 해당 어플에 들어오는 모든 요청을 앞단에서 핸들링해두고 공통작업을 처리하면서 편리하게 이용할 수 있음
- 우리는 컨트롤러를 구현해두기만 하면 dispatcher servlet이 알아서 적합한 컨트롤러로 위임해주는 구조로 바뀜
'Web_Backend > Spring' 카테고리의 다른 글
[Java, kakao Rest API login] HttpURLConnection은 왜 지양되어야 하는가? (Feat RestTemplate, WebClient) (0) | 2024.01.24 |
---|---|
Spring boot Gradle 프로젝트는 Build시에 Test를 실행할 까?(Feat.. jacoco CI 적용일지) (0) | 2023.12.26 |
[Spring] Spring AOP(Aspect Oriented Programming) (2) | 2023.05.28 |
[Spring, JPA] JPA Persistence Context (0) | 2023.05.28 |
[JSTL] JSTL(JSP Standard Tag Library)란? (1) | 2022.03.23 |
@Yanako :: Yana's coding story
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!