當前位置:編程學習大全網 - 源碼下載 - 服務大廳網頁源代碼

服務大廳網頁源代碼

介紹了如何利用WebWork、Sitemesh和Hibernate等JAVA開源技術設計並實現壹個電子商務實驗模擬系統,給出了系統結構、功能和實現方案。

關鍵詞電子商務;實驗模擬系統;Java開源技術

1簡介

目前,在高校電子商務專業相關課程的教學中,迫切需要建立壹個電子商務實驗軟件平臺。平臺應實現包括B2C、C2C、B2B、電子數據交換(EDI)、現代物流應用系統、電子金融、安全電子交易身份認證等必要的軟件功能模塊。電子商務的快速發展對軟件開發技術提出了強有力的挑戰。由於電子商務復雜的內部邏輯、苛刻的安全要求和快速變化的業務規則,要求電子商務實驗模擬系統的開發技術功能強大且靈活,以滿足電子商務實驗教學的需要。

在電子商務系統的設計和開發中,有迫切需要解決的問題:可維護性、可擴展性、可測試性、可靠性、高性能和安全性。目前的N層軟件架構很好地解決了上述問題。系統通常分為表示層、業務邏輯層和持久存儲層。

J2EE規範從設計、集成、性能、安全和可靠性等方面為多層應用的開發提供了技術規範,如表示層、業務邏輯框架、持久性、事務、安全和日誌服務等。目前,符合J2EE規範的開源項目如雨後春筍般湧現,其中不乏優秀的技術。利用現有的優秀開源技術,可以大大降低應用系統的開發周期和成本,同時提高整個系統的靈活性。

2本系統使用的開源技術。

對於現有成熟的WEB應用框架,其解決的主要問題如下:

1)將客戶端網頁請求中的輸入數據封裝到壹個(請求的)數據對象中。

2)驗證WEB請求中數據的有效性。

3)根據不同的網頁請求,調度相應的業務邏輯對象進行處理,(請求的)數據對象作為參數傳入。

4)業務邏輯對象處理業務規則後返回結果數據對象。

5)通過表示層將結果數據對象中的數據展示給用戶。

6)業務實體的持久存儲。

WebWork2、Sitemesh、Hibernate、Junit、XDoclet、Ant等開源項目都是比較成熟的開源項目。該系統的設計和實現綜合利用了上述開源技術,很容易地解決了上述問題。

WebWork是由OpenSymphony開源組織開發的J2EE Web框架,致力於組件化和代碼重用。WebWork由Xwork1和WebWork2***組成。

Xwork1簡潔、靈活、功能強大。它是壹個標準的命令模式實現,並且與web層完全分離。Xwork提供了很多核心功能:前端攔截器、運行時表單屬性驗證、類型轉換、強大的表達式語言等等。攔截器就像壹個過濾網,用來攔截客戶端的調用,做壹些處理,比如檢查客戶端調用的合法性,實現安全策略,支持事務等。

WebWork2構建於Xwork之上,後者處理HTTP響應和請求。WebWork2使用ServletDispatcher將HTTP請求變成動作(業務邏輯對象由Action類調用完成業務處理),實現會話和應用範圍的映射,以及請求參數的映射。每個動作不依賴於任何層或任何容器。它們通過ActionContext使用請求和響應對象,從而將WEB層與邏輯層分開。Webwork的動作可以通過分配某些屬性值來運行,而無需啟動Web容器進行測試,這增強了WEB組件的可測試性。

WebWork2支持多視圖表示,視圖部分可以使用JSP、Velocity、FreeMarker、JasperReports、XML等。

在Web應用開發中,我們經常面臨如何保證輸入數據的合法性這壹令人頭痛的問題。對輸入數據的驗證有兩種方式:頁面Java腳本驗證和服務器執行邏輯代碼前的數據驗證。前者難以保證系統安全性,通常作為輸入數據驗證的輔助技術。

WebWork使用Xwork的驗證框架進行驗證處理,可以通過配置攔截器來激活。它可以為每個需要驗證的類指定壹個xml驗證文件,也可以在不同的情況下為壹個類指定不同的xml驗證文件。WebWork可以為每個動作類指定相應的驗證文件,也可以為動作類的屬性字段指定驗證文件。最後使用攔截器組裝動作及其驗證文件,使得邏輯層不需要考慮額外的數據驗證,簡化了業務處理邏輯。

