*會話 Bean (Session Bean)
  *實體Bean (Entity Bean)
  1. 會話 Bean (Session Bean)
  會話,江蘇會計證考試報名,2022年會計從業(yè)資格考試報名,2022年江蘇會計從業(yè)證報名,2022年江蘇會計從業(yè)考試報名,江蘇2022年會計從業(yè)資格考試成報名,2022年江蘇會計從業(yè)考試,會計電算化考試試題,2022年江蘇會計電算化,江蘇會計電算化試題,江蘇會計電算化考試,江蘇初級會計電算化,江蘇初級會計電算化考試">

免费看欧美黑人毛片-免费看毛片网站-免费看毛片的网站-免费看久久-中文字幕日韩欧美-中文字幕日韩精品一区

您現(xiàn)在的位置:首頁 > IT認(rèn)證 > JAVA >

經(jīng)驗之談:對EJB中SessionBean的見解


  一.Enterprise Beans

  在EJB(Enterprise Java Beans)中定義了兩種不同類別的Enterprise Bean :
  *會話 Bean (Session Bean)
  *實體Bean (Entity Bean)
  1. 會話 Bean (Session Bean)
  會話 Bean 是調(diào)用它的客戶端代碼要完成的工作。當(dāng)客戶端與服務(wù)器建立聯(lián)系,那么一個會話 Bean 就建立起來了。根據(jù)會話 Bean 的狀態(tài)不同有分為:
  A. 狀態(tài)會話 Bean (Stateful Session Bean)
  B. 無狀態(tài)會話 Bean (Stateless Session Bean)
  1.1 狀態(tài)會話 Bean (Stateful Session Bean)
  當(dāng)客戶機(jī)和服務(wù)器建立連接之后,狀態(tài)會話 Bean (Stateful Session Bean) 將一直在客戶機(jī)和服務(wù)器之間保持著用戶的某個狀態(tài)。例如:用戶使用銀行的ATM時,經(jīng)過驗證之后,用戶可以連續(xù)執(zhí)行多次操作,在這個過程當(dāng)中,用戶的合法狀態(tài)將一直被保留,直到她將信用卡取出,結(jié)束這次操作。這時,狀態(tài)會話 Bean (Stateful Session Bean) 也就被銷毀。
  1.2無狀態(tài)會話 Bean (Stateless Session Bean)
  當(dāng)客戶機(jī)和服務(wù)器建立連接之后,無狀態(tài)會話 Bean (Stateless Session Bean)處理單一的用戶請求或商務(wù)過程。無狀態(tài)會話 Bean (Stateless Session Bean)不需要從以前的請求中提取任何狀態(tài)。例如,用戶的用戶密碼確認(rèn)。用戶輸入密碼后,發(fā)送請求。組件返回真或假來確認(rèn)用戶,一旦過程完成,無狀態(tài)會話 Bean (Stateless Session Bean) 也宣告結(jié)束。
  2. 實體Bean (Entity Bean)
  實體Bean (Entity Bean)只是數(shù)據(jù)模型,它不包括商務(wù)邏輯。實體Bean (Entity Bean)可以將關(guān)系/對象數(shù)據(jù)庫的數(shù)據(jù)映射到內(nèi)存中供其它組件使用。實體Bean (Entity Bean)是一直存在的,而且具有很高的容錯性能。實體Bean (Entity Bean)能供允許多用戶同時訪問。

  二. 會話 Bean (Session Bean)

  Ejb的執(zhí)行過程是被放在一個EJB容器中進(jìn)行的,所以客戶端不會直接調(diào)用我們寫好的Enterprise Bean ,而是調(diào)用EJB容器生成的一個EJBObject (EJB對象)來實現(xiàn)。那么,我們在編寫服務(wù)器端的Enterprise Bean 時,就要考慮這點。既然客戶端不能直接訪問,就由EJBObject來代勞,所以在編寫服務(wù)器端時,就要編寫服務(wù)器端的一個接口(Remote)用來與客戶機(jī)聯(lián)系,實力化EJBObject。要生成EJBObject 就要調(diào)有Home 接口,來建立這個實力。

  以下是會話 Bean 的代碼分析:
  A.Enterprise Bean 類:sailorsy.class
  1.setSessionContext(SessionContext ctx)方法
  它是EJB容器和Enterprise Bean互相作用的關(guān)口。
  import java.rmi.*;
  import javax.ejb.*;
  public class sailorsy implements SessionBean{
  private SessionContext ctx=null;
  public voic setSessionContext(SessionContext ctx){
  this.ctx=ctx;
  }//setSessionContext
  }//class sailorsy
  2.ejbCreate(…)方法
  它可以初始化Enterprise Bean ,可以定義不同的ejbCreate(…)方法,每個方法所帶的參數(shù)不同。但是,必許要存在至少一種。
  import java.rmi.*;
  import javax.ejb.*;
  public class sailorsy implements SessionBean{
  private SessionContext ctx=null;
  public voic setSessionContext(SessionContext ctx){
  this.ctx=ctx;
  }//setSessionContext
  public void ejbCreate() {
  }//ejbCreate
  }//class sailorsy
  3.ejbPassivate()方法
  如果初始化的Enterprise Bean 過多,EJB容器將其中的一些掛起(passivate),釋放他們所占用的空間。
  import java.rmi.*;
  import javax.ejb.*;
  public class sailorsy implements SessionBean{
  private SessionContext ctx=null;

  public voic setSessionContext(SessionContext ctx){
  this.ctx=ctx;
  }//setSessionContext

  public void ejbCreate() {
  }//ejbCreate
  public void ejbPassivate() {
  }//ejbPassivate

  }//class sailorsy

 4.ejbActivate()方法
  和ejbPassivate正好相反,它將被掛起的Bean從新調(diào)回。
  import java.rmi.*;
  import javax.ejb.*;
  public class sailorsy implements SessionBean{
  private SessionContext ctx=null;

  public voic setSessionContext(SessionContext ctx){
  this.ctx=ctx;
  }//setSessionContext

  public void ejbCreate() {
  }//ejbCreate
  public void ejbPassivate() {
  }//ejbPassivate

  public void ejbActivate() {
  }//ejbActivate

  }//class sailorsy
  5.ejbRemove()方法
  它可以清除EJB容器中的Bean。
  import java.rmi.*;
  import javax.ejb.*;
  public class sailorsy implements SessionBean{
  private SessionContext ctx=null;

  public voic setSessionContext(SessionContext ctx){
  this.ctx=ctx;
  }//setSessionContext

  public void ejbCreate() {
  }//ejbCreate

  public void ejbPassivate() {
  }//ejbPassivate

  public void ejbActivate() {
  }//ejbActivate

  public void ejbRemove() {
  }//ejbRemove

  public String showname(){
  return "Hello,my name is sailorsy";
  }//自己的商務(wù)方法
  }//class sailorsy
  以上這些是EJB必需的回調(diào)方法,我們可以在里面加入自己的方法,加入自己的商務(wù)邏輯。
  B.Home 接口: sailorsyHome
  import java.rmi.*;
  import javax.ejb.*;

  public interface sailorsyHome extends EJBHome {
  public sailorsyRemote create() throws RemoteException, CreateException;
  }
  C. Remote接口:sailorsyRemote
  import java.rmi.*;
  import javax.ejb.*;

  public interface sailorsyRemote extends EJBObject {
  public java.lang.String showname() throws RemoteException;
  }

  三.調(diào)用會話 Bean:sailorsyTestClient1

  import javax.naming.*;
  import javax.ejb.*;
  import javax.rmi.PortableRemoteObject;
  import java.rmi.*;

  public class sailorsyTestClient1 {
  private sailorsyHome sailorsyHomeObject = null;

  //Construct the EJB test client
  public sailorsyTestClient1() {
  try {
  //以下是客戶端使用JNDI定位Home對象。
  Context ctx = new InitialContext();

  //look up jndi name
  Object ref = ctx.lookup("sailorsy");

  //cast to Home interface
  sailorsyHomeObject = (sailorsyHome) PortableRemoteObject.narrow(ref, sailorsyHome.class);

  }
  catch(Exception e) {
  e.printStackTrace();
  }
  }

  //----------------------------------------------------------------------------
  // Utility Methods
  //----------------------------------------------------------------------------

  public sailorsyHome getHome() {
  return sailorsyHomeObject;
  }
  //Main method

  public static void main(String[] args) throws Exception{
  sailorsyTestClient1 client = new sailorsyTestClient1();
  sailorsyRemote sr=client.getHome() .create() ;
  String s=sr.showname() ;
  System.out.print(s);
  // Use the getHome() method of the client object to call Home interface
  // methods that will return a Remote interface reference. Then
  // use that Remote interface reference to access the EJB.
  }
  }
  以上的EJB在win2000+jbuilder5/jbuilder6+BAS4.5經(jīng)過測試。

