在设立了一个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 。 |