《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 业界动态 > J2EE集成开源框架在高校课程改革系统中的应用

J2EE集成开源框架在高校课程改革系统中的应用

2009-06-05
作者:李文杰,翁胜利
關(guān)鍵詞: 开源 加载 三种 客户端 应用程序

??? 摘 要:以高校課程改革為應(yīng)用實(shí)例,通過對(duì)基于WebWork、Spring和Hibernate的J2EE輕量級(jí)集成框架的研究與應(yīng)用,以及對(duì)三種開源軟件基礎(chǔ)技術(shù)的介紹,闡述了集成框架在高校專業(yè)課程改革系統(tǒng)開發(fā)中代碼復(fù)用、系統(tǒng)開發(fā)效率以及在提高數(shù)據(jù)預(yù)處理和數(shù)據(jù)挖掘精確度上的優(yōu)勢(shì)。
??? 關(guān)鍵詞:J2EE;集成開源框架;數(shù)據(jù)預(yù)處理

?

??? 隨著信息技術(shù)的發(fā)展以及B/S應(yīng)用程序的廣泛使用,為了能簡(jiǎn)單高效地開發(fā)Web項(xiàng)目,迫切需要一個(gè)通用、穩(wěn)定的集成架構(gòu),以此提高工作效率、增強(qiáng)程序的可維護(hù)性和可擴(kuò)展性。本文選擇開源框架WebWork、Spring和Hibernate,以高校課程改革為應(yīng)用背景,實(shí)現(xiàn)了一套方便靈活、低耦合、易維護(hù)的開發(fā)方式。
1 J2EE開源框架
1.1 MVC模式
??? 傳統(tǒng)的Web項(xiàng)目開發(fā)存在諸多不足,MVC (Model View Controller)模式的出現(xiàn)使其得到了改進(jìn)和完善。在MVC模式中Event導(dǎo)致Controller改變Model或View,或者同時(shí)改變兩者。當(dāng)Controller改變了Model的數(shù)據(jù)或者屬性時(shí),所有依賴的View都會(huì)自動(dòng)更新;當(dāng)Controller改變了View的部分時(shí),View會(huì)從Model中獲取數(shù)據(jù)來刷新自己?;贛VC應(yīng)用程序的開發(fā)是由這3個(gè)部分共同協(xié)作完成,其組件的關(guān)系和功能如圖1所示。

?


