如何在 Servlet 中禁用不需要的 WebFilter(嵌入在 jar 中)? [复制]

Posted

技术标签:

【中文标题】如何在 Servlet 中禁用不需要的 WebFilter(嵌入在 jar 中)? [复制]【英文标题】:How to disable unwanted WebFilter (Embedded inside jar) in Servlet? [duplicate] 【发布时间】:2016-03-28 17:49:14 【问题描述】:

在我的 Servlet 应用程序中,我使用了一个 Jar,其中包含一个 @WebFilter 类。我不应该删除 Jar 依赖项或其中的 @WebFilter 类。我试图为不需要的过滤器设置一些虚假的过滤器 url 模式,但它不起作用,因为 @WebFilter 映射到 /*

 package com.somepackage;

 @WebFilter("/*")
 public class CustomFilter implements Filter 

这就是我在 web.xml 中设置虚假网址的方式

<filter>
    <filter-name>CustomFilter</filter-name>
    <filter-class>com.somepackage.CustomFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CustomFilter</filter-name>
    <url-pattern>/thispathnotexist/*</url-pattern>
</filter-mapping>

它没有任何效果,因为所有请求仍然通过 CustomFilter 传递。有什么方法可以在我的应用程序中禁用此特定过滤器?

【问题讨论】:

您可以尝试以下答案:***.com/a/3738257/957654,***.com/a/3125315/957654 @AmroAlFares,效果很好.. 感谢@BalusC :) 【参考方案1】:

web.xml 覆盖注释。您可以在 web.xml 中声明它并使用一些虚拟路径

相信你在找Disable @WebFilter (embedded in dependency jar)

【讨论】:

@M Sach,我已经尝试过,如我的帖子中所述,请求仍然通过自定义过滤器传递 它应该可以工作。但仍然在这种情况下,您可以尝试使用相同名称的过滤器,它不会执行任何操作并将其放入 web-inf/classes 只有在过滤器名称相同的情况下才有效。但是,@WebFilter 没有定义过滤器名称。所以基本上你只是添加另一个。 @BalusC 在这种情况下在 web.xml 过滤器名称下无关紧要。重要的是过滤器类名

以上是关于如何在 Servlet 中禁用不需要的 WebFilter(嵌入在 jar 中)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

servlet 如何知道浏览器禁用了 cookie?

是否可以在 tomcat servlet 中禁用 jsessionid?

禁用 @WebFilter(嵌入在依赖项 jar 中)

Spring 跨域问题CORS (Cross Origin Resources Share)

Linux服务管理(如何关闭或禁用不需要的服务

如何在不禁用整个控件的情况下禁用 TextArea 的鼠标滚轮?