基于SSH2組合框架構(gòu)建Web應(yīng)用程序_第1頁
基于SSH2組合框架構(gòu)建Web應(yīng)用程序_第2頁
基于SSH2組合框架構(gòu)建Web應(yīng)用程序_第3頁
基于SSH2組合框架構(gòu)建Web應(yīng)用程序_第4頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 基于SSH2組合框架構(gòu)建Web應(yīng)用程序 蘇小平Summary:該文分析了JAVA開源架構(gòu)Struts2、Spring和Hibernate各自的特點(diǎn),提出了將這三種架構(gòu)進(jìn)行整合的SSH2組合框架,介紹了該組合框架的詳細(xì)架構(gòu)和框架優(yōu)點(diǎn),并詳細(xì)描述了采用SSH2組合框架構(gòu)建JAVA Web應(yīng)用程序的過程。Key:Struts;Spring;Hibernate;框架;SSH:TP311 :A :1009-3044(2016)28-0103-04隨著信息技術(shù)和Internet的發(fā)展,基于JAVA的Web技術(shù)在各行各業(yè)得到廣泛應(yīng)用。在進(jìn)行軟件開發(fā)時,為了降低開發(fā)成本和開發(fā)周期,也為了使軟件開發(fā)人員能夠?qū)?/p>

2、更多的精力集中于業(yè)務(wù)需求的研發(fā)減少底層代碼的開發(fā)工作,選用良好的開發(fā)框架顯得尤為重要。基于Java的開源架構(gòu)有很多,通常情況下,選用何種架構(gòu)跟項(xiàng)目規(guī)模有直接關(guān)系。對于大型或者超大型的企業(yè)級項(xiàng)目,建議采用Java EE的EJB技術(shù)。對于需要快速開發(fā)的中小型項(xiàng)目,采用輕量級的框架技術(shù)更符合實(shí)際需要?,F(xiàn)在有許多優(yōu)秀的開源的Web開發(fā)框架,例如,用于進(jìn)行數(shù)據(jù)持久化的Hibernate和JFinal、用于進(jìn)行權(quán)限設(shè)計的Shiro以及具有豐富標(biāo)簽庫的Struts2等,在進(jìn)行Web應(yīng)用程序開發(fā)時,我們可以選用其中某一個架構(gòu),也可以將這些架構(gòu)整合起來使用。目前比較流行的是采用SSH2(Struts2+Spri

3、ng+Hibernate)組合框架構(gòu)建JAVA Web應(yīng)用程序,表示層使用具有豐富taglib標(biāo)簽庫的Struts2技術(shù),持久層采用Hibernate框架對數(shù)據(jù)進(jìn)行持久化操作,業(yè)務(wù)層采用Spring框架在層與層之間解耦。1 關(guān)鍵技術(shù)介紹1.1 Struts2Struts最早于2000年5月作為Jakarta項(xiàng)目的組成部分,Struts1框架是在 JSP Model2基礎(chǔ)上實(shí)現(xiàn)的MVC(Model-View-Controller)框架,它是世界上第一個發(fā)布的MVC框架。由于Struts1與JSP和Servlet的緊耦合性導(dǎo)致它存在很多缺陷,也制約了其發(fā)展,從而呼喚Struts2的出現(xiàn)。Strut

4、s2與Struts1在本質(zhì)上有很大的區(qū)別,它沒有使用Struts1的設(shè)計核心,而是基于WebWork進(jìn)行架構(gòu)設(shè)計,它是第二代基于MVC模型的Web應(yīng)用框架。Struts2不僅擁有功能強(qiáng)大的表達(dá)式語言和豐富的標(biāo)簽庫,還可以通過攔截器對用戶請求進(jìn)行處理,從而對業(yè)務(wù)邏輯控制器和Servlet進(jìn)行分離,降低程序的耦合性。1.2 SpringSpring是為了解決Web應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的,極大地簡化了企業(yè)級系統(tǒng)的開發(fā)過程。它的核心技術(shù)包括兩個方面,一是反轉(zhuǎn)控制(Inverser of Control,IoC),另一個是面向切面編程(Aspect-Oriented Programming,AOP)

