SpringMVC运行的流程

请求传过来 先走到springDispatcherServlet的Url-pattern
1、SpringMVC中是否存在对应的映射------2.不存在---3.是否配置(mvc:default-servlet-handler/)-----4.没有--5.控制台报No mapping found for HTTP request with URI[/XX/XX]in DispatcherServlet ---6.跳转到404界面


倘若在步骤③中配置了----则调到目标资源


1、SpringMVC中是否存在对应的映射------2.存在---3.由HandleMapping获取HandleExecutionChain对象---4.获取HandleAdpter对象---5.调用拦截器的preHandle方法----6.调用目标Handler的目标方法得到ModelAndView对象---7.调用拦截器的postHandle方法----8.是否存在异常---不存在异常-----由viewResolver组件根据ModelAndView对象得到实际的View----渲染视图----在调用拦截器的afterCompletion方法


倘若在第八步中存在异常 -----由HandleExceptionResolver组件处理异常得到新的ModelAndView对象-----由viewResolver组件根据ModelAndView对象得到实际的View----渲染视图----在调用拦截器的afterCompletion方法

流程中所涉及到拦截器建议和springmvc拦截器的运行流程想结合理解的更加清晰

![](https://img2018.cnblogs.com/blog/1530214/201811/1530214-20181108215159654-1113613217.jpg)
posted @ 2018-11-08 21:52  书酥  阅读(153)  评论(0编辑  收藏  举报