[英]Struts 1.3 Session Management
我正在使用會話對象將登錄的用戶ID存儲在signUpAction.java
HttpSession session = request.getSession();
if(login>0&&candy>0){
session.setAttribute("username", val.getUsername());
result = "success";
}
然后我將用戶轉發到與他/她的ID對應的JSP頁面。
User name is `<bean:write name="signUp" property="username"/>`
問題在於,當用戶單擊“后退”按鈕時,他/她注銷(而不單擊任何“注銷”按鈕)。 我希望維護會話,直到用戶單擊注銷按鈕。 以及如何檢查用戶是否在每個頁面上登錄? 我正在使用Struts 1.3,並且是我的新手。 請幫我。 我正在嘗試將Job Portal網絡應用開發為一個項目。
如果用戶已登錄,則會話屬性"username"
不應為null
。 檢查val.getUsername()
返回非null
值。 然后,使該變量為final ,即不允許兩次設置該值。 然后,在JSP中,您可以使用JSTL檢查該變量。
<c:if test="${username != null}">
User name is ${username}
</c:if>
<s:set name="personName" value="person.name" scope="session" />
這是我的方法。 在我的validateAction類文件中
HttpSession session = request.getSession();
session.setAttribute("username", val.getUsername());
之后,在我寫的每個JSP頁面上
<c:choose>
<c:when test="${not empty sessionScope.username}">
// all the codes goes here
</c:when>
<c:otherwise>
<h1>Please Login First.</h1>
</c:otherwise>
</c:choose>
在母版頁中,
<body onload="window.history.forward(1);">
因此,即使用戶單擊“后退”按鈕,瀏覽器也不會加載上一個緩存的頁面。
當用戶單擊注銷按鈕時,我將調用我的invalidateAction類文件
HttpSession session = request.getSession();
session.removeAttribute("username");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.