Java 所有.html url的url映射,包括带有查询参数的url
我正在尝试编写一个过滤器,该过滤器将挑选任何对HTML页面的请求,而不管URL是否具有查询参数。(此筛选器的目的是跟踪访客操作/统计信息) 这是我在web.xml中的过滤器映射:Java 所有.html url的url映射,包括带有查询参数的url,java,servlet-filters,url-mapping,Java,Servlet Filters,Url Mapping,我正在尝试编写一个过滤器,该过滤器将挑选任何对HTML页面的请求,而不管URL是否具有查询参数。(此筛选器的目的是跟踪访客操作/统计信息) 这是我在web.xml中的过滤器映射: <filter-mapping> <filter-name>statTrackingFilter</filter-name> <url-pattern>*.html</url-pattern> </filter-mapping>
<filter-mapping>
<filter-name>statTrackingFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
静态跟踪滤波器
*.html
该url模式将匹配以“.html”结尾的页面请求,但我也希望使用查询参数捕获请求
我尝试了以下配置,但与任何请求都不匹配:
<filter-mapping>
<filter-name>statTrackingFilter</filter-name>
<url-pattern>*.html*</url-pattern>
</filter-mapping>
静态跟踪滤波器
*.html*
如何配置筛选器以捕获任何HTML页面的所有请求
还是我走错了方向?我应该让我的过滤器监听所有请求并让过滤器决定请求的URL是否重要吗?我想忽略所有CSS、JS和图像请求
多谢各位
编辑:
*.html
确实在工作。我认为这不是因为我的log4j阈值设置得太高而忽略了过滤器中的日志。模式无法工作,因为它只匹配扩展名为“.html*”的文件
发件人:
URL模式使用非常简单的语法。模式中的每个字符必须与URL路径中的对应字符完全匹配,但有两个例外。在模式的末尾,/*匹配从该点开始的任何字符序列。模式*.extension与任何以扩展名结尾的文件名匹配。不支持其他通配符,模式中任何其他位置的星号都不是通配符
我相信您第一次使用
*.html
的配置是正确的,并且应该在最后捕获带有查询参数的请求(对我来说似乎是这样)。您是正确的,*.html
模式确实是正确的,并且拾取了我要查找的所有内容。我认为它丢失了请求,因为我的日志阈值太高,我正在从我的过滤器中查找日志以检查它是否工作,但它们被屏蔽了。哦!