在同一个 JVM 中写入和读取对象时是否需要序列化?
会话对象必须实现可序列化,以便在服务器重新启动后保持它。
使用相同的 JVM 为什么会话对象必须实现可序列化?
需要序列化,因为会话对象可能存储在文件、数据库中,或者可能通过网络传输到另一个服务节点。即使包含的对象也必须实现
Serializable
。
为何设定这些要求?因为会话的持续时间必须比请求的持续时间长。没有人可以保证当下一个请求具有相同的会话 ID 时,相同的 JVM 仍然存在 - 因此应该有一个冗余或故障转移解决方案来确保会话能够生存。有很多解决方案,但实际的解决方案并不重要 - 但序列化确保它能够工作。