xt836 2009-12-04 23:11
浏览 311
已采纳

HttpSession不能给每个用户分别保存相应的信息,一个用户登陆会替换前一个登陆用户的信息

问题是这样的,最近在写一个小论坛,当某个用户发起一个新话题时,我使用HttpSession.getAttribute("key"),这样的方法取他的登录用户名,然后把这个用户名存入到数据库,但是发生一个问题。
我的电脑运行Tomcat,数据库,在我的机子上开一个页面登陆,然后我同学在另一台机子上,通过局域网访问我机子上的服务器,然后登陆,这时我点到一个能读取seesion中的key的jsp页时,当前登录用户已经成为了他的登录用户名,而且如果我发起一个帖子,则发帖作者变他,Session中我的信息应该是被替换掉了,这是怎么回事呢?(我们俩的浏览器都允许Cookie。)
下面是登录时的一段代码:
[code="java"]
// ================ 用户名和密码都正确时,把用户登录信息保存到session中===================
HttpSession session = request.getSession();
// 设置UserSessionInfo的值
// 用户Id
userSessionInfo.setUserId(userInfo.getId());
// 用户名
userSessionInfo.setUserName(userInfo.getUserName());
// 用户Ip地址
String userUserAddress = request.getRemoteAddr();
userSessionInfo.setUserIp(userUserAddress);
// 用户登录时间
userSessionInfo.setLoginTime(new java.util.Date());
// 用户权限
// TODO userSessionInfo.setUserIdentity(userIdentity);
//
session.setAttribute("userSessionInfo", userSessionInfo);
[/code]
这个小东西是用struts 1.3写的。
请哪位大侠教导本人一下,水平实在有限啊,先谢过了!

  • 写回答

2条回答 默认 最新

  • xkuff 2009-12-05 10:55
    关注

    试试用session.getId()来查看他们是否同一session id如果是就证明session被覆盖了,如果不是的话,就可能是你把session里的值覆盖了,请检查一下是否用了static变量?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致