我有一个HTTPSession对象,我想在其中存储用户信息。
我有两个选择
哪一个是更好的解决方案?最佳做法?
答案 0 :(得分:2)
我认为作为对象存储将是更好的...
答案 1 :(得分:1)
这完全取决于您是否希望在会话的生命周期内更改用户信息。
如果它没有改变,或者您不关心显示过时值,那么将用户存储在会话中就可以了。另外,每次从数据库获取最新的用户信息都是必要的。
我会避免通过他的电子邮件地址识别用户,因为它可能会过期和更改。使用技术用户ID,并将其电子邮件存储为用户的任何其他信息。
答案 2 :(得分:0)
我会小心在会话中存储大对象,因为它可能成为性能瓶颈。完整对象可能是更舒适的解决方案但是如果您存储的对象很大,则可能会遇到内存和性能问题,因为对象是序列化和反序列化的。这也意味着您只能在会话中存储可序列化的对象(意味着它们需要实现Serializable接口)。
我总是尝试在会话中尽可能少地存储。在您的情况下,只需存储标识符并稍后查找用户对象,例如使用一些实用方法。