《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于J2EE的WAF框架在電子商務(wù)系統(tǒng)中的應(yīng)用與擴展

基于J2EE的WAF框架在電子商務(wù)系統(tǒng)中的應(yīng)用與擴展

2009-01-05
作者:楊文軍,謝飛,王克宏

引言
WAF框架是Web Application Framework的簡稱,是在Sun Microsystems公司的J2EE藍皮書中提出的一個J2EE應(yīng)用框架。該框架演示了在J2EE的技術(shù)架構(gòu)下如何進行MVC的設(shè)計,以及如何充分組合使用J2EE中的各種設(shè)計模式。同時在Sun Microsystems公司的網(wǎng)站上還給出了架構(gòu)于WAF框架之上的網(wǎng)上寵物商店的演示例子。在本文筆者將首先介紹WAF框架的主要特點以及J2EE的設(shè)計模式在該框架內(nèi)的應(yīng)用;然后將結(jié)合具體的電子商務(wù)系統(tǒng)開發(fā)的經(jīng)驗討論WAF框架的擴展。

WAF框架
WAF框架是一個包括視圖層、控制層和數(shù)據(jù)層的綜合性框架,該框架在Web層和EJ B層使用了較多的設(shè)計模式來降低各個模塊之間的耦合性以及增加系統(tǒng)的擴展性。WAF框架的主要特點可以歸納如下:
1.?采用集中控制的方式處理請求
?目前對于客戶端的請求,可以采用多個Servlet進行分散的請求處理,也可以通過少數(shù)幾個Servlet進行集中的控制。前一種方式在進行一些系統(tǒng)通用的事務(wù)處理(比如登錄驗證,權(quán)限認證,編碼轉(zhuǎn)換等)時,會造成代碼的重復(fù),從而增加了調(diào)試和維護的難度。而在WAF框架中通過集中的控制方式,可以對于系統(tǒng)的通用事務(wù)進行統(tǒng)一的處理,然后分發(fā)到各個模塊進行特定的處理。
2.?外部配置頁面流程
?在WAF框架中,請求處理之后的頁面流程都是通過外部文件來設(shè)定的,使開發(fā)者可以根據(jù)客戶的不同需要很方便地更改頁面的流程跳轉(zhuǎn),提高了系統(tǒng)的擴展性和維護性。
3.?統(tǒng)一邏輯調(diào)用接口
?系統(tǒng)的邏輯處理分布在若干個EJB中,如果Web層直接去調(diào)用每一個EJB,會增加Web層和EJB層的耦合度,從而增加系統(tǒng)的維護的難度。而在WAF框架中,采用統(tǒng)一的邏輯調(diào)用接口,Web層的每一次請求都會通過這個邏輯調(diào)用接口再轉(zhuǎn)到具體的某個EJB來處理。
4.?動態(tài)合成頁面
?WAF框架把一個完整頁面分為幾個特定的區(qū)域(banner區(qū)域,left-bar區(qū)域,body區(qū)域,right-bar區(qū)域和footer區(qū)域),每一個區(qū)域可以任意配置一個子頁面,而整個頁面就是由這些子頁面配合構(gòu)成。用戶可以通過外部配置文件任意配置頁面,子頁面也可以得到很大的重用。
?整個框架的流程如圖【1】所示,WAF框架可以簡單的劃分為WEB層和EJB層。
?WEB層的作用主要是從數(shù)據(jù)層獲取數(shù)據(jù)(通過EJB或者JavaBean的方式提供)顯示給用戶,同時收集用戶的請求信息,包裝成數(shù)據(jù)對象后傳遞給數(shù)據(jù)層處理。
?在WEB層,該框架使用Servlet2.3給出的過濾器機制來進行身份驗證和安全控制。通過外部配置文件來指定不同角色的用戶能夠瀏覽的頁面以及能夠提交的請求,這樣系統(tǒng)能夠很方便管理用戶角色以及控制用戶權(quán)限,增加了系統(tǒng)的擴展性。
Web層定義了兩個Servlet,其中的一個Servlet就是采用集中化的方式處理客戶端的邏輯操作的請求(圖【1】中標(biāo)明的Front Control),而另外一個Servlet則處理客戶端的頁面請求(圖【1】中標(biāo)明的Template Servlet)。Front Control根護客戶端的請求參數(shù)委托一個HTMLAction子對象構(gòu)造一個針對該請求的數(shù)據(jù)傳輸對象(Event子類),然后傳遞請求給負責(zé)邏輯處理的EJB層,EJB層的處理結(jié)果將封裝成EventResponse對象返回到WEB層, Front Control會根據(jù)返回的結(jié)果來決定提供給客戶端的顯示頁面。從請求的類型到具體的HTMLAction對象的映射,以及從請求的類型和邏輯處理的返回結(jié)果到顯示頁面的映射,都是通過外部配置文件來指定的。系統(tǒng)能夠把不同的請求映射到同一個HTMLAction對象進行處理,使HTMLAction對象得到復(fù)用,同時系統(tǒng)也可以很方便地為某個請求改變結(jié)果頁面,使頁面流程的控制能夠靈活配置。
EJB層是真正進行邏輯處理和數(shù)據(jù)持久化的地方,Pet Store這個WAF框架的演示例子給出了通過實體Bean以及DAO的方式進行數(shù)據(jù)存取的方式。如果采用實體Bean的方式來獲取大數(shù)據(jù)量的只讀數(shù)據(jù)會因為構(gòu)造過多的實體Bean對象而造成時間和空間上的浪費,而采用JDBC API直接從數(shù)據(jù)庫獲取大量的只讀數(shù)據(jù)能夠加快存取速度,同時減少內(nèi)存中EJB對象的數(shù)目。在EJB層,WAF框架使用Session Fa?ade的設(shè)計模式,使所有Web層的請求都通過一個EJB Controller這個Session Bean來進行分發(fā)處理,這樣使Web層與EJB之間的耦合度達到最小。

