2017-08-13 52 views
0

我有點新手使用Java EE過濾器,我對他們有疑問。如何在包含頁面中使用Java EE過濾器?

我想創建一個過濾器,當我的網站(JSP)的每個網頁都加載時執行一些操作。例如,如果我想訪問index.jsp,則首先加載過濾器,然後加載index.jsp。同爲concact.jsp,sales.jsp等

出於這個原因,我決定在web.xml中使用此代碼:

<filter-mapping> 
    <filter-name>MainFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 

問題是最我的JSP中包括內的其他輔助JSP像導航欄,頁腳信息,等等。所以,我的index.jsp會是這樣:

<html> 
    <head> 
    ... 
    </head> 
    <body> 
     <%@include file="/WEB-INF/includes/header.jsp"%> 
     <%@include file="/WEB-INF/includes/navbar.jsp"%> 

     // jsp/html/js stuff here... 

     <%@include file="/WEB-INF/includes/footer.jsp"%> 
    </body> 
</html> 

所以,如果我打電話的index.jsp,過濾器被稱爲4倍(1對包含index.jsp和3)。

我該如何解決這個問題,只需調用一次cookie過濾器?有任何想法嗎?我生氣了...

謝謝!

+2

的可能的複製[?我可以排除一些具體網址從內部<濾波器映射>](https://stackoverflow.com/questions/ 3125296/can-i-exclude-some-concrete-url-pattern-inside-filter-mapping) – vanje

+0

感謝您的貢獻。有時很難在搜索者中找到正確的主題:) – Ommadawn

回答

1

嘗試使用下一個過濾器的配置,而不是:

<filter-mapping> 
    <filter-name>MainFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping>