SpringMVC执行流程

序言

今天复习完了SSM框架的最后一部分SpringMVC,因为其依赖于DispatcherServlet的特殊性,我觉得有必要总结一下SpringMVC的执行流程

流程图

执行流程图

流程解读

该流程是在框架内部,所以实在其内部的执行流程.在使用SpringMVC时,我们并不需要像在spring中一样要在容器中获取Bean,但是SpringMVC中确实有Bean的存在,那么这个Bean究竟是怎么得到的呢?
这是因为在框架中存在着一些对象帮我们获得Bean,并不需要我们手动来getBean,那么在这个流程中是如何来处理请求的呢?

  • (1)浏览器(用户)提交请求到中央调度器
  • (2)中央调度器直接将请求转给处理器映射器(SpringMVC框架的一种对象,框架把实现了HandlerMapping接口的类都叫做映射器,有多个)。
  • (3)处理器映射器会根据请求,找到处理该请求的处理器(即找到请求对应的controller,也可以说成从容器中拿到对应处理器的对象),并将其封装为处理器执行链(HandlerExecutionChain,其中保存着处理器对象(所有的controller)和项目中所有的拦截器List interceptorList)后,返回给中央调度器。
  • (4)中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器(SpringMVC框架中的对象,需要调用HandlerAdapter接口,其作用是执行处理器方法(执行controller中的方法,并得到返回值))。
  • (5)处理器适配器调用执行处理器。
  • (6)处理器将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给 处理器适配器。
  • (7)处理器适配器直接将结果返回给中央调度器。
  • (8)中央调度器调用视图解析器(InternalResourceViewResolver,SpringMVC框架的对象,需要实现ViewResoler接口,其作用为使用前缀和后缀组成完整的视图路径,并创建view对象),将 ModelAndView 中的视图名称封装为视图对象(view对象,view是一个接口,表示视图的,在框架中jsp html等不是用字符串表示的,而是使用view和它的实现类来表示视图)。
  • (9)视图解析器将封装了的视图对象返回给中央调度器
  • (10)中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象。
  • (11)中央调度器响应浏览器。

匆匆总结,个人理解所得,如果存在不正确的地方,烦请大家指正.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值