Spring MVC 执行流程

Spring MVC 执行流程

Spring MVC 框架整体的请求流程如图,该图显示了用户从请求Request到响应Response的完整流程。

Spring MVC 执行流程

  • 1. 用户发起Request 请求,该请求被前端控制器(DispatcherServlet)处理。
  • 2. 前端控制器(DispatcherServlet)请求处理映射器(HandlerMapping)查找Handler。
  • 3. 处理映射器(HandlerMapping)根据配置查找相关的Handler,返回给前端控制器(DispatcherServlet)。
  • 4. 前端控制器(DispatcherServlet)请求处理适配器(HandlerAdapter),执行相应的Handler(或称为Controller)。
  • 5. 处理适配器(HandlerAdapter)执行Handler。
  • 6. Handler 执行完毕后,返回ModelAndView 对象给HandlerAdapter。
  • 7. HandlerAdapter 对象接收到Handler 返回的ModelAndView 对象后,将其返回给前端控制器(DispatcherServlet)。
  • 8. 前端控制器(DispatcherServlet)接收到ModelAndView 对象后,请求视图解析器(View Resolver)对视图进行解析。
  • 9. 视图解析器(View Resolver)根据View 信息匹配相应的视图(View)结果,返回给前端控制器(DispatcherServlet)。
  • 10. 前端控制器(DispatcherServlet)收到View 视图后,对视图进行渲染,将Model 中的模型数据填充到 View 视图中的Request 域,生成最终的视图。
  • 11. 前端控制器(DispatcherServlet)返回请求结果给用户。

以上就是 Spring MVC 请求到响应的整个工作流程,中间使用到的组件有前端控制器(DispatcherServlet)、处理映射器(HandlerMapping)、处理适配器(HandlerAdapter)、处理器(Handler)、视图解析器(View Resolver)和视图(View)等。

处理器适配器(HandlerAdapter)

处理器适配器(HandlerAdapter)执行Handler(或称为Controller)的过程中,Spring 还做了一些额外的工作。

如下所示:

Spring MVC 执行流程

  • HttpMessageConverter(消息转换):将请求信息,如Json、XML等数据转换为一个对象,并将对象转换为指定的响应信息。
  • 数据转换:对请求的信息进行转换,如String 转换为 Integer、Double等。
  • 数据格式化:对请求消息进行数据格式化,如字符串转换为格式化数据获知格式化日期等。
  • 数据验证:验证请求数据的有效性,并将验证的结果存储到 BindingResult 或 Error 中。

相关推荐