JSP中的Bean序列化

时间:2011-02-06 03:58:22

标签: java jsp javabeans httpsession

为什么有些时候教程使bean实现Serializable对象而其他人没有? 我知道当我想通过网络发送它时,该对象应该被序列化,这也证明了会话中使用的每个bean都应该实现Serializable对象,而JSP页面中定义的bean不应该因为它们不是使用HTTP requeset转移

2 个答案:

答案 0 :(得分:3)

  

我知道该对象应该是   当我想发送它时序列化   通过网络,这也证明了   会话中使用的每个bean都应该   实现Serializable

您似乎相信会话中的对象会在http传输中发送到客户端吗?当然不是这样。转移的内容仅是会话ID(通常在cookie中)。 servlet容器(例如Tomcat)只是将会话对象(bean或非bean)保存在内存中,由会话ID索引。

此外,序列化不仅适用于网络传输,还适用于保存/加载到持久存储(例如磁盘)。

现在,许多servlet容器通常允许(根据设置)持久化会话对象到磁盘,以便它们可以在应用程序服务器重新启动后继续存在。对于那种情况,要使会话对象可序列化是必须的。

无论如何,实现Serializable接口对于每个java bean都是一件好事,通常它很容易。

答案 1 :(得分:1)

根据定义,格式良好的Java Bean implements Serializablejust a tag interface anyway)或Externalizable(从1.4开始)所以如果你的bean类没有,那么它的格式不是很好

然而,有很多 实现Serializable,如果bean有一个众所周知的父类,你可以经常使用它。