MVC模型視圖控制器模型 這是中文名稱 原先是為桌面應(yīng)用建立的框架,后來轉(zhuǎn)變成為B/S模型。 經(jīng)典圖如下
第二個 mvc 只是把jsp和java bean分開了。 在第二個版本當(dāng)中,視圖和模型徹底分離。 栗子如下,一個數(shù)據(jù)展示界面,從一張表中把數(shù)據(jù)讀取,然后展示到頁面上,其中頁面展示為視圖V,從數(shù)據(jù)庫取得數(shù)據(jù)是模型層M,控制器C是把瀏覽器接收到的請求,執(zhí)行模型層M,執(zhí)行,然后組合視圖V,最后把數(shù)據(jù)返回給客戶端。 圖如下 首先,HTTP協(xié)議發(fā)出請求,然后控制器接收請求,控制器接收請求以后,發(fā)送給,模型層處理,模型層,把數(shù)據(jù)提交給邏輯層,邏輯層和持久層進(jìn)行連接,持久層用于和數(shù)據(jù)庫,進(jìn)行一對一,一對多,多對多關(guān)系映射,取出數(shù)據(jù)以后,把數(shù)據(jù)返回給邏輯層,進(jìn)行業(yè)務(wù)處理,處理完成以后,返回給模型層,模型層,拿到數(shù)據(jù),返回給控制層,控制層,拿到數(shù)據(jù),控制器,進(jìn)行組裝視圖層,把組裝好的視圖層,轉(zhuǎn)換成為瀏覽器可以接收的HTML數(shù)據(jù),然后最后再把數(shù)據(jù)返回給瀏覽器。 上方是MVC的數(shù)據(jù)的流的經(jīng)過 特點,高重用性,低耦合,快速開發(fā),便捷部署。 MVC架構(gòu)MVC模塊有以上模塊,為核心控制器,過濾器,攔截器,視圖管理器,模型管理器。 核心控制器 MVC框架入口,接收和反饋HTTP請求。 過濾器 用戶過濾HTTP請求。 攔截器 對進(jìn)出,進(jìn)入的數(shù)據(jù)進(jìn)行攔截 模型管理器 例如session,線程池等 視圖管理工具 對,視圖進(jìn)行管理。 提供多種語言的視圖 輔助工具 例如,文件管理,對象管理。 數(shù)據(jù)流數(shù)據(jù)流是先通過核心控制器,然后,流到過濾器,進(jìn)行表單的過濾,再流入攔截器,對不通過的登錄進(jìn)行內(nèi)攔截,業(yè)務(wù)代碼寫在模型層中,對業(yè)務(wù)進(jìn)行處理,處理完成以后,返回給控制器,視圖管理器中由jsp文件,對jsp文件進(jìn)行渲染,返回給客戶端 大致總結(jié)這是一個目前的大致總結(jié),首先有一個核心控制器,數(shù)據(jù)進(jìn)入以后,再次進(jìn)入攔截器,過濾器,過濾器,和攔截器,對于用戶訪問web資源是否具有權(quán)限進(jìn)行驗證,然后再次進(jìn)入模型層取出數(shù)據(jù),此時通知視圖層進(jìn)行數(shù)據(jù)更新,最后把視圖層進(jìn)行返回。
大致總結(jié)對于MVC來說,首先有兩個管理類,即,視圖管理類和模型管理類,注冊在控制器中,控制器基于servlet,每次發(fā)生請求的時候,控制器接收到請求,然后傳遞給攔截器,和過濾器,攔截器和過濾器,用于進(jìn)行身份驗證,和訪問資源的驗證,然后通過管理類暴露在外的接口,調(diào)用模型層,以及書寫在模型層中業(yè)務(wù)代碼,包括數(shù)據(jù)庫的讀取,模型層數(shù)據(jù)更新以后,通過觀察者模式,通知視圖層的管理類,對視圖中的數(shù)據(jù)進(jìn)行渲染成為HTML文件,由JSP文件直接渲染成為HTML文件,涉及到編譯原理的一些知識,最后把生成的URL直接返回給控制器,控制器拿到URL,把URL返回給瀏覽器。 |
|