springmvc的DispatcherServlet分析

springmvc的DispatcherServlet

DispatcherServlet类主要的函数是doDispatch(),解析请求,找到合适的handlermaping以及对应的HandlerAdapter。

doDispatch:
springmvc的DispatcherServlet分析
在doDispatch方法中,getHandler方法将遍历所有的handlerMapping,找到匹配的HandlerMapping,并包装成HandlerExecutionChain,之所以要包装成HandlerExecutionChain,是因为需要添加一些拦截器,包括spring自己的拦截器和用户定义的拦截器。

getHandler:
springmvc的DispatcherServlet分析
DispatcherServlet请求处理主逻辑在找到handlerMapping后,并不会直接执行里面的方法,springmvc加入了adapter的概念,使其更具扩展性,隐藏handler的实现细节,当需要扩展功能时,只要实现HandlerAdapter接口就好,而DispatcherServlet调用adapter接口时可以用统一的方式。

getHandlerAdapter:
springmvc的DispatcherServlet分析