我有一个使用链接http://192.168.2.6:8484/DTR
部署的系统,在登录时,它通过session.setAttribute("user", user);
存储用户的信息但是,当另一个用户登录时,它会覆盖第一个用户的信息因为它再次调用session.setAttribute("user", user);
。那么我怎样才能真正保存用户的信息,以便两个以上的人可以同时访问系统?
目前正在发生这种情况:
我有两个开放的网站。
first
网站(用户名:user1)。显示Hello, user1
second
网站(用户名:user2)。显示Hello, user2
first
网站。它现在会显示Hello, user2
那么如何让多个用户访问该网站?
答案 0 :(得分:1)
首先获取用户属性并设置它,如果它不存在且会话是新的
user = session.getAttribute("user");
if (user == null&& session.isNew())
session.setAttribute("user", user);
另外请检查您是否为不同的用户session.getId()获取不同的会话...如果不是,它可能是问题JSESSIONID cookie。 servletcontainer在HTTP响应的Set-Cookie标头中设置Cookie,其中JSESSIONID为cookie名称,唯一会话ID为cookie值。
答案 1 :(得分:1)
正如评论中所讨论的,原因是用户都是从同一浏览器和同一系统登录的。所以JSessionId是相同的,因此属性被覆盖。
解决方案:尝试使用其他浏览器