我们做了一个预定系统,里面有散客、800代客下单,两者共享代码,所以代客下单利用一个session的attribute来作为是否是代客下单的标识(因为下单涉及到了好几张的页面),当然这个属性本来应该是跟着订单的信息的,但是因为是遗留代码上开始进行的开发,所以~~~
在用户退出系统的时候没有清空这个session变量,所以首先用800属性的角色登陆做了订单预定的动作,然后再用散客下单,发现散客的单也下成了代客下单。这个问题是在我们测试其他的问题的时候发现的,虽然bug发作的机会不大,但是它代表了一类的问题:就是session使用的随意性。不知道其他的项目组怎么做,反正我们在做开发的时候都不是很注意session的清空,有时候为了方便大量使用session,这样做一个是会出现bug,另外也会引发系统性能的下降。
当然这个不是一个有难度的问题,我想如果要解决也比较容易,session的使用往往都是跟着用户,对于某个用户最好是只有一个session变量跟着他,可以做一个比较复杂的对象,这样在用户退出的时候直接清空固定的一个session对象就可以解决了。
这个问题考虑得还不是很全面,不知道诸位看官有没有对于session使用一整套解决方案?恩,继续寻找答案中~~~
文章来源:
http://blog.donews.com/crabhn/archive/2006/02/18/730954.aspx