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实例配置如下:
<!-- 处理 /WEB-INF/aa/ 下的所有文件-->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/aa/" />
<property name="suffix" value=".jsp" />
</bean>