SpringMVC执行流程
首先我们学过SpringMVC的一定会去学习SpringMVC的执行流程,而且那个流程如此复杂,各种步骤各个模块,流程繁杂,首先千篇一律的介绍流程。
本人也从网上查找到部分的讲解
版本一:
(1)用户发送请求至前端控制器DispatcherServlet;
(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter处理器适配器;
(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
(6)Handler执行完成返回ModelAndView;
(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
(9)ViewResolver解析后返回具体View;
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户。
版本二:
Springmvc完整执行流程(动态资源)
浏览器现将请求交给Tomcat服务器,然后调用Tomcat服务器中的web.Xml文件配置,把请求分派给中央调度器,中央调度器判断请求能否处理,能处理把请求交给映射器,得到执行链对象,带着执行链对象返回给中央调度器,中央调度器在调用处理器适配器,获取适配器对象后执行拦截器的preHandle()方法,判断方法返回值true/false,为true,请求可以被执行,请求传递到处理器方法,返回ModelAndView对象,接着执行拦截器的postHandler()方法,调用processDispatchResult(),这个方法判断是否有异常,有异常调用异常解析器处理异常,然后执行视图解析器,没有异常,直接执行视图解析器,通过视图解析器创建视图对象,中央调度器调用视图的view.render()方法(渲染方法,)
渲染的作用把模型Model中的数据填充到视图之中,再结