我正在使用 HTTP 会话对象将登录用户
id
存储在 signUpAction.java
中:
HttpSession session = request.getSession();
if(login>0&&candy>0){
session.setAttribute("username", val.getUsername());
result = "success";
}
然后我将用户转发到与他/她对应的 JSP 页面
id
。
User name is <bean:write name="signUp" property="username"/>
问题在于,当用户单击后退按钮时,他/她会重新注销(无需单击任何注销按钮)。我希望维持会话,直到用户单击注销按钮。还有如何检查每个页面的用户是否都已登录?
我正在使用 Struts 1.3,而且我是新手。请帮我。我正在尝试开发一个求职门户网络应用程序作为一个项目。
如果用户已登录,会话属性
"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");