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

时间:2015-11-25 04:49:09

标签: java session

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

目前正在发生这种情况:

我有两个开放的网站。

  1. 我登录first网站(用户名:user1)。显示Hello, user1
  2. 我登录second网站(用户名:user2)。显示Hello, user2
  3. 我刷新first网站。它现在会显示Hello, user2
  4. 那么如何让多个用户访问该网站?

2 个答案:

答案 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是相同的,因此属性被覆盖。

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