2010-02-23 39 views
3

如果註冊用戶跳轉到login.jsp我希望將他重定向到youAreLoggedIn.jsp。 這是否可以用<navigation-rule>?我知道如何在PHP中執行此操作,而不是在JSP中執行此操作。 當用戶訪問login.jsp它必須檢查用戶是否登錄,我知道如何檢查。但是如何觸發這個動作呢?我應該創建一個新的servlet還是什麼?如果已經登錄,則從login.jsp重定向

謝謝!

回答

5

通常的做法是使用Filter。只實現javax.servlet.Filter,在web.xml定義它,它映射上/login.jspurl-pattern和寫東西像doFilter()方法如下:

if (((HttpServletRequest) request).getSession().getAttribute("user") != null) { 
    // User is logged in, redirect to desired page. 
    ((HttpServletResponse) response).sendRedirect("youAreLoggedIn.jsp"); 
} else { 
    // Do nothing, continue request. 
    chain.doFilter(request, response); 
} 

這麼簡單。它當然假設登錄的User已按照常規做法放入會話範圍。

也就是說,<navigation-rule>是JSF特有的,但是你沒有在你的問題和標籤中說明任何有關JSF的內容。你不是在搞混嗎?

+0

完美的作品!謝謝! ''我用於主菜單和錯誤。所以我認爲它會適用於它。 – Zlatoroh 2010-02-23 14:24:29

+0

換句話說,你實際上使用JSF?然而奇怪的是,你總是提到JSP。請了解JSP的用途和JSF的用途,並在將來的問題中考慮到這一點。根據您是否使用JSF的情況,可能有不同的方法來解決特定的問題。 – BalusC 2010-02-23 14:29:35

相關問題