2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  中文3086字</b></p><p>  出處:Yongchang R, Xing T, Xing Z, et al. Application Research for Integrated SSH Combination Framework to Achieve MVC Mode[C]// International Conference on Comput

2、ational and Information Sciences. IEEE Computer Society, 2011:499-502.</p><p>  集成SSH組合框架實(shí)現(xiàn)MVC模式的應(yīng)用研究</p><p>  摘要:MVC是一個(gè)面向企業(yè)級(jí)應(yīng)用,成熟而優(yōu)秀的設(shè)計(jì)模式。J2EE將其作為Web應(yīng)用程序的模式,但對(duì)于目前的各個(gè)框架存在的問(wèn)題,本文使用整合了Struts、Spring

3、和Hibernate三種技術(shù)的SSH框架來(lái)實(shí)現(xiàn)MVC模式。首先,研究一般的MVC設(shè)計(jì)模式的結(jié)構(gòu);然后,研究基于Spring、Struts和Hibernate三種技術(shù)的SSH組合框架;最后,研究SSH框架的基本業(yè)務(wù)流程和操作流程,從而實(shí)現(xiàn)MVC模式。結(jié)果表明,SSH框架可以充分發(fā)揮三者在各自領(lǐng)域的優(yōu)勢(shì),并通過(guò)IoC進(jìn)行組件的裝配,可以很容易地實(shí)現(xiàn)一個(gè)開(kāi)發(fā)簡(jiǎn)單、結(jié)構(gòu)合理、功能強(qiáng)大、層次清晰的Web應(yīng)用程序。</p><p

4、>  關(guān)鍵字:MVC模式;SSH框架;Struts;Spring;Hibernate</p><p><b>  引言</b></p><p>  模式是有經(jīng)驗(yàn)的設(shè)計(jì)師,找出問(wèn)題和解決問(wèn)題的一種處理方式。 MVC已經(jīng)成為一個(gè)面向企業(yè)級(jí)應(yīng)用,成熟而優(yōu)秀的設(shè)計(jì)模式。框架技術(shù)是基于某些應(yīng)用領(lǐng)域的開(kāi)發(fā)模式,它提供了大量的軟件重用,并為開(kāi)發(fā)人員提供一個(gè)統(tǒng)一的軟件開(kāi)發(fā)工具包

5、和模型結(jié)構(gòu),使其從繁瑣的編碼中解脫出來(lái),專(zhuān)注于應(yīng)用程序的業(yè)務(wù)邏輯而屏蔽詳細(xì)的底層代碼,從而提高了開(kāi)發(fā)效率。因此,為了滿(mǎn)足不同應(yīng)用的需求,需要根據(jù)應(yīng)用和分析來(lái)改進(jìn)和擴(kuò)大框架的功能。</p><p>  在J2EE方面,MVC作為Web應(yīng)用程序的首選結(jié)構(gòu)模式,與J2EE應(yīng)用程序模型的結(jié)構(gòu)和MVC模式設(shè)計(jì)理念的一致性是分不開(kāi)的,而且實(shí)踐表明,MVC是一個(gè)很好的設(shè)計(jì)模式。J2EE的復(fù)雜多層結(jié)構(gòu)決定了大型J2EE項(xiàng)目需要使

6、用框架和設(shè)計(jì)模式來(lái)控制。目前市場(chǎng)上有許多基于J2EE的商業(yè)和開(kāi)源應(yīng)用程序框架,其中主流的框架技術(shù)都是基于MVC模式的Struts框架,基于IoC模式的Spring框架以及基于對(duì)象/關(guān)系映射的Hibernate框架。這三個(gè)框架都有自己的長(zhǎng)處和短處,但是整合這三個(gè)框架實(shí)現(xiàn)SSH(Struts+Spring+Hibernate)集成架構(gòu)的MVC模式,可以充分發(fā)揮三者在各自領(lǐng)域的優(yōu)勢(shì),并通過(guò)IOC進(jìn)行組件的裝配,可以很容易地實(shí)現(xiàn)一個(gè)開(kāi)發(fā)簡(jiǎn)單、結(jié)

