九、J2EE的體系結構和MVC設計模式

J2EE規範提出了自己的n-tiers結構。

在普通應用中,我們大多會按如下方式劃分:

表示層:管理用戶的請求,對用戶的請求做出相應的響應,並向用戶顯示出相應信息。Struts框架在表示層可以對用戶的請求進行處理,有控制器可以調用下層業務邏輯,可以對異常進行處理,以及對用戶輸入的信息進行驗證。表示層還可以選擇Velocity、JSF等。

業務邏輯層:負責業務邏輯的實現。Spring框架在業務邏輯層可以處理應用程序的業務邏輯、業務校驗、對事務進行管理、管理業務層中各個對象的依賴關係,執行相應的業務程序來實現業務服務。

持久層:負責對數據庫的訪問。Hibernate框架在持久層爲JAVA提供了面向對象的持久化機制和查詢服務。可以採用面向對象的方法存儲、更新、刪除數據庫的記錄,以及查詢數據庫信息。持久層還可以選擇ibatis等

數據層:用來存放業務數據,供上層調用,主要指一些數據庫系統。

 

經典的ssh(Struts、Spring、Hibernate)這3個框架功能各不相同,根據Web應用的功能層次,可將這3個框架應用到不同的層次,最終來實現各層的功能以完成集成。

Struts應用在表示層、 Spring應用在業務邏輯層、Hibernate在持久層。

 

 

說到J2EE的分層結構,就不得不說說MVC設計模式。

MVC設計模式使“模型”、“視圖”、“控制”相分離,降低了組件之間的耦合性,同時“模型”組件可以被系統中的其他組件重複利用,提高了代碼的可重用性。

模型Model:獨立的組件、或者開發模塊。在應用中負責業務邏輯的處理。模型將業務邏輯封裝成獨立的模塊,而且提供給不同的開發者使用。而且這些獨立的模塊可根據需要進行組裝。

視圖View: 代表和用戶交互的界面。視圖負責 顯示從模型中採集的數據或用戶輸入的數據 和 請求的傳遞,將這些數據和請求傳遞給控制器和模型。

控制器Controller:負責將視圖的需求分發給視圖所依賴的所有模型,並在模型做了改變後,把這種改變分發到模型對應的所有視圖中,視圖中的內容會隨之改變。一個視圖可以依賴多個模型,一個模型可以對應多個視圖。

總之,MVC設計模式的原理是:當有事件發生時,View將客戶端請求發送給Controller,Controller將會改變Model或View。如果Controller改變了Model的數據,所有依賴Model的View都會被Controller通知,View會對Model進行狀態查詢,Model會對狀態查詢做出相應並通知視圖進行改變。同樣,如果Controller改變了View,View會從依賴的Model中獲取相關數據並刷新View本身。

 

發佈了42 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章