一、slideshare上的运行流程截图
二、佟刚老师的PPT的流程
三、流程解释
1、首先用户发送请求,前端控制器springDispatcherServlet的url-pattern进行过滤,查看springMVC中是否存在对应的映射
---->如果不存在,查看是否配置<mvc:default-servlet-handler/> 也没有,那么控制台会打印 NO mapping found for Http request with URI XXX in dispatcherServlet
---->同时,给出404页面
2、首先用户发送请求,前端控制器springDispatcherServlet的url-pattern进行过滤,查看springMVC中是否存在对应的映射---->如果不存在,查看是否配置<mvc:default-servlet-handler/>
---->如果有,那么找到目标资源(配置了<mvc:default-servlet-handler/>,那么就要配置 <mvc:annotation-driven></mvc:annotation-driven>)
---->注意:否则requestMapping()无法正常请求
3、首先用户发送请求,前端控制器springDispatcherServlet的url-pattern进行过滤,查看springMVC中是否存在对应的映射
---->如果有对应的映射,由handlerMapping获取HandlerExecutionChain对象,然后获取HandlerAdapter对象,
---->调用拦截器的PreHandler方法
---->接着调用目标的handler方法得到modelandview对象
---->接着调用postHandler方法,判断是否发生异常
3.1---->发生异常 调用HandlerExceptionResolver组件处理异常,得到新的modelAndView
3.2---->没有异常 调用ViewResolver组件根据ModelAndView对象得到实际的View ---> 渲染视图 --->调用拦截器的afterCompletion方法