📄 会话bean.txt
字号:
无状态会话Bean的生命周期仅限于客户端和服务器端的一次会话,当会话结束后,容器可能会选择销毁这个无状态会话Bean,将清除该次会话的所有信息。
但是有的容器也会选择保存会话Bean实例,供其他想使用会话Bean的客户端使用
但是不管是清除也好,保存也罢,会话Bean中保存的所有会话信息,将会随着客户端会话的结束而消亡,有可能Bean还存在于服务器的内存或缓冲区中,但是会话的信息都被释放了
所谓无状态会话Bean就意味着没有会话状态,保持不与任何客户相关的状态。但是我们可以将会话信息保存在客户端的变量中,这样就算无状态会话Bean已经消亡,或者信息不存在了,那么我们在客户端照样可以保存会话信息
因为无状态会话Bean不保存任何会话状态,同一个无状态会话Bean类产生的实例也就都是相同的,即它们对于客户端来说是无差别的,任何会话Bean都可以被任何客户端请求服务
有状态会话Bean的生命周期要比无状态会话Bean长
这种会话Bean会保存会话信息,信息以数据的形式保存在内存中
但是当请求数量增大的时候,会因起系统严重负担,因为内存资源是有限的
为了解决该问题,有状态会话bean可以让暂时不被使用的会话Bean对象进入钝化状态,将其存储到辅助存储器中
类似于操作系统中使用硬盘作为内存的扩展原理,当某一对象闲置的时候,其占用的物理内存和硬盘的扩展内存交换
将对象从物理内存转换到辅助存储器的过程,称为对象的钝化
将对象从辅助存储器读入到内存的过程,称为对象的激活
这中交换形式经常发生
对象的钝化和激活过程,也就是硬盘和内存的交换过程,这个过程是基于对象序列化操作的,对象在这两个介质之间以bit-block的方式进行传输
会话Bean接口、实体Bean接口、消息驱动Bean接口都继承了EnterpriseBean接口,而EnterpriseBean接口是支持序列化的
钝化和激活对无状态会话Bean没有用处,因为无状态会话Bean没有状态需要被钝化和激活,因此,无状态会话Bean可以被EJB容器随意地从内存中清除
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -