【问题标题】:How to disable unwanted WebFilter (Embedded inside jar) in Servlet? [duplicate]如何在 Servlet 中禁用不需要的 WebFilter(嵌入在 jar 中)? [复制]
【发布时间】: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 传递。有什么方法可以在我的应用程序中禁用此特定过滤器?

【问题讨论】:

标签: java servlet-filters servlet-3.0


【解决方案1】:

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

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

【讨论】:

  • @M Sach,我已经尝试过,如我的帖子中所述,请求仍然通过自定义过滤器传递
  • 它应该可以工作。但仍然在这种情况下,您可以尝试使用相同名称的过滤器,它不会执行任何操作并将其放入 web-inf/classes
  • 只有在过滤器名称相同的情况下才有效。但是,@WebFilter 没有定义过滤器名称。所以基本上你只是添加另一个。
  • @BalusC 在这种情况下在 web.xml 过滤器名称下无关紧要。重要的是过滤器类名
猜你喜欢
  • 2013-09-13
  • 2016-05-20
  • 2017-09-08
  • 2011-11-23
  • 2017-01-09
  • 2016-02-06
  • 2020-12-26
  • 2021-02-01
  • 2012-04-02
相关资源
最近更新 更多