我尝试了解为什么我的网页过滤器与我的网络应用程序中的指定网址格式不匹配。我已经实现了以下过滤器:
@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
答案 0 :(得分:0)
似乎您正在使用通配符*作为字符串,尝试使用正则表达式替换字符串+作为模式placowka / +以满足您的要求。 供参考尝试http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html