繁体   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