Spring MVC 执行流程
Spring MVC 执行流程
Spring MVC 框架整体的请求流程如图,该图显示了用户从请求Request到响应Response的完整流程。
- 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 还做了一些额外的工作。
如下所示:
- HttpMessageConverter(消息转换):将请求信息,如Json、XML等数据转换为一个对象,并将对象转换为指定的响应信息。
- 数据转换:对请求的信息进行转换,如String 转换为 Integer、Double等。
- 数据格式化:对请求消息进行数据格式化,如字符串转换为格式化数据获知格式化日期等。
- 数据验证:验证请求数据的有效性,并将验证的结果存储到 BindingResult 或 Error 中。
相关推荐
与卿画眉共浮生 2020-11-13
smalllove 2020-11-03
hellowordmonkey 2020-11-02
丽丽 2020-10-30
周太郎 2020-10-28
greensomnuss 2020-10-27
职业炮灰 2020-10-16
与卿画眉共浮生 2020-10-14
feinifi 2020-10-14
feinifi 2020-10-13
yangjinpingc 2020-10-09
davis 2020-09-29
RickyIT 2020-09-27
lisongchuang 2020-09-27
tangxiong0 2020-09-03
meleto 2020-08-17
幸运小侯子 2020-08-14
YangHuiLiang 2020-08-06