如何將過濾器映射到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