首页 > 编程语言 > 详细

【串线篇】SpringMVC运行流程

时间:2019-11-21 18:01:15      阅读:71      评论:0      收藏:0      [点我收藏+]

1、所有请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理

2、根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行链(包含拦截器interceptor)

getHandle(processedRequest);返回mappedHandler对象即处理器执行链(包含拦截器)

 

3、根据当前处理器找到他的HandlerAdapter(适配器)

4、拦截器的preHandle先执行

5、适配器执行目标方法,并返回ModelAndView

          1)、ModelAttribute注解标注的方法提前运行

          2)、执行目标方法的时候(确定目标方法用的参数)

                    1)、有注解比如@RequestParam()

                    2)、没注解:

                             1)、 看是否Model、Map以及其他的,

这种情况是往model对象里加东西存留于请求域中

                              2)、如果是自定义类型

                                          1)、从隐含模型中看有没有,如果有就从隐含模型中拿

                                          2)、如果没有,再看是否SessionAttributes标注的属性,如果是从Session中拿,如果拿不到会抛异常

                                             3)、都不是,就利用反射创建对象

6、拦截器的postHandle执行

7、处理结果;(页面渲染流程)

             1)、如果有异常使用异常解析器处理异常;处理完后还会返回ModelAndView

              2)、调用render进行页面渲染

                         1)、视图解析器根据视图名得到视图对象

                         2)、视图对象调用render方法;

               3)、执行拦截器的afterCompletion;

8.引用尚硅谷官方的一张流程图:【出处】:http://www.gulixueyuan.com/谷粒学院

技术分享图片

 

 

【串线篇】SpringMVC运行流程

原文:https://www.cnblogs.com/yanl55555/p/11906765.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!