java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
拦截器主要实现org.springframework.web.servlet包下的HandlerInterceptor接口。
preHandle用于Handler方法之前执行此方法。
postHandle用于执行Handler之后返回ModelAndView之前。
afterCompletion用于返回ModelAndView之后,执行,异常处理。
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
// Handler之前执行此方法
return false;
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
//执行Handler之后返回ModelAndView之前
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
//返回ModelAndView之后,执行,异常处理。
// TODO Auto-generated method stub
}
}
springMVC.xml配置
<!-- 拦截器配置 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="cn.e3mall.cart.interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
未完,待续。