spring mvc工作流程图

spring mvc工作流程图,第1张

spring工作的流程

1 用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问。就是url-pattern的作用,并且会加载springmvc.xml配置文件。

2 前端控制器会找到处理器映射器(HandlerMapping),通过HandlerMapping完成url到controller映射的组件,简单来说,就是将在springmvc.xml中配置的或者注解的url与对应的处理类找到并进行存储,用map<url,handler>这样的方式来存储。

3 HandlerMapping有了映射关系,并且找到url对应的处理器,HandlerMapping就会将其处理器(Handler)返回,在返回前,会加上很多拦截器。

4 DispatcherServlet拿到Handler后,找到HandlerAdapter(处理器适配器),通过它来访问处理器,并执行处理器。

5 执行处理器

6 处理器会返回一个ModelAndView对象给HandlerAdapter

7 通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)

8 前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp),其实就是将ModelAndView对象中存放视图的名称进行查找,找到对应的页面形成视图对象

9 返回视图对象到前端控制器。

10 视图渲染,就是将ModelAndView对象中的数据放到request域中,用来让页面加载数据的。

11 通过第8步,通过名称找到了对应的页面,通过第10步,request域中有了所需要的数据,那么就能够进行视图渲染了。最后将其返回即可。

————————————————

原文链接: https://blog.csdn.net/qinqigang/article/details/78540543

1.1 Spring mvc的执行流程图

Spring mvc的执行流程大致如下:

1)所有请求被DispatcherServlet控制器拦截。

2)被拦截的请求去handlerMappings中寻找对应的HandlerMapping对象并得到请求对应的Handler对象。

3)把获取到的Handler对象以及根据请求查找跟请求对应的拦截器作为入参,封装成一个HandlerExectionChain对象,返回到DispatcherServlet控制器。

4)把HandlerExecutionChain对象作为入参,去handlerAdapters集合中寻找对应的HandlerAdapter对象。

5)把HandlerExectionChain对象作为入参调用HandlerAdapter对象的handle方法,执行完毕将返回ModelAndView对象到DispatcherServlet控制器中。

6)从viewResolvers集合中查找对应的View对象,并返回给到DispatcherServlet控制器。

7)View视图渲染成具体的文件格式并返回给客户端。

View视图渲染

render具体源码

View的类型如下图(ctrl+h可查看类的所有子类)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11936974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存