<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- SpringMVC前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器,适配器等)
如果不配置contextConfigLoaction,默认加载的是/WEB-INF/servlet名称-servlet.xml(springmvc-servlet.xml)-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<!-- 第一种:*.action。访问以.action结尾由DispatcherServlet进行解析;
第二种:/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析,
我们要配置不让DispatcherServlet进行解析。使用此种方法可以实现RESTful风格的url;
第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由
DispatcherServlet进行解析jsp地址,它不能根据jsp页面找到Handler,会报错-->
<!-- springmvc对哪些请求解析
*.action 解析所有的以.action结尾的请求
/ 解析所有的请求,除了jsp,需要在springmvc配置文件中定义静态资源的访问
-->
前端控制器处理过程:首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handle进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染,并把数据装入到request域,返回给用户。
DispatcherServlet作为SpringMVC的前端控制器,负责接收用户的请求,并根据用户的请求返回相应的视图给用户。