相關(guān)文章

無相關(guān)信息
更新時間2022-03-13 10:53:43【至頂部↑】
聯(lián)系我們 | 郵件: | 客服熱線電話:4008816886(QQ同號) | 

付款方式留言簿投訴中心網(wǎng)站糾錯二維碼手機(jī)版

客服電話:




主站蜘蛛池模板: 福田麻由子| 包头电视台| 张天爱出生于哪年?| 郑乙永| 妹妹扮演的角色| 护航 电影| 电影疯狂| 内裤之穴| 探究事物的本质的读后感想| 笼中女电影| 瓶邪图片| 诊所惊魂| 新上海滩张国荣和宁静| 寡妇电影| 烟草甲虫| 女王眼泪| 寿康宝鉴戒期表| 女女床戏| 影子人| 浙江卫视今天电视节目表| 瑜伽焰口拼音版全文| 简西摩尔| 惊魂| 新爱情乐园| 成人在线播放网站| aroused| 电影《皮埃里诺》免费观看| 画皮2电影| 血糖最怕三种水果| 远景山谷 (1981)中字| 宋学士濂文言文翻译| 地狱究竟有几层电影| 经典伦理电影| 1998年槟榔西施| 小清水亚美| 新烈火情挑| 服务群众方面整改成效| 有冈大贵| 死神来了6绝命终结站| 新目标大学英语综合教程2答案| 狗年龄|