12-SpringMVC的执行流程

上一篇:11-SpringMVC核心之拦截器的应用实践用户登录验证https://blog.csdn.net/fsjwin/article/details/109636325

1. SpringMVC的执行流程

先给出执行流程的示意图:
在这里插入图片描述

  1. 浏览器发出请求到达中央处理器
  2. (2-3步)DispatchServlet接收到请求后,把请求交给处理器映射器,处理器映射器是springmvc框架中的一种对象,框架把视线了HandlerMapping接口的类均叫做处理器映射器(在框架中是多个)。
    处理器映射器的作用:根据请求从springmvc容器中获取处理器对象即:
    MyController myController = ct.getBean(“xxx.do”);
    处理器映射器把获得的controller对象放在执行器执行链当中,这也是一个类:HandlerExecutionChain.java。

HandlerMapping.java:

@Nullable
HandlerExecutionChain getHandler(HttpServletRequest var1) throws Exception;

在这里插入图片描述

类实现类很多。现在我们使用注解了之后就方便了很多。

HandlerExecutionChain.java:

//处理器(MyController)
private final Object handler;

//拦截器
@Nullable
private HandlerInterceptor[] interceptors;
  1. (4-7步)中央处理把HandlerExecutionChain交给处理器适配器(多个),适配器是springmvc中的组件,只要实现了HandlerAdapter接口的均叫处理器适配器。会调用handle方法,具体实现就是myController中的相应方法。得到ModelAndView对象(这个ModelAndView重新回到DispatchServlet中央调度器手中)
    在这里插入图片描述
    HandlerAdapter的实现类:(和映射器一一对应)

在这里插入图片描述
4. (8-9) 视图解析器,使用前后缀配成实体,使用View类来表示
在这里插入图片描述
比如:RedirectView 对象代表的就是的就是redirect:/EEB-INF/view/first.jsp这里的视图。

在这里插入图片描述
然后把view对象返回给中央调度器DispatchServlet

  1. DispatchServlet把view对象,调用view对象自己的方法相应给页面。

2. DispatchServlet中的重要节点

DispatchServlet中的重要节点:
的到执行链:
在这里插入图片描述
调用适配器:
在这里插入图片描述

3. 总结

这个在面试过程中用的多。开发中实际应用不大。
各个器君合DispatchServlet中央调度器交互,各自之间没有耦合!
建议源码有余力详细研究!

猜你喜欢

转载自blog.csdn.net/fsjwin/article/details/109636887