返回顶部
首页 > 资讯 > 后端开发 > Python >在springboot中如何使用filter设置要排除的URL
  • 865
分享到

在springboot中如何使用filter设置要排除的URL

2024-04-02 19:04:59 865人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录使用filter设置要排除的URLfilter指定过滤URL的常见问题经常会出现如下错误下面总结一下使用正确的1、 指定路径2、 过滤所有路径使用filter设置要排除的URL

使用filter设置要排除的URL


@WEBFilter(urlPatterns = "/*")
@Order(value = 1)
public class TestFilter implements Filter {
 
    private static final Set<String> ALLOWED_PATHS = Collections.unmodifiableSet(new HashSet<>(
            Arrays.asList("/main/excludefilter", "/login", "/loGout", "/reGISter")));
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("init-----------filter");
    }
 
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        httpservletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
        String path = request.getRequestURI().substring(request.getContextPath().length()).replaceAll("[/]+$", "");
        boolean allowedPath = ALLOWED_PATHS.contains(path);
 
        if (allowedPath) {
            System.out.println("这里是不需要处理的url进入的方法");
            chain.doFilter(req, res);
        }
        else {
            System.out.println("这里是需要处理的url进入的方法");
        }
    }
 
    @Override
    public void destroy() {
        System.out.println("destroy----------filter");
    }
}

@Order中的value越小,优先级越高。

  • ALLOWED_PATHS

这个是一个集合,存放的是需要排出的URL,用来判断是否是需要排除的URL。

关于为什么SpringBoot中使用了@WebFilter但是过滤器却没有生效:一定要加上@Configuration注解,@Service其实也可以,其他类似。

filter指定过滤URL的常见问题

在使用Filter对一些自己指定的URL进行过滤拦截时

经常会出现如下错误

1、 明明在@WebFilter(urlPatterns={"/app/online"})中过滤的是/app/online 路径,但是运行之后发现,这个WebFilter过滤器对所有的URL都进行了过滤。

2、 运行之后发现过滤器没有初始化,没有被加载

下面总结一下使用正确的

合适的注解配置filter的方法:

1、 指定路径

在class 上添加注解@WebFilter(urlPatterns={"/app/online"})

然后在启动类(**Application.java )上添加注解@ServletComponentScan

即可。

代码如下:

2、 过滤所有路径

在class上添加@Component或@Configuration 即可

如果添加了@Component或@Configuration,又添加了@WebFilter(),那么会初始化两次Filter,并且会过滤所有路径+自己指定的路径便会出现对没有指定的URL也会进行过滤


//过滤所有路径
@Component
public class WebFilter implements Filter(){
//override三个方法
。。。
。。。
@Override
 public void init (FilterConfig filterConfig) throws ServletException{
 System.out.println("初始化filter");
 }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 在springboot中如何使用filter设置要排除的URL

本文链接: https://lsjlt.com/news/160809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在springboot中如何使用filter设置要排除的URL
    目录使用filter设置要排除的URLfilter指定过滤URL的常见问题经常会出现如下错误下面总结一下使用正确的1、 指定路径2、 过滤所有路径使用filter设置要排除的URL ...
    99+
    2024-04-02
  • 在springboot中怎样使用filter设置要排除的URL
    在springboot中怎样使用filter设置要排除的URL,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用filter设置要排除的URL@WebFilter(urlPat...
    99+
    2023-06-22
  • filter如何在springboot中使用
    filter如何在springboot中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、在spring的应用中我们存在两种过滤的用法,一种是拦截器、另外一种当然是过滤器。...
    99+
    2023-05-30
    springboot filter
  • filter如何在Spring Boot中使用
    今天就跟大家聊聊有关filter如何在Spring Boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。过滤器(Filter)的注册方法和 Servlet 一样,有两种方式:...
    99+
    2023-05-31
    spring boot filter
  • HttpSessionListener与Filter如何在Jetty9中使用
    HttpSessionListener与Filter如何在Jetty9中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HttpSessionListener...
    99+
    2023-05-31
    jetty9 httpsessionlistener filter
  • 如何在VBS中使用Filter 函数
    如何在VBS中使用Filter 函数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Filter 函数返回下标从零开始的 数组,其中包含以特定过滤条件为基础的字符串数组的子集...
    99+
    2023-06-08
  • 如何在SpringBoot中使用Swagger2
    如何在SpringBoot中使用Swagger2?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。引入依赖<dependency>   ...
    99+
    2023-06-14
  • Logback如何在Springboot中使用
    Logback如何在Springboot中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、导入依赖普通项目<dependency>  &n...
    99+
    2023-06-15
  • Actuator如何在SpringBoot中使用
    今天就跟大家聊聊有关Actuator如何在SpringBoot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Spring Boot有四大神器,分别是auto-configura...
    99+
    2023-05-30
    springboot actuator
  • 如何在ubuntu18.04中设置使用中文输入法的使用
    ubuntu 在最新的版本中已经可以不用用户自己单独去下载中文输入法使用了,本次使用为 ubuntu18.04LTS版本(登陆是界面选择的是ubuntu on wayland),设置方式非常简单 1、打开设置,不知道的请...
    99+
    2022-06-04
    ubuntu18.04 中文输入法 ubuntu 中文输入法
  • 如何在JavaScript中使用filter方法过滤数组
    本篇文章给大家分享的是有关如何在JavaScript中使用filter方法过滤数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript是什么JavaScript是...
    99+
    2023-06-14
  • 如何在mysql中使用filesort排序
    如何在mysql中使用filesort排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、说明当不能用索引排序时,MySQL使用filesort扫描表进行结果...
    99+
    2023-06-15
  • Springboot应用中如何设置Cookie的SameSite属性
    这篇文章主要为大家展示了“Springboot应用中如何设置Cookie的SameSite属性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Springboot应用中如何设置Cookie的Sam...
    99+
    2023-06-29
  • 如何在 Go 中使用 json.Marshal 外部结构并排除空字段?
    各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《如何在 Go 中使用 json.Marshal 外部结构并排除空字段?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉...
    99+
    2024-04-04
  • 在SpringBoot中如何使用拦截器
    本篇文章为大家展示了在SpringBoot中如何使用拦截器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。自定义自己的拦截类,拦截类需要继承HandlerInterceptor接口并实现这个接口的方法...
    99+
    2023-05-31
    springboot 拦截器
  • Thymeleaf方法如何在SpringBoot中使用
    Thymeleaf方法如何在SpringBoot中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ThymeleafThymeleaf是最近SpringBoot推荐支持的模板...
    99+
    2023-05-31
    springboot thymeleaf
  • 如何在springboot项目中使用 swagger
    这篇文章将为大家详细讲解有关如何在springboot项目中使用 swagger,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、pom.xml引入了两个jar。<dependency...
    99+
    2023-05-31
    swagger springboot
  • 如何在php中使用插入排序
    这期内容当中小编将会给大家带来有关如何在php中使用插入排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。二、WampSe...
    99+
    2023-06-14
  • css如何在文本框中设置清除按钮
    小编给大家分享一下css如何在文本框中设置清除按钮,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   我们先来看一下设置清除按钮具体的示例   代码如下   HTML代码   &l...
    99+
    2024-04-02
  • 如何在user load使用EngineerMode的设置项
    在用户加载(user load)使用EngineerMode的设置项时,您可以按照以下步骤进行操作:1. 首先,确保您的设备已经启动...
    99+
    2023-09-13
    user
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作