Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP中的bean序列化_Java_Jsp_Javabeans_Httpsession - Fatal编程技术网

Java JSP中的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实现可序列化对象,而另一些则没有?
我知道,当我想通过网络发送对象时,应该对其进行序列化,这是否证明了会话中使用的每个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协议传输的唯一内容。