Life Developer
인생 개발자
Dispatcher Servlet 이란?

Dispatcher Servlet 이란

 

servlet container 에서 http 프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일앞에 두어

 

중앙집중식으로 처리해주는 프론트 컨트롤러이다.

 

Q) Front Controller(프론트 컨트롤러)란?

 

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

처리해주는 컨트롤러인데, MVC 구조에서 함께 사용되는 패턴이다.

 

 

그래서 공통처리 작업을 Dispatcher 서블릿이 처리한 후, 적절한 세부 컨트롤러로 작업을 위임해준다.

 

물론 Dispatcher Servlet이 처리하는 url 패턴을 지정해주어야 하는데 일반적으로 /*.do와 같이 /로 시작하며

 

.do로 끝나는 url 패턴에 대해서 처리하라고 지정해준다.

 

 

장점은 뭘까?

 

스프링의 MVC는 디스패처 서블릿이 등장함에 따라 web.xml의 역할을 상당히 축소를 시켜주었다.

 

기존에는 모든 서블릿에 대해 url 매핑을 활용하기 위해 web.xml에 모두 등록해주어야 했지만, 디스패처 서블릿이

 

해당 앱으로 들어오는 모든 요청을 핸들링 해주면서 작업을 상당히 편리하게 만들어 주었다.

 

그리고 이 디스패처 서블릿을 사용하면 @MVC 역시 사용할 수 있게 되어 좋다.

 

디스패처 서블릿의 기능처리 순서를 그리면 아래와 같다.

 

정리하자면 클라이언트가 정보를 요청하면 디스패처 서블릿에서 해당 요청을 매핑한 컨트롤러를 검색한다.

 

그리고 알맞은 컨트롤러를 찾아 view이름을 디스패처 서블릿에게 다시 알려준다.

 

그리고 디스패처 서블릿은 받은 view이름을 토대로 알맞게 찾아가서 viewResolver에게 넘겨준다.

 

viewResolver는 받은 정보를 통해 처리를 하고 처리결과를 View에 넘겨준다.

 

View는 처리결과가 포함된 view를 디스패처 서블릿에 다시 전달한다.

 

마지막으로 최종결과를 클라이언트에게 던져주고 끝이난다.

'Developer' 카테고리의 다른 글

디자인 패턴 종류  (0) 2020.07.24
디자인 패턴  (0) 2020.07.24
기본형 변수와 참조형 변수  (0) 2020.07.24
apache와 tomcat을 구분하자  (0) 2020.07.24
Tomcat은 WAS일까 아닐까  (0) 2020.07.24
  Comments,     Trackbacks