02【SpringMVC的工作流程】

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 02【SpringMVC的工作流程】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

二、SpringMVC的工作流程

2.1 SpringMVC的三大组件

2.1.1 HandlerMapping:

主要功能:根据前端发送的请求来映射(通过反射)到具体的Handler(方法/类)上,用于找到handler

2.1.2 HandlerAdapter:

主要功能:使用不同的适配器来执行handler,返回ModelAndView(模型和视图对象);

2.1.3 ViewResolver:

主要功能:解析模型和视图进行数据的渲染;

在这里插入图片描述

1、客户端发送请求给前端控制器(DispatcherServlet)

2、dispatcherServlet接收到请求调用HandlerMapping处理器映射器

3、处理器映射器根据请求的url找对应的处理器,找到并生成处理器对象(handler)返回

4、dispatchServlet将handler传入处理器适配器,使用合适的适配器执行

5、处理器适配器执行handler

6、执行完成最终封装一个ModelAndView(模型和视图)

7、将ModelAndView返回给前端控制器

8、前端控制器将请求的路径交给视图解析器进行解析

9、视图解析器解析完毕后封装一个View对象给dispatcherServlet,此View对象封装了响应参数

10、View对象对其进行渲染

11、响应客户端

重点记住:

1)映射器来找到处理器(执行的方法)

2)适配器执行handler,返回ModelAndView

3)视图解析器解析ModelAndView,返回View

4)view对其进行渲染

2.2 SpringMVC源码分析

SpringMVC实质上是对servlet进行封装,让我们的开发更加简便

2.2.1 准备工作

我们可以在spring-webmvc-x.x.x.RELEASE.jar源码包下查看DispatcherServlet.properties文件看有哪些处理器是springmvc默认加载的

在这里插入图片描述

在这里插入图片描述

2.2.2 查看DispatcherServlet的继承体系:

在这里插入图片描述

我们发现DispatcherServlet最终还是继承与HttpServlet,那么我们就直接找service方法吧!

在这里插入图片描述

经打断点分析发现,最终会走向DispacherServlet的doDispacher方法!

在这里插入图片描述

此时请求进入DispatcherServlet,按照我们画图分析的结果应该是把请求交给处理器映射器HandlerMapping最终返回一个Handler:

在这里插入图片描述

2.2.3 通过映射器获取执行链:

我们再点击getHandler方法查看源码,发现最终是交给了映射器(HandlerMapping)来获取到执行链(对Handler的封装)

在这里插入图片描述

1)查看HandlerMapping接口:

在这里插入图片描述

2)寻找HandlerMapping实现类:

在这里插入图片描述

2.2.4 获取执行handler的适配器

在这里插入图片描述

在SpringMVC默认创建的众多适配器中选择合适的;

在这里插入图片描述

  • 查看HandlerAdpter接口:

在这里插入图片描述

2.2.5 适配器执行handler

在这里插入图片描述

2.2.6 解析视图并渲染

在这里插入图片描述

DispatcherServlet对结果集进行渲染

如何渲染?

我们刚刚分析得知,应该需要视图解析器(ViewResolver来解析成一个View)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看ViewResolver接口:

在这里插入图片描述

2.2.7 View组件渲染

在这里插入图片描述

查看View接口:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131659.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!