潘國(guó)榮
摘要:JSP是當(dāng)今流行的Web應(yīng)用程序開(kāi)發(fā)技術(shù)。使用一種成熟的開(kāi)發(fā)模式能大大提高效率和成功率。本文根據(jù)一簡(jiǎn)單示例對(duì)常用開(kāi)發(fā)模式作一分析和論述。
關(guān)鍵詞:JSP;Web應(yīng)用程序;開(kāi)發(fā)模式
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)16-0124-03
Abstract:JSP is a popular Web application development technology. The use of a mature development model can greatly improve the efficiency and success rate. In this paper, a simple example is used to analyze and discuss the common development mode.
Key words:JSP;Web application; development model
JSP是由Sun公司公司在Java語(yǔ)言的基礎(chǔ)上開(kāi)發(fā)出來(lái)的一種動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù),是Java陣營(yíng)中最具代表性的解決方案,是目前比較流行的開(kāi)發(fā)Web應(yīng)用程序的技術(shù)。使用JSP開(kāi)發(fā)Web應(yīng)用程序有很多種不同的方法,但是隨著用戶需求的不斷拓展和應(yīng)用程序規(guī)模和復(fù)雜性的不斷提提升,使用一種成熟的、可擴(kuò)展的、可調(diào)整的開(kāi)發(fā)方法和模式顯得非常重要。本文根據(jù)一簡(jiǎn)單示例就基于JSP技術(shù)的常用開(kāi)發(fā)模式作一分析和論述。
1 示例項(xiàng)目-簡(jiǎn)單的用戶登錄程序
簡(jiǎn)單的用戶登錄程序是一個(gè)JSP Web程序,主要是實(shí)現(xiàn)用戶的登錄判斷。程序運(yùn)行時(shí),出現(xiàn)如下圖1所示頁(yè)面:
2 純JSP頁(yè)面實(shí)現(xiàn)模式
在這種實(shí)現(xiàn)模式中,所有的程序代碼都寫(xiě)在JSP頁(yè)面文件中,程序的功能都由JSP頁(yè)面實(shí)現(xiàn),用戶發(fā)送的請(qǐng)求直接交給JSP頁(yè)面來(lái)處理。
針對(duì)示例項(xiàng)目,該模式下程序文件清單如下表2所示:
這種實(shí)現(xiàn)模式的主要優(yōu)點(diǎn)就是開(kāi)發(fā)簡(jiǎn)單、迅速且便利,適用于開(kāi)發(fā)小型的Web應(yīng)用程序;但其缺點(diǎn)也非常明顯,大部分的Java代碼和HTML代碼混淆在一起,結(jié)構(gòu)差,會(huì)給程序的調(diào)試和維護(hù)帶來(lái)很多困難,也不利于項(xiàng)目的擴(kuò)展,因此,這種模式是無(wú)法應(yīng)用到比較大的Web應(yīng)用程序的開(kāi)發(fā)中的。
3 JSP+JavaBean實(shí)現(xiàn)模式
該模式是JSP技術(shù)起步時(shí)的經(jīng)典設(shè)計(jì)模式之一。在這種實(shí)現(xiàn)模式中,JSP頁(yè)面負(fù)責(zé)接收用戶發(fā)來(lái)的請(qǐng)求,并在處理后直接進(jìn)行響應(yīng),其間借助JavaBean組件處理業(yè)務(wù)邏輯,如數(shù)據(jù)的封裝、數(shù)據(jù)庫(kù)的連接與操作等。
針對(duì)示例項(xiàng)目,該模式下程序文件清單如下表3所示:
從代碼中可以看出,用戶數(shù)據(jù)被封裝到一個(gè)JavaBean對(duì)象中,對(duì)數(shù)據(jù)庫(kù)的具體操作被封裝到DBUser這個(gè)JavaBean組件中。
這種實(shí)現(xiàn)模式的主要優(yōu)點(diǎn)就是數(shù)據(jù)存儲(chǔ)和處理由JavaBean組件實(shí)現(xiàn),與頁(yè)面分離,不會(huì)和顯示層相干擾,可重復(fù)利用性高;缺點(diǎn)是頁(yè)面仍要負(fù)責(zé)流程控制,頁(yè)面文件中混雜著大量的流程控制的代碼,因此,它仍不是一種很理想的模式。
4 JSP+JavaBean+Servlet實(shí)現(xiàn)模式
在這種實(shí)現(xiàn)模式中,JSP頁(yè)面負(fù)責(zé)接收用戶發(fā)來(lái)的請(qǐng)求及數(shù)據(jù)的顯示,JavaBean組件實(shí)現(xiàn)業(yè)務(wù)邏輯,Servlet用來(lái)執(zhí)行業(yè)務(wù)邏輯并負(fù)責(zé)程序的流程控制,三者角色清晰,分工明確。
5 MVC設(shè)計(jì)模式
MVC,即Model-View-Controller,它是一種設(shè)計(jì)模式,把整個(gè)系統(tǒng)分解成模型、視圖、控制器3個(gè)組件,對(duì)應(yīng)于模型層、視圖層、控制層。模型層就是應(yīng)用的業(yè)務(wù)邏輯部分,視圖層就是用戶界面部分,控制層就是系統(tǒng)的流程控制部分,用于管理用戶與視圖發(fā)生的交互。
JSP+JavaBean+Servlet實(shí)現(xiàn)模式即是MVC設(shè)計(jì)模式的一種典型實(shí)現(xiàn),JSP頁(yè)面實(shí)現(xiàn)了MVC中的視圖層,JavaBean組件實(shí)現(xiàn)了MVC中的模型層,Servlet組件實(shí)現(xiàn)了MVC中的控制層。
6 Struts實(shí)現(xiàn)模式
Struts是一個(gè)基于Java技術(shù)的開(kāi)源框架,它也是MVC設(shè)計(jì)模式的一種具體實(shí)現(xiàn),它對(duì)MVC設(shè)計(jì)模式中的3個(gè)部分進(jìn)行了進(jìn)一步的實(shí)現(xiàn)。在這種實(shí)現(xiàn)模式中,控制器部分是通過(guò)專(zhuān)門(mén)的Servlet來(lái)實(shí)現(xiàn)的,該Servlet是一個(gè)API中提供的ActionServlet類(lèi)的實(shí)例;模型層部分可借助自定義表單bean類(lèi)來(lái)實(shí)現(xiàn);而視圖層部分則由JSP頁(yè)面和Stuts標(biāo)記來(lái)實(shí)現(xiàn)。
7 結(jié)束語(yǔ)
基于JSP技術(shù)的開(kāi)發(fā)模式和框架有好多種,本文對(duì)最常用的幾種作了比較詳細(xì)的分析和實(shí)例運(yùn)用,正確地理解和掌握這些開(kāi)發(fā)模式對(duì)初學(xué)者來(lái)說(shuō)非常重要,它是深入學(xué)習(xí)JSP開(kāi)發(fā)技術(shù)的重要基礎(chǔ)。
參考文獻(xiàn):
[1] 張銀鶴,劉治國(guó),張豪.JSP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)實(shí)踐教程[M].北京:清華大學(xué)出版社,2009.
[2] 孫更新,賓晟,周峰.Struts框架結(jié)構(gòu)的Java Web開(kāi)發(fā)技術(shù)基礎(chǔ)與實(shí)踐教程[M].北京:電子工業(yè)出版社,2008.