读书人

急 servletcontext有关问题

发布时间: 2011-11-07 22:14:33 作者: rapoo

急 servletcontext问题
jdk5.0 update6 + tomcat5.0+eclipse3.2下:


ServletContext sc=getServletContext();

long ordId=(Long)sc.getAttribute( "id ");

log.debug( "得到的ordId: "+ordId);
if(++ordId> 99999)
ordId=0;
sc.setAttribute( "id ", ordId);

多次调用以上代码, 出现

得到的ordId:1
得到的ordId:2
得到的ordId:3
.
.
.
.
.
.
得到的ordId:50
得到的ordId:51
得到的ordId:25
得到的ordId:26
得到的ordId:52
得到的ordId:53
得到的ordId:54

好像多出了25,26,搞了好长时间也不知道什么问题, 这个问题隔一段时间会出现一次, 哪位大哥救我一下,感激不尽!

[解决办法]
怎么调用以上代码的,
多线程的情况下会有问题的,
long ordId=(Long)sc.getAttribute( "id ");
...
sc.setAttribute( "id ", ordId);

读写操作并不在同一个原子操作块中
[解决办法]
肯定因多程引起的

读书人网 >Java Web开发

热点推荐