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/**"); // 指定要放行的请求,后面可以根据业务进行调整
}
};
}
*/
}
分类:
标签:
SpringBoot 拦截器 Interceptor
版权申明
本文系作者 @卸了磨的驴 原创发布在SpringBoot_Interceptor使用教程。未经许可,禁止转载。
全部评论