새소식

반응형
Java/Spring

Dispatcher Servlet(Front Controller), ViewResolver

  • -
반응형

기존 Servlet 방식

사용자의 요청을 servlet에게 전달하기 위해선 web.xml의 <servlet> 태그를 통해 servlet을 등록한다.

<servlet>

<servlet-name>testServlet</servlet-name>

<servlet-class>servlet class</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>testServlet</servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

등록된 servlet에 해당하는 url pattern을 체크하기 위해 <servlet-mapping> 태그도 사용한다.

하지만 아래의 그림과 같이 수많은 사용자의 요청을 처리하기 위해선 여러개의 servlet이 등록되어야 하는 불편함이 있다. 사용자 요청에 맞는 servlet을 생성하고 해당 servlet에 맞는 controller에게 요청을 보내준다.

- Front Controller 패턴 적용

Front Controller 패턴을 적용하면 맨앞에 존재하는 Front Controller Servlet이 모든 요청을 받아 맞는 Controller에게 전달한다.

장점 : 모든 사용자의 요청을 받아 처리 하기 때문에 에러페이지 처리, 공지 등 한곳에서 처리한 후 컨트롤러에게 넘길수 있다.

- Dispatcher Servlet (Front Controller Servlet)

Spring 에서 Front Controller 패턴을 취하는 Servlet 을 미리 만들어 놨는데 그게 바로 Dispatcher Servlet이다.

사용자의 모든 요청을 한곳에서 받아서 HandlerMapping을 통해 적절한 Controller에게 넘겨주고 실행 결과를 Http Response형태로 만드는 역할을 한다.

ViewResolver는 사용자가 요청한것에 대한 응답 view를 렌더링하는 역할을 한다. view 이름으로부터 맞는 객체를 매핑한다.

개발자가 Dispatcher Servlet에 별도의 ViewResolver를 설정하지 않는다면 Dispatcher Servlet에 기본적으로 등록되어있는 InternalResourceViewResolver 를 사용한다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.