mvc请求流程
1、DispatcherServlet继承体系
2、请求调用流程
首先调用的是FrameworkServlet#service方法
然后在FrameworkServlet#doGet中调用了FrameworkServlet#processRequest方法
在FrameworkServlet#processRequest中又调用了FrameworkServlet#doService(FrameworkServlet#doService是一个接口它的实现在DispatcherServlet中)
最终请求交给了DispatcherServlet#doService来处理
在DispatcherServlet#doDispatch方法中
1)getHandler()方法获取HandlerExecutionChain处理器执行链
2)getHandlerAdapter()通过handler找到对应的处理器适配器
3)由适配器的handle()方法执行处理器,返回ModelAndView视图对象
4)processDispatchResult()完成页面跳转
getHandler方法细节
DispatcherServlet#getHandler
handlerMappings包含BeanNameUrlHandlerMapping,RequestMappingHandlerMapping
1)BeanNameUrlHandlerMapping处理xml配置开发
2)RequestMappingHandlerMapping处理注解开发
AbstractHandlerMapping#getHandler
AbstractHandlerMethodMapping#getHandlerInternal
根据request中携带的url从handlerMapping中获取handler(url与handler的映射关系在容器初始化时被解析到handlerMapping中)