Struts2中的HttpSession出现问题
我正在做一个多用户登录应用程序,其中我使用会话来存储用户对象Struts2中的HttpSession出现问题,struts2,httpsession,Struts2,Httpsession,我正在做一个多用户登录应用程序,其中我使用会话来存储用户对象 HttpSession session = request.getSession(true); session.setAttribute("user",user); 在每个页面中,我都使用JSTL检查会话中是否存在用户对象 <c:choose> <c:when test="${not empty sessionScope.user}"> //jsp code </c:when
HttpSession session = request.getSession(true);
session.setAttribute("user",user);
在每个页面中,我都使用JSTL检查会话中是否存在用户对象
<c:choose>
<c:when test="${not empty sessionScope.user}">
//jsp code
</c:when>
<c:otherwise>
<logic:redirect forward="welcome"/>
</c:otherwise>
</c:choose>
//jsp代码
我的问题是,如果用户单击应用程序中的href链接,则用户将更改为会话中的前一个用户。i、 e.it正在从缓存加载用户。如果我刷新页面,它将加载正确的用户
如何修复它?如果您使用的是Struts2,那么在拦截器中进行该检查可能更有意义,而不是在每个JSP中重复代码
内特是对的,这最好在拦截器中处理。这可能对你有用 编辑
听起来这可能是一个页面缓存问题。尝试在Java代码中设置断点,以便检查会话中的用户对象是什么。假设用户对象总是正确的,并且只是显示错误信息的页面,然后尝试将“无缓存头”设置为。您使用的是哪个版本的Struts?这看起来更像Struts1.x。我使用struts2。谢谢你的关注。谢谢你的回复。我在you链接中使用了相同的拦截器,但我想在jsp页面中获取用户,解决方案是${sessionScope.user}应该在假定用户对象作为“user”在会话中的情况下工作。逻辑标签不起作用,这是Struts 1中的。请帮助我,因为拦截器无法修复我的错误!前一个用户仍在会话侦听器中。嗨,史蒂文·贝尼特斯!感谢回复我添加到我的jsp页面代码下面,但不是正确的<代码>请修改您的问题以添加您尝试过的代码。另外,您是否在Java中设置了断点并查看会话中的实际值?请帮助我,因为拦截器无法修复我的错误!前一个用户仍在会话侦听器中。