SpringMVC学习笔记11——运行流程
1. SpringMVC运行流程
执行流程
-
用户发起请求
some.do
-
DispatcherServlet
接收请求some.do
,把请求转交给处理器映射器
处理器映射器:springmvc框架中的一种对象,框架把实现了HandlerMapping
接口的类都叫做映射器(多个)
映射器作用:根据请求,从springmvc容器对象中获取处理器对象(MyController mc=ctx.getBean("some.do")
)框架把找到的处理器对象放到一个叫做处理器执行链(HandlerExecutionChain
)的类保存HandlerExecutionChain
:类中保存着 1.处理器对象(MyController
);2.项目中所有的拦截器List<HandlerInterceptor> interceptorList
中央调度器调用方法:
HandlerExecutionChain mappedHandler = this.getHandler(processedRequest);
-
DispatcherServlet
把HandlerExecutionChain
中的处理器对象交给处理器适配器对象(多个)
处理器适配器: 是springmvc中的对象,需要实现HandlerAdaper
接口
处理器适配器作用: 执行处理器方法(调用MyController.doSome()
,得到返回值ModelAndView
)中央调度器调用方法:
HandlerAdapter ha = this.getHandlerAdapter(mappedHandler.getHandler());
中央调度器执行处理器方法:mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
-
DispatcherServlet
把获取到的ModelAndView
交给视图解析器对象
视图解析器对象:springmvc中的对象,需要实现ViewResoler
(可以有多个)
视图解析器对象作用:使用前后缀组成视图完整路径,并创建View对象;View是一个接口,用于表示视图,;在框架中,jsp,html不是用string表示,而是使用View和其实现类来表示视图InternalResourceView
:视图类,表示jsp文件,视图解析器会创建InternalResourceView
类对象
这个对象有一个属性url=/WEB-INF/view/show.jsp
-
DisparcherServlet
获取到创建的View对象,调用View类自己的方法,把Model数据放入request作用域,执行对象视图的forward,请求结束