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

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

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

經(jīng)驗(yàn)之談:對(duì)EJB中SessionBean的見解


  一.Enterprise Beans

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

  二. 會(huì)話 Bean (Session Bean)

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

  以下是會(huì)話 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(…)方法,每個(gè)方法所帶的參數(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)用會(huì)話 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對(duì)象。
  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)過測(cè)試。

相關(guān)文章

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

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

客服電話:




主站蜘蛛池模板: 娟子演的所有电视剧| 郑荣植个人资料| 漂亮女员工被老板糟蹋| 恋爱三万英尺| 搜狐视频官网| 郑楚一| 打美女光屁股视频网站| 豪血寺一族2出招表| 韩宝仪个人简历| 皇家香港警察| 亚里沙| 不扣纽的女孩| 李路琦| 林柒予| 山口小夜子| 婚前婚后电影高清完整版| 好好的电影| 毛骨悚然撞鬼经| 坏种2| 红色诗词六年级下册| 天空骑士| 五行字库查询| 性感瑜伽| 理发师的情人电影| 最爱电影完整版在线观看免费高清| 一吻定情1| 上嘴唇有个黑痣好不好| 上瘾泰国版| 学生肉体还债电影| 黄视频免费看网站| 火火| 绝对权力全集免费观看| 在线观看三级视频| 能哥| 唐人街探案5免费完整观看| 自相矛盾视频故事视频| 一路狂奔| 暗夜尖叫1988美国版高清观看| 张静初吴彦祖演的门徒| lol小孩子不能看的动画视频| 强好案电影|