如何设置Java Web过滤器模式以匹配指定url?

时间:2015-09-09 08:28:55

标签: java java-ee glassfish jsf-2.2

我尝试了解为什么我的网页过滤器与我的网络应用程序中的指定网址格式不匹配。我已经实现了以下过滤器:

 @WebFilter(filterName = "NewFilter", urlPatterns = {"/placowka/*"})
 public class NewFilter implements Filter 

并且我想在跟随url模式将approch到我的服务器时执行过滤器:

 http://localhost:8080/placowka/1
 http://localhost:8080/placowka/2
 .....
 http://localhost:8080/placowka/200  

但过滤器未执行。当我将过滤器模式更改为类似的内容时:

 @WebFilter(filterName = "NewFilter", urlPatterns = {"/placowka"})
 public class NewFilter implements Filter 

没有

 /*

我使用以下网址请求:

 http://localhost:8080/placowka
 http://localhost:8080/placowka
 .....
 http://localhost:8080/placowka  

它有效!

为什么/ placowka / *之后的那部分模式/ *与/ placowka之后的任何字符不匹配

我会在这里添加以下信息:

  • 我使用gsfish和jsf 2.2。

  • 在我的glasfish-web.xml文件中,我已将context-root设置为/

    <context-root>/</context-root> 
    

所以我的网络应用程序在

  http://localhost:8080

不在

之下
   http://localhost:8080/name_of_application

1 个答案:

答案 0 :(得分:0)

似乎您正在使用通配符*作为字符串,尝试使用正则表达式替换字符串+作为模式placowka / +以满足您的要求。 供参考尝试http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html