如何将过滤器映射到 URL 的根?我正在使用 Tomcat 7.0.2 并将应用程序部署为 ROOT.war。欢迎页面是 sign_in.xhtml。每当客户端发送对站点根目录的请求(即仅域名)或客户端请求 sign_in.xhtml 时,我想运行过滤器。这是我到目前为止所拥有的:
<filter>
<filter-name>My filter</filter-name>
<filter-class>com.myApp.myFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>My filter</filter-name>
<url-pattern>/sign_in.xhtml</url-pattern>
</filter-mapping>
直接请求sign_in.xhtml,成功调用过滤器,但我不确定如何获取root调用过滤器的请求。根据 Servlet 规范(3.0 版)
<url-pattern>/</url-pattern>
映射到默认 servlet,空字符串映射到根。这是规范中的相关部分:
"空字符串 ("") 是一种特殊的 URL 模式,它精确映射到应用程序的上下文根,即http://host:port/ / 形式的请求。在这种情况下,路径信息是 '/' 并且servlet 路径和上下文路径为空字符串(“”)。
但是,以下两种 url 模式都会导致 Tomcat 抛出异常。
<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
如果有人能对此有所了解,我将不胜感激。谢谢你。
安德鲁