天天看点

使用拦截器

使用拦截器
使用拦截器

                                                                                            图:自定义拦截器类

使用拦截器

                                                                                    图:配置自定义拦截器类

使用拦截器

                             图:HandlerExecutionChain.java的applyPreHandle方法,调用每个拦截器的preHandle方法

如果某个拦截器的preHandle方法返回了false,那么拦截器链上的之后的拦截器也不会被调用,目标方法也不会被调用;

使用拦截器

      图:可以在该方法中做权限检查,日志和事务等

使用拦截器

        可以在该方法中修改域中的属性或者修改转向的视图

使用拦截器
使用拦截器

                                                                                          图:注意mvc:interceptor的使用方法

使用拦截器
使用拦截器
使用拦截器
使用拦截器
使用拦截器

                           图:HandlerExecutionChain类的applyPostHandle方法

从i=getInterceptors().length - 1可以理解为什么postHandle方法的调用是倒序的了。

使用拦截器

                    图:HandlerExecutionChain类对拦截器的afterCompletion方法的调用

从i>=0可以很清楚的理解,对interceptor的afterCompletion方法的调用也是倒序的;

变量interceptorIndex的含义就是拦截器链中preHandle方法返回true的最大拦截器索引;

继续阅读