Spring MVC运行流程

原创
2018/10/08 11:11
阅读数 2

转载出处:https://blog.csdn.net/baidu_36697353/article/details/64444147,https://blog.csdn.net/zuoluoboy/article/details/19766131

详细图:

时序图:

SpringMVC工作流程描述

1.用户向服务器发送请求时,请求被Spring 前端控制器DispatcherServlet获取,如详细图第一步

2.DispatcherServlet对请求URL进行解析(比如我们发送一个url如下的请求

http://localhost:8080/SpringMVC/hello.action),就会得到请求资源标示符(URI,相当于就是上面的hello.action )。然后根据URI,调用处理器映射器(HandlerMapping)获得该Handler配置的所有相关对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回。

3.DispatcherServlet获取上面返回的Handler,并选择一个适合的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法

4.选择好合适的HandlerAdapter后就会开始执行Handler。在填充Handler的入参过程中,根据配置,Spring将帮你做一些额外的工作(我们不需要管)

EG:

      HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

      数据转换:对请求消息进行数据转换。如String转换成Integer、Double等

      数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等

      数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中

 

5. Handler执行完成后DispatcherServlet 返回一个ModelAndView对象(包含视图名或视图名和模型)

 

6.根据返回的ModelAndView对象,选择一个合适的ViewResolver返会给DispatcherServlet 

 

7.ViewResolver结合,Model和View来渲染视图

 

8.最后将视图渲染结果返回给客户端

 

组件名词解释

 

1.DispatcherServlet:前端控制器

等同于以前的Controller, 是整个流程的中心, 负责调用其他组件

 

2.HandlerMapping 处理器映射器

负责根据请求找到Handler(处理器),springMVC中可以根据不同的映射器实现不同映射,比如 xml配置方式,注解方式,接口方式等

 

3.Handler后端控制器

在前端控制器的控制下对具体的用户请求进行处理,所以一般情况下都需要开发者进行根据需求进行开发

 

4.HandlerAdapter处理器适配器

处理Handler,可以对多种类型的处理器进行执行,这是对适配器模式的应用体现。

 

5.ViewResolver : 视图解析器

负责将处理结果生成view视图、开发者可以根据需要开发view

--------------------- 本文来自 mantou22MT 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/baidu_36697353/article/details/64444147?utm_source=copy

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部