此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cadn.net.cn

加工

DispatcherServlet按如下方式处理请求:spring-doc.cadn.net.cn

  • WebApplicationContext在请求中作为属性进行搜索和绑定 控制器和进程中的其他元素可以使用。默认情况下它是绑定的 在DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE钥匙。spring-doc.cadn.net.cn

  • 区域设置解析器绑定到请求,以 let 进程中的元素 解析在处理请求(渲染视图、准备 data 等)。如果不需要 locale 解析,则不需要 locale 解析程序。spring-doc.cadn.net.cn

  • 主题解析程序绑定到请求,让视图等元素确定 使用哪个主题。如果您不使用主题,则可以忽略它。spring-doc.cadn.net.cn

  • 如果指定 multipart 文件解析程序,则会检查请求是否存在 multipart。如果 multipart 的 Fragment 中,请求被包装在MultipartHttpServletRequest为 在此过程中通过其他元素进行进一步处理。有关详细信息,请参阅 Multipart Resolver 有关分段处理的信息。spring-doc.cadn.net.cn

  • 寻找合适的处理程序。如果找到处理程序,则执行链 与处理程序(预处理器、后处理器和控制器)关联的是 run 准备用于渲染的模型。或者,对于带注释的 控制器,响应可以渲染(在HandlerAdapter) 而不是 返回一个视图。spring-doc.cadn.net.cn

  • 如果返回模型,则呈现视图。如果未返回任何模型(可能是由于 拦截请求的预处理器或后处理器,可能是为了安全 reasons),则不会呈现任何视图,因为请求可能已经完成。spring-doc.cadn.net.cn

HandlerExceptionResolverWebApplicationContext习惯于 解决请求处理期间引发的异常。这些异常解析程序允许 自定义逻辑以解决异常。有关更多详细信息,请参阅例外spring-doc.cadn.net.cn

对于 HTTP 缓存支持,处理程序可以使用checkNotModified的方法WebRequest, 以及带注释的控制器的更多选项,如 控制器的 HTTP 缓存中所述。spring-doc.cadn.net.cn

您可以自定义单个DispatcherServlet实例 初始化参数 (init-param元素)添加到web.xml文件。下表列出了支持的参数:spring-doc.cadn.net.cn

表 1.DispatcherServlet 初始化参数
参数 解释

contextClassspring-doc.cadn.net.cn

实现ConfigurableWebApplicationContext,进行实例化,并将 由此 Servlet 在本地配置。默认情况下,XmlWebApplicationContext被使用。spring-doc.cadn.net.cn

contextConfigLocationspring-doc.cadn.net.cn

传递给上下文实例(由contextClass) 更改为 指示可以找到上下文的位置。字符串可能包含多个 字符串(使用逗号作为分隔符)来支持多个上下文。在 具有定义两次的 bean 的多个上下文位置,即最新的位置 优先。spring-doc.cadn.net.cn

namespacespring-doc.cadn.net.cn

的命名空间WebApplicationContext.默认为[servlet-name]-servlet.spring-doc.cadn.net.cn

throwExceptionIfNoHandlerFoundspring-doc.cadn.net.cn

是否抛出NoHandlerFoundException当找不到请求的处理程序时。 然后,可以使用HandlerExceptionResolver(例如,通过使用@ExceptionHandlercontroller 方法)并像任何其他方法一样处理。spring-doc.cadn.net.cn

从 6.1 开始,此属性设置为true和 deprecated 的。spring-doc.cadn.net.cn

请注意,如果默认 servlet 处理为 此外,未解析的请求始终转发到默认 servlet 并且 404 永远不会提高。spring-doc.cadn.net.cn