[摘 要]通過比較基于JSP技術的網站開發的兩種模式的優缺點,提出基于MVC模型建設大型商務網站的設計思路,解決網站中業務邏輯與頁面顯示相混淆的問題。
[關鍵詞]MVC JSP 網站
Internet的發展,為改變傳統的商業運作模式提供了一種技術上的可行性的方案,而IT技術的發展迅速,使企業很難跟上其步伐,不能專注于自身業務的管理建設。目前急需采用一種框架式設計方案,以使企業商務網站平臺建設大大簡化,而基于MVC模型的商務網站平臺建設滿足了這種需求。
一、 傳統的商務平臺解決方案
傳統的電子商務網站平臺建設主要是基于ASP或JSP動態技術。ASP技術由于只能在微軟的操作系統平臺下建立,以及安全問題等限制了它的廣泛應用,而JSP的動態網頁技術一度成為主流,但是早期的網站絕大多數采用JSP+JavaBean開發技術。
1.ASP技術
ASP技術由于Windows系統固有的問題都會一成不變地累加到它的身上。盡管目前推出了COM組件技術使其功能變得強大,但是這種強大由于其自身設計漏洞問題暴露出很大的安全隱患。
2.JSP技術
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理,然后生成HTML頁面返回給客戶端瀏覽器。JSP具備了Java技術的簡單易用、完全面向對象、具有平臺無關性且安全可靠、主要面向Internet網站的所有特點。
基于JSP技術的網站開發主要兩種開發模式,成為模式一和模式二,而模式二開發技術就是基于MVC模型的技術。
二、 模式簡介
1.模式一
模式一就是指JSP+JavaBean技術。在模式一中,JSP頁面獨自響應請求并處理結果返回客戶端。所有的數據通過Bean來處理,可以實現頁面的表現與頁面的內容(邏輯)相分離。但是大量使用模式一可能帶來一個副作用,就是會導致在頁面里面嵌入了大量的Java控制代碼,當要處理業務邏輯時非常復雜,尤其在大型網站建設中這種模式會導致頁面維護困難。
2.模式二
模式二就是指JSP+Servlet+JavaBean技術。在模式二中,結合了JSP和Servlet技術,模型二充分利用了JSP和Servlet兩種技術的原有特點。此模式技術主要基于MVC模型(Model-View-Control),它的主要思想是使用一個或者多個Servlet作為控制器。請求由前沿的Servlet(可能是多個Servlet構成的處理鏈)接收并處理后,會重新定向到JSP。在此模式里,JavaBean作為模型的角色,它充當JSP和Servlet通信的中間工具,Servlet處理完成后設置Bean的屬性,JSP讀取此Bean的屬性,然后進行顯示。
3.兩種模式的比較
從設計角度,模式二具有更清晰的頁面表現、清楚的開發者角色劃分,可以充分地利用開發小組中的界面設計人員。這些優勢在大型項目開發中表現得尤為突出,而使用模式一可以發揮每個開發人員特長,界面設計開發人員可以發揮界面顯示效果的設計能力。在目前大型項目開發中,模式二更多的被采用。
三、 基于MVC模型的大型網站平臺設計
1.MVC(模型-視圖-控制器)模型原理
模型(Model)是網站的核心,用來完成企業主要的業務功能,它接收視圖發來的請求,并將處理請求的結果返回給視圖,雖然這個請求是由視圖發出的,但是這個請求是由控制器來轉發的,所以模型所進行的操作相對于視圖來說是黑箱操作。這樣可以用來封裝部分數據,以滿足面向對象原則。
視圖(View)用來顯示模型內容,是顯示在用戶面前用來與用戶進行交互的平臺,通常用一些可視化網頁編輯軟件實現。該部分只用來收集數據和顯示模型,以及將用戶的請求轉發給控制對象,而不應當參與模型中業務流程的處理。同一個業務流程可能由于處理結果的不同而對應不同的視圖。
控制器(Controller)對用戶的請求做出反應,創建和設置模型,并將模型與視圖進行協調,來共同完成用戶請求。可以將控制對象理解為一個分發器,它會根據不同用戶請求來選擇不同模型和視圖。并且控制對象同樣不能參與業務流程的創建。
2.具體功能模塊設計
針對大型商務網站的網頁多樣性,我們選取具有典型代表的訂單處理過程來描述如何基于MVC模型設計。首先在表單中獲得訂單請求過程時先接受GET請求,執行數據庫操作,保存到Request中,并把視圖派發到下一個頁面。在現實訂單的頁面中主要包括結果集的處理,假如訂單是批量的,則通過迭代來顯示所有信息。
3.網站平臺設計效果
通過基于MVC模型設計的網站,在Servlet作為控制時,每個Servlet通常只能實現很少一部分功能,多個Servlet就可以結合起來完成復雜的任務,這樣的好處是Servlet的重用性好,盡管會導致請求時間加長,但是這可以通過服務器的并行處理解決。
參考文獻:
[1]孫衛琴:《精通Struts: 基于MVC的Java Web設計與開發》,2004.8
[2]胡俊彥路鑫鑫:基于MVC設計模式的動態電子政務Web統計模型[J].電腦開發與應用,2004(02)
[3]馬溪駿魯奎:利用JSP實現基于MVC模式的表單提交方法研究[J].計算機應用研究,2004(02)
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。