springmvc-210808-01—SpringMVC执行流程&映射器&适配器&视图解析器
SpringMVC处理流程
1. 用户发起some.do请求
2. DispatcherServlet接收请求some.do,把请求转交给处理器映射器(可以有多个)
处理器映射器作用:
根据请求,从springmvc容器对象中获取处理器对象(MyController controller = context.getBean("some.do"))
框架把找到的处理器对象放到一个叫做处理器执行链(HandlerExecutionChain)的类保存。
HandlerExecutionChain:
类中保存着:
1. 处理器对象(MyController)
2. 项目中所用的拦截器List<HandlerInterceptor>
3. DispatcherServlet把 2 中HandlerExecutionChain的处理器对象交给处理器适配器对象(可以有多个)
处理器适配器:springmvc框架中的对象,需要实现HandlerAdapter接口
处理器适配器作用:执行处理器方法(调用MyController.doSome()得到返回值ModeAndView对象)
4. DispatcherServlet把 3 中获取的ModeAndView交给视图解析器对象
视图解析器:springmvc中的对象,需要实现ViewResoler接口(可以有多个)
视图解析器作用:组成视图完整路径,使用前缀,后缀,并创建View对象。
View:接口,表示视图,在框架中jsp。html文件不是string表示,而是使用View和它的实现类表示视图。、
InternalResourceView:视图类,表示jsp文件,视图解析器会创建InternalResourceView类对象。
这个对象的里面,有一个属性url=/WEB-INF/view/show.jsp
5. DispatcherServlet把 4 中创建的View对象获取,调用View类自己的方法,把Model数据放入到request作用域,
执行对象视图的forward,
请求结束。