• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    基于EJB技術的商務預訂系統的開發_MySQL

    來源:懂視網 責編:小采 時間:2020-11-09 17:07:31
    文檔

    基于EJB技術的商務預訂系統的開發_MySQL

    基于EJB技術的商務預訂系統的開發_MySQL:EJB 技術已經越來越多地應用到大型網絡系統開發中,本文中,筆者將介紹EJB(Enterprise Java Beans)的定義、基于EJB技術的應用系統結構模型以及EJB組件的內容和分類,最后結合基于EJB的結構模型和EJB組件開發了一個商務預訂系統。EJB從技術上而言不是一
    推薦度:
    導讀基于EJB技術的商務預訂系統的開發_MySQL:EJB 技術已經越來越多地應用到大型網絡系統開發中,本文中,筆者將介紹EJB(Enterprise Java Beans)的定義、基于EJB技術的應用系統結構模型以及EJB組件的內容和分類,最后結合基于EJB的結構模型和EJB組件開發了一個商務預訂系統。EJB從技術上而言不是一

    EJB

      技術已經越來越多地應用到大型網絡系統開發中,本文中,筆者將介紹EJB(Enterprise Java Beans)的定義、基于EJB技術的應用系統結構模型以及EJB組件的內容和分類,最后結合基于EJB的結構模型和EJB組件開發了一個商務預訂系統。
    EJB從技術上而言不是一種“產品”,而是一種技術規范。SUN公司對EJB的定義是:EJB的結構是開發和配置基于組件的分布式商務應用程序的一種組件結構。用EJB結構開發的應用程序是可伸縮的、事務型的、多用戶安全的。這些應用程序可能只需編寫一次,卻可以在支持EJB規范的任務服務器平臺上進行配置。總的來說,EJB是一個組件事務監控的標準服務器端的組件模型。

    基于EJB技術的系統結構模型
    EJB結構是一個服務端組件結構,是一個層次性結構,其結構模型如圖1所示。該結構模型在通常情況下可分為客戶層、業務邏輯層和數據層,下面筆者對此作一簡單介紹。

    圖1:基于EJB的應用結構模型

    客戶層 主要是用來滿足對整個系統的各種訪問需求并處理以下工作:
    接收用戶的輸入,還可以對用戶的輸入進行分析檢查并作相應的處理;
    顯示由服務器端高層傳來的運行結果。
    客戶層通常是由客戶進程組成,這些進程由瀏覽器動態地創建和撤銷。

    業務邏輯層 這是整個系統最關鍵的部分。業務邏輯層在通常情況下會分為兩層,其高層是請求接收層(一般稱之為Web層),用于接收從瀏覽器傳來的請求并將請求交給底層進行處理,同時將請求處理結果發送給瀏覽器。這些過程主要由JSP頁面、基于Web的Applets以及顯示 HTML頁面的Servlets組成。底層是請求處理層(一般稱之為EJB層),包括監聽進程、處理進程和數據庫操作進程,負責處理請求接收層傳來的客戶請求并對它進行處理,同時將請求結果傳遞給請求接收層,如果需要的話還需要將處理結果交給數據層進行存儲。
    數據層 主要是為業務邏輯層提供數據服務,如存儲業務邏輯層處理結果、返回業務邏輯層檢索的數據結果,同時也是為了實現屏蔽數據源的變化,從而實現當數據庫發生變化時我們只需修改連接數據源的語句就可以。

    EJB組件的分類
    通常情況下,服務端的EJB組件有兩種基本類型:Entity Bean(實體Bean)和Session Bean(會話Bean)。

    圖2:商務預訂系統的構架

    Entity Bean是為了現實世界的對象建造的模型,這些對象通常是數據庫的一些持久記錄。Entity Bean為那些可以表達成名詞的商務概念建立模型,它既描述了真實世界對象的狀態,也描述了它們的行為,同時允許開發者封裝與具體概念有關的數據和商務規則。Session Bean是一種通過Home Interface創建并對客戶端連接專有的Enterprise Bean,Session bean實例一般不與其它客戶端共享。Session Bean是客戶端應用程序的一個擴展,并負責管理整個過程或任務。Session Bean可以管理Entity Bean之間的交互,描述它們如何一起工作來完成一個特殊任務。
    Entity Bean根據管理持久性的方式可以分為容器管理的Bean和使用Bean管理的Bean。容器管理的Bean由EJB容器自動管理它們的持久性,容器知道Bean實例的字段是怎樣映射到數據庫中去,并自動管理插入、更新和刪除數據庫中與實體有關的數據;使用Bean管理持久性的Bean需要明確地完成所有這些工作。Bean的開發者必須編寫代碼操作數據庫,EJB容器只告訴Bean實例什么時候可以在數據庫中安全地插入、更新和刪除數據,除此之外,它不提供任何別的幫助。Bean實例自己完成所有的持久性工作。
    Session Bean根據是否有狀態可分為無狀態Bean和有狀態Bean。無狀態Session Bean傾向于通用并可重復使用;有狀態Session Bean是客戶應用程序的擴展,它代表客戶完成任務并維護客戶的相關狀態。

    商務預訂系統的開發
    客艙預訂系統是在J2EE平臺上開發的基于EJB組件技術的商務預訂系統,其主要流程是用戶登錄以后,將被依次帶領著通過顧客選擇頁和導航選擇頁,并將為顧客選擇一個可獲得的客艙(從TraveAgentBean處獲得可供選擇的客艙列表,TravelAgentBean的listAvailableCabin()方法由生成此網頁的Servlet調用,客艙列表將用于裝載到用戶瀏覽器的網頁上創建HTML列表框),當用戶選擇一間客艙并提交了選擇時,一個HTTP請求將會發送到EJB服務器(Websphere Application Server),服務器接到此請求后,將其分派給ReservationServlet,此Servlet調用TravelAgent.BookPassage()方法做實際的預訂,BookPassage()方法返回的標簽信息將用于創建另一個送回用戶瀏覽器的網頁。如果預訂成功,則由ProcessPaymentServlet去調用ProcessPaymentBean中的支付方法,從而實現對客戶的收費過程。其具體構架見圖2。
    預定系統中的EJB組件主要包括以下幾個部分:
    CabinBean:實體Bean,主鍵是CabinPK,是用來封裝現實世界中的航船客艙的一個實體Bean。
    CustomerBean:實體Bean,主鍵是CustomerPK,是用來封裝現實世界中需要預訂航船客艙的消費者的一個實體Bean。
    CruiseBean:實體Bean,主鍵是CruisePK,是用來封裝現實世界中航船航線的一個實體Bean。ReservationBean:實體Bean,主鍵是CruiseID,CabinID,它代表了數據庫中不變的一條記錄,即一個預訂,它記錄了預訂系統的歷史事件,主要是用來防止雙重預訂,即兩個客戶預訂相同航線的相同客艙,產生這種問題的原因是因為客戶選擇客艙和航線的時刻與調用bookPassage()方法的時刻之間有一段間隔時間。TravelAgentBean:有狀態會話Bean,一個負責預訂航行艙位工作流的會話Bean,它封裝了完成一條航線的一個預訂操作的過程并在全世界的旅行代理的客戶端應用程序中使用。TravelAgentBean不僅滿足消費者預訂票據的需要,還可提供在航行中剩余客艙的消息。為了完成此任務,Bean需要知道預訂是由哪一條航線、客艙,以及客戶組成,收集到這些信息后,由bookPassage()方法來完成處理預訂過程,它為客戶賬戶的計費負責,在正確航線的正確船只上預訂選擇的客艙,并通過Ticket類來為客戶產生一張票據。在這里,我們需使用CreditCard類存儲有關客戶信用卡的相關信息,同時,ListAvailableCabins()方法用來顯示可用的尚未被預訂的客艙。
    ProcessPaymentBean:無狀態會話Bean,它是在事務系統中向消費者收費的過程。它定義了支票、現金和信用卡支付方式的三個事務方法,即ByCheck()、ByCash()和ByCredit()。

    商務預訂系統的程序代碼示例
    整個商務預訂系統的開發是在IBM VisualAge for Java下面開發完成的,在該IDE開發環境中,實體Bean相對會話Bean要容易開發得多,以下就以TravelAgentBean為例,介紹EJB組件的開發過程:

    1.TravelAgent遠程接口
    它提供了設置客戶希望預訂的航線和客艙ID的方法。此外,還設置boolPassage()方法來對客戶的預訂進行計費,并為客戶產生一張票據。具體代碼如下:
    package com.titan.travelagent;
    import java.rmi.RemoteException;
    import javax.ejb.FinderException;
    import com.titan.cruise.Cruise;
    import com.titan.customer.Customer;
    import com.titan.processpayment.CreditCard;
    public interface TravelAgent extends javax.ejb.EJBObject
    {
    public void setCruiseID(int cruise) throws RemoteException, FinderException;
    public int getCruiseID( ) throws RemoteException, IncompleteConversationalState;
    public void setCabinID(int cabin) throws RemoteException, FinderException;
    public int getCabinID()throws RemoteException, IncompleteConversationalState;
    public int getCustomerID()throws RemoteException, IncompleteConversationalState;
    public Ticket boolPassage(CreditCard card,double price) throws RemoteException, IncompleteConversationalState;
    }

    2.TravelAgent Home接口
    TravelAgent Home接口代碼如下:

    puckage com.titan.tracelagent;
    import java.rmi.RemoteException;
    import javax.ejb.CreateException;
    import com.titan.customer.Customer;
    public interface TravelAgentHome extends javax.ejb.EJBHome {
    public TravelAgent create(Customer cust) throws RemoteException,CreateException;}

    3.TravelAgent Bean類
    它需要實現TravelAgent的遠程接口和Home接口中的所有行為,限于篇幅,本文將不再介紹其實現代碼,感興趣的讀者可自己加以完成。

    通過以上步驟,我們就完成了一個商務預定系統的EJB組件的開發。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    基于EJB技術的商務預訂系統的開發_MySQL

    基于EJB技術的商務預訂系統的開發_MySQL:EJB 技術已經越來越多地應用到大型網絡系統開發中,本文中,筆者將介紹EJB(Enterprise Java Beans)的定義、基于EJB技術的應用系統結構模型以及EJB組件的內容和分類,最后結合基于EJB的結構模型和EJB組件開發了一個商務預訂系統。EJB從技術上而言不是一
    推薦度:
    標簽: 預訂 系統 商務
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲精品无码专区在线播放| 99久久免费国产精精品| 久久亚洲精品无码AV红樱桃| 精品国产福利盛宴在线观看| 国产精品一级香蕉一区| 人人妻人人澡人人爽欧美精品| 91精品一区二区综合在线| 99在线精品免费视频| 国产观看精品一区二区三区| 久久五月精品中文字幕| 亚洲精品成人av在线| 99久久99久久久精品齐齐| 日本精品视频在线观看| 国产精品无码永久免费888| 久久国产精品-久久精品| 国内精品久久久久影院一蜜桃| 亚洲精品无码专区久久久| 欧美精品xxxxbbbb| 久久久久久国产精品无码下载| 国产精品无码免费专区午夜| 亚洲综合精品一二三区在线| 日本精品久久久久中文字幕8| 成人精品在线视频| 国产精品久久免费| 国产精品久久久久9999| 国产一区二区三区久久精品| 国内精品伊人久久久久| 国产精品高清一区二区三区不卡| 97久久久精品综合88久久| 国产精品igao视频网| 国产精品网站在线观看免费传媒| 国产成人久久精品激情 | 精品三级在线观看| 国产精品免费观看| 欧美777精品久久久久网| 日韩精品成人一区二区三区| 国产99久久九九精品无码| 国产精品VIDEOSSEX久久发布| 国产精品自产拍在线观看花钱看| 黄床大片免费30分钟国产精品| 免费精品精品国产欧美在线欧美高清免费一级在线 |