SpringBoot_Interceptor使用教程
LoginInterceptor.java @Slf4j public class LoginInterceptor implements HandlerInterceptor { /** * 目标方法执行前执行 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 查看访问的 URL String requestURI = request.getRequestURI(); log.info("preHandle拦截到的请求的URI: " + requestURI); // 进行登录验证 Object admin = request.getSession().getAttribute("admin"); if (admin == null) { // 拦截 request.setAttribute("msg", "请先登录!"); request.getRequestDispatcher("/").forward(request, response); return false; } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { log.info("postHandle执行了"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { log.info("afterCompletion执行了"); } } WebConfig.java @Configuration public class WebConfig implements WebMvcConfigurer { /** * 方式一:直接在配置类中注册拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/**") // 拦截所有请求 .excludePathPatterns("/", "/login", "/images/**", "/upload.html", "/upload"); // 指定要放行的请求,后面可以根据业务进行调整 } /** * 方式二:通过@Bean注册拦截器 */ /* @Bean public WebMvcConfigurer webMvcConfigurer() { return new WebMvcConfigurer() { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/**") // 拦截所有请求 .excludePathPatterns("/", "/login", "/images/**"); // 指定要放行的请求,后面可以根据业务进行调整 } }; } */ }
