springmvc.xml
<!-- 拦截器 -->
<mvc:interceptors>
<!-- 多个拦截器,顺序执行 -->
<mvc:interceptor>
<!-- /**表示所有url包括子url路径 -->
<mvc:mapping path="/**"/>
<bean class="com.sanye.interceptor.Interceptor1"></bean>
</mvc:interceptor>
<mvc:interceptor>
<!-- /**表示所有url包括子url路径 -->
<mvc:mapping path="/**"/>
<bean class="com.sanye.interceptor.Interceptor2"></bean>
</mvc:interceptor>
</mvc:interceptors>
controller:
public class Interceptor1 implements HandlerInterceptor{
//执行Handler完成执行此方法
//应用场景:统一异常处理,统一日志处理
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
//进入Handler方法之后,返回modelAndView之前执行
//应用场景从modelAndView出发:将公用的数据模型(比如菜单导航)在这里传到师徒,也可以在这里统一指定视图
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
}
//进入Handler方法之前执行
//用于身份认证,身份授权
//比如身份认证,如果认证通过表示当前用户没有登录,需要此方法拦截不再向下执行
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
// TODO Auto-generated method stub
//return false表示拦截,不向下执行
//return true 表示放行
return false;
}
}