상세 컨텐츠

본문 제목

Servlet, Dispatcher-Servlet, Spring MVC 실행순서

오늘의

by 덴마크 당나귀 2022. 12. 22. 14:09

본문

728x90

2022 / 12 / 22 [목]

 

Servlet?

- Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술.

- 웹을 만들때 Request와 Response가 있는데, 이 요청과 응답에는 규칙이 존재.

- 서블릿은 이러한 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는 기술.

 

Dispatcher-Servlet?

dispatch 는 "보내다"라는 뜻을 가지고 있다. HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller) 라고 정의할 수 있다.

 

클라이언트 요청 -> TOMCAT(서블릿 컨테이너) ->  Disptcher-Servlet(프론트 컨트롤러)

 

Front Controller?

서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨틀로러


     

장점

- 기존 web.xml의 역할 축소시켜줌. 과거 모든 서블릿을 URL 매핑을 위해 web.xml에 모두 등록해줘야 했다.

- dispatcher-servlet이 해당 어플리케이션으로 들어오는 모든 요청 핸들링 해주고, 공통 작업을 처리.

- 이로인해, 컨트롤러를 구현해두기만 하면 dispatcher-servlet이 알아서 위임.


모든 요청을 처리하다 보니, HTML/CSS등 정적 파일에 대한 요청도 가로챔 -> 이로인해 정적 자원을 불러오지 못하는 문제 발생 -> 해결책 2가지

 

1. 정적 자원에 대한 요청과 애플리케이션에 대한 요청 분리

     - 간단한 방법으로 /app의 URL로 접근시 디스패처가 담당

     - /resource의 URL로 접근시 디스패터가 컨트롤 할 수 없어서  담당 X

     

     단점 : 코드 지저분, 직관적인 설계 불가

2. 애플리케이션에 대한 요청 탐색 없으면 정적 자원에 대한 요청으로 처리

     -  디스패처가 요청할 컨트롤러를 먼저 찾고, 요청에 대한 컨트롤러가 없다면, 2차적으로 설정된 자원경로를 탐색하여 자원 탐색 

 

     장점 : 효율적인 리소스 관리 지원, 확장에 용이


Spring MVC

MVC 실행 순서

 

1. DispatcherServlet 요청 수신

2. DispatcherServlet이 Handler Mapping을 통해 어떤 controller 쓸지 결정

3. 선택된 controller에 요청 전달 후 controller는 요청 처리후 결과 리턴

4. ModelAndView Object에 수행 결과가 포함되어 DispatcherServlet에 리턴

5. ModelAndView Object는 실제 JSP 정보 갖지 않고, ViewResolver가 논리적 이름을 실제 JSP 이름으로 변환

6. View는 결과 정보를 사용하여 화면 표현


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

https://coding-factory.tistory.com/742

 

[Web] 서블릿(Servlet)이란 무엇인가? 서블릿 총정리

서블릿(Servlet)이란? 서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹을 만들때는 다양한 요청(Request)과 응답(Response)이 있기 마련이고 이 요

coding-factory.tistory.com

https://mangkyu.tistory.com/18

 

[Spring] Dispatcher-Servlet(디스패처 서블릿)이란? 디스패처 서블릿의 개념과 동작 과정

이번에는 servlet의 심화 또는 대표주자인 dispatcher-servlet에 대해서 알아보도록 하겠습니다. 1. Dispatcher-Servlet(디스패처 서블릿)의 개념 [ Dispatcher-Servlet(디스패처 서블릿) 이란? ] 디스패처 서블릿의

mangkyu.tistory.com

 

728x90

'오늘의' 카테고리의 다른 글

[Protocol,TCP/IP] 프로토콜, TCP/IP란?  (0) 2022.12.22

관련글 더보기