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