Java JSP中的bean序列化
为什么有些时候教程让bean实现可序列化对象,而另一些则没有?Java JSP中的bean序列化,java,jsp,javabeans,httpsession,Java,Jsp,Javabeans,Httpsession,为什么有些时候教程让bean实现可序列化对象,而另一些则没有? 我知道,当我想通过网络发送对象时,应该对其进行序列化,这是否证明了会话中使用的每个bean都应该实现可序列化的对象,而JSP页面中定义的bean则不应该实现,因为它们不是使用HTTP requeset进行传输的,根据定义,这是一个格式良好的Java bean(即或者Externalizable(从1.4开始),所以如果bean类没有,那么它的格式就不好 然而,如果bean有一个众所周知的父类,那么实现可序列化的东西太多了,您通常可以
我知道,当我想通过网络发送对象时,应该对其进行序列化,这是否证明了会话中使用的每个bean都应该实现可序列化的对象,而JSP页面中定义的bean则不应该实现,因为它们不是使用HTTP requeset进行传输的,根据定义,这是一个格式良好的Java bean(即或者
Externalizable
(从1.4开始),所以如果bean类没有,那么它的格式就不好
然而,如果bean有一个众所周知的父类,那么实现可序列化的东西太多了,您通常可以不受影响
我知道那个物体应该是
当我想发送它时序列化
通过网络,这证明了这一点
会话中使用的每个bean都应该
实现可序列化
您似乎认为会话中的对象是通过http传输发送到客户端的?事实并非如此。传输的只是会话id(通常在cookie中)。servlet容器(例如Tomcat)只是将会话对象(bean或非bean)保存在内存中,并根据会话id进行索引
此外,序列化不仅适用于网络传输,还适用于保存/加载到持久存储(如磁盘)
现在,许多servlet容器通常允许(取决于设置)将会话对象持久化到磁盘,这样它们就可以在应用服务器重启后生存。对于这种情况,必须使会话对象可序列化
无论如何,实现可序列化接口对于每个java bean来说都是一件好事,而且通常很容易。我认为SUN开发人员有另一个合理的理由使bean实现可序列化@Alla,我当了10年Sun Java架构师。根据定义,Bean必须实现可序列化,因为Bean应该能够持久地维护。很久以前,我编写了一个Java编辑器,您可以在运行时使用该技巧和内省从jar文件中拖放Bear。我很确定JavaBeans规范不要求bean是可序列化的(尽管它没有真正定义bean是什么)。Servlet规范要求会话中存储的对象是可序列化的;再试一次。或参考规范MAAAAAAANAY thanx的第5章,了解此有用信息。我不知道会话Id是使用HTTP协议传输的唯一内容。