2013-05-09 62 views
0

我使用的是Tomcat 6.0.36,歡迎頁面是/Login.jsp 我有一個過濾器,以便它可以爲移動設備顯示不同的登錄頁面。 它與URL mywebsite.com/Login.jsp一起使用,但當URL僅爲mywebsite.com時,過濾器將被繞過。Tomcat在執行jsp過濾器之前顯示歡迎頁面

有沒有辦法強制它執行?

我已經找到了這個網頁,但它並不在我的情況下工作:

How to map a filter for welcome-file in web.xml for Tomcat?

感謝

我的web.xml:

<welcome-file-list> 
    <welcome-file>/Login.jsp</welcome-file> 
</welcome-file-list> 
... 
<filter> 
    <display-name>LoginPageFilter</display-name> 
    <filter-name>LoginPageFilter</filter-name> 
    <filter-class>filters.LoginPageFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>LoginPageFilter</filter-name> 
    <url-pattern>/Login.jsp</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
    <dispatcher>ERROR</dispatcher> 
</filter-mapping> 

過濾器 - 我有將其刪除並將其中一個迅速放回到一起

public class LoginPageFilter implements Filter 
{ 
    public LoginPageFilter() { } 

    public void init (FilterConfig fConfig) throws ServletException { } 

    public void doFilter (ServletRequest request, ServletResponse response, 
     FilterChain chain) throws IOException, 
    ServletException 
    { 
     System.out.println ("Filter being executed"); 
     chain.doFilter(request, response); 
    } 

    public void destroy() { } 
} 

如果URL是

http://localhost:8080/gymfit/Login.jsp 

然後該消息被打印到控制檯。

當URL是

http://localhost:8080/gymfit/ 

顯示相同的頁,但不打印到控制檯的消息

+0

你可以在web.xml中發佈你的過濾器配置嗎?也在過濾器中的代碼:) – ltebean 2013-05-09 07:43:33

+0

我暫時刪除了它,我很快重新創建了具有相同行爲的通用過濾器。謝謝:) – Dan 2013-05-09 09:16:51

回答

2

看看這條線,這意味着只有該請求「/Login.jsp 「將過濾器正在執行

<url-pattern>/Login.jsp</url-pattern> 

,如果你想這個過濾器適用於所有的路徑,更改配置到:

<url-pattern>/*</url-pattern> 
+0

我沒有想到 - 完美的解決方法。謝謝! – Dan 2013-05-09 10:18:03