【springmvc 的请求流程二】:(springmvc 的三大组件之一)处理器映射器的配置和通过处理器映射器返回请求链的源码流程

总结

DispatcherServlet 拿着执行链去寻找对应的处理器适配器(HandlerAdapter)为什么要引入适配器?因为处理器(Handler)有很多种,DispatcherServlet没办法统一管理,所以出现了适配器。让适配器统一处理Handler,而DispatcherServlet统一处理适配器。根据请求去找对应的handler 

映射器的结构图

总结:多个映射器可以共存。相互不影响。

测试策略:不同的映射器有不同的映射策略,三个映射器全部存在于配置文件中,使用映射器的不同访问方式,全部可以访问成功。

 HandlerMapping请求流程总结:

DispatcherServlet

--->doDispatcher()

---->getHandler(request):

---->HandlerExecutionChain

------> hm.getHandler(request)-----》方法体中

----->ExecutionChain executionChain = getHandlerExecutionChain(handler, request);

----->new HandlerExecutionChain(handler)

----->chain.addInterceptor(interceptor);

我们知道Servlet的service方法是被Servlet容器调用的,这个时机是发生的有客户端向servlet请求服务时调用的,而这些都将其委托给DispatcherServlet的doDispatch方法。我们查看其关键代码。

猜你喜欢

转载自blog.csdn.net/qq_20610631/article/details/82463920