springmvc中拦截器配置的执行顺序:正序、反序、反序
即firstprehandle、secondprehandle;firstposthandle、secondposthandle;
firstafterCompletion、secondafterCompletion
注意:如果第一个拦截器的prehandle方法返回的是false,则不再继续执行其他拦截器的方法;如果在第二个拦截器的prehandle的方法返回的是false,则不在执行其他方法,只会执行第一个拦截器的afterCompletion进行释放资源(依次类推如果在后续的拦截器中只要有prehandle方法返回的是false那么只会执行前边拦截器的prehandle、afterCompletion,以及本身的prehandle)
springmvc中配置拦截器的配置:
<mvc:interceptors>
<bean class="com.sxmu.interceptor.FirstInterceptor"></bean>
<bean class="com.sxmu.interceptor.threeInterceptor"></bean>
<!-- 配置拦截器(不)作用的路径 -->
<mvc:interceptor>
<mvc:mapping path="emps" />
<bean class="com.sxmu.interceptor.SecondInterceptor" ></bean>
</mvc:interceptor>
<mvc:interceptors>
各个拦截方法的作用:
prehandle:这个方法在目标方法被调用之前被调用,如果返回的是true则继续执行 其他拦截器、否则则执行将不执行其他拦截器、作用:权限。日志
posthandle:调用目标方法之后渲染视图之前.作用:可以对请求域中的属性和视图 做出修改
afterCompletion:渲染视图之后调用,释放资源