为什么有些时候教程使bean实现Serializable对象而其他人没有? 我知道当我想通过网络发送它时,该对象应该被序列化,这也证明了会话中使用的每个bean都应该实现Serializable对象,而JSP页面中定义的bean不应该因为它们不是使用HTTP requeset转移
答案 0 :(得分:3)
我知道该对象应该是 当我想发送它时序列化 通过网络,这也证明了 会话中使用的每个bean都应该 实现Serializable
您似乎相信会话中的对象会在http传输中发送到客户端吗?当然不是这样。转移的内容仅是会话ID(通常在cookie中)。 servlet容器(例如Tomcat)只是将会话对象(bean或非bean)保存在内存中,由会话ID索引。
此外,序列化不仅适用于网络传输,还适用于保存/加载到持久存储(例如磁盘)。
现在,许多servlet容器通常允许(根据设置)持久化会话对象到磁盘,以便它们可以在应用程序服务器重新启动后继续存在。对于那种情况,要使会话对象可序列化是必须的。
无论如何,实现Serializable接口对于每个java bean都是一件好事,通常它很容易。
答案 1 :(得分:1)
根据定义,格式良好的Java Bean implements Serializable
(just a tag interface anyway)或Externalizable
(从1.4开始)所以如果你的bean类没有,那么它的格式不是很好
然而,有很多 实现Serializable,如果bean有一个众所周知的父类,你可以经常使用它。