??????????????????????????????????圖【1】 WAF框架流程控制

WAF框架在旅游電子商務(wù)系統(tǒng)中的擴展
筆者最近參與了一個電子商務(wù)系統(tǒng)的設(shè)計與開發(fā),該系統(tǒng)就是基于WAF框架之上開發(fā)的。在整個設(shè)計過程中,我們發(fā)現(xiàn)為了迎合具體的電子商務(wù)系統(tǒng)的需求,我們需要對WAF框架進行一些改造和擴展,使其能夠更好的滿足這個電子商務(wù)系統(tǒng)的需求。
該電子商務(wù)系統(tǒng)對WAF框架的擴展主要表現(xiàn)在下面幾個方面:
登錄驗證模塊的擴展
在WAF框架中通過Servlet2.3的新特性Filter機制來實現(xiàn)用戶身份的驗證。如圖【2】所示,在SignOnFilter里對用戶請求進行過濾,該請求可以是一個頁面請求也可以是一個邏輯操作的請求。如果是登錄請求,則系統(tǒng)轉(zhuǎn)到登錄處理流程;而對于其他的請求,如果用戶已經(jīng)登錄,則直接轉(zhuǎn)到下一個Filter進行過濾,而如果用戶未登錄,則比較外部登錄驗證配置文件,驗證用戶請求是否屬于受保護的請求(即只有已登錄的用戶發(fā)送該請求才能被系統(tǒng)處理),未通過驗證系統(tǒng)將跳轉(zhuǎn)到登錄頁面提示用戶登錄。
WAF框架中,只要是登錄的用戶就可以通過請求驗證,而實際的電子商務(wù)系統(tǒng)都往往說,當(dāng)用戶登錄后還需要驗證用戶是否有權(quán)限提交該請求(如圖【3】所示)。而外部配置文件也需要根據(jù)不同的角色分別列出該角色能夠提交的請求列表。

圖【2】WAF框架的驗證模塊流程圖

圖【3】實際應(yīng)用系統(tǒng)的驗證模塊流程圖

控制流程的擴展
在WAF框架中,用途提交的頁面請求(URI后綴為“.screen”)將被提交到Template Sevlet來進行處理,而如果用戶提交的是操作請求(URI后綴為“.do”),那么該請求將通過前臺控制器在HTMLAction子對象里包裝成Event子對象,然后再把Event子對象提交到EJB層進行處理。這個處理過程有很大的一部分時間是用在來回的通訊上。而在實際系統(tǒng)中,并非所有的操作請求都需要通過EJB層進行處理,對于一些簡單的請求在HTMLAction子對象里就可以完成。所以我們在實際系統(tǒng)中對WAF框架進行了改造,對于能夠在HTMLAction子對象中進行處理的操作請求,則該子對象返回空的Event對象;而在前臺控制器增加對返回的Event對象的判斷,只有Event對象不為空才轉(zhuǎn)到EJB層進行處理,否則直接跳轉(zhuǎn)到下一個頁面。
通過改變請求的處理流程,我們可以減輕EJB層邏輯處理的壓力,同時降低了請求響應(yīng)的時間,使WAF框架的效率得到提高。

