1. 程式人生 > >JSP編程專題3之系統開發模型

JSP編程專題3之系統開發模型

純jsp開發模型 jsp+javabean的model1開發模型 mvc的model2開發模型 mvc + 三層架構開發模型

- 系統開發模型,即系統架構,是指整合應用系統程序大的結構。經常提到的系統結構有兩種:三層架構與MVC。這兩種結構既有區別,又有聯系。但是這兩種結構的使用,均是為了降低系統模塊間的耦合度。

- 傳統的JavaWeb項目的系統開發模型大體經歷了四個階段:純JSP、JSP+JavaBean的Model1、MVC的Model2、MVC+三層架構。


1、開發模型:

a、純JSP開發模型:

技術分享

- “純JSP”開發模型中所有業務處理、數據顯示功能都是由JSP頁面完成。其缺點是很明顯的:JSP頁面中的代碼結構很亂,顯示功能與業務處理功能代碼沒有劃分,維護和升級相當麻煩。


2、JSP + JavaBean的Model1開發模型:

技術分享

- 這種開發模型將絕大多數業務處理功能交給了專門的JavaBean來完成,而JSP頁面主要完成數據顯示功能。已經較“純JSP頁面”的開發模型有了很大的改進。但是該開發模式對於來自客戶端的請求的解析,以及對於JavaBean對象的選擇與創建,仍然由JSP頁面通過Java代碼塊來完成的。也就是說,JSP頁面還承擔這大量的請求解析、業務處理功能。


- JavaBean根據其具體的概念的不同,可以分為兩大類:廣義JavaBean與狹義JavaBean:

技術分享

- 所謂廣義JavaBean,就是指一般意義上的Java類。其主要功能有兩個:承載數據和業務處理,所以廣義的JavaBean有分為兩類:數據承載Bean和業務處理Bean。數據承載Bean就是指的是實體類,專門用於承載業務數據的,如Student、User等。而業務處理Bean則是指Service或者Dao對象,專門用於處理用戶提交請求的。

- 狹義JavaBean,指的是符合SUN公司提出的“JavaBean”規範的Java類。JavaBean規範規定,滿足以下四點的Java類,稱之為JavaBean:

a、該類需要是公共的,即public class...

b、該類需要實現Serializable接口。

c、該類需要具備無參數構造器,無論是默認的,還是顯示定義的。

d、該類若有成員變量,則這些成員變量必須是私有的,且需要提供這些私有成員變量的公共getter和setter。

- 在實際項目中,實體類一般會被定義為狹義的JavaBean。即,廣義的JavaBean的數據承載Bean一般會被定義為滿足“JavaBean規範”的狹義JavaBean。


3、MVC的Model2開發模型:

技術分享

- MVC,即Model模型、View視圖以及Controller控制器。

a、View:視圖,為用戶提供使用界面,與用戶直接進行交互。

b、Model:模型,承載數據,並對用戶提交請求進行計算的模塊。其分為兩類,一類稱之為數據承載Bean,一類稱之為業務處理Bean。所謂數據承載Bean是指實體類,專門用於承載業務數據的,如Student、User等。而業務處理Bean則是指Servlet或者Dao對象,專門用於處理用戶提交請求的。

c、Crotroller:控制器,用於將用戶請求轉發給相應的Model進行處理,並根據Model的計算結果向用戶提交相應響應。


4、MVC + 三層架構開發模型:

a、三層架構的概念:

技術分享

- 三層架構是指:視圖層View、服務層Service,與持久層Dao。它們分別完成不同的功能。

i、View層:表現層、視圖層,對於Web開發來說,也稱之為Web層。接收用戶提交請求的代碼在這裏編寫。

ii、Service層:業務層、邏輯層,系統的業務邏輯主要在這裏完成。

iii、Dao層:持久層、數據訪問層,直接操作數據庫的代碼在這裏編寫。DAO,即Data Access Object,數據訪問對象。

- 為了更好的降低各層間的耦合度,在三層架構程序設計中,采用面向抽象編程。即上層對下層的調用,是通過接口實現的。而下層對上層的真正服務提供者,是下層接口的實現類。(即相對於Service層來說,View層是上層,Dao層是下層。)


b、MVC + 三層架構:

技術分享

- 所謂“MVC + 三層架構”的開發模型,主要是指將MVC的業務處理Model分為兩層:Service層和Dao層,分別用於處理業務邏輯和持久化操作。

- “MVC + 三層架構”的開發模型,是傳統的JavaWeb項目的最常用的開發模型。


本文出自 “12392717” 博客,請務必保留此出處http://12402717.blog.51cto.com/12392717/1975933

JSP編程專題3之系統開發模型