在设立了一个DispatcherServlet并且收到一个对该特定DispatcherServlet的请求之后,这个DispatcherServlet将按如下顺序开始处理该请求:
WebApplicationContext,并将其绑定为请求中的一个属性,以使控制器和进程中的其他元素能够使用它。默认情况下,绑定在DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE键下。MultipartHttpServletRequest中,以便进程中的其他元素后续处理。有关multipart处理的更多信息,请参见22.10节“Spring的multipart(文件上传)支持”。在WebApplicationContext中声明的程序异常解析器收集处理请求过程中抛出的异常。使用这些异常解析器允许您定义自定义的行为来处理异常。
Spring的DispatcherServlet还支持返回由Servlet API指定的最后修改日期。确定特定请求的最后修改日期的过程很简单:DispatcherServlet查找一个适当的处理程序映射,并检验发现的处理程序是否实现了LastModified接口,如果实现了,LastModified接口的long getLastModified(request)方法的值将返回给客户端。
可以通过将Servlet初始化参数(init-param元素)添加到web.xml文件的Servlet声明中来自定义单独的DispatcherServlet实例。支持的参数列表请参见下表。
Table 22.2. DispatcherServlet initialization parameters
| 参数 | 说明 |
|---|---|
contextClass |
实现了WebApplicationContext的类,它实例化了该Servlet所使用的上下文。默认情况下使用XmlWebApplicationContext。 |
contextConfigLocation |
传递给上下文实例(由contextClass指定)的字符串,以指示什么位置可以找到上下文。该字符串可能包含多个字符串(使用逗号分隔)来支持多个上下文。在多个上下文的情况下,如果一个bean被定义了两次,那么以最后的上下文为准。 |
namespace |
WebApplicationContext的命名空间。默认为[servlet-name]-servlet。 |