处理流程

DispatcherHandler 处理请求如下:

  • 搜索适当的处理程序。如果找到处理程序,则运行与处理程序关联的执行链(预处理器、后处理器和控制器) 以准备渲染模型。或者,对于带注解的控制器,可以渲染响应(在 HandlerAdapter 内)而不是返回视图。

  • 如果 处理器返回了数据,则查找对应的数据处理器处理。如果没有返回(可能是由于预处理器或后处理器拦截了请求,可能是出于安全原因), 则不渲染视图,因为请求可能已经完成。

ApplicationContext 中声明的 HandlerExceptionHandler bean 用于解决请求处理期间抛出的异常。 这些异常解析器允许自定义解决异常的逻辑。有关更多详细信息,请参阅 异常

对于 HTTP 缓存支持,处理程序可以使用 RequestContextcheckNotModified 方法, 以及 控制器的 HTTP 缓存 中描述的带注解控制器的更多选项。