[英]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);
。 那么,如何真正保存用户的信息,以便两个以上的人可以同时访问系统?
这是当前正在发生的事情:
我有两个开放的网站。
first
网站(用户名:user1)。 显示Hello, user1
second
网站(用户名:user2)。 显示Hello, user2
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.