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