Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struts2中的HttpSession出现问题_Struts2_Httpsession - Fatal编程技术网

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中设置了断点并查看会话中的实际值?请帮助我,因为拦截器无法修复我的错误!前一个用户仍在会话侦听器中。