728x90
디스패처 서블릿(DispatcherServlet)
- 서블릿 컨테이너 가장 앞단에서 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 *프론트 컨트롤러
- DisparcherServlet은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야 하는 세부 컨트롤러를 getBean()으로 가져와 정해진 메소드를 실행시켜 작업 위임
*프론트 컨트롤러(Front Controller)
: 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리해주는 컨트롤러,
MVC 구조에서 함께 사용되는 디자인 패턴
DispatcherServlet 동작 방식
장점
- web.xml의 역할 축소
- 기존의 모든 서블릿의 URL 매핑을 web.xml에 등록했지만, dispatcherServlet이 해당 애플리케이션으로 들어오는 모든 요청을 핸들링, 공통 작업 처리
단점
- 이미지, HTML, CSS, JavaScript 등과 같은 정적 자원(Static Resources)에 대한 문제 발생
정적 자원 문제 해결 방안 2가지
1. 정적 자원에 대한 요청과 애플리케이션에 대한 요청 분리
- '/resources'와 '/apps' 같은 URL을 붙여 요청 분리, 하지만 모든 요청에 URL을 붙이는 한계와 지저분해지는 소스코드 문제 발생
2. MVC와 무관한 Resource URL 따로 매핑(dispatcherServlet 설정 파일에 작성)
- DispatcherServlet을 통해 들어온 요청을 처리하는데 만약 디스패처 서블릿이 해당 요청에 대한 컨트롤러가 찾을 수 없다면 2차적으로 위의 설정된 경로를 검색하여 해당 자원을 찾아내게 되는 것
<mvc:resources mapping="/resources/**" location="/resources/" />
- mapping="/resources/**" : http://localhost:8080/webapp/resources/image/photo1.jpg
- location="/resources/" :
출처 및 참고)
[Spring]Dispatcher-Servlet(디스패처 서블릿)이란?
이번에는 servlet의 심화 또는 대표주자인 dispatcher-servlet에 대해서 알아보도록 하겠습니다. 1. Dispatcher-Servlet(디스패처 서블릿)의 개념 dispatcher-servlet에서 dispatch는 보내다라는 뜻을 가지고 있..
mangkyu.tistory.com
@MVC와 DispatcherServlet에 대해서
이전 장까지 MyBatis와 커넥션풀의 활용, 그리고 트랜잭션에 대해 상세히 알아보았습니다. 개인적으로 이 정도의 환경이라면 소, 중형 서비스 구축에는 문제없을 정도로 환상적인 제작환경이 구
egloos.zum.com
728x90
반응형