1、DispatcherServlet:作为前端控制器,负责分发客户的请求到 Controller
其在web.xml中的配置如下:
< servlet > < servlet-name >dispatcherServlert </ servlet-name > < servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class > < init-param > < param-name > contextConfigLocation </ param-name > < param-value > classpath:spring.xml </ param-value > </ init-param > </ servlet > < servlet-mapping > < servlet-name > dispatcherServlert </ servlet-name > < url-pattern > / </ url-pattern > </ servlet-mapping >
2、Controller:负责处理客户请求,并返回ModelAndView实例。
Controller必须实现接口 org.springframework.eb.servlet.mvc.Controller,实现该接口中的方法 handleRequest(),在该方法中处理请求,并返回ModelAndView实例。
3、HandlerMapping:DispatchServlet根据它来决定请求由哪一个Controller处理。
- 默认情况下,DispatcherServlet将使用 org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,即使用和客户端请求的URL名称一致的Controller的bean实例来处理请求。
- 另一种常用的 HandlerMapping 是 org.springframework.web.servlet.handler.SimpleUrlHandlerMapping,配置如下:
< bean class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" > < property name ="mappings" > < props > < prop key ="/add.do" ></ prop > </ props > </ property > </ bean >
在以上 mappings 属性设置中, key为请求的URL,value 为处理请求的Controller的bean名称。
4、ModelAndView:用来封装View与呈现在View中的Model对象。
DispatcherServlet根据它来解析View名称,并处理呈现在View中的Model对象。
5、ViewResolver:DispatcherServlet委托ViewResolver来解析View名称。
常用的ViewResolver实例配置如下: