实现 HandlerInterceptor接口,复写preHandle 方法
return true 表示放行,可以访问拦截的接口否则不可以
public class StudentTokenInterceptor implements HandlerInterceptor {
private final static Logger logger = LoggerFactory.getLogger(StudentTokenInterceptor.class);
@Resource
StudentService studentService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
logger.info("进入 preHandle 方法..." + request.getRequestURL().toString() + "," + request.getRequestURI());
业务逻辑 ...
return true ;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception {
logger.info("进入 postHandle 方法..." + request.getRequestURL().toString() + "," + request.getRequestURI());
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) throws Exception {
logger.info("进入 afterCompletion 方法..." + request.getRequestURL().toString() + "," + request.getRequestURI());
}
}
自定义的拦截器 xml配置
<mvc:interceptors>
<!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->
<mvc:interceptor>
<mvc:mapping path="/**" />
<!-- 需排除拦截的地址 -->
<mvc:exclude-mapping path="/" />
<mvc:exclude-mapping path="/test" />
<!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->
<bean class="org.boluo.crm.syslog.TimeCostInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
<--需要拦截的方法-->
<mvc:mapping path="/front/pointsTaskInfo/saveTaskStudent"/>
<--自定义拦截器-->
<bean class=".interceptor.StudentTokenInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>