分析服务器应用程序我发现了一点,关于会话序列化和反序列化可能是危险的。许多地方的servlet层使用session来存储对象。
考虑序列:
1)对象A保存到会话
2)对象A被修改
3)对象A作为对象B从会话中读取
是否有可能,1)和2)之前发生序列化,读取为B的对象是从3开始更改之前对象A的反序列化版本?
或者我保证,只要在同一个请求中发生1,2,3,A和B就会相等?
答案 0 :(得分:1)
您的代码不应该依赖于您在会话中放置的对象是同一个实例,只要它们在语义上等于,就像equals
方法所暗示的那样,那就足够了
当然可以序列化会话的各种原因,无论是服务器重启还是因为服务器都是集群的一部分,这样的会话。