7、構(gòu)合理、功能強(qiáng)大、層次清晰的Web應(yīng)用程序。</p><p><b>  MVC設(shè)計(jì)模式</b></p><p>  MVC(模型-視圖-控制器)是以模型、視圖、控制器的第一個(gè)字母命名的,根據(jù)模型、視圖、控制器的特點(diǎn)將應(yīng)用程序的輸入、業(yè)務(wù)邏輯和輸出進(jìn)行分離。應(yīng)用程序可以被分為模型層、視圖層和控制層,結(jié)構(gòu)如圖1所示[1]。</p><p>  圖

8、1 MVC設(shè)計(jì)模式結(jié)構(gòu)圖</p><p>  視圖代表用戶(hù)界面,是用戶(hù)和應(yīng)用程序之間的接口。對(duì)于J2EE的Web應(yīng)用程序,視圖主要是用HTML和JSP來(lái)完成的。MVC設(shè)計(jì)模式對(duì)于視圖的處理是不涉及業(yè)務(wù)流程的,這里操作將由模型來(lái)完成。因此,用戶(hù)或接口開(kāi)發(fā)人員無(wú)需掌握數(shù)據(jù)庫(kù)知識(shí)和業(yè)務(wù)邏輯的操作。</p><p>  模型封裝了應(yīng)用程序的業(yè)務(wù)邏輯和數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)了軟件的功能,是MVC框架應(yīng)用程序

9、的核心部分。業(yè)務(wù)邏輯的處理是對(duì)其他層進(jìn)行暗箱操作。模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。但是,“模型”并不依賴(lài)于“視圖”和“控制器”。</p><p>  控制器起到不同層之間的組織作用,用來(lái)控制應(yīng)用程序的進(jìn)程和響應(yīng)事件。 “事件”包括用戶(hù)的行為和數(shù)據(jù)模型的改變。“控制器”是一個(gè)調(diào)度員,為“模型”或“視圖”分配不同的請(qǐng)求,但控制層并不做任何的數(shù)據(jù)處理。用戶(hù)點(diǎn)擊網(wǎng)頁(yè)中的提交按鈕,觸發(fā)控制器,控制器調(diào)用相應(yīng)的

10、模型組件進(jìn)行業(yè)務(wù)操作,最后通過(guò)相應(yīng)的視圖顯示結(jié)果。</p><p><b>  集成SSH技術(shù)框架</b></p><p>  SSH框架通過(guò)Spring、Struts和Hibernate三種技術(shù),改進(jìn)了傳統(tǒng)的J2EE Web開(kāi)發(fā)模式,形成一個(gè)新的、輕量級(jí)的J2EE框架??蚣荏w系結(jié)構(gòu)如圖2所示。</p><p>  圖2 集成SSH技術(shù)框架結(jié)構(gòu)

11、圖</p><p>  集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層。其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,利用Hibernate框架來(lái)支持表現(xiàn)層和Spring管理的業(yè)務(wù)層。</p><p>  表現(xiàn)層使用Struts框架。它分為模型,視圖和控制器三部分組成。視圖主要由JSP頁(yè)面負(fù)責(zé),沒(méi)有進(jìn)程邏輯、業(yè)務(wù)

12、邏輯和模型信息,只有相應(yīng)的標(biāo)記??刂破魇鞘褂肁ctionServlet接收來(lái)自客戶(hù)端的所有請(qǐng)求,然后根據(jù)配置文件(struts-config.xml)將接收到的請(qǐng)求委派給相應(yīng)的Action處理。 Struts的沒(méi)有定義具體模型層的實(shí)現(xiàn),模型層通常與業(yè)務(wù)邏輯緊密相關(guān),并具有持久性的要求。</p><p>  業(yè)務(wù)邏輯層使用Spring框架。這是一個(gè)強(qiáng)大的輕量級(jí)框架,解決了J2EE中許多常見(jiàn)問(wèn)題,并可以替代EJB技術(shù)

