【Spring】SpringMVC的执行流程和相关组件


执行流程

流程图:

在这里插入图片描述

文字流程:

1、 用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截 器(如果有则生成)一并返回给DispatcherServlet。
4、 DispatcherServlet调用HandlerAdapter处理器适配器。
5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、 Controller执行完成返回ModelAndView。
7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、 ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、 DispatcherServlet响应用户。

主要组件

1.DispatcherServlet
这个控件是SpringMVC 最核心的一个控件,本质上是一个Servlet,相当于一个中转站,所有的访问都会走到这个Servlet中,再根据配置进行中转到相应的Handler中进行处理,获取到数据和视图后,在使用相应视图做出响应。

2、HandlerMapping
initHandlerMappings(context),处理器映射器,根据⽤户请求的资源uri来查找Handler的。在 SpringMVC中会有很多请求,每个请求都需要⼀个Handler处理,具体接收到⼀个请求之后使⽤哪个 Handler进⾏,这就是HandlerMapping需要做的事。

3、HandlerAdapter
initHandlerAdapters(context),适配器。因为SpringMVC中的Handler可以是任意的形式,只要能处理 请求就ok,但是Servlet需要的处理⽅法的结构却是固定的,都是以request和response为参数的⽅法。
如何让固定的Servlet处理⽅法调⽤灵活的Handler来进⾏处理呢?这就是HandlerAdapter要做的事情。
Handler是⽤来⼲活的⼯具;HandlerMapping⽤于根据需要⼲的活找到相应的⼯具;HandlerAdapter 是使⽤⼯具⼲活的⼈。

4、Handler:也就是处理器。它直接应对着MVC中的C也就是Controller层,它的具体表现形式有很多,可 以是类,也可以是⽅法。在Controller层中@RequestMapping标注的所有⽅法都可以看成是⼀个 Handler,只要可以实际处理请求就可以是Handler

5、ViewResolver
initViewResolvers(context),ViewResolver⽤来将String类型的视图名和Locale解析为View类型的视 图。View是⽤来渲染⻚⾯的,也就是将程序返回的参数填⼊模板⾥,⽣成html(也可能是其它类型)⽂ 件。这⾥就有两个关键问题:使⽤哪个模板?⽤什么技术(规则)填⼊参数?这其实是ViewResolver主 要要做的⼯作,ViewResolver需要找到渲染所⽤的模板和所⽤的技术(也就是视图的类型)进⾏渲染, 具体的渲染过程则交由不同的视图⾃⼰完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张_Laura

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值