頁面流程模塊的擴展
在實際系統(tǒng)中,我們希望成功處理一個用戶的操作請求后,首先顯示一個操作成功的提示頁面,然后從這個提示頁面自動轉(zhuǎn)到一個指定的頁面。我們希望這個提示頁面能夠得到復(fù)用,任何一個操作請求得到成功處理都能夠使用該提示頁面。而在WAF框架中,一個操作請求成功完成后就直接轉(zhuǎn)到指定的頁面,這個是通過外部配置文件mapping.xml來完成的。現(xiàn)在我們在這個外部配置文件中增加一個可選的中間過渡頁面的設(shè)定,如果用戶設(shè)定了這個中間過渡的頁面,那么擴展WAF框架的系統(tǒng)能夠把指定的后一個頁面作為參數(shù)傳給中間過渡頁面,這樣在這個過渡頁面利用腳本語言經(jīng)過一段間隔后就能夠自動轉(zhuǎn)到下一個指定的頁面里。下面是mapping.xml的一個片斷,粗體是增加的一個過渡頁面的設(shè)定
?????? ?com.xxx.j2ee.xxx.controller.web.actions.CancelOfferHTMLAction


總結(jié)與展望
?WAF框架是一個覆蓋WEB層和EJB層的綜合性的框架,提供了很好的擴展性,因此能夠滿足對擴展性要求較高的商業(yè)系統(tǒng)的應(yīng)用。隨著J2EE1.4規(guī)范的推出,相信WAF框架也將把更先進的思想和設(shè)計理念融入其中,使其不僅是學(xué)習(xí)J2EE的很好的例子,同時在商業(yè)上得到更好的應(yīng)用。

