赞
踩
HandlerInterceptor 接口preHandle、postHandle、afterCompletionimport org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component public class MyInterceptor implements HandlerInterceptor { /** * @return 返回 true 放行、放回 false 拦截 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("进入拦截器,前置通知" + request.getRequestURI()); //过滤掉 确认的 options 请求 if ("OPTIONS".equals(request.getMethod())) { return true; } String token = request.getHeader("token"); if (token != null) { return true; } return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("后置通知"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("最终通知"); } }
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class MyConfig implements WebMvcConfigurer { @Autowired MyInterceptor myInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { // 添加拦截器 InterceptorRegistration interceptor = registry.addInterceptor(myInterceptor); // 设置放行路径 interceptor.excludePathPatterns("/hello"); // 设置拦截的路径 interceptor.addPathPatterns("/**"); // 简写形式 //registry.addInterceptor(myInterceptor) // .excludePathPatterns("/client/hello") // .addPathPatterns("/**"); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。