如何将过滤器映射到URL的根目录?我使用Tomcat 7.0.2并将应用程序部署为ROOT.war。欢迎页面是sign_in.xhtml。我希望在客户端发送对网站根目录(即仅限域名)的请求时或客户端请求sign_in.xhtml时运行过滤器。这是我到目前为止有:直接Servlet过滤器url映射
<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,成功地调用过滤器,但我不知道怎么去根调用过滤器的请求。根据Servlet规范(3.0版)
<url-pattern>/</url-pattern>
映射到默认的servlet和一个空字符串映射到根。下面是从规范的相关章节:
“空字符串(”“)中恰好映射到 应用程序上下文,即一个特殊的URL模式,形式http://host:port/ /在这种情况下,路径信息的请求。是'/',servlet路径和上下文路径是 空字符串(“”)。“
但是,以下两种url模式都会导致Tomcat抛出异常。
<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
我真的很感激,如果有人可以对此有所了解。谢谢。
安德鲁
感谢您关注此BalusC。如果用户需要更改密码,我打算强制重定向。过滤器看起来是合适的解决方案。我想我必须等待7.0.3或想出不同的东西。有任何想法吗? – 2010-09-10 21:09:59
侦听'/ *'的过滤器只在请求URI为空时才会采取行动。 – BalusC 2010-09-10 21:36:03
我会给它一个解决方案,然后在Tomcat bug修复后更新url-patten。 – 2010-09-10 22:08:19