您现在的位置是: 软件 > 开发者网络 > 程序方舟 > Java专栏 > 正文


-Visual C++ MFC/ATL开发
-Visual C++ 数据库开发
-打开闪烁的新世界:体验Flash MX
-文字在平面设计中的运用

EJB系列教程之三
2002-04-09· ·东方一蛇翻译··

  一、Session beans简单介绍

  Session beans通常用于一个客户端的会话。Session beans中的事件通常执行为客户端设置的任务和进程。它仅仅存在在客户连接的过程中,也可以说,session beans体现EJB server的Client , 它通常为Client提供服务。除了你必须用到持续不变的数据外,通常使用session beans。

  二、两种类型的Session beans

  有态Session beans和无态Session beans。

  有态Session beans用于单个client,用来保持这个client的状态信息。例如,网上购物中的用户定单就是一个session beans。客户从物品列表中选取物品到定单中。最后,客户要通过它来计算总价,付款。

  无态Session beans用于多个client,它不由单个client所控制。例如:聊天室中,聊天人的列表就是一个无态Session beans,因为每加一个人,该列表都会变化的。

  三、生命周期

  (1)有态Session beans当client调用Session bean 的home接口的create()事件的时候就开始存在。Container就开始建立一个新的session bean实例,并且初始化,返回信息给clinet端。在这个过程中,Container调用sessionbean接口的setSessionContext()事件和ejbCreate()事件。

  当一个Client通过远程或者HOME接口调用remove()事件时,Container将调用ejbRemove()事件,以后,这个bean的生命周期就结束了。此时,如果client试着再去调用beans的事件,将产生一个java.rmi.NoSuchObjectException异常。

  (2)无态Session beans当client调用Session bean 的home接口的create()事件的时候就开始生存。Container就开始建立一个新的session bean实例,返回信息给clinet端。在这个过程中,Container调用sessionbean接口的setSessionContext()事件和ejbCreate()事件。这个新的bean就被加到一个“池”中,供Client端用。由于不带任何Client端特有的状态,所以这个“池”中的任何beans都可以被client端用。

  当Container从“池”中移掉一个对象的时候,将调用bean对象的ejbRemove事件。需要注意的是:调用create()和remove()事件,并不能从无态Session beans的 "池"中增加和移走无态Session beans。在整个过程中,无态Session beans的生命周期是由Container来控制的。

■ 相关内容
 EJB系列教程之二
 EJB系列教程之一
 提升EJB性能的12招
 使用Forte for Java开发EJB
 一步一步用JBuilder5开发EJB
 JSP与EJB通信
 深入探讨EJB中新的消息驱动组件
 充分利用 EJB 使移动工作群体变得强大
 JavaBean与EJB有何不同
 EJB核心技术及其应用
 EJB的专用术语解释
 全面研读 EJB 2.0
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!