



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一種javaweb應(yīng)用中srus框架的缺陷與改進(jìn)
0本文改進(jìn)方案的內(nèi)容在web應(yīng)用程序體系結(jié)構(gòu)的發(fā)展過程中,它主要經(jīng)歷了兩個(gè)重要的階段:模型1和模型2。在Model1中,JSP頁面訪問Web層的JavaBeans,然后通過超鏈接或請(qǐng)求參數(shù)轉(zhuǎn)向下一個(gè)頁面。在Model1中控制權(quán)分散于各頁面。這不利于開發(fā)人員的合作和程序的維護(hù)。因此產(chǎn)生了Model2。Model2是一種抽象的設(shè)計(jì)思路,它把應(yīng)用劃分為三層模型-視圖-控制器。這種思路的實(shí)現(xiàn)難度較大,而MVC應(yīng)用框架可降低實(shí)現(xiàn)它的難度。MVC應(yīng)用框架很多,其中Struts框架是較流行的。本文分析了Struts框架的缺點(diǎn),提出了Struts框架的改進(jìn)方案。它大量采用XML、Xpath、XSL等技術(shù)和Struts框架,而不再使用JSP,同時(shí)將Struts中的FormBean、Session等需要顯示的內(nèi)容映射成XML內(nèi)容,在XSL(表現(xiàn)層)中通過XSLT、Xpath技術(shù)訪問,從而保證了XSL(表現(xiàn)層)中不再需要任何Java代碼。真正實(shí)現(xiàn)了MVC的承諾。1控制層的結(jié)構(gòu)應(yīng)用框架為Web應(yīng)用的開發(fā)提供了抽象類,我們可以擴(kuò)展這些抽象類來處理請(qǐng)求。Struts中請(qǐng)求的處理通常由Servlet(控制器)完成。它從客戶端接收請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的應(yīng)用模塊。圖1顯示了Struts組件是如何一起工作的。Struts中的視圖部分主要是由JSP組成。模型是以一個(gè)或多個(gè)Bean的形式存在,它主要處理應(yīng)用的業(yè)務(wù)邏輯。由于業(yè)務(wù)邏輯取決于Web應(yīng)用的功能,所以Struts框架未實(shí)現(xiàn)Model。控制器從客戶端(通常指客戶端瀏覽器)接收請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的業(yè)務(wù)邏輯處理,最后把處理結(jié)果發(fā)送給客戶端。在Struts中,控制器層主要組件是ActionServlet,它是Servlet的子類。當(dāng)應(yīng)用初始化時(shí),ActionServlet根據(jù)配置文件(struts-config.xml)加載其他的控制層對(duì)象。Struts配置文件中定義了應(yīng)用的映射關(guān)系,ActionServlet根據(jù)映射關(guān)系把HTTP請(qǐng)求路由到框架中的其他組件。通常,請(qǐng)求首先被轉(zhuǎn)發(fā)給一個(gè)ActionBean(行為類)然后再到JSP。雖然Struts/JSP較之其他模式有許多優(yōu)勢(shì),但它也存在著一些缺點(diǎn)和不足:程序員可以把應(yīng)用邏輯放入JSP。遇到問題時(shí),開發(fā)人員可以很快地加以修改,經(jīng)驗(yàn)表明這實(shí)際上是陷阱。程序結(jié)構(gòu)很容易變得復(fù)雜和難以管理。JSP不能很好地支持XML,也就不能保證生成的結(jié)果文檔(XML或HTML)將會(huì)是100%“格式良好”的。開發(fā)人員需要學(xué)習(xí)如何使用Struts的標(biāo)志庫。事實(shí)上要理解這些Struts的標(biāo)志庫,特別是Bean和HTML標(biāo)志庫的確要花費(fèi)比較長的時(shí)間。開發(fā)人員不能在視圖中用JSP來實(shí)現(xiàn)處理管道。只能做些簡單的include和forward,這樣很明顯就會(huì)限制視圖的靈活性。對(duì)JSP頁面的任何修改都會(huì)導(dǎo)致JSP的重新編譯,這樣是非常耗費(fèi)時(shí)間的。2strutss的改進(jìn)2.1xlat、服務(wù)于xtst的struts框架設(shè)計(jì)為了彌補(bǔ)Struts的不足,本文提出了一種新的方案,它采用XML、Xpath、XSL等技術(shù)和Struts框架,而不再使用JSP,同時(shí)將Struts中的FormBean、Session等需要顯示的內(nèi)容映射成XML內(nèi)容,在XSL(表現(xiàn)層)中通過XSLT、Xpath技術(shù)訪問,從而保證了XSL(表現(xiàn)層)中不再需要任何Java代碼。圖2展示了改進(jìn)的Struts框架設(shè)計(jì)的核心構(gòu)成。從圖2可以看出,改進(jìn)的Struts框架處理流程的最初部分和Struts的類似。不同的地方在于:改進(jìn)的Struts用一個(gè)XSLServlet配合XSLT樣式表實(shí)現(xiàn)了原來在Struts中由JSP實(shí)現(xiàn)的視圖部分。這個(gè)XSLServlet首先根據(jù)Bean和上下文環(huán)境生成XML文檔,然后調(diào)用XSLT進(jìn)行轉(zhuǎn)換。由于我們可以把一個(gè)請(qǐng)求提交給任何一個(gè)已經(jīng)在Struts配置文件中注冊(cè)的URL,所以在這個(gè)過程中不用對(duì)Struts作任何的修改。2.2生成wp文件改進(jìn)的Struts框架的設(shè)計(jì)核心是XSLServlet類的實(shí)現(xiàn)。本文提供了一種實(shí)現(xiàn)方案如圖3所示。XSLServlet首先調(diào)用類DocumentBuilder的方法獲取XML文檔。XML文檔的生成方法有很多,它們都有各自的優(yōu)點(diǎn),可以用基本的Java類創(chuàng)建,也可以依賴于某些強(qiáng)大的類庫。本方案用JDOM產(chǎn)生XML文檔。然后XSLServlet調(diào)用Transformer類中的方法實(shí)現(xiàn)XML文檔的轉(zhuǎn)換。2.3struts框架的主要優(yōu)點(diǎn)(1)支持一些擴(kuò)展XML文件流根據(jù)模式和上下文環(huán)境而生成,樣式表對(duì)XML文件流再進(jìn)行加工。雖然一些XSLT轉(zhuǎn)換器可以支持一些擴(kuò)展,通過這些擴(kuò)展可以在樣式表中調(diào)用Java或是其他類型的語言。但這些擴(kuò)展往往缺乏移植性,而且使用起來比較麻煩。這樣就不能再把業(yè)務(wù)邏輯放入到XSL樣式表。(2)抽樣數(shù)據(jù)的選取Xpath是一種強(qiáng)大的表達(dá)式語言,用來從XML流中抽取數(shù)據(jù)。XSLT使用了W3C標(biāo)準(zhǔn)語言,不但提供了Struts標(biāo)簽庫類似的功能,而且還提供了Struts沒有的功能,比如XSLT支持的函數(shù)和遞歸。(3)對(duì)網(wǎng)格化的struts自動(dòng)存儲(chǔ)資源本地化水平和目標(biāo)語言的復(fù)雜程度會(huì)影響到了頁面的布局。Struts開發(fā)人員通常把所有的文本信息和圖像資源的鏈接根據(jù)不同的地區(qū)保存到一起。根據(jù)用戶的地區(qū),Struts就會(huì)調(diào)用適當(dāng)?shù)馁Y源。改進(jìn)的Struts通過自動(dòng)把資源存儲(chǔ)到DOM中,然后把他們傳遞給視圖。DOM樹包括了從FormBean生成的動(dòng)態(tài)內(nèi)容,可以輕松地用XPath在XSLT樣式表中訪問資源。應(yīng)用的國際化不再通過Java資源捆綁技術(shù)實(shí)現(xiàn),而是通過純XML技術(shù)根據(jù)用戶當(dāng)前的地區(qū)動(dòng)態(tài)地切換樣式表來實(shí)現(xiàn)。(4)xllt轉(zhuǎn)換目前,IE5/6、Mozilla這樣的瀏覽器已經(jīng)能夠在客戶端執(zhí)行XSLT轉(zhuǎn)換。如果要減輕Web服務(wù)器的負(fù)擔(dān),可以在客戶端執(zhí)行XSLT轉(zhuǎn)換。(5)系統(tǒng)接口設(shè)計(jì)改進(jìn)的Struts架構(gòu)的一個(gè)重要特性就是能夠動(dòng)態(tài)改變輸出的內(nèi)容類型以及用戶接口的風(fēng)格。比方說,同樣的應(yīng)用項(xiàng)目可以針對(duì)新老版本的瀏覽器生成相應(yīng)的代碼。利用XSLT可以方便地獲得各種輸出格式:XHTML、XSL/FO、WML、簡單的文本、CSV、PDF、SVG等等。3基于效率的辦公系統(tǒng)架構(gòu)智能大廈是通過對(duì)建筑結(jié)構(gòu)、系統(tǒng)、服務(wù)和管理等要素進(jìn)行分析后,設(shè)計(jì)的一種投資少、效率高的舒適溫馨又便利的場所。從功能上講,它又被稱為“三A”大廈,即CA(通信自動(dòng)化)、OA(辦公自動(dòng)化)和BA(樓宇管理自動(dòng)化)。OA系統(tǒng)使人們借助Internet更快地獲得更多的多媒體信息,最大限度地提高辦公效率和改進(jìn)辦公質(zhì)量,縮短辦公周期,減少和避免各種差錯(cuò),提高管理和決策的科學(xué)水平。系統(tǒng)架構(gòu)圖如圖4所示。系統(tǒng)功能:(1)人事、財(cái)務(wù)模塊它包括人事管理、考勤管理及薪資管理。財(cái)務(wù)管理的功能主要是基于會(huì)計(jì)核算的數(shù)據(jù),再加以分析,從而進(jìn)行相應(yīng)的預(yù)測(cè),管理和控制活動(dòng)。它側(cè)重于財(cái)務(wù)計(jì)劃、控制、分析和預(yù)測(cè)。(2)領(lǐng)導(dǎo)辦公模塊該模塊主要包括公文管理、文檔管理、總經(jīng)理查詢管理、本行業(yè)國內(nèi)外商情管理。(3)管理模塊該模塊主要包括酒店管理、客房管理、停車場管理、大廈運(yùn)行管理。(4)商場模塊該模塊主要包括商場POS管理、商品供銷存管理、舞廳健身管理。(5)公共服務(wù)模塊該模塊主要包括交通時(shí)刻表與訂票管理、顧客綜合服務(wù)管理、游覽觀光服務(wù)管理、娛樂服務(wù)管理。根據(jù)系統(tǒng)需求,考慮到開發(fā)的效率、維護(hù)的可能性以及擴(kuò)展的方便性,我們采用了改進(jìn)的Struts框架。使得頁面設(shè)計(jì)者和程序開發(fā)者更好地協(xié)調(diào)工作,從而提高應(yīng)用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年砼空心砌塊(承重型)項(xiàng)目合作計(jì)劃書
- 供水設(shè)施智能化改造項(xiàng)目實(shí)施進(jìn)度安排
- 2025至2030年中國快速硅膠模數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 商品房購銷合同簽署完就必須辦銀行貸款
- 二零二五年度公司免責(zé)的跨境電商合作協(xié)議
- 2025至2030年中國干荷電摩托車蓄電池?cái)?shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 集體合同2025年度生效時(shí)間規(guī)定及員工勞動(dòng)爭議調(diào)解機(jī)制
- 2025年度獨(dú)家區(qū)域招商代理服務(wù)合同
- 二零二五年度公司股權(quán)轉(zhuǎn)讓與市場推廣合同
- 2025年度高效節(jié)能型手變壓器批量買賣合同模板
- 礦山開采與環(huán)境保護(hù)
- 企業(yè)事業(yè)部制的管理與監(jiān)督機(jī)制
- 兒童體液平衡及液體療法課件
- 勞動(dòng)防護(hù)用品培訓(xùn)試卷帶答案
- ORACLE執(zhí)行計(jì)劃和SQL調(diào)優(yōu)
- 2024年鐘山職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2024年湖南交通職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 研究生導(dǎo)師談心談話記錄內(nèi)容范文
- 小學(xué)機(jī)器人課題報(bào)告
- 《字體設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 圖像生成中的風(fēng)格遷移方法研究
評(píng)論
0/150
提交評(píng)論