Sitemesh也是opensymphony開源組織開發的j2ee應用框架之壹。主要用於管理網頁的布局,致力於為眾多頁面組成的大型網站提供統壹的樣式、導航和布局功能。SiteMesh通過過濾器攔截請求和響應,給原始頁面添加壹個裝飾器,然後將結果返回給客戶端,被裝飾的原始頁面並不知道SiteMesh的裝飾,從而避免了頁面之間相互包含而導致的頁面之間的耦合。

本系統采用面向對象的設計與實現,系統使用關系數據庫管理數據,因為系統中的持久對象需要用關系數據庫存儲,帶來了對象與關系之間的映射問題。關系表的記錄很難完全映射到持久對象的關系上,主要體現在多表的關系映射類型多樣,關聯數據表的數量難以確定。可能是壹個表映射多個持久對象,多個表映射壹個持久對象,更有可能是壹個表的壹些字段映射到壹個持久對象,而其他字段映射到其他持久對象。如果對象使用直接的數據庫操作訪問成員來實現持久化對象編程,那麽1: n關系的持久化對象對數據庫的查詢實際上就是1+n SQL,必然導致數據庫訪問效率的大幅下降。

Hibernate是持久層設計的最佳技術,優雅地解決了上述對象和關系的映射問題。它是開源免費的,API也是開放的。自身功能不夠用的時候,可以通過自己編碼來擴展。

Junit用於類模塊的單元測試。XDoclet和Ant是支持項目自動重構和文檔自動生成的優秀開源工具,可以大大提高程序員的工作效率和質量。

3系統總體設計

該系統的主要目標是實現電子商務系統的仿真,為教師和學生提供壹個進行相關實驗的軟件平臺。重點是模擬電子商務環境下交易和管理各方的業務流程,同時便於交易各方根據需要制定相應的業務規則。因此,系統的設計要能夠適應業務規則的變化,不必真實再現某些功能的實現,比如安全認證子系統中認證中心安全認證服務的實現。此外,系統還應加強實驗過程管理的功能設計,使師生能快速掌握實驗的過程和進度,並能自動處理實驗結果,提供相關查詢。

在壹個實驗中,學生通常在多個虛擬企業中扮演多種不同的業務角色,系統應提供快速角色轉換功能,以便學生輕松理解不同業務流程的相關操作之間的關系和交互。

基於上述目標,系統分為兩個子系統:業務系統和實驗系統。

業務系統分為五個二級子系統:電子銀行系統、認證系統、交易系統、企業業務管理系統和物流系統。實驗系統分為兩個子系統:學生自助系統和學生實驗管理系統。

在每個子系統中,根據不同的操作員角色劃分子模塊,如“交易系統”(系統結構如圖1所示),分為交易大廳、會員企業後臺管理、交易中心後臺管理三個子系統。在會員企業後臺管理中,可以根據當前學員所承擔的業務角色,列出所涉及的多個企業供其選擇。整個系統采用單點登錄驗證,減少了學生在使用各模塊功能時的登錄操作,避免了壹些流行的實驗模擬系統需要學生記住多個密碼,在同壹個實驗中重復登錄的問題,使學生更加關註業務流程,提高了實驗效率。

圖1交易系統結構圖

實驗系統分為學生自助和實驗管理兩個子系統。通過學生自助子系統,學生可以查詢老師布置的實驗任務、所做實驗的結果以及實驗操作步驟中的主要錯誤,從而了解不足並及時改進。通過實驗管理模塊,教師可以安排實驗任務,查詢學生實驗進度和結果,了解學生實驗過程中的常見問題,以便及時指導。

系統的分析和設計采用面向對象的UML建模語言。在充分分析系統需求後,用UML的用例圖和序列圖描述了系統的概念模型,然後進行詳細設計,描述了系統的類圖和類關系圖,建立了初步的數據模型。利用Borland公司的協同建模工具,實現了系統模型與源代碼和數據庫之間的雙向自動轉換。

為了滿足本系統開發的工程需求,開發人員分為以下幾類:a、系統分析師;b、後臺組件開發程序員(主要是動作類和業務邏輯類);c .後臺組件測試器;d .前臺用戶界面程序員(主要是JSP程序員+美工);e、前臺測試技術員。通過Sitemesh和WebWork的結合,實現了各模塊用戶界面和後臺組件的獨立開發和測試,有利於分工協作,大大減少了開發人員在信息交流上花費的時間,提高了系統開發的效率。

4系統實施

4.1,操作環境

為了適應高校計算機系統軟件環境的多樣性,該系統可以運行在任何符合J2EE規範的WEB容器和最流行的關系數據庫中。本系統的開發選擇了開源項目Tomcat和Mysql。

