1、DispatcherServlet:作為前端控制器,負責分發客戶的請求到 Controller
其在web.xml中的配置如下:
<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,配置如下:
<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>