Dispatcher에서 Controller를 사용하기 위해 요청에 수반되는 함수를 호출해주는 등 약속이 필요하다.
-> handleRequest
IndexController.java
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
ModelAndView mv = new ModelAndView();
mv.addObject("data","Hello Spring MVC");
mv.setViewName("index.jsp");
return mv;
}
index.jsp
<body>
<h1>Hi ${data}</h1>
</body>
web.xml
...
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
...
dispatcher-servlet.xml
<bean id="/index" class="com.kim.web.controller.IndexController">
<!-- collaborators and configuration for this bean go here -->
</bean>
Controller가 modelAndView를 Dispatcher에 전달
Dispatcher가 view를 찾아 model 전달
JSP는 model을 출력에 사용
/index로 매핑한 이름으로 호출해줘야
dispatcher-servlet이 실행 돼 Controller를 실행하게 된다.