Java 在已部署的系统中使用session.setAttribute
我有一个使用链接Java 在已部署的系统中使用session.setAttribute,java,session,Java,Session,我有一个使用链接http://192.168.2.6:8484/DTR登录后,它通过session.setAttribute(“user”,user)存储用户信息但是,当另一个用户登录时,它会在再次调用session.setAttribute(“user”,user)时覆盖第一个用户的信息。那么,我如何才能真正保存用户的信息,以便两个以上的人可以同时访问系统 这就是目前正在发生的情况: 我有两个网站是开放的 我首先登录网站(用户名:user1)。显示Hello,user1 我登录到第二个网站(用
http://192.168.2.6:8484/DTR
登录后,它通过session.setAttribute(“user”,user)存储用户信息
但是,当另一个用户登录时,它会在再次调用session.setAttribute(“user”,user)时覆盖第一个用户的信息代码>。那么,我如何才能真正保存用户的信息,以便两个以上的人可以同时访问系统
这就是目前正在发生的情况:
我有两个网站是开放的
我首先登录网站(用户名:user1)。显示Hello,user1
我登录到第二个网站(用户名:user2)。显示Hello,user2
我首先刷新网站。现在将显示Hello,user2
那么,如何才能让多个用户访问该网站呢?首先获取用户属性,如果该属性不存在并且会话是新的,则将其设置
user = session.getAttribute("user");
if (user == null&& session.isNew())
session.setAttribute("user", user);
另外,请检查您是否为不同的用户会话获得不同的会话。getId()。。。如果不是,则可能是JSESSIONID cookie的问题。servletcontainer在HTTP响应的set Cookie标头中设置了一个Cookie,其中JSESSIONID作为Cookie名称,唯一会话ID作为Cookie值。如评论中所述,原因是用户都是从同一浏览器和同一系统登录的。因此JSSessionID是相同的,因此属性被覆盖
解决方案:尝试使用不同的浏览器,但仍然只保存一个用户标识,对吗?@nubteens正确,因为每个用户都有自己的会话对象。用户是否从同一系统和同一浏览器登录?是,相同的系统和相同的浏览器如果它是相同的浏览器,则它不能是不同的用户,即两者都具有相同的JSESSIONID,因此会话集属性将被覆盖。尝试不同的方法browser@nubteens如果不可能,请尝试使用不同的浏览器