SpringMVC对请求的处理流程

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

经验分享 程序员 微信小程序 职场和发展