【发布时间】:2011-04-10 19:52:30
【问题描述】:
如何将过滤器映射到 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>
如果有人能对此有所了解,我将不胜感激。谢谢。
安德鲁
【问题讨论】:
标签: java servlets servlet-filters url-pattern