4.2 Web應用程序的配置

限於篇幅,僅列出部分關鍵配置信息。根據J2EE規範,本系統的目錄規劃如下(表1):

父目錄子目錄描述

/src Java類源代碼

/lib系統需要的第三方類庫文件

/docs系統開發文檔

/ROOT WEB應用程序根目錄

/ROOT WEB-INF WEB應用程序配置目錄

/ROOT/

WEB-INF類Java類字節碼文件目錄

/ROOT _decorators站點網格裝飾頁面

表1系統目錄結構

在/ROOT/WEB-INF中,存儲了web.xml、sitemesh.xml、decorators.xml等配置文件。

WEB視圖層的配置:

本系統設計了幾個裝飾頁面,下面列出了/WEB-INF/decorators.xml中主要裝飾頁面的配置信息:

& ltdecorators default dir = "/_ decorators " & gt;

& ltdecorator name = " main " page = " main . JSP " & gt;

& lt模式& gt* & lt/pattern & gt;

& lt/decorator & gt;

& lt/decorators & gt;

主裝修頁面main.jsp的布局形成了流行的“左上、中右下”的頁面結構。上半部分顯示系統logo和主頁鏈接,各大子系統鏈接,下半部分顯示版權聲明和聯系方式,左右部分顯示常用模塊,中間部分是當前頁面的主要功能操作區。其JSP頁面的主體如下所示:

& lttable width = " 100% " align = " center " >

& lttr & gt& lttd width="134" valign="top " >

& ltpage:apply decorator name = " simple "

page = "/site mesh/left . JSP "/& gt;& lt/TD & gt;& lt/tr & gt;

& lttr & gt& lttd width="488" valign="top " >

& ltpage:apply decorator name = " simple "

page = "/site mesh/middle _ top . JSP "/& gt;& ltbr & gt

& ltdecorator:body/& gt;& ltbr & gt

& ltpage:apply decorator name = " simple "

page = "/site mesh/middle _ bottom . JSP "/& gt;& lt/TD & gt;& lt/tr & gt;

& lttr & gt& lttd width="122" valign="top " >

& ltpage:apply decorator name = " simple "

page = "/site mesh/right . JSP "/& gt;& lt/TD & gt;& lt/tr & gt;

& lt/table & gt;

持久層休眠的配置:

首先,通過classes/hibernate.cfg.xml文件配置Hibernate的數據庫連接信息。然後在每個類二進制文件需要持久化的目錄下建立壹個與類同名的hbm.xml文件,配置這個類屬性與數據表中字段的對應關系以及類之間的映射關系。以下是Customer.hbm.xml的內容

& lthibernate-mapping package = " com . un . eclab " & gt;

& ltclass name = " Customer " table = " Customer " >

& ltid name="id" column="CID " >

& lt生成器class="increment" />& lt/id & gt;

& ltproperty name = " struser name " column = " username "/& gt。

& ltproperty name = " str password " column = " password "/& gt;

& lt/class & gt;

& lt/hibernate-mapping & gt;

當您需要持久化客戶對象時,請使用以下代碼:

會話工廠sf =

新配置()。配置()。buildSessionFactory();

session session = SF . opensession();

transaction tx = session . begin transaction();

客戶customer =新客戶();

customer.setUsername(“客戶名稱”);

customer . set password(" customer password ");

session.save(客戶);

tx . commit();

session . close();

4.3業務邏輯層的實現

以交易系統為例,該子系統實現的主要類如下所示(表2):

類名主函數

IProduct產品類接口,規範了產品類的主要操作,適應不同企業對產品類的要求。

Product產品類,實現Iproduct接口。企業可以繼承這個品類,實現對自己產品的管理。

EccCart交易中心購物車類,可以管理多種交易類型。

EccCartItem購物汽車類別

EccOrder訂單類別

選項企業選項類,管理業務規則。

表2主要交易系統類型列表

通過以上幾個類的配合,實現了交易系統的主要業務邏輯。

5結束語

總的來說,利用開源技術設計電子商務實驗模擬系統具有開發周期短、系統靈活性高、易於開發和維護等優點,大大降低了系統開發的復雜度和開發成本,能夠適應不斷變化的用戶需求,具有廣闊的應用前景。

  • 上一篇:紅警3:最終動員令,鐵錘坦克有什麽功能大神們幫幫忙
  • 下一篇:傳奇世界問題答案10000‰正確的往站
  • copyright 2024編程學習大全網