5、。Spring是一個輕量級分層架構(gòu)框架,由7個模塊組成,分別是:Spring Core(核心容器)、Spring Context(應(yīng)用上下文模塊)、Spring AOP模塊、Spring DAO(JDBC抽象和DAO支持模塊)、Spring ORM(對象/關(guān)系映射集成模塊)、Spring Web模塊、Spring Web MVC模塊,這些模塊可以單獨(dú)使用,也可以與其他一個或多個模塊組合使用。Spring中包含了非常豐富的內(nèi)容,包括表示層和數(shù)據(jù)層,它提供了許多原來只有EJB才能提供的功能(如聲明式的事務(wù)管理等),但Spring又無需運(yùn)行在EJB容器中。Spring本身就是一個容器,它可以對系統(tǒng)對

6、象的生命周期進(jìn)行配置和管理。在SSH2組合框架中主要將Spring應(yīng)用于中間的業(yè)務(wù)層,使用接口松散耦合的JavaBeans實(shí)現(xiàn)的對象模型可以通過XML配置文件進(jìn)行組合。1.3 HibernateHibernate是一個開源的對象關(guān)系映射(Object-Relation Mapping,ORM)框架,是JAVA類與數(shù)據(jù)庫表進(jìn)行映射的工具,映射后持久化類的每個實(shí)例對應(yīng)數(shù)據(jù)庫表中的一行數(shù)據(jù)。Hibernate對JDBC進(jìn)行了輕量級封裝,以前使用JDBC將數(shù)據(jù)持久化到數(shù)據(jù)庫的過程是:先得到Connection,再得到Statement,然后調(diào)用Statement的execute方法執(zhí)行sql語句。這樣

7、寫出的程序類似面向過程,而非面向?qū)ο螅⑶页绦蛑星短琢撕芏鄐ql腳本,使得程序員將大量精力放在如何編寫SQL語句上。現(xiàn)在使用Hibernate框架通過面向?qū)ο蟮姆绞綄?shù)據(jù)進(jìn)行持久化,可以讓Hibernate幫我們生成相應(yīng)的SQL語句,程序員只需要操作對象就可以對數(shù)據(jù)庫表進(jìn)行增刪改查操作。2 SSH2組合框架在進(jìn)行軟件開發(fā)時使用成熟的框架就相當(dāng)于讓別人幫你完成了一些基礎(chǔ)的工作,使用Struts2、Spring和Hibernate這3種優(yōu)秀的輕量級框架組成的SSH2組合框架可以充分發(fā)揮各個框架在Web應(yīng)用不同層面的作用。2.1 SSH2組合框架詳細(xì)架構(gòu)SSH2組合框架分為三層:分別是持久層、業(yè)務(wù)層

8、和表現(xiàn)層。每層具有明確的責(zé)任,數(shù)據(jù)層使用Hibernate對數(shù)據(jù)庫進(jìn)行增刪改查操作,業(yè)務(wù)層使用Spring框架實(shí)現(xiàn)松耦合,表現(xiàn)層使用Struts2負(fù)責(zé)頁面的請求和轉(zhuǎn)發(fā)等。SSH2組合框架示意圖如圖1所示。持久層:通過Hibernate的ORM將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,從而實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。具體過程是,首先分析模塊所要涉及的表,確定表之間的關(guān)系后進(jìn)行數(shù)據(jù)庫設(shè)計,然后用Hibernate提供的工具將數(shù)據(jù)表轉(zhuǎn)化為POJO對象,再用面向?qū)ο蟮姆绞竭M(jìn)一步操作這些對象以達(dá)到對數(shù)據(jù)的持久化控制。業(yè)務(wù)層:位于三層架構(gòu)的中間層,主要由Spring負(fù)責(zé)業(yè)務(wù)層處理。利用Spring的IOC容器實(shí)現(xiàn)

