- java/
- Java webapplication中序列化的目的
Java webapplication中序列化的目的
Java webapplication中序列化的目的,java,tomcat,serialization,javabeans,Java,Tomcat,Serialization,Javabeans,其中是Web应用程序中序列化的用法
表单bean必须是可序列化的
在tomcat中,sessions.ser文件的用法是什么
哇,很多问题没有很多背景
对于您的#1,我假设您谈论的是序列化,您在其他观点中提到了Java的序列化,而不是序列化与并行。如果是这样,许多web应用程序将序列化或保存对象的状态以保持其持久性。这种持久性可用于跨HTTP请求(如在会话管理中),用于信息的长期存储,或用于跨“网络”发送,以确保各方都获得所述信息的副本
在HTTP中,你必须问问自己,这是否真的是一个好主意,因为
其中是Web应用程序中序列化的用法
表单bean必须是可序列化的
在tomcat中,sessions.ser文件的用法是什么
哇,很多问题没有很多背景
对于您的#1,我假设您谈论的是序列化,您在其他观点中提到了Java的序列化,而不是序列化与并行。如果是这样,许多web应用程序将序列化或保存对象的状态以保持其持久性。这种持久性可用于跨HTTP请求(如在会话管理中),用于信息的长期存储,或用于跨“网络”发送,以确保各方都获得所述信息的副本
在HTTP中,你必须问问自己,这是否真的是一个好主意,因为设计和缩放无状态是“好的”,如果你有一个备份存储,比如DB,为什么DB不做这项工作。我猜表单bean就是这样使用的,因为servlet将传递所描述的表单信息。对于第一个和第二个问题,请看一下这个。关于第三个问题,sessions.ser是一个序列化会话。但是,
是的,每当我们需要在文件系统中持久化对象或通过网络发送对象时,我们都需要序列化。您可能会认为,在web应用程序中,我们不一定要这样做。但是服务器通常需要一个可序列化的东西,以防将来当您切换到集群环境或希望将bean传递给远程组件(即EJB组件)时需要它。或者您可能希望将bean存储到会话中,因此您的bean应该是可序列化的
是的,出于同样的原因,如上所述
sessions.ser是一个序列化会话。Tomcat保留了它,因此可以稍后恢复。现在您已经了解了为什么我们需要可序列化bean,因为您可能希望将bean对象存储到会话,将Tomcat persist会话存储到文件系统,即session.ser。因此,您的bean必须实现可序列化,以便可以在会话中持久化/恢复它们
顺便说一句,bean的持久化和恢复的正确性取决于Serializable的正确实现。为此,我建议您阅读有效Java中的相关主题。如果容器想要存储会话,会话(以及添加到会话中的所有属性)需要可序列化。这可能有两个原因:
会话必须传递到负载平衡集群的另一个节点
由于内存不足,会话需要调出
另一个可能的原因是使用跨上下文dispathing将请求属性从一个webapp传递到另一个webapp。两个webapp都有不同的类加载器,因此简单的cast无法工作
因此,您的tomcat似乎使用序列化将会话写入文件。表单bean通常也存储在会话中,因此是的,它必须是可序列化的
最后,像在任何其他应用程序中一样,可能还有更多的原因需要序列化。缓存可能需要它来交换缓存内容(就像ehcache可以做的那样)。任何其他数据部分都可以序列化为blob存储在数据库中,…1)这是一个依赖于应用程序服务器的功能,但Servlet规范指出,如果Servlet容器希望支持分布式环境(跨实例共享会话)它必须接受实现可序列化的对象并能够迁移它们。Tomcat还支持为可序列化的会话对象跨服务器重启存储会话状态。您可以在conf/context.xml文件中打开或关闭Tomcat的这一特性(请参见此处的注释)
2) 只有在以下情况下,表单bean才有必要序列化:a)它是会话作用域,b)您正在使用分布式会话或Tomcat等特性来持久化需要它的会话
3) sessions.ser文件是包含会话中序列化对象的文件。如果您已经配置了Tomcat,则它可以在服务器重新启动时使用它来保存它们(见上文)。一般来说,.ser文件是一个序列化的Java对象,它是对象状态的二进制表示
这是一个很好的描述
:
序列化有许多优点
优势。它规定:
- 一种持久化对象的方法,比
将其属性写入文本
文件,并重新组装
通过把这些读回来
- 发出远程过程调用的一种方法,如在SOAP中
- 分配对象的方法,尤指在软件中
成分
如COM、CORBA等
- 一种检测时变数据变化的方法
一个真实世界(简单)的例子:说
您可以用java创建一个用户实例。
现在要显示此对象
在使用javascript的web浏览器中。
一个选项是序列化
对象,使javascript
可以反序列化对象(使用java和javascript都能理解的表示形式)和
显示它
这取决于你需要做什么
与表单bean有关的
是否应序列化
这是一个网络
帮助您部署的应用程序
并管理其他web应用程序以
雄猫。我不是雄猫专家,但是
我认为Tomcat经理试图
记住关于
由web创建的会话
它正在管理的应用程序。信息技术
甚至需要记住这些信息
当tomcat进程
重新启动。所以,Tomcat经理
创建名为“Session.ser”的文件
这是一个序列化表示
它需要的信息的
还记得所有被管理的人吗
申请会议
你能解释一下为什么给出的答案不能让你满意吗?在答案发布几周后,你似乎增加了一笔赏金,但你似乎没有