Struts 1.3会话管理

时间:2013-11-22 11:34:28

标签: java jsp session struts

我正在使用会话对象将登录的用户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 Web应用程序开发为项目。

3 个答案:

答案 0 :(得分:0)

如果用户已登录,则会话属性"username"不应为null。检查val.getUsername()是否返回非null值。然后保持此变量 final ,即不允许将此值设置两次。然后在JSP中,您可以使用JSTL检查该变量。

<c:if test="${username != null}">
  User name is ${username} 
</c:if>  

答案 1 :(得分:0)

  <s:set name="personName" value="person.name" scope="session" />  

答案 2 :(得分:0)

我是这样做的。在我的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");