9、功能模塊的松耦合相連,利用Spring的AOP將業(yè)務(wù)邏輯從系統(tǒng)服務(wù)(如監(jiān)控和事務(wù)處理)中分離出來,從而實(shí)現(xiàn)內(nèi)聚開發(fā)。 表現(xiàn)層:表現(xiàn)層采用Struts2框架對用戶請求進(jìn)行響應(yīng)。Struts2提供了豐富的Taglib標(biāo)記庫,極大地提高了開發(fā)效率,并且具有頁面導(dǎo)航優(yōu)勢,通過一個配置文件struts.xml就可以把握整個系統(tǒng)各部分之間的關(guān)系,便于后期的維護(hù)和管理。2.2 SSH2框架的優(yōu)點(diǎn)基于SSH2的Web應(yīng)用架構(gòu)整合了Struts2、Spring和Hibernate這3個輕量級的開源框架,具有如下優(yōu)點(diǎn):1)屬于開源架構(gòu),開發(fā)者可以更深入了解其內(nèi)部實(shí)現(xiàn)機(jī)制和原理。2)符合典型的三層架構(gòu)模式,表現(xiàn)層、

10、業(yè)務(wù)層和數(shù)據(jù)層架構(gòu)層次分明,降低了層與層之間的耦合性。3)采用MVC模式對業(yè)務(wù)邏輯層、數(shù)據(jù)層和表現(xiàn)層進(jìn)行分離,所有業(yè)務(wù)邏輯都在Service中處理,有利于系統(tǒng)的開發(fā)和維護(hù)。4)SSH已經(jīng)把底層實(shí)現(xiàn)封裝好了,軟件開發(fā)者不僅可以在此基礎(chǔ)上實(shí)現(xiàn)快速,而且可以更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。5)配置靈活,支持國際化,并且具有很高的重用性。6)擴(kuò)展性強(qiáng),通過配置文件的形式實(shí)現(xiàn)擴(kuò)展。3 采用SSH2組合框架構(gòu)建Web應(yīng)用程序使用SSH2組合框架進(jìn)行程序開發(fā),需要開發(fā)人員在IDE(例如MyEclipse)環(huán)境中正確導(dǎo)入并配置好Struts、Spring和Hibernate。搭建SSH2架構(gòu)的Web應(yīng)用環(huán)境,通常有兩

11、種方式,一種方式是采用自底向上的方式搭建,即先導(dǎo)入Hibernate、再添加Spring支持,然后集成Struts2。另一種方式是采用自上而下的方式搭建,即先加載Struts2,然后添加Spring支持,再集成Hibernate。下面我們著重介紹采用自上而下的方式搭建SSH2開發(fā)架構(gòu)的過程。3.1 新建工程,并創(chuàng)建數(shù)據(jù)庫連接開始一個新的項(xiàng)目, 通常需要先新建工程,另外大多數(shù)Web項(xiàng)目都需要用到數(shù)據(jù)庫,故而新建工程后要創(chuàng)建數(shù)據(jù)庫連接。首先在MyEclipse開發(fā)環(huán)境中新建Web Project工程,然后添加數(shù)據(jù)連接。以創(chuàng)建oracle數(shù)據(jù)連接為例,過程如下:1)點(diǎn)擊圖標(biāo),選擇“MyEclipse

12、 Database Explorer”視圖,MyEclipse開發(fā)環(huán)境左側(cè)窗口變?yōu)镈B Browser;2)在左側(cè)的DB Browser中,點(diǎn)擊鼠標(biāo)右鍵,選擇“New”,彈出如圖2所示菜單;3)在圖2中,填寫數(shù)據(jù)庫相關(guān)信息并添加驅(qū)動類庫ojdbc14.jar;4)點(diǎn)擊圖2中的“Test Driver”,提示數(shù)據(jù)庫連接成功即可。3.2 添加Struts2支持1)添加Struts2的jar包首先在新建的工程中添加Struts2的jar包struts2-core-2.1.6.jar2)創(chuàng)建struts.xml文件在工程的src目錄下創(chuàng)建struts.xml文件,該文件是Struts2的核心配置文件,

