拦截器栈:就是有多个拦截器同时拦截相同的控制器(controller)请求,这写拦截器就构成了拦截器栈。
栈的特点是先进后出,在拦截器栈中也是如此,如果先执行了preHandle方法,也就是意味着先进栈,那么这个拦截器的postHandle和afterCompletion方法就需要压后执行。入下图所示;
执行顺序和在 springmvc.xml 中配置顺序有关,配置在前面的拦截器先执行preHandle,后执行postHandle