请教高手一个Tomcat+Struts的问题!

03-10-30 remexremex

因为大家已经讨论了很多,所以不便在这里一一的列出来,请见谅!

我用Tomcat 和struts做了一个类似bbs的系统,现有问题请教

描述: 当有多余一个用户进入系统的时候,后面的用户会把前面的用户的信息冲掉,

我在每一个用户登陆的时候有下面的语句:

ganxie xian 

loginAction.java

....

User user = userService.getUser(id,password);

.....

session.setAttribute(Constants.SESSION_USER,user.clone());

.....

clone()就是重新new了一个User()

JSP中

<%

User user = (User)session.getAttribute("sessionUser");

String userID=user.getUser_ID();

out.println(session.getId()+"-----"+userID);

%>

结果发现还是当第二个用户登陆的时候,第一个用户的显示自动的变为第二个用户的userID ,但是sessionID不变! 什么原因啊? 各位老大?

应该没有引用的问题吧! 我都用上克隆了! 呵呵

高手请问 可能 是什么原因?

还有tomcat和Struts多用户访问的时候有什么注意的地方!或需要设置的地方?

万分感谢!

今天我用HttpSessionAttributeListener(监测session中属性值的变化)测试了一下结果发现:并没有激发attributeReplaced()事件 也就是说程序中没有对session中的值的覆盖过程, 现在可能就只有一种情况: palapalao所说的对一个值的多个引用的问题,大家帮我分析一下:

banq
2003-10-30 21:56
session.setAttribute(Constants.SESSION_USER,user.clone());

中你的key是Constants.SESSION_USER,这是一个常量,所以在session的attribute永远只有一个值。

你把session.setAttribute想像成hashtable.put就可以理解了。

laoer
2003-10-31 08:33
Constants.SESSION_USER

是静态变量吧!

猜你喜欢