无状态sessionbean

上传人:无*** 文档编号:177606478 上传时间:2022-12-26 格式:PPT 页数:10 大小:204KB
收藏 版权申诉 举报 下载
无状态sessionbean_第1页
第1页 / 共10页
无状态sessionbean_第2页
第2页 / 共10页
无状态sessionbean_第3页
第3页 / 共10页
资源描述:

《无状态sessionbean》由会员分享,可在线阅读,更多相关《无状态sessionbean(10页珍藏版)》请在装配图网上搜索。

1、什么是无状态什么是无状态Session Bean?无状态无状态Session Bean每次调用只对客户提供业务逻辑,但不保每次调用只对客户提供业务逻辑,但不保存客户端的任何数据状态。但并不意味着存客户端的任何数据状态。但并不意味着stateless类型的类型的Bean没有状态,而是这些状态被保持在客户端,容器不负责管理。没有状态,而是这些状态被保持在客户端,容器不负责管理。如如再别康桥再别康桥中写到的中写到的悄悄的我走了,正如我悄悄的来。悄悄的我走了,正如我悄悄的来。挥一挥衣袖,不带走一片云彩挥一挥衣袖,不带走一片云彩。无状态无状态Session Bean在在EJB中是最简单的一种中是最简单的

2、一种Bean,如果数据,如果数据实际上是数据的瞬像,则建议使用无状态会话实际上是数据的瞬像,则建议使用无状态会话Bean。但是无。但是无状态会话状态会话Bean也有自己的问题,本该存储在服务器端(也有自己的问题,本该存储在服务器端(J2EE服务器)的数据被存储在客户中,每次调用这些数据都要以服务器)的数据被存储在客户中,每次调用这些数据都要以参数的方式传递给参数的方式传递给Bean,如果是一个比较复杂的数据集合,如果是一个比较复杂的数据集合,则网络需要传递大量数据,造成更多的负载。在客户端维护则网络需要传递大量数据,造成更多的负载。在客户端维护状态还要注意安全性问题,如果数据状态非常敏感,则不

3、要状态还要注意安全性问题,如果数据状态非常敏感,则不要使用无状态会话使用无状态会话Bean,这些情况可以使用状态会话,这些情况可以使用状态会话Bean,将,将用户状态保存到服务器中。用户状态保存到服务器中。无状态会话无状态会话无状态无状态Session Bean寿命周期由容器控制,寿命周期由容器控制,Bean的客户并不实的客户并不实际拥有际拥有Bean的直接引用,当我们部署一个的直接引用,当我们部署一个EJB时,容器会为这时,容器会为这个个Bean分配几个实例到组件池(分配几个实例到组件池(component pooling)中,当客户请求一个)中,当客户请求一个Bean时,时,J2EE服务器

4、将一个预服务器将一个预先被实例化的先被实例化的Bean分配出去,在客户的一次会话里,可以只分配出去,在客户的一次会话里,可以只引用一次引用一次Bean,就可以执行这个,就可以执行这个Bean的多个方法。如果又有的多个方法。如果又有客户请求同样一个客户请求同样一个Bean,容器检查池中空闲的,容器检查池中空闲的Bean(不在方法不在方法中或事务中,如果一个客户长时间引用一个中或事务中,如果一个客户长时间引用一个Bean但执行一个但执行一个方法后需要等待一段时间再执行另一个方法,则这段时间也方法后需要等待一段时间再执行另一个方法,则这段时间也是空闲的是空闲的),如果全部的实例都已用完则会自动生成一

5、个新的,如果全部的实例都已用完则会自动生成一个新的实例放到池中,并分配给请求者。当负载减少时,池会自动实例放到池中,并分配给请求者。当负载减少时,池会自动管理管理Bean实例的数量,将多余的实例从池中释放。实例的数量,将多余的实例从池中释放。无状态无状态Session Bean有两种状态:存在或不存在。有两种状态:存在或不存在。无状态会话无状态会话当客户端不存在一个无状态当客户端不存在一个无状态Session Bean时,通过远程主接口的时,通过远程主接口的create()方法创建一个方法创建一个Bean,newInstance()负责将负责将Bean实例化,实例化,EJB容器调用容器调用Be

