我使用Struts2框架。在jsp中,我在項目中顯示了一個登錄框,當用戶單擊登錄按鈕時,我將一個名爲「loggedin」的cookie設置爲一個操作類中的值爲「true」的cookie。如何檢查用戶是否登錄或不在Java EE中
然後返回「成功」將再次加載此登錄頁面。
在登錄頁面:
<body>
<%
Cookie cookie[] = request.getCookies();
for(c : cookie)
{
if(c.getName().equals("loggedin"))
{
if(!c.getValue().equals("true"))
{
%>
//show login form here.
<%
}//end inner if
else //if cookie "loggedin" value is "true"
{
%>
//show username/profile picture/logout button here
<%
}//end else
}//end outer if
}/end for loop
%>
</body>
我有一個問題。當我點擊登錄表單中的登錄按鈕時,會設置一個cookie並重新加載頁面。但是,而不是一個用戶名/個人資料圖片,登錄表單仍然顯示,直到我手動重新加載頁面。
- 我該如何解決這個問題?
- 我認爲這不是檢查登錄或不是正確的方式。有人可以告訴我如何以另一種方式檢查此問題嗎?
與登錄相比,您可能會考慮主動記錄其他用戶會話。難以跟蹤登錄信息,但設置「最後登錄」以及cookie與身份驗證匹配的散列是一種「簡單」方法。 – 2013-04-04 01:20:27
這在多個層面上是錯誤的。最簡單的方法是將某個會話值設置爲某個事物(比如說,一個「用戶」對象),以表明存在已登錄的用戶,然後檢查是否存在該值。 **使用JSTL,而不是SCRIPTLETS。** – 2013-04-04 02:34:03
或Struts2標籤和OGNL,而不是JSTL :) – 2013-04-04 09:35:13