일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- JPA
- 낙관적 락
- 자료구조
- Dirty Checking
- Kafka
- 비관적 락
- MSA
- 스레드 풀
- 정규화
- gatway
- 데이터베이스
- well-know port
- DB
- AWS
- 갱신 이상
- 삭제 이상
- 페이지네이션
- ocp
- Kotlin
- buildSrc
- HTTP
- Spring
- null
- 네트워크
- 자바
- 삽입 이상
- Redis
- 캐시 오염
- 3-way handshaking
Archives
- Today
- Total
어 나 갱수.
[Spring] 디스패처 서블릿(Dispatcher Servlet)이란? 👍 본문
728x90
디스패처 서블릿(Dispatcher Servlet)
디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있습니다.
HTTP프로토콜로 들어오는 모든 요청을 가장 앞단에서 받아서 적합한 컨트롤러에 위임해 주는 프런트 컨트롤러라고 정의할 수 있습니다.
디스패처 서블린은 HttpServlet을 상속한다.
(DispatcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet 상속 구조)
자세히 설명하자면 클라이언트로부터 어떠한 요청이 오면 WAS의 Tomcat과 같은 서블릿 컨테이너가 요청을 받게 됩니다.
이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 됩니다.
동작 과정
- DispatcherServlet 으로 요청(HttpServletRequest)이 들어오면 DispatcherServlet은 핸들러 매핑(Handler Mapping)을 통해 요청 URL에 매핑된 핸들러를 탐색한다. 여기서 핸들러는 컨트롤러(Controller)를 의미한다.
- 핸들러 어댑터(HandlerAdapter)로 컨트롤러를 호출한다.
- 핸들러 어댑터에 컨트롤러의 응답이 돌아오면 ModelAndView로 응답을 가공해 반환한다.
- 뷰 형식으로 리턴하는 컨트롤러를 사용할 때는 뷰 리졸버(View Resolver)를 통해 뷰(View)를 받아 리턴한다.
장점
Spring MVC는 DispatcherServlet이 등장함에 따라, web.xml의 역할을 상당히 축소시켜주었다.
기존에는 모든 서블릿에 대해 URL 매칭을 활용하기 위해 web.xml에 모두 등록해야 했지만,
디스패처 서블릿이 해당 애플리케이션으로 들어오는 모든 요청을 핸들링해 주면서 작업을 수월하게 할 수 있게 되었습니다.
Rerference
728x90
'Spring' 카테고리의 다른 글
[Spring] @Bean과 @Component의 차이 👏 (1) | 2023.11.13 |
---|---|
[SpringBoot] Spring Security란? 👏🏿 (0) | 2023.09.02 |
[gradle] buildSrc를 사용해보자!!😜 (0) | 2023.08.28 |
[Spring] 필터(Filter)랑 인터셉터(Interceptor) 🐻 (1) | 2023.08.01 |
[Spring] 아직도 스프링의 3요소 모르는 사람?(DI, IOC, AOP) (0) | 2023.07.28 |