??? MVC設(shè)計(jì)模式是利用控制器來分離模型和視圖,從而達(dá)到一種層間松散耦合的效果,減弱業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合性,提高了系統(tǒng)的靈活性、可復(fù)用性和可維護(hù)性。現(xiàn)在網(wǎng)絡(luò)開發(fā)框架多數(shù)都遵循MVC設(shè)計(jì)模式,效果較好。
1.2 WebWork框架
??? WebWork是基于Command設(shè)計(jì)模式的、致力于組件化和代碼重用的強(qiáng)大的開源框架[1]。在利用WebWork框架開發(fā)的過程中,根據(jù)業(yè)務(wù)邏輯創(chuàng)建的實(shí)現(xiàn)方法xAtion擔(dān)任控制器的角色,其實(shí)現(xiàn)了WebWork類庫(kù)中XWork中的Action接口。其主要功能是從請(qǐng)求中獲取前臺(tái)頁面需要傳送的參數(shù)值,把這些值傳遞給執(zhí)行業(yè)務(wù)邏輯操作的模型對(duì)象,由業(yè)務(wù)對(duì)象執(zhí)行業(yè)務(wù)邏輯操作,并返回給轉(zhuǎn)向頁面用來顯示執(zhí)行的結(jié)果。
??? MVC中的表現(xiàn)層負(fù)責(zé)頁面的顯示和業(yè)務(wù)邏輯的處理,利用WebWork的標(biāo)簽庫(kù)與JavaScript腳本語言相結(jié)合的方式實(shí)現(xiàn)。WebWork框架從Web中脫離出來,與框架Struts相比,在Action類的抽象和Web環(huán)境的耦合方面具有優(yōu)勢(shì),在開發(fā)過程中更加方便和實(shí)用。
1.3 Spring框架
??? Spring框架是一個(gè)分層的J2EE應(yīng)用程序框架,它是一個(gè)從實(shí)際項(xiàng)目開發(fā)經(jīng)驗(yàn)中抽取出來的,可高度重用的開發(fā)框架[2]。Spring模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理 Bean 的方式。Spring通過JavaBean模型提供基于IoC 容器的BeanFactory和基于AOP框架的JavaBean組件,不需要維護(hù)組件之間的依賴關(guān)系,只要在配置文件applicationContext.xml中設(shè)置屬性,Spring容器將自動(dòng)依賴注入到相關(guān)的組件,完成業(yè)務(wù)方法層組件的配置與加載。Spring框架與持久層框架Hibernate集成到一起,實(shí)現(xiàn)支持DAO以及事務(wù)策略,提高代碼的可重用性。從而,在Web應(yīng)用開發(fā)過程中,實(shí)現(xiàn)邏輯層和數(shù)據(jù)訪問層的完全分離。
1.4 Hibernate框架
??? Hibernate是一種實(shí)現(xiàn)對(duì)象和關(guān)系映射的框架,對(duì)JDBC進(jìn)行輕量級(jí)對(duì)象封裝,使程序員利用面向?qū)ο蟮乃枷雭聿僮麝P(guān)系數(shù)據(jù)庫(kù),可以減輕開發(fā)者與大量普通數(shù)據(jù)持續(xù)性相聯(lián)系的一些編程任務(wù)。在開發(fā)中,自動(dòng)生成的SQL,使開發(fā)者減少了進(jìn)行對(duì)象轉(zhuǎn)化等繁瑣任務(wù),并能使應(yīng)用程序移植到所有SQL數(shù)據(jù)庫(kù),提供透明的持續(xù)性。在使用Hibernate框架時(shí),通過編寫O/R映射描述文件,完成對(duì)象、關(guān)系數(shù)據(jù)庫(kù)之間的映射,持久對(duì)象則根據(jù)映射文件生成,最后,編寫業(yè)務(wù)邏輯類,從而提高實(shí)際開發(fā)的效率。
2 集成框架原理
??? 整個(gè)J2EE輕量級(jí)Web集成開發(fā)架構(gòu)選用WebWork、Spring和Hibernate 三種框架技術(shù),實(shí)現(xiàn)集成架構(gòu)。客戶端層采用JSP表示,用WebWork的標(biāo)簽庫(kù)和JavaScript實(shí)現(xiàn)客戶端的顯示和控制,做相應(yīng)請(qǐng)求和響應(yīng);表示層用WebWork統(tǒng)一管理視圖和控制器部分,接受客戶端的HTTP請(qǐng)求,創(chuàng)建并調(diào)用對(duì)應(yīng)的Action實(shí)現(xiàn)類,完成與業(yè)務(wù)邏輯層的交互,并返回執(zhí)行結(jié)果到客戶端層;業(yè)務(wù)邏輯層利用接口與實(shí)現(xiàn)相分離的方式編寫對(duì)應(yīng)的Service對(duì)象,在Spring的IoC容器中登記為業(yè)務(wù)模型,由Spring負(fù)責(zé)管理和配置DAO組件,提供對(duì)應(yīng)的Action完成業(yè)務(wù)邏輯等操作,保證數(shù)據(jù)完整性;數(shù)據(jù)持久層采用Hibernate框架,使用導(dǎo)入DAO完成最終的Java類和數(shù)據(jù)庫(kù)間的轉(zhuǎn)換和訪問;數(shù)據(jù)層采用關(guān)系數(shù)據(jù)管理系統(tǒng),如Oracle、MySQL等,整個(gè)集成開發(fā)架構(gòu)如圖2所示。

?

?

