我們的開發(fā)架構(gòu)一般都是基于兩種形式,一種是 C/S 架構(gòu)暴拄,也就是客戶端/服務(wù)器于个,另一種是 B/S 架構(gòu)氛魁,也就
是瀏覽器服務(wù)器。在 JavaEE 開發(fā)中厅篓,幾乎全都是基于 B/S架構(gòu)的開發(fā)呆盖。那么在 B/S架構(gòu)中,系統(tǒng)標準的三層架構(gòu)
包括:表現(xiàn)層贷笛、業(yè)務(wù)層、持久層宙项。三層架構(gòu)在我們的實際開發(fā)中使用的非常多乏苦,所以我們課程中的案例也都是基于
三層架構(gòu)設(shè)計的。
三層架構(gòu)中尤筐,每一層各司其職汇荐,接下來我們就說說每層都負責(zé)哪些方面:
表現(xiàn)層:
也就是我們常說的web層。它負責(zé)接收客戶端請求盆繁,向客戶端響應(yīng)結(jié)果掀淘,通常客戶端使用http協(xié)議請求
web 層油昂,web 需要接收 http 請求革娄,完成 http 響應(yīng)。
表現(xiàn)層包括展示層和控制層:控制層負責(zé)接收請求冕碟,展示層負責(zé)結(jié)果的展示拦惋。
表現(xiàn)層依賴業(yè)務(wù)層,接收到客戶端請求一般會調(diào)用業(yè)務(wù)層進行業(yè)務(wù)處理安寺,并將處理結(jié)果響應(yīng)給客戶端厕妖。
表現(xiàn)層的設(shè)計一般都使用 MVC 模型。(MVC 是表現(xiàn)層的設(shè)計模型挑庶,和其他層沒有關(guān)系)
業(yè)務(wù)層:
也就是我們常說的 service 層言秸。它負責(zé)業(yè)務(wù)邏輯處理软能,和我們開發(fā)項目的需求息息相關(guān)。web 層依賴業(yè)
務(wù)層举畸,但是業(yè)務(wù)層不依賴 web 層查排。
業(yè)務(wù)層在業(yè)務(wù)處理時可能會依賴持久層,如果要對數(shù)據(jù)持久化需要保證事務(wù)一致性俱恶。(也就是我們說的雹嗦,
事務(wù)應(yīng)該放到業(yè)務(wù)層來控制)
持久層:
也就是我們是常說的 dao 層。負責(zé)數(shù)據(jù)持久化合是,包括數(shù)據(jù)層即數(shù)據(jù)庫和數(shù)據(jù)訪問層了罪,數(shù)據(jù)庫是對數(shù)據(jù)進
行持久化的載體,數(shù)據(jù)訪問層是業(yè)務(wù)層和持久層交互的接口聪全,業(yè)務(wù)層需要通過數(shù)據(jù)訪問層將數(shù)據(jù)持久化到數(shù)據(jù)庫
中泊藕。通俗的講,持久層就是和數(shù)據(jù)庫交互难礼,對數(shù)據(jù)庫表進行曾刪改查的娃圆。
MVC
MVC 全名是 Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫蛾茉,
是一種用于設(shè)計創(chuàng)建 Web 應(yīng)用程序表現(xiàn)層的模式讼呢。MVC 中每個部分各司其職:
Model (模型) :
通常指的就是我們的數(shù)據(jù)模型。作用一般情況下用于封裝數(shù)據(jù)谦炬。
View (視圖) :
通常指的就是我們的 jsp 或者 html悦屏。作用一般就是展示數(shù)據(jù)的。
通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的键思。
Controller (控制器) :
是應(yīng)用程序中處理用戶交互的部分础爬。作用一般就是處理程序邏輯的。
它相對于前兩個不是很好理解吼鳞,這里舉個例子:
例如:
我們要保存一個用戶的信息看蚜,該用戶信息中包含了姓名,性別赔桌,年齡等等供炎。
這時候表單輸入要求年齡必須是 1~100 之間的整數(shù)。姓名和性別不能為空纬乍。并且把數(shù)據(jù)填充
到模型之中碱茁。
此時除了 js 的校驗之外,服務(wù)器端也應(yīng)該有數(shù)據(jù)準確性的校驗仿贬,那么校驗就是控制器的該做
的纽竣。
當(dāng)校驗失敗后,由控制器負責(zé)把錯誤頁面展示給使用者。
如果校驗成功蜓氨,也是控制器負責(zé)把數(shù)據(jù)填充到模型聋袋,并且調(diào)用業(yè)務(wù)層實現(xiàn)完整的業(yè)務(wù)需求
SpringMVC
SpringMVC 是一種基于 Java 的實現(xiàn) MVC 設(shè)計模型的請求驅(qū)動類型的輕量級 Web 框架,屬于 SpringFrameWork 的后續(xù)產(chǎn)品穴吹,已經(jīng)融合在 Spring Web Flow 里面幽勒。Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功
能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu)港令,從而在使用 Spring 進行 WEB 開發(fā)時啥容,可以選擇使用 Spring的 Spring MVC 框架或集成其他 MVC 開發(fā)框架,如 Struts1(現(xiàn)在一般不用)顷霹,Struts2 等咪惠。
SpringMVC 已經(jīng)成為目前最主流的 MVC 框架之一,并且隨著 Spring3.0 的發(fā)布淋淀,全面超越 Struts2遥昧,成為最優(yōu)秀的 MVC 框架。
它通過一套注解朵纷,讓一個簡單的 Java 類成為處理請求的控制器炭臭,而無須實現(xiàn)任何接口。同時它還支持RESTful 編程風(fēng)格的請求袍辞。