繁体   English   中英

在已部署的系统中使用session.setAttribute

[英]Using session.setAttribute in a deployed system

我有一个使用链接http://192.168.2.6:8484/DTR部署的系统,登录后,它通过session.setAttribute("user", user);存储用户信息session.setAttribute("user", user); 但是,当另一个用户登录时,它将再次调用session.setAttribute("user", user);覆盖第一个用户的信息session.setAttribute("user", user); 那么,如何真正保存用户的信息,以便两个以上的人可以同时访问系统?

这是当前正在发生的事情:

我有两个开放的网站。

  1. 我登录第first网站(用户名:user1)。 显示Hello, user1
  2. 我登录second网站(用户名:user2)。 显示Hello, user2
  3. 我刷新了first网站。 现在它将显示用户2 Hello, user2

那么如何使多个用户访问该网站?

您首先要获取用户属性,如果不存在并且会话是新的,请对其进行设置

user = session.getAttribute("user");

if (user == null&& session.isNew())
   session.setAttribute("user", user);

另外,请检查您是否为不同的用户获得不同的会话session.getId()...如果不是,则可能是JSESSIONID cookie问题。 servlet容器在HTTP响应的Set-Cookie标头中设置一个Cookie,其中JSESSIONID作为cookie名称,而唯一会话ID作为cookie值。

如评论中所述,原因是两个用户都从相同的浏览器和相同的系统登录。 因此,JSessionId相同,因此属性被覆盖。

解决方案 :尝试使用其他浏览器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM