如何在SpringBoot中添加拦截器忽略请求URL当中的指定字符串

 更新时间:2023年08月22日 09:41:04   作者:@小匠  
这篇文章主要介绍了在SpringBoot中添加拦截器忽略请求URL当中的指定字符串,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在SpringBoot中添加拦截器忽略请求URL当中的指定字符串

1 自定义拦截器

@Component
public class GlobalInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String path = request.getRequestURI();
        if (path.contains("/api/")) {
            path = path.replaceAll("/api/", "/");
            request.getRequestDispatcher(path).forward(request, response);
        }
        return true;
    }
}

2 注册拦截器

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    GlobalInterceptor globalInterceptor;
    @Autowired
    public WebMvcConfig(GlobalInterceptor globalInterceptor) {
        this.globalInterceptor = globalInterceptor;
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(globalInterceptor).addPathPatterns("/api/**");
    }
}

SpringBoot 使用拦截器(配置特定的url请求会进入拦截器)

SpringBoot 使用拦截器步骤为:

1、按照Spring mvc的方式编写一个拦截器类;

创建一个interceptor包

LoginInterceptor:
package com.springboot.web.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginInterceptor implements HandlerInterceptor {
	//主要是这个方法中实现拦截逻辑
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		System.out.println("已经进入拦截器");
		return true;
	}
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
	}
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
	}
}

2、编写一个配置类继承WebMvcConfigurerAdapter

3、为该配置类添加@Configuration注解,标注此类为一个配置类,让Spring boot 扫描到;

4、覆盖其中的addInterceptors方法并添加已经编写好的拦截器:

代码如下:编写WebConfig配置类

package com.springboot.web.config;
import com.springboot.web.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration //一定要加上这个注解,成为Springboot的配置类,不然不会生效
public class WebConfig extends WebMvcConfigurerAdapter {
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		String[] addPathPatterns = {//拦截所有请求
				"/*"
		};
		String[] excludePatterns = {//不拦截sayHi这个请求 【http://localhost:8080/sayHi】
				"/sayHi"
		};
		//如果有多个拦截器,可以继续添加
		registry.addInterceptor(new LoginInterceptor()).addPathPatterns(addPathPatterns).excludePathPatterns(excludePatterns);
	}
}

测试下:

【http://localhost:8080/config】会打印“已经进入拦截器”,说明拦截器生效

【http://localhost:8080/sayHi】不会打印,说明不拦截配置生效。

到此这篇关于如何在SpringBoot中添加拦截器忽略请求URL当中的指定字符串的文章就介绍到这了,更多相关SpringBoot添加拦截器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 为什么阿里要慎重使用ArrayList中的subList方法

    为什么阿里要慎重使用ArrayList中的subList方法

    这篇文章主要介绍了为什么要慎重使用ArrayList中的subList方法,subList是List接口中定义的一个方法,该方法主要用于返回一个集合中的一段、可以理解为截取一个集合中的部分元素,他的返回值也是一个List。,需要的朋友可以参考下
    2019-06-06
  • MultipartFile中transferTo(File file)的路径问题及解决

    MultipartFile中transferTo(File file)的路径问题及解决

    这篇文章主要介绍了MultipartFile中transferTo(File file)的路径问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java二维数组指定不同长度实例方法

    java二维数组指定不同长度实例方法

    在本篇内容里小编给大家分享了一篇关于java二维数组指定不同长度实例方法,有兴趣的朋友们可以学习下。
    2021-03-03
  • Spring Cloud Ribbon 负载均衡使用策略示例详解

    Spring Cloud Ribbon 负载均衡使用策略示例详解

    Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡工具,Ribbon客户端组件提供了一系列的完善的配置,如超时,重试等,这篇文章主要介绍了Spring Cloud Ribbon 负载均衡使用策略示例详解,需要的朋友可以参考下
    2023-03-03
  • Spring中SmartLifecycle的用法解读

    Spring中SmartLifecycle的用法解读

    这篇文章主要介绍了Spring中SmartLifecycle的用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot实现防止XSS攻击的示例详解

    SpringBoot实现防止XSS攻击的示例详解

    这篇文章主要为大家详细介绍了SpringBoot如何实现防止XSS攻击,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • 详解Java中Collection集合的常用方法

    详解Java中Collection集合的常用方法

    本篇文章给大家带来的内容是关于Java中Collection集合的常用方法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。下面我们就来学习一下吧
    2021-11-11
  • 详细聊聊Spring MVC重定向与转发

    详细聊聊Spring MVC重定向与转发

    大家应该都知道请求重定向和请求转发都是web开发中资源跳转的方式,这篇文章主要给大家介绍了关于Spring MVC重定向与转发的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Spring Security实现身份认证和授权的示例代码

    Spring Security实现身份认证和授权的示例代码

    在 Spring Boot 应用中使用 Spring Security 可以非常方便地实现用户身份认证和授权,本文主要介绍了Spring Security实现身份认证和授权的示例代码,感兴趣的可以了解一下
    2023-06-06
  • Java实现的傅里叶变化算法示例

    Java实现的傅里叶变化算法示例

    这篇文章主要介绍了Java实现的傅里叶变化算法,结合具体实例形式分析了基于Java的傅里叶变化算法定义与使用相关操作技巧,需要的朋友可以参考下
    2018-06-06

最新评论