參考文獻:
1.?http://java.sun.com/blueprints/code/jps131/docs/index.html
2.?Inderjeet Singh, Beth Stearns, Mark Johnson, and the Enterprise Team?“Designing Enterprise Applications with the J2EETM Platform, Second Edition”
3.?Java? 2 Platform Enterprise Edition Specification, v1.3

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品欧美日韩| 欧美一级精品大片| 亚洲伊人色欲综合网| 亚洲日本黄色| 亚洲二区在线| 国内精品视频在线播放| 国产精一区二区三区| 欧美视频在线观看免费| 欧美日韩人人澡狠狠躁视频| 欧美成人蜜桃| 免费成人av| 欧美~级网站不卡| 麻豆精品网站| 欧美成人免费一级人片100| 狼狼综合久久久久综合网| 久久久亚洲国产美女国产盗摄| 欧美一区高清| 久久国产精品99国产精| 久久精品国产99国产精品| 久久国产高清| 久久一日本道色综合久久| 久久夜精品va视频免费观看| 久久人人超碰| 玖玖综合伊人| 欧美极品在线视频| 欧美日韩中文在线| 国产精品久久久久久亚洲调教| 国产精品外国| 国产一区二区三区久久悠悠色av| 国模套图日韩精品一区二区| 在线观看欧美黄色| 亚洲国产日韩欧美一区二区三区| 亚洲精品欧美精品| 亚洲天堂av综合网| 欧美亚洲视频一区二区| 久久精品国产第一区二区三区| 亚洲电影免费观看高清完整版在线观看| 久久精品视频免费| 91久久久久久国产精品| 日韩午夜三级在线| 亚洲免费中文| 久久久91精品国产一区二区三区| 久久综合色一综合色88| 欧美激情麻豆| 国产精品日日摸夜夜摸av| 国产真实乱子伦精品视频| 亚洲电影免费观看高清完整版在线 | 亚洲欧美综合国产精品一区| 亚洲成人自拍视频| 一区二区免费在线播放| 欧美一区二区三区在线看| 噜噜噜躁狠狠躁狠狠精品视频| 欧美激情免费观看| 国产伦精品一区二区三区四区免费| 黄色成人av在线| 亚洲最新合集| 亚洲欧美中文日韩在线| 亚洲精选在线观看| 欧美亚洲系列| 欧美黄网免费在线观看| 国产精品欧美日韩一区二区| 在线成人www免费观看视频| 亚洲天堂偷拍| 91久久线看在观草草青青| 亚洲一区精品在线| 久久综合一区| 国产精品拍天天在线| 在线观看亚洲一区| 亚洲一区久久久| 亚洲精品一区中文| 欧美在线观看一区二区| 欧美激情综合五月色丁香| 国产精品一区二区久久| 亚洲日本免费| 欧美一区二区私人影院日本 | 一区二区欧美亚洲| 亚洲黄色影院| 欧美亚洲日本一区| 欧美日韩国产一中文字不卡| 狠狠色噜噜狠狠狠狠色吗综合| 在线一区二区三区四区五区| 亚洲人成人一区二区三区| 亚洲欧美在线视频观看| 欧美大色视频| 韩日欧美一区二区| 亚洲欧美国产制服动漫| 夜夜嗨av一区二区三区免费区| 久久嫩草精品久久久久| 国产精品国色综合久久| 亚洲国产另类精品专区| 久久精品91| 久久国产精品黑丝| 国产精品成人一区二区网站软件 | 一区二区三区av| 欧美xxx在线观看| 国产在线成人| 亚洲欧美日韩一区二区三区在线观看 | 亚洲黄色大片| 久久深夜福利免费观看| 国产精品日韩欧美| 亚洲桃花岛网站| 亚洲亚洲精品三区日韩精品在线视频 | 欧美日韩激情网| 亚洲日本中文字幕| 最新国产拍偷乱拍精品| 久久久视频精品| 国产一区亚洲| 欧美一激情一区二区三区| 亚洲欧美日韩精品一区二区| 欧美日韩国产成人在线| 亚洲国产欧美一区二区三区久久 | 欧美日韩a区| 亚洲国产一区二区在线| 亚洲国产影院| 老牛嫩草一区二区三区日本 | 日韩亚洲欧美成人一区| 免费亚洲电影在线| 在线观看欧美| 亚洲精品国产视频| 美女亚洲精品| 亚洲成色777777女色窝| 亚洲精品国产精品乱码不99| 欧美粗暴jizz性欧美20| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美日韩福利| 99精品热视频| 亚洲一区二区毛片| 欧美亚日韩国产aⅴ精品中极品| aa国产精品| 亚洲免费在线精品一区| 国产精品一区二区久久久| 亚洲一区区二区| 久久av二区| 国内一区二区在线视频观看| 亚洲国产aⅴ天堂久久| 另类综合日韩欧美亚洲| 亚洲国产精品99久久久久久久久| 亚洲精品日本| 欧美日韩国产小视频| 一本色道88久久加勒比精品 | 亚洲调教视频在线观看| 国产精品高潮粉嫩av| 亚洲免费在线观看视频| 久久九九久精品国产免费直播| 黄色在线一区| 亚洲美女福利视频网站| 欧美视频官网| 亚洲欧美在线另类| 毛片av中文字幕一区二区| 亚洲精品一区久久久久久| 亚洲一区二区三区在线观看视频| 国产九九精品视频| 久久精品视频免费观看| 欧美黄色精品| 亚洲一区二区三区精品在线 | 裸体女人亚洲精品一区| 亚洲精品免费在线| 欧美一区二区三区免费观看| 狠狠色丁香久久婷婷综合丁香 | 久久久另类综合| 亚洲国产精彩中文乱码av在线播放| 一本色道久久综合亚洲精品婷婷| 国产精品免费一区二区三区观看| 欧美一区二区三区在线播放| 欧美高清在线精品一区| 一区二区三区色| 久久久青草青青国产亚洲免观| 亚洲激情国产| 欧美一区二区三区在线观看| 亚洲承认在线| 午夜精品一区二区三区电影天堂 | 亚洲欧美日韩综合| 欧美aⅴ一区二区三区视频| 一区二区欧美日韩视频| 久久免费精品日本久久中文字幕| 亚洲人成在线观看网站高清| 先锋亚洲精品| 亚洲高清免费在线| 欧美一区二区精品在线| 亚洲国内在线| 久久久久久久999| 99re66热这里只有精品3直播 | 国产精品成人观看视频国产奇米| 久久精品国产99国产精品| 欧美日韩午夜在线| 久久精品国产精品亚洲综合| 欧美色图首页| 91久久久亚洲精品| 国产婷婷色一区二区三区四区 | 欧美成人在线免费视频| 亚洲欧美www| 欧美国产日韩一区二区三区| 亚洲欧美韩国| 欧美网站在线观看| 亚洲国产婷婷香蕉久久久久久99 | 亚洲区第一页| 国产性做久久久久久| 亚洲午夜精品视频| 在线免费日韩片| 久久久www免费人成黑人精品|