Struts框架在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用-1_第1頁(yè)
Struts框架在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用-1_第2頁(yè)
Struts框架在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用-1_第3頁(yè)
Struts框架在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用-1_第4頁(yè)
Struts框架在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用-1_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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、Struts框架在OA系統(tǒng)開(kāi)發(fā)中的應(yīng)用論文摘要:是基于MVC(Model-View-Controller)的Web應(yīng)用框架,在應(yīng)用開(kāi)發(fā)中將界面和業(yè)務(wù)邏輯進(jìn)行了別離,提高了代碼的可重用性和靈活性。在對(duì)MVC模式、Struts的工作原理進(jìn)行簡(jiǎn)要介紹的根底上,詳細(xì)介紹了基于Struts框架的網(wǎng)上辦公系統(tǒng)的開(kāi)發(fā)思路及具體實(shí)現(xiàn)。論文關(guān)鍵詞:框架,系統(tǒng),開(kāi)發(fā),中的,應(yīng)用為了提高應(yīng)用系統(tǒng)中組件的重用能力和事務(wù)控制的靈活性,越來(lái)越多的開(kāi)發(fā)人員采用MVC設(shè)計(jì)模式來(lái)別離系統(tǒng)的用戶(hù)界面、業(yè)務(wù)邏輯及業(yè)務(wù)控制。Struts框架結(jié)構(gòu)是MVC設(shè)計(jì)模式的一種具體實(shí)現(xiàn),它為Web應(yīng)用提供了一個(gè)通用的框架,使得開(kāi)發(fā)人員可以把精力

2、集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上。此外,Struts框架提供了許多可供擴(kuò)展和定制的技術(shù),使得應(yīng)用程序可以方便地?cái)U(kuò)展框架,更好地適應(yīng)用戶(hù)的實(shí)際需求。本文首先介紹了MVC模式的根本思想及Struts的工作原理,并以網(wǎng)上辦公系統(tǒng)為例,詳細(xì)地說(shuō)明了基于Struts框架進(jìn)行信息管理系統(tǒng)開(kāi)發(fā)的方法與思路。1Struts框架Struts是Apache軟件基金的一個(gè)開(kāi)源工程,是基于MVC設(shè)計(jì)模式構(gòu)建JavaWeb應(yīng)用程序的框架。Struts框架在構(gòu)建復(fù)雜的Web應(yīng)用時(shí),允許把應(yīng)用程序的業(yè)務(wù)邏輯、控制邏輯和表現(xiàn)邏輯進(jìn)行別離,從而提高系統(tǒng)靈活性、重用性和可維護(hù)性,進(jìn)而簡(jiǎn)化Web應(yīng)用程序的開(kāi)發(fā)。1.1MVC模式MVC是

3、80年代Smalltalk中使用的一種軟件模式,目前已經(jīng)被廣泛使用,是J2EE平臺(tái)上推薦使用的設(shè)計(jì)模式。該模式將應(yīng)用系統(tǒng)的輸入、處理和輸出按照Model、View和Controller的方式進(jìn)行徹底的別離,因此應(yīng)用系統(tǒng)就被分為了三個(gè)核心局部:模型、視圖和控制器,它們各自處理各自的事務(wù)。1模型Model:它代表的是應(yīng)用的業(yè)務(wù)邏輯,可以對(duì)業(yè)務(wù)流程、狀態(tài)處理和業(yè)務(wù)規(guī)那么的進(jìn)行制定。業(yè)務(wù)流程的處理過(guò)程對(duì)其它局部來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說(shuō)是MVC最主要的核心。2視圖View:它代表的是應(yīng)用的表示,是與用戶(hù)交互的局部。它一般進(jìn)行數(shù)據(jù)的采集,并把數(shù)據(jù)交

4、給其它局部處理。3控制器Controller:它位于模型與視圖之間,控制著它們之間的交互處理過(guò)程。控制器把客戶(hù)端來(lái)的請(qǐng)求轉(zhuǎn)換成模型能夠理解和執(zhí)行的請(qǐng)求,并且根據(jù)請(qǐng)求選擇處理的模型,接著根據(jù)執(zhí)行結(jié)果斷定下一次顯示的視圖。圖1描述了模型、視圖和控制器三者之間的關(guān)系。在應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程中,通過(guò)該設(shè)計(jì)模式可以將業(yè)務(wù)邏輯、控制邏輯和表現(xiàn)邏輯分別用用不同的組件實(shí)現(xiàn),以提高代碼的重用性和可維護(hù)性。圖1MVC模式圖1.2Struts工作原理Struts是一個(gè)開(kāi)放資源框架,是MVC設(shè)計(jì)模式的一個(gè)實(shí)現(xiàn),由一組相互協(xié)作的類(lèi)、Servlet以及JSP標(biāo)簽庫(kù)組成。Struts的體系結(jié)構(gòu)將Model、View、Contr

5、oller分別映射到Web應(yīng)用中的組件。在Struts中Model由Action和ActionForm對(duì)象來(lái)實(shí)現(xiàn),所有的Action處理器對(duì)象都是Action類(lèi)的子類(lèi),Action處理器對(duì)象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到相關(guān)的View組件以產(chǎn)生響應(yīng)。通過(guò)ActionForm組件對(duì)象實(shí)現(xiàn)了對(duì)View和Model根本的控制器組件是ActionServlet,但是對(duì)于業(yè)務(wù)邏輯的操作那么主要由Action、ActionMapping和ActionForward這幾個(gè)組件協(xié)調(diào)完成。其中Action扮演了真正的業(yè)務(wù)邏輯的實(shí)現(xiàn)者,或者說(shuō)是業(yè)務(wù)邏輯調(diào)用的接口;而ActionMappi

