1. 程式人生 > >【Web篇08】Web中MVC設計理念 & 經典三層架構 & 五大主流框架

【Web篇08】Web中MVC設計理念 & 經典三層架構 & 五大主流框架

一、Web的MVC設計理念和MVC框架:

之前在Web篇04中已經詳述了Servlet、TomCat、JSP和Web.xml之間的聯絡;

(1)瀏覽器傳送請求到收到響應,簡要的過程如下:
瀏覽器傳送請求後,由Web.xml中規定的協議,進入TomCat中特定的Servlet,伺服器先到Web-Content中找有沒有對應的html/jsp頁面,如果沒有再到WEB-INF目錄下的xml配置檔案中找對映,通過對映找到響應檔案html/jsp,響應給瀏覽器。

(2)瀏覽器再點選JSP頁面後,再次傳送請求,接下來的處理就可以用下面的MVC設計理念來講解:

MVC,全稱Model View Controller,即模型-檢視-控制器;

1. Model(模型):
是Web應用中用於處理資料邏輯的部分,包括Service層和Dao層;
Service層用於和資料庫聯動,放置業務邏輯程式碼,處理資料庫的增刪改查,
Dao層用於放各種介面,以備呼叫;

2. View(檢視):
是Web應用中處理響應給客戶的頁面的部分,例如我們寫的html靜態頁面,jsp動態頁面,這些最終響應給瀏覽器的頁面都是檢視;
通常檢視是依據模型資料來建立的;

3. Controller(控制器):
在Web應用中,簡而言之,就是Servlet,或者SpringMVC框架中加了註解@Controller的方法(實際上一個方法就相當於一個對應的Servlet);

它們三者之間的關係,用一張在網上找的圖概況,如下:

在這裡插入圖片描述
首先,瀏覽器傳送請求,JSP頁面響應給客戶,客戶點選JSP頁面上的內容,再次提交請求;
這一次,請求到Controller控制器模組,也就是Servlet伺服器中,
Servlet伺服器通過分析請求,判斷客戶的需求,
然後呼叫Model模型,用Service層處理資料庫的增刪改查,用Dao層提供介面支援,
然後Servlet將資料驅動到View檢視層也就是JSP頁面中,
將JSP頁面響應給瀏覽器,客戶看到動態的內容。

在這個過程中,最典型的的MVC模型就是 JavaBean + JSP + Servlet的模式,各司其職,分工合作;這種設計理念可以把html程式碼塊和業務邏輯程式碼塊分開,讓程式碼更清晰,便於開發。

而依據MVC設計模式,來搭建的MVC框架,則是該設計模式思想的具體實現,它強制性的使應用程式輸入、處理和輸出分開。使用MVC應用程式被分成三個核心部件:模型、檢視、控制器。它們各自處理自己的任務。

二、Web的經典三層架構

Web經典三層架構是指:
1. 表現層,UI,User Interface:
主要接受使用者的請求和把相應的頁面響應給使用者瀏覽器;
其中aspx頁面,對應MVC中的檢視(View),即JSP頁面
而aspx.cs頁面,對應MVC中的控制器(Controller),即Servlet伺服器

2. 業務邏輯層,BLL,Business Logic Layer:
對應MVC中模型(Model)中的Service層,與資料庫聯動處理增刪改查;

3. 資料訪問層/持久層,DAL,Data Access Layer:
對應MVC中模型(Model)中的Dao層,提供介面支援;

其餘的檔案,例如JavaBean作為原材料被三層架構呼叫,貫徹三層介面;xml配置檔案給三層架構提供良好的配置環境。
借用一張網上的圖來展示:
在這裡插入圖片描述
這種分層式結構,可以降低各層之間的依賴,降低耦合,是一種弱耦合結構。

三、Web的五大主流框架(簡介)

1. Spring框架
核心是DI(Dependency Injection)(依賴注入)和IOC(Inversion of Control)(反轉控制);
(1)Spring框架對Web的支援是,SpringMVC框架
(2)Spring框架對持久層的支援是,JDBCTemplate

2. SpringMVC框架
優勢是優化了B/S結構(瀏覽器-伺服器),簡化了Servlet的建立

在其他框架中,一個url請求需要new一個新的Servlet與之相對應,
在SpringMVC框架中,由於DispatcherServlet的存在,任何的url(除了jsp外)它都能處理,然後依據對映找到一個對應的@Controller的註解類,就相當於一個Servlet;

相當於把Servlet轉變成了註解類,多個註解類可以寫在同一個java檔案中,程式碼方式簡潔、優雅;

補充一下maven倉庫的作用:
maven倉庫可以通過<denpendency 標籤,由GAV資訊匯入所需要的jar包,不同的jar包GAV程式碼在官網可直接查詢,匯入jar包的方式簡單方便。

3. Mybatis框架
它的作用是可以與資料庫進行聯動,在其中寫sql語句,進行資料庫的增刪改查;

4. Hibernate框架

5. Struts2框架