Serializable序列化与session

 1,关于javabean实现Serializable接口的问题。如果把对象序列化到硬盘,就必须实现这个接口。实现了这个接口的javabean类会有一个默认的类标识(SerialversionUID序列版本标识),也可以成为类主键。当反序列化的时候,就是通过这个类标识来辨别这个被序列化的对象到底是哪一个类。然后会利用反射调用javabean的空参构造方法来重新创建一个对象,并且初始化这个对象的状态为被序列化的那个对象序列化前的状态,这样就反序列化成功。

2,改变一个错误的观念:session在容器关闭时会销毁----这是不对的。

(1)关闭了服务器,session对象以及存储到session中的对象并不会销毁,而是会序列化到服务器的“work\Catalina\服务器地址(本地为localhost)\项目名”目录下。当服务器重启时,容器会反序列化这个session对象以及存储到session中对象。

(2)必须注意:存储到session中的对象必须是实现了Serializable接口,才会被序列化出去和反序列化回来。

(3)还有,如果在重启服务器时,改变了实现了Serializable这个接口的例如javabean的类标识时,重启服务器会报关于io序列化方面的异常。原因就是序列化中出去的对象中的类标识和程序中的类标识不相同了导致了反序列化时出错。

----------------------------------------------------------------------------------------

以上问题在做ssh购物车尤为重要,也是在做这个项目时得知。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值