13、用于管理和配置Action攔截器和邏輯視圖映射等,在程序運(yùn)行時該文件會被Struts2框架自動加載。3)添加核心過濾器在工程的web.xml文件,添加Struts2的核心過濾器FilterDispatcher,代碼如下:3.3 添加Spring支持1)通過IDE環(huán)境添加Spring的jar包在MyEclipse視圖下,點(diǎn)擊IDE環(huán)境左側(cè)的工程名,然后選擇”MyEclipse”Add Spring Capabilities”,為新建的工程添加Spring支持,如圖3所示,主要添加Spring 2.5 AOP Librabries、Spring 2.5 Core Librabries、Spring

14、 2.5 Persistence Core Librabries、Spring 2.5 Persistence JDBC Librabries、Spring 2.5 web Librabries這5個包。點(diǎn)擊圖3中的“Next”按鈕,打開圖4所示窗口添加Spring bean的配置文件applicationContext.xml,該文件必須放置到WebRoot/WEB-INF目錄下,以便于通過web.xml進(jìn)行加載。2)配置web.xml文件,添加Spring監(jiān)聽器在web.xml文件,添加Spring監(jiān)聽器的代碼如下:3.4 添加Hibernate支持1)通過IDE環(huán)境添加Hibernate

15、的jar包在MyEclipse視圖下,點(diǎn)擊IDE環(huán)境左側(cè)的工程名,然后選擇 “MyEclipse”Add Hibernate Capabilities”,為新建的工程添加Hibernate支持,如圖5所示。2)配置Hibernate點(diǎn)擊圖5中“Next”按鈕,進(jìn)入圖6所示的“Hibernate Configuration”頁面,對Hibernate進(jìn)行初步配置。選中“Spring configuration file(applicationContext.xml)”單選框,意味著我們將會使用Spring中的applicationContext.xml文件對Hibernate Bean進(jìn)行管理。

16、點(diǎn)擊圖6中的“Next”按鈕,對Hibernate進(jìn)行進(jìn)一步配置,如圖7所示,選中“Exiting Spring Contfiguration file”單選框,文本框中輸入“SessionFactory”。1)添加數(shù)據(jù)源點(diǎn)擊圖7中的“Next”按鈕,彈出圖8所示的添加數(shù)據(jù)源窗口,指定一個新的Spring數(shù)據(jù)連接。具體配置如圖8所示,DB Driver處選擇我們前面配置好的數(shù)據(jù)源oracledriver即可。點(diǎn)擊圖8中的“Next”按鈕,在彈出的圖9窗口中取消勾選”Create SessionFactory class”選項(xiàng) ,點(diǎn)擊”Finish”按鈕即完成Hibernate添加。這時,我們的工程完整的添加了Struts、Spring和Hibernate支持,開發(fā)環(huán)境搭建完畢,就可以進(jìn)一步編寫業(yè)務(wù)需求的實(shí)現(xiàn)代碼了。4 結(jié)束語在進(jìn)行JAVA Web工程開發(fā)時,Web應(yīng)用框架的選擇非常重要。本文在深入研究和細(xì)致分析開源框架Struts2、Spring和Hibernate的基礎(chǔ)上,根據(jù)Web應(yīng)用的分層原則,提出采用SSH2組合框架自上而下構(gòu)建Web應(yīng)用程序的方式。使用這種優(yōu)秀的解耦架構(gòu)不僅可以提高開發(fā)效率,縮短開發(fā)周期,節(jié)約開發(fā)成本,而且對后期不斷的需求變更能夠更好地適應(yīng),在多個項(xiàng)目實(shí)施過程中,該組合框架也表現(xiàn)出了良好的性能。Refer

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論