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条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料