![基于STRUTS-2框架產(chǎn)品信息Web發(fā)布系統(tǒng)的實現(xiàn)_第1頁](http://file4.renrendoc.com/view/fdf764b92705cd7ece7099989ba67960/fdf764b92705cd7ece7099989ba679601.gif)
![基于STRUTS-2框架產(chǎn)品信息Web發(fā)布系統(tǒng)的實現(xiàn)_第2頁](http://file4.renrendoc.com/view/fdf764b92705cd7ece7099989ba67960/fdf764b92705cd7ece7099989ba679602.gif)
![基于STRUTS-2框架產(chǎn)品信息Web發(fā)布系統(tǒng)的實現(xiàn)_第3頁](http://file4.renrendoc.com/view/fdf764b92705cd7ece7099989ba67960/fdf764b92705cd7ece7099989ba679603.gif)
![基于STRUTS-2框架產(chǎn)品信息Web發(fā)布系統(tǒng)的實現(xiàn)_第4頁](http://file4.renrendoc.com/view/fdf764b92705cd7ece7099989ba67960/fdf764b92705cd7ece7099989ba679604.gif)
![基于STRUTS-2框架產(chǎn)品信息Web發(fā)布系統(tǒng)的實現(xiàn)_第5頁](http://file4.renrendoc.com/view/fdf764b92705cd7ece7099989ba67960/fdf764b92705cd7ece7099989ba679605.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于STRUTS2框架產(chǎn)品信息Web發(fā)布系統(tǒng)的實現(xiàn)
摘要在對STRUTS2框架和MVC2模型分析比較的基礎(chǔ)上,研究了STRUTS2框架的實施方法,將STRUTS2框架應(yīng)用于實際開發(fā),建立了產(chǎn)品信息發(fā)布系統(tǒng)模型,并分析了開發(fā)中的關(guān)鍵問題。關(guān)鍵詞STRUTS2;MVC2;信息發(fā)布系統(tǒng)
1引言隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,JavaEE以其開放性、擴展性和各大廠商的支持,逐漸成為Web應(yīng)用軟件的開發(fā)標準。近幾年來,STRUTS框架作為MVC模型的一個良好實現(xiàn),使基于JavaEE的Web應(yīng)用的開發(fā)能夠獲得更好的可擴展性、可重用性、易開發(fā)性和易維護性。STRUTS出現(xiàn)至今,其自身也在不斷地成熟和完善,STRUTS2(WebWork2)的發(fā)布為JavaEEWeb應(yīng)用的開發(fā)者提供了更好的MVC實現(xiàn)和更加簡單易用的實施方法。我們綜合可擴展性、易使用性等各方面考慮,采用STRUTS2框架,以及JSP、Servlet、JavaBean、JDBC等技術(shù)開發(fā)本產(chǎn)品信息Web發(fā)布系統(tǒng),充分發(fā)揮了STRUTS2框架的優(yōu)勢,使得系統(tǒng)層次清晰,保證了系統(tǒng)的穩(wěn)定高效,并獲得了較好的擴展性和易維護性。
2STRUTS框架概述STRUTS是ApacheJakarta項目組的一個Open-Source項目,是MVC模型的一個良好實現(xiàn)。MVC(Model-View-Controller)模型把一個應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,使得應(yīng)用程序設(shè)計過程更加清晰,提高了系統(tǒng)的靈活性和可擴展性。MVC應(yīng)用于Web便發(fā)展出了MVC2模型,在MVC2模型中,View由JSP來擔(dān)當(dāng),Controller由Servlet來擔(dān)當(dāng),Model由JavaBean/EJB來擔(dān)當(dāng)。Servlet先接受客戶端的請求,然后調(diào)用相應(yīng)的Bean進行業(yè)務(wù)邏輯處理,根據(jù)處理結(jié)果再調(diào)用相應(yīng)的JSP頁面,JSP頁面根據(jù)存儲結(jié)果的Bean生成結(jié)果頁面,返回給客戶端。STRUTS框架包括一組相互協(xié)作的類(組件)、ActionSerlvet以及JSPTaglib標簽庫,實現(xiàn)了MVC2模型中的Controller和View,而MVC2模型中的Model必須由開發(fā)者自己來實現(xiàn),STRUTS提供了抽象類Action,使開發(fā)者能夠?qū)odel應(yīng)用于STRUTS框架。
3STRUTS2體系結(jié)構(gòu)STRUTS2是STRUTS1的更新版本,對STRUTS1進行了改進和升級,例如用Action接口取代了Action抽象類,為每一個請求創(chuàng)建一個Action對象,去掉了ActionForm類,用重新定義的替代了,數(shù)據(jù)校驗方法更加靈活以及采用了分層的國際化方法等等。STRUTS2更好地實現(xiàn)了MVC2模型。其體系結(jié)構(gòu)圖和處理流程如圖1所示。圖1STRUTS2框架體系結(jié)構(gòu)在HttpServletRequest到達Servlet容器之前要經(jīng)過一系列過濾器鏈,包括ActionContextCleanUp過濾器等;然后,F(xiàn)ileterDispatcher被調(diào)用,F(xiàn)ileterDispatcher參考ActionMapper來決定請求是否與相應(yīng)Action相關(guān)聯(lián)。如果ActionMapper確定了請求對一個Action的調(diào)用,它就會將控制權(quán)委托給ActionProxy,ActionProxy創(chuàng)建對應(yīng)的Action實例,然后ActionProxy參考由配置的ConfigurationManager生成ActionInvocation。之后,Action和Interceptor的執(zhí)行都由ActionInvocation來控制。在Action執(zhí)行前可能會執(zhí)行多個Interceptor。當(dāng)Action執(zhí)行結(jié)束后,ActionInvocation根據(jù)中的result配置查找相應(yīng)的結(jié)果頁面,并將Action的執(zhí)行結(jié)果輸出到結(jié)果頁面中。這個頁面一般是使用STRUTS提供的標簽庫編寫的JSP頁面。接下來,ActionInvocation控制Interceptor以反序執(zhí)行。最后,HttpServletResponse根據(jù)中的配置通過相應(yīng)的過濾器,返回客戶端。
4STRUTS2框架的實施1)Action類的實施在STRUTS1中,必須繼承Action抽象類,才能將應(yīng)用集成到STRUTS框架,而在STRUTS2中的實施方法更加簡單,只需要實現(xiàn)Action或ActionSupport接口,甚至可以使用有excute()方法的POJO。而且STRUTS2取消了ActionForm類,直接在Action類中保存頁面提交的輸入信息和需要提交給頁面的輸出信息,對于數(shù)據(jù)的操作更加簡便。在excute()方法中可以直接處理這些信息,并實現(xiàn)對數(shù)據(jù)庫的查詢、增加、刪除和修改。2)映射關(guān)系的配置STRUTS2使用重新定義的關(guān)鍵配置文件來代替STRUTS1中的,通過控制Action請求到Action類的映射,以及Action類到JSP頁面的映射關(guān)系。在文件中,主要使用三種標簽定義這些映射關(guān)系:(1)使用packagename=""namespace=""extends=""標簽,配置Web應(yīng)用中用到的Action類的包的相關(guān)屬性,name屬性指定Action類的包名。(2)使用actionname=""class=""標簽,配置Action類的相關(guān)屬性,其中name屬性指定Action的類名,class屬性用“包名.類名”的格式指定Action類完整的包名和類名。(3)使用result標簽配置某個Action類的輸出頁面,在result標簽的內(nèi)容中,以“/”開頭表示以發(fā)布目錄作為當(dāng)前目錄。3)標簽庫和國際化的實施在STRUTS框架中,JSPTaglib標簽庫和國際化(Internationalization)是對MVC2模型中View模塊的實現(xiàn)。通過在JSP頁面中使用框架提供的標簽庫,可以實現(xiàn)顯示Action中動態(tài)數(shù)據(jù)的目的。對于國際化,STRUTS1將所有的資源簇(ResourceBundle)保存在一個本地資源文件perties文件中,而STRUTS2提供了分層的本地資源文件,我們可以將用到的資源簇分別存放在這些資源文件中,框架可以通過標簽屬性和getText()等方法使用資源文件的內(nèi)容。這些資源文件的搜索順序是:→→Iperties→perties。在開發(fā)過程中通常使用保存一個package中用到的資源簇。在這些資源文件中,其內(nèi)容以“關(guān)鍵字=值”的形式保存,如“username=UserName”。
5系統(tǒng)設(shè)計實現(xiàn)
系統(tǒng)的層次結(jié)構(gòu)本系統(tǒng)的層次結(jié)構(gòu)如圖2所示。圖2系統(tǒng)層次結(jié)構(gòu)
本產(chǎn)品信息發(fā)布系統(tǒng)總體上采用“瀏覽器/Web服務(wù)器/數(shù)據(jù)庫”的三層體系結(jié)構(gòu)。Web服務(wù)器接受請求,STRUTS框架負責(zé)請求的處理,在框架內(nèi)通過特定的映射關(guān)系調(diào)用相應(yīng)的業(yè)務(wù)邏輯,并將結(jié)果以JSP頁面的形式返回客戶端瀏覽器,實現(xiàn)與客戶端的交互。數(shù)據(jù)庫服務(wù)器用來存儲系統(tǒng)用到的所有數(shù)據(jù),數(shù)據(jù)可以由管理員通過數(shù)據(jù)庫管理程序錄入,也可以由擁有權(quán)限的客戶通過客戶端進行管理。系統(tǒng)的客戶端只需要一個瀏覽器,不同的用戶通過瀏覽器對數(shù)據(jù)進行查詢、增加、刪除、修改操作,對信息進行管理。
系統(tǒng)功能結(jié)構(gòu)設(shè)計本系統(tǒng)的功能結(jié)構(gòu)如圖3所示。圖3系統(tǒng)功能結(jié)構(gòu)根據(jù)需求分析,用戶可分為一般用戶、注冊用戶、商家用戶和系統(tǒng)管理員。一般用戶進入該網(wǎng)站后,可以瀏覽該網(wǎng)站的商品內(nèi)容,查找需要的商品信息和商家信息;注冊用戶登錄后,除了擁有一般用戶的全部功能以外,還具有登記缺貨,向商家留言,聯(lián)系商家等功能;商家用戶登錄后,除了擁有注冊用戶的全部功能外,還具有查詢?nèi)必洠l(fā)布新產(chǎn)品,產(chǎn)品下架等功能;系統(tǒng)管理員具有系統(tǒng)的全部功能的使用權(quán)限,可以查看所有用戶資料,核準商家注冊,刪除用戶和商家信息等。
數(shù)據(jù)庫設(shè)計本系統(tǒng)使用SQLServer2000作為后臺數(shù)據(jù)庫,對數(shù)據(jù)信息規(guī)范化后可以得到以下幾個數(shù)據(jù)庫表:user:(用戶ID,用戶名,真實姓名,密碼,性別,地址,電話,e-mail,地址,密碼提示問題,密碼問題答案,簡介,權(quán)限)用來記錄用戶信息,其中“權(quán)限”標明該用戶的使用權(quán)限是注冊用戶、商家或者是系統(tǒng)管理員。mobilePhone:(手機編號,品牌,型號,產(chǎn)地,配件,技術(shù)指標,上市時間...)用來記錄各商家所有手機產(chǎn)品的信息。B2PMap(Boss2ProductMap):(商家ID,手機編號,上架時間,下架時間,庫存,售價)用來記錄單個商家發(fā)布的手機產(chǎn)品的信息。OOS(OutOfStock):(編號,手機名稱,品牌,型號,登記時間,用戶ID)用來記錄用戶登記的缺貨信息。
系統(tǒng)主要功能模塊的實現(xiàn)本產(chǎn)品信息發(fā)布系統(tǒng)為眾多手機銷售商家提供了一個統(tǒng)一的信息發(fā)布平臺,商家用戶登錄后可以將自家銷售的產(chǎn)品信息發(fā)布到本系統(tǒng)上供其它用戶查看,注冊用戶可以通過該系統(tǒng)登記缺少的產(chǎn)品,商家可以根據(jù)登記的缺貨調(diào)整自家的上架產(chǎn)品。因此,商家是本系統(tǒng)的主要用戶對象,產(chǎn)品信息發(fā)布功能是本系統(tǒng)的核心功能。(1)商家發(fā)布產(chǎn)品信息的程序文件是Phone_info_publish.class,該類實現(xiàn)了ActionSupport接口,用相應(yīng)的屬性保存了JSP頁面提交的產(chǎn)品信息數(shù)據(jù),實現(xiàn)了相應(yīng)屬性的getter和setter方法,并在excute()方法中處理這些數(shù)據(jù),將產(chǎn)品信息寫入數(shù)據(jù)庫,主要代碼ContextinitCtx=newInitialContext();Contextctx=(Context)("java:comp/env");Objectobj=(Object)("jdbc/PlatformDB");=(DataSource)obj;=();=(_SCROLL_SENSITIVE,_UPDATABLE);(sql);(2)中映射關(guān)系配置,部分代碼packagename="platform"namespace="/platform"extends="struts-default"actionname="Product_info_public"class="platform.Product_info_public"result/platform//result/action(3)頁面使用Taglib顯示動態(tài)數(shù)據(jù),部分代碼tableborder="1"trth手機編號/thth品牌/thth型號/thth產(chǎn)地/thth配件/th/trlogic:presentname="result"logic:iterateid="phone"name="result"type=""logic:presentname="phone"trtdbean:writename="phone"property="phoneID"http://tdtdbean:writename="phone"property="brand"http://tdtdbean:writename="phone"property="phoneType"http://tdtdbean:writename="phone"property="producingArea"http://tdtdbean:writename="phone"property="accessory"http://td/tr
6結(jié)束語本信息發(fā)布系統(tǒng)采用STRUTS以及JSP、servlet、JavaBean和JDBC等技術(shù),實現(xiàn)了MVC2模型,使得整個系統(tǒng)開發(fā)過
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年流動式空氣質(zhì)量監(jiān)測車合作協(xié)議書
- 2025年個人門面買賣合同格式版(2篇)
- 2025年個人貨車租賃合同常用版(2篇)
- 2025年九年級英語下學(xué)期教學(xué)工作總結(jié)(二篇)
- 2025年個人貨運汽車租賃合同(4篇)
- 2025年個人雇傭協(xié)議參考范文(三篇)
- 2025年九年級教學(xué)管理工作總結(jié)樣本(2篇)
- 2013-2022年北京市中考真題物理試題匯編:電功和電功率章節(jié)綜合
- 2025年中介行業(yè)保密協(xié)議(五篇)
- 2025年個人成交租賃合同模板(三篇)
- 2024年度-脛腓骨骨折
- 2024年職業(yè)衛(wèi)生技術(shù)人員評價方向考試題庫附答案
- 應(yīng)用密碼學(xué)課件
- 紅樓夢詩詞全集
- 礦井通風(fēng)安全培訓(xùn)課件
- 2024年中國國際投資促進中心限責(zé)任公司招聘高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 苯胺合成靛紅工藝
- 質(zhì)量保證發(fā)展史和國外相關(guān)標準簡介
- 三年級上冊數(shù)學(xué)脫式計算大全600題及答案
- 魯教版(五四制)七年級數(shù)學(xué)上冊期末考試卷-附帶答案
- 南京大學(xué)儀器分析習(xí)題集
評論
0/150
提交評論