看Spring MVC的程序执行入口 DispatcherServlet,入口就是核心方法doDispatch
入口doDispatch方法
1.如果是文件上传,就处理文件上传请求 processedRequest = checkMultipart(request);
2. mappedHandler = getHandler(processedRequest); 解析请求,来获取处理请求的handler
3.
从handlerMapping里面获取对应的handler,如果找不到对应的handler,就立刻返回
4.继续根据获取的handler,获取handlerAdapter
5.在controller的方法执行之前,先执行拦截器的相关方法,如果执行拦截器相关方法失败,就return返回,不继续执行
6.前置工作都结束了,开始执行
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
执行HandlerAdapter对象的handler方法,返回ModelAndView
7.mappedHandler.applyPostHandle(processedRequest, response, mv);
8. 进行视图解析
processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);
调用render方法,对mv进行渲染