SpringMVC学习笔记-10 执行流程详解

以动态资源请求为例分析SpringMVC的执行流程:

1. 浏览器发送的的请求经过Tomcat,分配到DispatcherServlet ( web.xml中配置的<url-pattern> )。

2->3. DispatcherServlet( 中央调度器 )会将请求交给HandleMapping(处理器映射器),从SpringMVC容器中得到用于处理该请求的Controller对象( controller = ctx.getBean( ) ),并把Controller对象放到HandlerExecutionChain( 处理器执行链 )中保存。

Object:存储Controller      List<HandlerInterceptor> interceptorList:所有的拦截器

4->7:DispatcherServlet把HandlerExecutionChain中的处理器对象交给了HandleAdaptor( 处理器适配器 )对象,让处理器适配器负责调用处理器方法,得到返回值ModelAndView。

8->9. DispatcherServlet把ModelAndView交给视图解析器对象( 可以有多个 )。视图解析器负责拼接成完整的视图路径 ,并创建一个View对象,用于指明视图,而并不只是单单用字符串表示;并将该View对象交给DispatcherServlet。[ModelAndView对象有setViewName,也有setView,setView需要的参数就是这个View对象]

10->11. DispatcherServlet使用View对象,将Model放入request作用域,并执行对视图的forward进行请求转发,请求结束。

各个部分依靠DispatcherServlet进行功能配合,因此它也被称为中央调度器。

猜你喜欢

转载自blog.csdn.net/qq_39304630/article/details/113061812
今日推荐