SpringMVC内部请求的处理流程:也就是SpringMVC接收请求到处理完成的过程
1.用户发起some.do请求
2.DispatcherServlet中央调度器接收请求some.do,把请求转交给处理器映射器 ?处理器映射器:SpringMVC框架中的一种对象,框架实现了HandlerMapping接口的类都叫映射器(多个)
?处理器映射器的作用:根据请求,从SpringMVC容器对象中获取处理器对象(相当于
ApplicationContext ac=new ClassPathXmlApplicationContext(“springmvc.xml”)
MyController controller=ac.getBean("some.do")
) ?框架把找到的处理器对象反倒一个叫做处理器执行链(HandlerExecutionChain)的类里保存 ?HandlerExecutionChain:类中保存着:1.处理器对象(MyController) ?????????????????2.项目中所有的拦截器List<HandlerInterceptor>
3.DispatcherServlet把2中的HandlerExecutionChain中的处理器对象交给了HandlerAdapter处理器适配器对象(多个) ?处理器适配器:SpringMVC框架中的对象,需要实现HandlerAdapter接口。 ?处理器适配器作用:执行处理器方法(调用MyController.dosome()得到返回值ModelAndeView)
4.DispatcherServlet把3中获取的ModelAndView交给了ViewResolve视图解析器对象。 ?视图解析器:SpringMVC中的对象,需要实现ViewResolve接口(可以有多个) ?视图解析器作用:组成视图完成路径,使用前缀、后缀。并创建View对象。 ?View是一个接口,表示视图的,在框架中jsp,html不是String表示。而是使用View和他的实现类表示视图的。 ?InternalResourceView:视图类,表示jsp文件,视图解析器会创建InternalResourceView类对象。这个对象的里面,有一个属性url,当我们设置好视图解析器后,url=前缀+逻辑名称+后缀 比如url=/WEB-INF/jsp+show+.jsp
5.DispatcherServlet把4步骤中创建的View对象获取到,调用View类自己的方法,把Model数据放入到request作用域。执行对象视图的forward,请求结束。
|