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,请求结束。