6、an类的类的setSessionContext()方法把运行环境对象方法把运行环境对象SessionContext传递传递给给Bean;随后调用随后调用Bean的的ejbCreate方法进行必要的初始化和资源分配。方法进行必要的初始化和资源分配。在下面这个实战例子中,在下面这个实战例子中,Bean的实现类就是的实现类就是StatelessDateEJB类。类。开发步骤开发步骤 1)声明声明HOME接口接口 2)声明远程接口声明远程接口 3)实现实现Bean类类 4)客户端编程客户端编程 5)部署描述文件部署描述文件 无状态会话无状态会话(1)EJB Home接口接口 (A)Home接口必须继承

7、接口必须继承javax.ejb.EJBHome接接口。口。(B)客户端调用客户端调用create()方法来获得对方法来获得对EJB对象对象的引用。无状态的会话的引用。无状态的会话 bean仅拥有一个仅拥有一个create()方法,而且该方法不能接受任何参数。方法,而且该方法不能接受任何参数。create()方法抛出方法抛出java.rmi.RemoteException和和javax.ejb.CreateException异常异常 (2)EJB Remote接口接口 (A)Remote接口必须继承接口必须继承javax.ejb.EJBObject接接口。口。(B)业务逻辑方法抛出业务逻辑方法抛

8、出java.rmi.RemoteException异常。异常。(3)EJB类类(A)javax.ejb.SessionBean接口接口 每个会话每个会话 Bean都必须实现都必须实现javax.ejb.SessionBean接口,接口,在在javax.ejb.SessionBean接口中定义的方法都必须在接口中定义的方法都必须在实现类中实现。实现类中实现。EJB容器需要使用这些方法对容器需要使用这些方法对Bean进行管理。进行管理。(B)SetSessionContext()方法方法 SetSessionContext()方法让方法让Bean和一个和一个Context对象对象关联起来,关联起来

9、,Context对象存放了对象存放了Bean的一些环境信息,的一些环境信息,可以使用这个对象存取环境信息。对于每个会话可以使用这个对象存取环境信息。对于每个会话bean,setSessionContext方法都会被调用一次,这也方法都会被调用一次,这也是是Bean初始化的一部分。初始化的一部分。(C)ejbCreate()方法方法 对于对于Home接口中的接口中的create方法,在实现类中都必须方法,在实现类中都必须有一个相应的有一个相应的ejbCreate方法。方法。(D)ejbRemove()方法方法 EJB容器调用会话容器调用会话Bean的的ejbRemove方法来使方法来使Bean的

10、服务停止。这时的服务停止。这时Bean应该要清除它保留的全部资应该要清除它保留的全部资源。源。(E)EjbActivate()和和ejbPassivate()方法方法 EjbActivate()和和ejbPassivate()方法是用于方法是用于Bean的激活的激活(Activated)和钝化和钝化(Passivated)的,在无状态的,在无状态Session Bean中没有使用。中没有使用。(F)EJB类必须实现类必须实现Home接口中接口中create方法,以及方法,以及Remote接口中指定的全部方法接口中指定的全部方法 无状态会话无状态会话 首先,应用服务器初始化首先,应用服务器初始化

11、Bean的实例,的实例,EJB容器在容器在初始化初始化Bean实例时,首先调用实例时,首先调用newInstance(),这相,这相当于调用会话当于调用会话 Bean类的构造函数;然后类的构造函数;然后EJB容器调容器调用用setSessionContext()方法,把方法,把context对象和对象和Bean实实例相关联;接着客户端的调用创建例相关联;接着客户端的调用创建EJB对象,创建同对象,创建同时传递给时传递给Bean实例的实例的ejbCreate()方法。方法。EJB对象和对象和Bean实例都创建完毕后,客户端就可以调用实例都创建完毕后,客户端就可以调用Bean实实例的方法。例的方法。客户端调用客户端调用remove()方法删除方法删除EJB对象,而是否需要对象,而是否需要删除删除Bean实例,取决与实例,取决与EJB容器。跟客户端打交道容器。跟客户端打交道的都是的都是EJB对象,而不是对象,而不是Bean实例。实例。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!