13、。Spring框架的核心是IoC(控制反轉(zhuǎn))/ DI(依賴(lài)注入)機(jī)制。Spring框架由七個(gè)定義明確的模塊組成,每個(gè)模塊或組件都可以單獨(dú)存在,也可以與其他的一個(gè)或多個(gè)模塊結(jié)合使用。Spring框架是一個(gè)為企業(yè)應(yīng)用提供的解決方案,同時(shí)它也是模塊化的框架,允許開(kāi)發(fā)者自由的選擇各個(gè)模塊來(lái)開(kāi)發(fā)適合他們的應(yīng)用程序。 </p><p>  Hibernate通過(guò)對(duì)JDBC的封裝,為編程屏蔽了底層數(shù)據(jù)庫(kù)的操作,所以程序員可以專(zhuān)

14、注于面向?qū)ο髴?yīng)用程序的開(kāi)發(fā),提高開(kāi)發(fā)效率。而程序員訪問(wèn)數(shù)據(jù)庫(kù)的工作的是通過(guò)為持久化對(duì)象編寫(xiě)XML映射文件來(lái)完成的。如果要更改底層數(shù)據(jù)庫(kù),則只需要更改初始配置文件(hibernate.cfg.xml或hibernate.properties),不會(huì)對(duì)應(yīng)用程序產(chǎn)生任何影響。 Hibernate為快速發(fā)展的應(yīng)用提供了底層支持。</p><p>  SSH框架實(shí)現(xiàn)MVC的操作過(guò)程</p><p>

15、  Struts是表現(xiàn)層框架,用戶(hù)在表示層的操作看起來(lái)好像只作用在表示層,但實(shí)際上,要完成頁(yè)面操作必須依賴(lài)于業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。如表現(xiàn)層通過(guò)業(yè)務(wù)邏輯來(lái)決定哪些數(shù)據(jù)需要從數(shù)據(jù)持久層中提取出來(lái),接收數(shù)據(jù)時(shí)需要業(yè)務(wù)邏輯框架Spring來(lái)實(shí)現(xiàn)事務(wù)控制和異常處理。所以,用戶(hù)在表示層的操作是三個(gè)框架協(xié)同工作的過(guò)程,如圖3所示[3]。</p><p>  圖3 SSH框架協(xié)同工作流程圖</p><p&g

16、t;  基本業(yè)務(wù)流程是:在表示層,首先通過(guò)JSP頁(yè)面實(shí)現(xiàn)交互界面,負(fù)責(zé)發(fā)送請(qǐng)求和接收響應(yīng),然后根據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應(yīng)的Action處理。在業(yè)務(wù)層中,管理服務(wù)組件的Spring IoC容器負(fù)責(zé)向業(yè)務(wù)模型(Action Model)組件和該組件的協(xié)作對(duì)象數(shù)據(jù)處理(DAO)組件提供服務(wù)來(lái)完成業(yè)務(wù)邏輯,并提供事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)

17、的完整性。而在持久層中,則依賴(lài)于Hibernate的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理DAO組件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果。在業(yè)務(wù)層,管理服務(wù)組件的Spring IoC容器負(fù)責(zé)的行為模式組件和該組件來(lái)完成業(yè)務(wù)邏輯的DAO提供服務(wù),并提供事務(wù)處理,緩沖池等容器組件,以提高系統(tǒng)性能并保證數(shù)據(jù)的完整性。而在持久層中,則依賴(lài)于Hibernate的對(duì)象化映射和數(shù)據(jù)庫(kù)交互,處理DAO組件請(qǐng)求的數(shù)據(jù),并返回處理結(jié)果。具體流程如下所示:</p>

18、<p>  用戶(hù)執(zhí)行頁(yè)面上的一個(gè)動(dòng)作,觸發(fā)Struts框架接收這個(gè)動(dòng)作,并在配置文件(Struts-config.xml)中找到與之匹配的Action,然后查看配置模塊中驗(yàn)證屬性的值是否為true,如果是true,則使用數(shù)據(jù)驗(yàn)證框架來(lái)對(duì)ActionForm中指定屬性名稱(chēng)的數(shù)據(jù)進(jìn)行驗(yàn)證。如果驗(yàn)證通過(guò),或者驗(yàn)證屬性的值是false,則使用Action類(lèi)中指定的屬性類(lèi)型進(jìn)行處理。同時(shí),由于集成了Spring業(yè)務(wù)邏輯框架,在配置文件

