doDispatch方法的处理流程
1、根据当前的请求去遍历handlerMappings返回一个HandlerExecutionChain包含了处理器和拦截器
mappedHandler = getHandler(processedRequest);
2、遍历所有注入的 HandlerAdapter,依次使用supports方法寻找适合这个HandlerExecutionChain中的Handler的适配器子类。
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());//HandlerExecutionChain中的Handler
3、通过这个获取的适配器子类运用ha.handle(processedRequest, response,mappedHandler.getHandler());方法调用控制器函数,返回ModelAndView
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
4、DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;解析后返回具体View;
5、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)响应用户。