为什么有时候教程使bean实现Serializable对象,而另一些却没有呢?我知道当我想通过网络发送对象时,应该对对象进行序列化,这是否证明了会话中使用的每个bean都应实现可序列化的对象,而JSP页面中定义的bean不应该实现,因为它们没有使用HTTP requeset进行传输
我知道当我想通过网络发送对象时应该对对象进行序列化,这是否证明了会话中使用的每个bean都应实现Serializable
您似乎相信会话中的对象是通过HTTP传输发送给客户端的?当然不是这样。转移的只是会话ID(通常在Cookie中)。Servlet容器(例如Tomcat)仅将会话对象(是否存在bean)保存在内存中,并由会话ID进行索引。
此外,序列化不仅适用于网络传输,还适用于保存/加载到持久性存储(例如磁盘)。
现在,许多servlet容器通常允许(取决于设置)将Session对象 持久保存 到磁盘,以便它们可以在应用服务器重启后幸存下来。对于这种情况,必须使会话对象可序列化。
无论如何,对于每个java bean而言,实现Serializable接口都是一件好事,通常很容易。