19、中使用的Action類(lèi)實(shí)際上是Spring框架封裝的DelegatingActionProxy代理類(lèi),所以,業(yè)務(wù)流程的控制權(quán)限將從Struts的轉(zhuǎn)移到Spring。</p><p>  當(dāng)系統(tǒng)調(diào)用Spring代理類(lèi),獲得業(yè)務(wù)流程控制權(quán)限的Spring框架在配置文件(applicationContext.xml)中找到Struts框架所調(diào)用的Action類(lèi)。然后使用Spring的IOC自動(dòng)為Action注入繼承自H

20、ibernateDaoSupport類(lèi)的userDAO實(shí)例。這個(gè)實(shí)例是由用戶(hù)自己編寫(xiě),并且封裝了各種系統(tǒng)所需的業(yè)務(wù)邏輯方法和數(shù)據(jù)訪問(wèn)代碼。當(dāng)這個(gè)實(shí)例對(duì)數(shù)據(jù)進(jìn)行寫(xiě)操作時(shí),將使用Hibernate框架來(lái)實(shí)現(xiàn)數(shù)據(jù)持久化。當(dāng)完成此Action的操作后,返回相應(yīng)的頁(yè)面給用戶(hù),同時(shí)系統(tǒng)的控制權(quán)限將轉(zhuǎn)移到Struts。</p><p>  綜上所述,Spring框架在整個(gè)系統(tǒng)控制的過(guò)程中有著重要的作用,它類(lèi)似于一個(gè)簡(jiǎn)化的輕量級(jí)

21、EJB容器,與EJB容器具有的相同的功能,但是實(shí)現(xiàn)這些功能所需要的資源和成本卻顯著降低,而且效率顯著改善。在此框架容器的控制下Hibernate實(shí)現(xiàn)了數(shù)據(jù)持久層,同時(shí),通過(guò)這個(gè)框架容器以及架構(gòu)的特性,實(shí)現(xiàn)了事務(wù)和安全控制。而Struts則通過(guò)與Spring集成,將業(yè)務(wù)邏輯交給Spring來(lái)處理,并與Spring一同控制,提高了數(shù)據(jù)處理的準(zhǔn)確性。</p><p><b>  總結(jié)</b><

22、;/p><p>  框架是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法,具有即插即用的可重用性,成熟和良好的團(tuán)隊(duì)協(xié)作的穩(wěn)定性等特點(diǎn)。本文分析了Struts、Spring和Hibernate這三個(gè)開(kāi)源框架,集成了表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層屬于邏輯框架的特點(diǎn),提出了使用集成Struts、Spring和Hibernate的SSH框架來(lái)構(gòu)建一個(gè)輕量級(jí)、通用的J2EE開(kāi)發(fā)平臺(tái),有開(kāi)發(fā)周期短、低成本、

23、低耦合、易擴(kuò)展移植等優(yōu)點(diǎn),用于指導(dǎo)大型Web應(yīng)用程序的開(kāi)發(fā)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] Xu Meng, “The Triple Master Business Management System Design and Implement Based On the SSH2 Framework of MVC Mode,”

24、 Master’s degree of Ocean University of China, 2010.</p><p>  [2] Cheng Gang, “The Research and Application of the J2EE Developing Platform Based on SSH,” Master’s degree of Sichuan Normal University, 2007.&

25、lt;/p><p>  [3] Wang Chunchao, “Research of base-J2EE Architecture SSH Combination Framework,” Master’s degree of Changchun University of Science and Technology, 2009.</p><p>  [4] Liu F, Guo HX, Q

26、i Q, Wang Q, “The Applied Research of E HR System Based on SSH,” Journal Of Wuhan University Of Technology, vol. 31, no. 3, pp. 98-100, 2009.</p><p>  [5] Wang Y, Tao ZK, “Design and Implementation of Code G

27、enerator Based on the SSH Framework,” Transactions Of Shenyang Ligong University, vol. 27, no. 1, pp. 25-27, 2008.</p><p>  [6] Cheng Y, Li S, Zhao YN, “Research and application of Web framework based on SSH

28、+DWR,” Journal of Nanjing University of Information Science and Technology: Natural Science Edition, vol. 2, no. 5, pp. 455-460, 2010.</p><p>  [7] Li Gang, “Struts2 Definitive Guide,” Publishing House of El

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論