6、ng和ActionForward那么制定了不同業(yè)務(wù)邏輯或流程的運(yùn)行方向,其工作原理如圖2所示。圖2Struts的工作原理2網(wǎng)上辦公系統(tǒng)的實(shí)現(xiàn)2.1系統(tǒng)介紹網(wǎng)上辦公系統(tǒng)是為幫助企事業(yè)單位內(nèi)部員工更好地進(jìn)行合作或更有效地工作而設(shè)計(jì)的,旨在實(shí)現(xiàn)企事業(yè)單位內(nèi)部的無(wú)紙化辦公。由于不同單位所需辦公系統(tǒng)功能的不同,在此我們選取了網(wǎng)上辦公系統(tǒng)中通用的幾個(gè)模塊進(jìn)行了實(shí)現(xiàn),主要包括:文件夾、待辦事項(xiàng)、通訊錄、日程安排、文件柜、電子公告、用戶(hù)設(shè)置和系統(tǒng)管理等模塊。2.2系統(tǒng)實(shí)現(xiàn)由于系統(tǒng)各功能的實(shí)現(xiàn)無(wú)論是在步驟上,還是在方法上都是大同小異,所以在此以用戶(hù)登錄為例詳細(xì)說(shuō)明該系統(tǒng)的實(shí)現(xiàn)方法及思路。在登錄窗口當(dāng)用戶(hù)輸入用戶(hù)

7、名和密碼,點(diǎn)擊登錄;按鈕,即向Controller發(fā)出一個(gè)HTTP請(qǐng)求。用戶(hù)輸入的表單參數(shù)將以LoginForm的形式封裝提交到ActionForward。這個(gè)ActionForward調(diào)用相應(yīng)的login執(zhí)行業(yè)務(wù)邏輯,完成用戶(hù)登錄功能。以下是登錄功能的具體實(shí)現(xiàn)過(guò)程:首先,編寫(xiě)登錄相關(guān)的業(yè)務(wù)邏輯代碼,其具體代碼如下所示:publicintlogin(Stringuid,Stringpwd)throwsOAServiceExceptionSessionsession=null;Transactiontx=null;Queryquery1=null;Queryquery2=null;intresu

8、lt=1;trysession=HibernateUtil.getSession();tx=session.beginTransaction();query1=session.createQuery(fromUseruwhereu.uid=:vUid);query1.setParameter(vUid,uid);if(query1.uniqueResult()=null)return1;query2=session.createQuery(fromUseruwhereu.uid=:vUidandu.password=:vPwd);query2.setParameter(vUid,uid);qu

9、ery2.setParameter(vPwd,pwd);Useru=(User)query2.uniqueResult();tx mit();return(u=null)?2:3);catch(Exceptione)rollBack(tx);finallycloseSession(session);returnresult;然后,編寫(xiě)登錄要用到的ActionForm類(lèi):publicclassLoginFormextendsActionFormprivateStringuid;privateStringpassword;publicActionErrorsvalidate(ActionMappi

10、ngmapping,HttpServletRequestrequest)ActionErrorserrors=newActionErrors();if(uid.length()if(password.length()returnerrors;publicActionForwardlogin(ActionMappingmapping,ActionFormactionForm,HttpServletRequestrequest,HttpServletResponseresponse)ActionForwardforward=null;Stringmsg=null;Useru=null;intres

11、ult=0;LoginFormform=(LoginForm)actionForm;Stringuid=form.getUid();Stringpwd=form.getPassword();tryresult=service.login(uid,pwd);u=service.getUser(uid);catch(OAServiceExceptione)if(u=null)result=2;forward=processResult(result,msg);returnforward;最后,在配置文件中添加與登錄相關(guān)的配置。具體步驟如下:(1)在Struts的配置文件中找到標(biāo)簽,在此標(biāo)簽下添加子

12、標(biāo)簽。其具體內(nèi)容如下:(2)在Struts的配置文件中找到標(biāo)簽,在此標(biāo)簽下添加子元素以及相關(guān)的局部標(biāo)簽。其具體內(nèi)容如下:name=LoginForminput=/login.jspscope=request(3)由于本系統(tǒng)中使用了tiles,因此還得在tiles-defs.xml文件中添加相應(yīng)的配置。登錄模塊的運(yùn)行界面如圖3所示,如果登錄成功,那么進(jìn)入系統(tǒng),系統(tǒng)登錄成功的主界面如圖4所示。圖3用戶(hù)登錄界圖4系統(tǒng)主界面3結(jié)束語(yǔ)Struts作為一種有效的進(jìn)行Web應(yīng)用開(kāi)發(fā)的框架,充分利用了MVC模式的優(yōu)點(diǎn)。應(yīng)用Struts框架構(gòu)建網(wǎng)上辦公系統(tǒng)很好地實(shí)現(xiàn)了業(yè)務(wù)邏輯與表示邏輯的別離,大大簡(jiǎn)化系統(tǒng)開(kāi)發(fā)的難度。尤其是各層邏輯組件的同時(shí)開(kāi)發(fā),縮短了開(kāi)發(fā)周期,其靈活的、大量豐富的標(biāo)記庫(kù)語(yǔ)言大大提高了開(kāi)發(fā)效率,而且應(yīng)用Struts框架構(gòu)建的Web應(yīng)用系統(tǒng),具有良好的可重用性、可維護(hù)性和可擴(kuò)展性。參考文獻(xiàn)1 石海鵬. 基于MVC模式的J2EE應(yīng)用研究與開(kāi)發(fā):. 江西:江西師范大學(xué), 2004.2 馬黎明. 基于J2EE平臺(tái)的Web應(yīng)用系統(tǒng)研究:. 武漢:武漢理工大學(xué),

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論