Servlet、SSH、SSM三種模型技術(shù)的特點(diǎn)及實(shí)現(xiàn),軟件工程論文_第1頁
Servlet、SSH、SSM三種模型技術(shù)的特點(diǎn)及實(shí)現(xiàn),軟件工程論文_第2頁
Servlet、SSH、SSM三種模型技術(shù)的特點(diǎn)及實(shí)現(xiàn),軟件工程論文_第3頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

JSP/Servlet、SSH、SSM三種模型技術(shù)的特點(diǎn)以及實(shí)現(xiàn),軟件工程論文摘要:分析了三種基于MVC分層設(shè)計(jì)思路的JavaWeb框架開發(fā)經(jīng)典模型優(yōu)缺點(diǎn)及適應(yīng)性,并給出各模型實(shí)現(xiàn)經(jīng)過的重點(diǎn)及關(guān)鍵步驟。通過分析可知,模型在開發(fā)中實(shí)現(xiàn)了MVC設(shè)計(jì)形式的低耦合、易維護(hù)和可擴(kuò)展的分層思想,使用者在實(shí)際應(yīng)用中靈敏選擇適宜的開發(fā)模型可極大提高開發(fā)效率,降低開發(fā)和維護(hù)成本。本文關(guān)鍵詞語:JavaWeb框架開發(fā);MVC分層;JSP/Servlet;SSH;SSM;當(dāng)下,信息技術(shù)是推動(dòng)經(jīng)濟(jì)活動(dòng)的重要引擎,作為信息技術(shù)的核心,軟件應(yīng)用程序開發(fā)的重要性不言而喻。JavaWeb是軟件開發(fā)的主要形式之一,JavaWeb采用流行的J2EE架構(gòu),即采用基于MVC(Model,View,Controller〕的分層設(shè)計(jì)思想,對(duì)數(shù)據(jù)持久層〔Model層,即對(duì)數(shù)據(jù)庫的存取〕、業(yè)務(wù)邏輯控制層〔Controller層,即業(yè)務(wù)邏輯請(qǐng)求〕及視圖層〔View層,即用戶顯示〕實(shí)行分開處理形式[1]。隨著開發(fā)技術(shù)發(fā)展及軟件應(yīng)用業(yè)務(wù)需求復(fù)雜性的提升,JavaWeb后臺(tái)框架技術(shù)也隨之快速發(fā)展,流行的JavaWeb框架較多,冗雜的框架及多種與框架相關(guān)的新理念令開發(fā)學(xué)習(xí)者無所適從。除此之外,中大型的項(xiàng)目開場(chǎng)采用分布式技術(shù)、微服務(wù)技術(shù)等,對(duì)開發(fā)者的要求更高層次,越是如此,越要學(xué)習(xí)底層的基本原理[2]。鑒于此,作者選擇JavaWeb框架中幾種典型的JavaWeb框架開發(fā)模型加以介紹,有下面幾種:〔1)EJB;(2)JSP/Servlet;(3)SSH(Struts+Spring+Hibernate);(4)SSM(Spring+SpringMVC+Mybatis);(5)SpringBoot。EJB因其復(fù)雜性被其他模型替代;SpringBoot及后續(xù)的框架當(dāng)前是較多軟件開發(fā)人員學(xué)習(xí)者首選的框架開發(fā)形式,為軟件開發(fā)帶來便捷性的同時(shí)并大大縮短了軟件開發(fā)周期,但它是由SSM框架發(fā)展而來,故開發(fā)者需要重點(diǎn)把握SSM框架模型運(yùn)行機(jī)制。鑒于以上原因,本文重點(diǎn)討論JSP/Servlet、SSH、SSM三種框架模型,通過此三種模型基于MVC分層設(shè)計(jì)思路及實(shí)現(xiàn)經(jīng)過的比照,給出各種模型的優(yōu)缺點(diǎn)及其適應(yīng)性,并分析各模型在分層實(shí)現(xiàn)經(jīng)過中需要注意的重點(diǎn)及關(guān)鍵步驟,為開發(fā)人員學(xué)習(xí)提供借鑒思路。1、JSP/Servlet、SSH、SSM三種模型技術(shù)特點(diǎn)以及適應(yīng)性JSP/Servlet是JavaWeb早期的開發(fā)模型,就個(gè)人觀點(diǎn),同SSH、SSM框架比擬,JSP/Servlet算不上真正的框架模型,由于使用該模型所牽涉的MVC分層業(yè)務(wù)及邏輯編碼工作均由用戶完成,而使用SSH、SSM框架,相應(yīng)環(huán)節(jié)中開發(fā)人員只需清楚明晰系統(tǒng)參數(shù)配置流程并按模型要求正確配置模型所需的參數(shù),系統(tǒng)便可自動(dòng)幫助開發(fā)人員完成數(shù)據(jù)持久層〔Model層,對(duì)數(shù)據(jù)庫的操作〕的封裝,并按需求完成與業(yè)務(wù)邏輯控制層〔Controller層〕的無縫對(duì)接,即將數(shù)據(jù)層注入至業(yè)務(wù)邏輯控制層,讓模型自動(dòng)完成復(fù)雜數(shù)據(jù)存取及業(yè)務(wù)管理工作,無需編寫大量代碼。后階段開發(fā)者則可將重心放至業(yè)務(wù)邏輯控制層〔Controller層〕與視圖層〔View層〕相關(guān)工作,即完成數(shù)據(jù)提取及頁面展示的工作,進(jìn)而大大縮短開發(fā)流程及時(shí)間。需要強(qiáng)調(diào)是,SSH、SSM模型功能較JSP/Servlet模型要強(qiáng)大,但透徹理解JSP/Servlet模型中的Servlet運(yùn)行機(jī)制并靈敏運(yùn)用是學(xué)習(xí)SSH、SSM模型的基礎(chǔ);除此之外,選擇SSH、SSM這兩種組合方式的模型使項(xiàng)目的開發(fā)具有高度的可維護(hù)性和可擴(kuò)展性,同時(shí)可極大提高開發(fā)效率,降低開發(fā)和維護(hù)成本;SSH、SSM模型均以Spring框架為核心,兩者的主要不同之處在于MVC的實(shí)現(xiàn)方式〔Struts與SpringMVC〕及ORM持久化方面〔Hibernate與Mybatis):SSH注重配置開發(fā),華而不實(shí)的Hibernate對(duì)JDBC的完好封裝愈加面向?qū)ο蠡?,?duì)增、刪、改、查的數(shù)據(jù)維護(hù)更自動(dòng)化,但SQL優(yōu)化方面較弱,對(duì)學(xué)習(xí)者要求高;SSM更注重注解式開發(fā),且ORM實(shí)現(xiàn)愈加靈敏,SQL優(yōu)化更簡(jiǎn)便,入門容易。故當(dāng)下傳統(tǒng)企業(yè)項(xiàng)目的開發(fā),使用SSH框架比擬多,而對(duì)性能要求較高的互聯(lián)網(wǎng)項(xiàng)目,通常會(huì)選用SSM框架[3]。下表1給出了三種模型特點(diǎn)的對(duì)照表,通過表格比照可知,開發(fā)人員若把握了以上三種模型并熟練運(yùn)用,對(duì)于其他模型的學(xué)習(xí)或應(yīng)用也能起到觸類旁通之效。在實(shí)際應(yīng)用中可靈敏選擇適宜的開發(fā)模型。表1JSP/Servlet、SSH、SSM三種模型適用性對(duì)照表2、JSP/Servlet、SSH、SSM三種模型實(shí)現(xiàn)的重點(diǎn)及關(guān)鍵步驟基于MVC分層模型中的示圖層是與用戶交互的界面,主要為其他層〔數(shù)據(jù)持久層或者業(yè)務(wù)邏輯控制層〕傳遞數(shù)據(jù)〔根據(jù)業(yè)務(wù)的不同,可分為傳入數(shù)據(jù)或讀取數(shù)據(jù)兩種方式〕,用前臺(tái)相關(guān)工具如Bootstrap、JQuery作JSP頁面展示交互處理,與模型的選擇具有無關(guān)性。另外,使用經(jīng)典框架與微應(yīng)用中跨平臺(tái)數(shù)據(jù)的轉(zhuǎn)換〔如將后端數(shù)據(jù)換轉(zhuǎn)成JSON〕等問題學(xué)習(xí)者可查閱相關(guān)資料。此處重點(diǎn)討論數(shù)據(jù)持久層、業(yè)務(wù)邏輯控制層、視圖層各層的核心內(nèi)容,并分析各模型在分層實(shí)現(xiàn)經(jīng)過中需要注意的重點(diǎn)及關(guān)鍵步驟。最后根據(jù)各模型思路分別實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫中表Student訪問的功能〔各模型分析時(shí)以圖或代碼予以展示〕。2.1、JSP/Servlet模型實(shí)現(xiàn)的重點(diǎn)及關(guān)鍵步驟JSP/Servlet是早期JavaWeb開發(fā)框架模型。該模型因簡(jiǎn)單實(shí)用并按MVC三層開發(fā)思想實(shí)現(xiàn)了相應(yīng)層的業(yè)務(wù),合適初學(xué)者。因而,替代繁瑣而笨重的EJB并迅速成為開發(fā)模型利器。該模型中,數(shù)據(jù)持久層利用JDBC實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表操作,由于頻繁訪問數(shù)據(jù)庫,實(shí)際開發(fā)中通常將這些操作封裝到類中〔不同的表,開創(chuàng)建立獨(dú)立的DAO類,如此圖1〕,每一個(gè)操作對(duì)應(yīng)一個(gè)獨(dú)立方式方法,當(dāng)需要使用該操作時(shí),調(diào)用相應(yīng)的方式方法來完成;業(yè)務(wù)邏輯控制層主要由Servlet來完成,在Servlet中完成參數(shù)的接收,然后使用參數(shù)調(diào)用業(yè)務(wù)邏輯層,根據(jù)調(diào)用結(jié)果的不同跳轉(zhuǎn)到不同的頁面,需注意的是,由于安全運(yùn)行機(jī)制需要,每開創(chuàng)建立一個(gè)Servlet業(yè)務(wù)請(qǐng)求類,必須在web.xml中注冊(cè),而生成的Servlet類文件,固然是由java代碼編寫,但必須發(fā)布至后臺(tái)tomcat下通過閱讀器訪問才能正常運(yùn)行〔圖2—圖3〕,由于Servlet處理邏輯層業(yè)務(wù)優(yōu)秀特色,部分功能被SSH、SSM框架借鑒;JSP程序主要是做顯示層,從頁面發(fā)送請(qǐng)求至業(yè)務(wù)邏輯控制層,邏輯層作出響應(yīng),并將處理后的結(jié)果〔數(shù)據(jù)〕回送至JSP頁面進(jìn)行展示〔圖4〕。圖1利用JDBC實(shí)現(xiàn)的StudentDAO類圖2Servlet類的開創(chuàng)建立固然JSP/Servlet模型具有簡(jiǎn)單易學(xué)特點(diǎn),由于需要開發(fā)者手動(dòng)編寫所有代碼以實(shí)現(xiàn)相應(yīng)的功能,對(duì)于功能復(fù)雜的系統(tǒng)采用該模型則需更長(zhǎng)的開發(fā)周期。故被更為優(yōu)秀模型如SSH所取代。2.2、SSH模型實(shí)現(xiàn)的重點(diǎn)及關(guān)鍵步驟SSH框架也是流行的JavaWeb開發(fā)框架模型,是JSP/Servlet升級(jí)模型。該模型側(cè)重于配置開發(fā),以Spring框架作為核心,Spring充當(dāng)粘合劑的角色,在持久數(shù)據(jù)層與業(yè)務(wù)層之間通過配置界面方式〔以Myeclipse作為開發(fā)工具〕完成相關(guān)參數(shù)的設(shè)置步驟〔圖5—圖6〕,通過Hibernate框架逆向工程方式自動(dòng)生成以數(shù)據(jù)表為操作對(duì)象DAO及相關(guān)類〔圖7—圖9〕,免除了大量代碼的編寫,生成的持久層相關(guān)數(shù)據(jù)通過注入Spring與進(jìn)行整合,進(jìn)而實(shí)現(xiàn)Spring與模型層的對(duì)接〔圖10〕。需要注意的是,Hibernate框架逆向工程生成的DAO類不能實(shí)現(xiàn)事務(wù)管理,對(duì)接后由Spring框架實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的事務(wù)管理機(jī)制,事務(wù)管理分編程式和聲明式兩種,假如在DAO程序中有嚴(yán)格的方式方法命名規(guī)則,在Spring框架配置文件中需予以聲明,否則只需遵循開發(fā)規(guī)則命名即可;在業(yè)務(wù)層與視圖層之間,Spring和Struts整合主要的目的就是讓Spring管理Struts中的Action〔與Servlet功能類似〕,并將業(yè)務(wù)邏輯注入到Action中,可參考相關(guān)資料根據(jù)Struts框架的整合步驟即可完成參數(shù)配置,但需重點(diǎn)關(guān)注業(yè)務(wù)邏輯層注入到Aciton中配置步驟,可采用通用Setter方式方法注入的方式完成〔圖11—圖13〕。通過對(duì)應(yīng)層間的整合,最終SSH實(shí)現(xiàn)基于MVC相關(guān)層的完美整合。圖3Servlet類的注冊(cè)圖4由業(yè)務(wù)層提取結(jié)果至視圖層JSP頁面展示圖5數(shù)據(jù)庫配置圖6操作對(duì)象圖7設(shè)置生成DAO及相關(guān)類圖8逆向工程生成相關(guān)類圖9逆向工程DAO類圖10Hibernate與Spring對(duì)接SSH框架是JavaWeb應(yīng)用開發(fā)中被選用較多的框架,曾一度成為事實(shí)上應(yīng)用開發(fā)的首選,直至由于未更新Struts的安全漏洞而被SSM所替代。2.3、SSM模型實(shí)現(xiàn)的重點(diǎn)及關(guān)鍵步驟如前面所述,SSM框架是當(dāng)下最流行的JavaWeb框架模型,它充分吸收了SSH的優(yōu)勢(shì),比方繼續(xù)保存了Spring框架作為核心。該模型中Spring層實(shí)現(xiàn)業(yè)務(wù)對(duì)象的管理,示圖層使用SpringMVC負(fù)責(zé)請(qǐng)求轉(zhuǎn)發(fā)和視圖管理,模型層則以Mybatis實(shí)現(xiàn)數(shù)據(jù)對(duì)象的持久化引擎管理。用SpringMVC替代有安全漏洞的Struts;以Mybatis替代Hibernate;與JSP/Servlet模型、SSH模型操作數(shù)據(jù)庫必須花費(fèi)精神編寫JDBC冗雜操作數(shù)據(jù)的經(jīng)過代碼不同,Mybatis則通過xml或注解的方式將JDBC操作數(shù)據(jù)庫的經(jīng)過進(jìn)行封裝,開發(fā)者只需重點(diǎn)關(guān)注SQL本身,最后由Mybatis框架執(zhí)行sql并將結(jié)果映射成Java對(duì)象并返回〔如此圖14〕。除此之外,對(duì)數(shù)據(jù)庫中所有需要操作的每一張表都變成以表名+Mapper.xml的文件,xml文件中以表的命名空間包括對(duì)該表操作的sql語句,建議開發(fā)者采用Mybatis逆向工程方式生成表名+Mapper.xml〔如此圖15〕,表名+Mapper.xml相當(dāng)于JSP/Servlet模型、SSH模型中的DAO類文件〔數(shù)據(jù)表操作對(duì)象,包含該表的增刪改查的操作〕,采用xml標(biāo)簽與sql結(jié)合方式,解除了sql和程序代碼的耦合,合適中大型項(xiàng)目開發(fā),不需編寫太多的Java代碼,省卻了編譯經(jīng)過,便于統(tǒng)一管理和優(yōu)化。實(shí)現(xiàn)數(shù)據(jù)對(duì)象持久化的Mybatis以注入方式完成與Spring框架的整合參數(shù)配置及實(shí)現(xiàn)〔圖16—圖18〕,由Spring框架實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的注解事務(wù)管理機(jī)制,開啟對(duì)Mapper代理開發(fā)及自動(dòng)掃包形式。進(jìn)而實(shí)現(xiàn)Spring框架與Mybatis的優(yōu)化整合,開發(fā)人員后期通過進(jìn)一步完善,為SpringMVC層提供數(shù)據(jù)服務(wù)。圖11Struts與Spring對(duì)接配置圖12DAO以Setter的方式注入Spring圖13Action實(shí)當(dāng)代碼圖14Mybatis框架執(zhí)行流程圖圖15逆向工程生成的StudentMapper.xml圖16Spring框架配置文件1圖17Spring框架配置文件2圖18Spring與Mybatis整合注解測(cè)試對(duì)以上三種基于MVC分層設(shè)計(jì)思路模型的實(shí)現(xiàn)經(jīng)過的重點(diǎn)及關(guān)鍵步驟加以分析可知,SSH、SSM這兩種組合方式的模型在項(xiàng)目的開發(fā)中都實(shí)現(xiàn)了MVC設(shè)計(jì)形式的低耦合、易維護(hù)和可擴(kuò)展的分層思想,可極大提高開發(fā)效率,降低開發(fā)和維護(hù)成本,需透徹理解模型才能事半功倍;JSP/Servlet模型則簡(jiǎn)單易學(xué),合適初學(xué)者。把握了以上三種基本模型,開發(fā)人員在學(xué)習(xí)或者應(yīng)用中可根據(jù)實(shí)際需要靈敏選擇適宜的開發(fā)模型。3、結(jié)束語本文分析了三種基于MVC分層設(shè)計(jì)思路的JavaWeb框架開發(fā)經(jīng)典模型優(yōu)缺點(diǎn)及適應(yīng)性,并給出各模型實(shí)現(xiàn)經(jīng)過的重點(diǎn)及關(guān)鍵步驟。通過分析可知,JSP/Servlet模型簡(jiǎn)單容易學(xué)習(xí),但采用該模型后開發(fā)者后續(xù)工作量較大;SSH、SSM這兩種模型需要開發(fā)者有較好的基礎(chǔ)知識(shí),正確配置相關(guān)參數(shù),可為開發(fā)帶來較多的便捷性,并在項(xiàng)目的開發(fā)中實(shí)現(xiàn)了MVC設(shè)計(jì)形式的低耦合、易維護(hù)和可擴(kuò)展的分層思想,可極大提高開發(fā)效率,降低開發(fā)和維護(hù)成本。總之,把握了以上三種經(jīng)典開發(fā)模型并熟練運(yùn)用,對(duì)于其他

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論