spring에서 모든 요청은 반드시 dispatcherServlet을 통해서 이루어진다.
객체지향에서 모든 흐름이 하나의 객체를 통해 진행되는 패턴을 퍼사드(facade)패턴 이라고 한다.
웹 구조에서는 Front-Controller 패턴이라고 부른다.
스프링 MVC에서는 DispatcherServlet이라는 객체가 프론트 컨트롤러의 역할을 수행한다.
프론트 컨트롤러가 사전/사후 처리를 하게 되면 중간에 매번 다른 처리를 하는 부분만 별도로 처리하는 구조로 만들게 되는데, 이를 컨트롤러라고 하고 @Controller를 이용한다.
spring은 dispatcherServlet을 통해 모든 일이 이루어진다고 해도 과언이 아닌데 dispatcherServlet에게 view 정보를 전달해주는 방식에는 두가지가 있다.
2를 사용할 경우 이름으로부터 실제로 사용할 뷰 객체를 결정해주는 리졸버가 필요하다.
뷰 리졸버는 이름으로부터 사용할 오브젝트를 매핑해준다.
특정 뷰 리졸버를 빈으로 등록하여 사용하지 않을 것이라면 DispatcherServlet은 default 값으로 InternalResourceViewResolver를 사용한다.
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view"/>
<property name="suffix" value=".jsp"/>
</bean>