??? 采用上述方式,利用這三種框架各自的優(yōu)勢(shì),能有效實(shí)現(xiàn)視圖、控制器與模型的分離,將業(yè)務(wù)邏輯層和數(shù)據(jù)持久層獨(dú)立出來。其中,框架WebWork在Web程序開發(fā)中起到重要作用。
3 集成框架的應(yīng)用
??? 開發(fā)中,有諸多Web項(xiàng)目使用J2EE的開源框架,本文以高校專業(yè)課程改革系統(tǒng)為應(yīng)用實(shí)體,重點(diǎn)介紹利用開源框架WebWork、Spring和Hibernate相結(jié)合的方式開發(fā)Web項(xiàng)目。 選擇MyEclipse作為Java的開發(fā)平臺(tái),直接加載項(xiàng)目所需要的開源框架WebWork、Spring和Hibernate的相關(guān)的類以及配置文件。
3.1 前期準(zhǔn)備
??? 加載開源框架類。在Web項(xiàng)目中,首先導(dǎo)入Spring開源框架,建立SessionFactory對(duì)應(yīng)的類,MyEclipse開發(fā)平臺(tái)將加載Spring運(yùn)行的相關(guān)類和applicationContext.xml配置文件,然后在Spring的基礎(chǔ)之上加載Hibernate,根據(jù)關(guān)系型數(shù)據(jù)庫(kù)所建立的表,依據(jù)MyEclipse中的配置,打開數(shù)據(jù)庫(kù)連接,導(dǎo)入數(shù)據(jù)表的對(duì)象類和一些基本實(shí)現(xiàn)方法。另外,把WebWork相關(guān)的類復(fù)制到項(xiàng)目中,添加XWork.xml文件,并在web.xml文件中配置我們所用的WebWork框架,使加載類在項(xiàng)目中能夠正常的使用。
??? 登錄模塊的應(yīng)用。在實(shí)際Web項(xiàng)目中,這三種框架相結(jié)合使用的事例較多,用法基本相同,只是功能有所差別。以用戶登錄模塊為例,其主要代碼如下:
??? 用戶名:
??? 密碼:
??? XWork.xml的配置。從JSP頁面上將用戶輸入的用戶名和密碼提交后,將轉(zhuǎn)入配置文件XWork.xml中,通過這個(gè)配置文件尋找Java后臺(tái)處理登錄過程邏輯的類,同時(shí)將提交的內(nèi)容轉(zhuǎn)移到Java邏輯類中進(jìn)行判斷處理。
??? 邏輯處理。與上文中XWrok.xml中的配置相對(duì)應(yīng),在LoginAction類中,使用UserLogin邏輯處理方法,判斷用戶名和密碼是否與數(shù)據(jù)庫(kù)中的數(shù)據(jù)相符,以此做出不同處理,并回顯在頁面上。UserLogin方法實(shí)現(xiàn)主要代碼如下:Userlogin:User user = lb.getLoginUser(username);session. setAttribute ('user', user);
??? 另外,在數(shù)據(jù)庫(kù)的導(dǎo)入過程中,根據(jù)數(shù)據(jù)庫(kù)中表的名稱,利用Hibernate框架將對(duì)象類User.java和操作類UserDAO.java導(dǎo)入到項(xiàng)目中,在處理邏輯的過程中直接調(diào)用,以此加速項(xiàng)目開發(fā)的周期。
??? 前臺(tái)頁面響應(yīng)。在后臺(tái)根據(jù)用戶名和密碼做出判斷,在前臺(tái)顯示結(jié)果,主要表現(xiàn)為:一是頁面的轉(zhuǎn)向,通過XWork.xml的配置得出要跳轉(zhuǎn)到哪個(gè)頁面。如上文程序所示,如果返回Action. ERROR,則轉(zhuǎn)向error.jsp;如果返回Action. SUCCESS,則轉(zhuǎn)向index.jsp。另一個(gè)是信息的反饋,通過Session或Request將需要傳送到前臺(tái)頁面的值放到緩沖區(qū)里,然后顯示在JSP頁面相應(yīng)的位置。
??? 從上面這個(gè)登錄流程的簡(jiǎn)單例子可以看出,在整個(gè)集成框架中不存在與業(yè)務(wù)邏輯無關(guān)的垃圾代碼,也沒有SQL查詢語句,整個(gè)開發(fā)過程完全是面向?qū)ο蟮牟僮鞣绞胶涂蓜?dòng)態(tài)配置、可移植的Xml文件,大大提高了開發(fā)效率。
3.2 高校課程改革系統(tǒng)架構(gòu)
??? 在高校課程改革管理系統(tǒng)的開發(fā)中,通過使用基于WebWork、Spring和Hibernate的J2EE輕量級(jí)集成框架,加載開源框架類,依據(jù)MyEclipse中的配置,打開數(shù)據(jù)庫(kù)連接,導(dǎo)入數(shù)據(jù)表的對(duì)象類和一些基本實(shí)現(xiàn)方法。特別是將存有高校專業(yè)課程的Excel表格中的數(shù)據(jù)較完整的導(dǎo)入數(shù)據(jù)庫(kù)中(本文使用SQL server 2000數(shù)據(jù)庫(kù)),以避免人為操作的失誤,同時(shí)也提高了工作效率,為以后對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的“專業(yè)課程”數(shù)據(jù)進(jìn)行預(yù)處理做好鋪墊,提高數(shù)據(jù)挖掘的準(zhǔn)確性和真實(shí)性。課程改革系統(tǒng)架構(gòu)如圖3所示。

?

?

??? 綜上所述,將 WebWork、Spring和Hibernate三種開源框架集成在一起,形成一種輕量級(jí)Web開發(fā)架構(gòu),該架構(gòu)充分發(fā)揮三者的優(yōu)點(diǎn),層次清晰,具有較高的伸縮性、可擴(kuò)展性和可復(fù)用性,開發(fā)簡(jiǎn)潔、維護(hù)方便。通過對(duì)J2EE集成開源架構(gòu)的分析和研究,將其應(yīng)用在高校專業(yè)課程改革管理系統(tǒng)的開發(fā)過程中,使Web項(xiàng)目的設(shè)計(jì)和開發(fā)中具有一定的優(yōu)勢(shì)和廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1]? LIGHTBODY P. WebWork in Action[Z].Manning Publications Co,2005.
[2]? RAIBLE M. Spring Live[Z].Source Beat Publishing,2004.
[3]? 閻宏. Java與模式[M].北京:電子工業(yè)出版社,2005.
[4] ?JOHNSON R. J2EE設(shè)計(jì)開發(fā)編程指南[M].北京: 電子工業(yè)出版社,2003.
[5]? ECKEL B. Java編程思想[M].侯捷,譯.北京: 機(jī)械工業(yè)出版社, 2002.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容