SpringMVC的运行流程
- 所有的请求经过前端拦截器进行处理,调用doDispatch进行处理
- 根据HandleMapping中保存的映射信息,找到能够对当前方法进行处理的处理器(链)
- 根据找到的处理器(链),再找到适配器HandlerAdapter进行处理
- 拦截器preHandle执行
- 适配器执行目标方法,获得方法参数(这里有一些细节),返回ModelAndView(获得参数的细节)
- 拦截器执行postHandle方法
- 处理返回的ModelAndView
- 报异常?使用异常解析器处理异常
- 正常执行?调用render渲染视图
- 执行拦截器的afterCompletion方法
注意:拦截器与过滤器的功能相似,但本质不同,拦截器属于MVC框架,过滤器属于JavaWeb的三大组件