问题描述:
在web项目中,我们经常将用户登录信息放在session中用来做后续的权限判断等操作,但最近在项目中发现一个奇怪的现象,session中的用户信息和登录时的信息有了差异。
原因:
在后台代码逻辑处理中,我对从session拿到的用户对象做了set属性操作,而session中保存的是对象的引用,当在后台代码中做了数据变更后,再从session中取值就是已经改变后的值。所以在后台代码中,我们在非特殊要求是下最好是不要操作session中的对象,应该重新建立一个对象或者拷贝该对象进行操作。
本文探讨了在Web项目中,由于不当操作Session中的用户对象导致的数据一致性问题。在后台代码逻辑处理中,直接修改Session对象可能导致后续请求获取到已更改的信息,从而引发业务逻辑错误。文章建议在非特殊需求下,应避免直接操作Session中的对象,而是创建新对象或拷贝原有对象进行操作。

597

被折叠的 条评论
为什么被折叠?



