[英]With java/j2ee, how does serialization work and in relation to saving that object in session?
如果我有一个包含数百个String字段和对象对象的复杂对象。 有些正在实现Serializable,有些则不是。
j2ee服务器如何在会话中序列化该数据。 我是否希望返回所有数据。 甚至是物体的物体。
Session.setAttribute(数据)
例如Session.getAttribute()== data.getData()。getData()。getData()。getData1()
从getData1()返回的对象是否正确返回?
(我正在使用Tomcat 6和Websphere 6+)
servlet规范要求存储在会话中的对象可以完全序列化,如果违反规范,容器崩溃并使用NotSerializableException并将整个会话视为无效将是完全正确的行为。
幸运的是,大多数Web容器都更宽容,而是将会话保留在内存中,只是在日志文件中写入警告。 当然,如果你有很多包含大量数据的会话,这可能会导致问题。
序列化保存整个对象图*。 当您的复杂对象进入会话时,整个事物都会被存储。 如果要使用群集,那么属于复杂对象的所有对象必须是可序列化的,因为此时您的对象将被写入可由群集中的其他节点访问的存储。
编辑:当然,应该补充一点,静态和瞬态字段不会被序列化。 我尽量不在需要序列化的东西中包含静态可变字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.