Spring Boot实现拦截器

xiaoxiao2025-06-06  47

1.第一步创建一个类实现HandlerInterceptor接口,重写接口的方法

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; @Component public class IntercepterTest implements HandlerInterceptor{ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("拦截器MyInterceptor------->3、请求结束之后被调用,主要用于清理工作。"); } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("拦截器MyInterceptor------->2、请求之后调用,在视图渲染之前,也就是Controller方法调用之后"); } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String url = request.getServletPath();//url====="/failed" System.out.println("url"+url); if("/login".equals(url)) { return true;//放行 } return false;//拦截 } }

2.第二步:注册拦截器。创建一个配置类并继承 WebMvcConfigurerAdapter。重写 addInterceptors 方法。

import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import com.example.intercepter.IntercepterTest1; @Configuration public class WebAdepter extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new IntercepterTest()).addPathPatterns("/**");//配置拦截路径 super.addInterceptors(registry); } }

测试controller

@RequestMapping("/login") public Map<String, String> intercepter(){ Map<String, String> map = new HashMap<>(); map.put(“a”, “d”); map.put(“b”, “c”); return map; } 测试已经通过 如果访问路径是不是/login 如果访问路径是/login

转载请注明原文地址: https://www.6miu.com/read-5031373.html

最新回复(0)