|
这个主题共有 2 回复 / 1 页 [
]
|
|
|
|
|
|
请教高手一个Tomcat+Struts的问题!
|
发表: 2003年10月30日 21:31
|
回复
|
|
http://www.chinajavaworld.net/forum/topic.cgi?forum=48&topic=2610&start=0&show=
因为大家已经讨论了很多,所以不便在这里一一的列出来,请见谅!
我用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所说的对一个值的多个引用的问题,大家帮我分析一下:
|
|
|
|
|
|
Re: 请教高手一个Tomcat+Struts的问题!
|
发表: 2003年10月30日 21:56
|
回复
|
|
session.setAttribute(Constants.SESSION_USER,user.clone()); 中你的k**是Constants.SESSION_USER,这是一个常量,所以在session的attribute永远只有一个值。
你把session.setAttribute想像成hashtable.put就可以理解了。
|
|
|
|
|
|
Re: 请教高手一个Tomcat+Struts的问题!
|
发表: 2003年10月31日 08:33
|
回复
|
|
Constants.SESSION_USER 是静态变量吧!
|
|
|
|