隨筆 - 40, 文章 - 0, 評論 - 20, 引用 - 0
          數(shù)據(jù)加載中……

          EJb 會話Bean

          在EJB容器中,SessionBean主要有兩種:無狀態(tài)(stateless)和有狀態(tài)(stateful)。
          1、無狀態(tài)EJB,類似Servlet,它只提供一個引用(Bean instance),被所有客戶端使用,不保留某個客戶的單獨信息。
          例如:在某無狀態(tài)EJB中,有一個數(shù)據(jù)成員(變量) i_count (整型,用于訪問計數(shù),初始值為0,訪問一次累加1),它是公共的。某客戶端訪問后,值累加為1。另一個客戶端訪問時是已經(jīng)變化了的值為1。

          2、有狀態(tài)EJB,類似數(shù)據(jù)庫的Connect鏈接,也類似線程守護,它提供引用池(Bean instance pool),每個客戶端會有單獨的信息。
          例如:在某有狀態(tài)EJB中,有一個數(shù)據(jù)成員(變量) i_count (整型,用于訪問計數(shù),初始值為0,訪問一次累加1),它對每個客戶端來說是隔離的。某客戶端訪問后,值累加為1。另一個客戶端訪問時還是原來的值為0。

          這里提到的數(shù)據(jù)成員(變量) i_count ,在EJB規(guī)范中稱作:conversational state 。對它的要求也很多的,例如類型為 Serializable objects。還有,還要在ejbActivate(),ejbPassivate(),ejbRemove()等生命周期約定的方法中處理。詳見EJB規(guī)范吧。

          我的感想:在看第一遍書時,還一點感覺都沒有,根本就看不明白SessionBean中的session與Servlet容器中的session有什么區(qū)別。
          動手編程后,才感覺到EJB只是比Servlet更規(guī)范,更重量而已。真正的區(qū)別就是接口協(xié)議一個是基于HTTP,一個是基于RMI/IIOP。Servlet與無狀態(tài)的SessionBean在Session上是一樣的控制。Servlet中的Session對象與有狀態(tài)的SessionBean是一樣的控制。
          對于應(yīng)用,例如有一個購物車,要記錄正在采購的物品信息,沒有EJB時,我們一般是存在Servlet容器中的session中。有了EJB,則可以存儲在有狀態(tài)的SessionBean中,并且該次有狀態(tài)的sessionBean的instance還得保存在Servlet的session中。這樣的好處是:至少可以減輕Servlet容器的負載。



          轉(zhuǎn)自:
          http://zengabo.blogchina.com/blog/527365.html

          posted on 2006-02-22 16:35 月亮 閱讀(256) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 梁山县| 绥江县| 开化县| 岳西县| 夏邑县| 祁阳县| 泰和县| 永福县| 库伦旗| 锡林郭勒盟| 罗城| 富平县| 藁城市| 翁牛特旗| 河曲县| 贡山| 峨眉山市| 雷山县| 凭祥市| 蒲城县| 镇康县| 宣恩县| 休宁县| 广州市| 宜昌市| 句容市| 博乐市| 普定县| 桦甸市| 双峰县| 红河县| 子洲县| 白山市| 奉新县| 大足县| 包头市| 汝城县| 甘肃省| 上饶市| 宜良县| 昭通市|