Spring实现拦截器主要需要实现HandlerInterceptor接口并在WebConfig中注册此拦截器.
实现HandlerInterceptor接口,在处理请求前判断token是否匹配。返回false则表明拦截此请求
public class TokenInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token=request.getHeader("token");//获取请求中的token if(token!=null) { return token.equals("abcd");//还没有写存放token的方法 先和字符串比较 } return false; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { } }
注册此拦截器
@Configuration @ComponentScan("com.*.*") @EnableWebMvc public class WebConfig implements WebMvcConfigurer { /** * 注册拦截器 * @param registry */ public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(tokenInterceptor()).addPathPatterns("/order/orderstatus"); } @Bean public TokenInterceptor tokenInterceptor(){ return new TokenInterceptor(); } }