簡體   English   中英

Struts 1.3會話管理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM