为什么将会话作用域对象设置为Serializable被认为是一种好习惯?

时间:2012-09-04 11:41:23

标签: java session web-applications servlets session-state

我经常听到人们说会话范围对象应该实现Serializable?为什么会这样?如果不这样做会有什么结果?为什么不把它作为servlet规范的一部分呢?我知道如果我们不这样做,Tomcat就不会抱怨。那些其他app服务器如JBoss,WebSphere或Weblogic呢?

2 个答案:

答案 0 :(得分:7)

  

这允许servlet容器存储a的内容   磁盘上的会话,或通过网络传输会话内容   另一台服务器。

为什么容器需要在磁盘上存储会话(钝化)?也许当记忆充满时。当再次需要会话时,它会将其从磁盘检索回内存(激活)。

http://www.javapractices.com/topic/TopicAction.do?Id=110

答案 1 :(得分:2)

它允许容器通过网络移动会话对象或将它们存储在磁盘上。当您使用在不同物理盒中运行的不同服务器节点对应用程序进行群集时,它将非常有用。