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

加工

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

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

  • 语言环境解析器绑定到请求,以让流程中的元素 解析处理请求时要使用的区域设置(呈现视图、准备 数据,依此类推)。如果不需要区域设置解析,则不需要区域设置解析器。spring-doc.cadn.net.cn

  • 如果指定多部分文件解析器,则会检查请求中的多部分。如果 多部分,则请求被包装在MultipartHttpServletRequest为 过程中由其他元素进一步加工。有关更多信息,请参阅 Multipart Resolver 有关多部分处理的信息。spring-doc.cadn.net.cn

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

  • 如果返回模型,则呈现视图。如果没有返回任何模型(可能是由于 拦截请求的预处理器或后处理器,可能是为了安全起见 原因),则不会呈现任何视图,因为请求可能已经得到满足。spring-doc.cadn.net.cn

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

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

您可以自定义单个DispatcherServlet实例,通过添加 Servlet 初始化参数 (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) 更改为 指示可以在哪里找到上下文。字符串可能由多个 strings(使用逗号作为分隔符)来支持多个上下文。在以下情况下 具有定义两次的 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并已弃用。spring-doc.cadn.net.cn

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