MVC三層架構理解

2021-03-09 12:01:30

MVC三層架構的個人理解

什麼是MVC

MVC是Model,View,Controller三個單詞的簡稱:模型,檢視,控制器
Model(專於系統的業務處理和系統於資料庫的業務互動,以前可以理解為我們java類(JavaBean/Pojo/Entity)通過JDBC對資料庫的互動,現在分為Service與Dao層對業務處理和資料庫的互動)
View 則指的是檢視 如JSP/HTML,專於資料的展示和請求的發起
Controller 控制器,它做的事情和Servlet請求做的事情一樣,用於接收請求的資料、返回響應資料、重定向或轉發等

以前使用者存取系統

使用者可以直接請求Servlet然後在Servlet使用JDBC連線資料庫,進行系統的CRUD操作,然後在進行檢視的定向等工作,或則可以直接存取系統的頁面(JSP)。使用者這樣的操作會使得系統的變得非常臃腫,大致的可以用下圖去理解:
在這裡插入圖片描述

MVC要做的事

因為Sevlet和Jsp都可以寫Java程式碼:為了更利於維護,Sevlet專注於請求,以及檢視的控制跳轉,Jsp(Html)專注於顯示資料,將原先在servlet裡處理的資料分割出來一個層去單獨實現業務資料操作處理,並且也獨立出來一個Dao層來進行與資料庫的互動,原先的JavaBean單獨獨立出來,因為Service層和Dao層裡都會參照JavaBean進行邏輯(Service)和接收資料庫資料(Dao)的處理,將Service和Dao和JavaBean的這塊統稱為Model層。如下流程圖
在這裡插入圖片描述

總結

Model

  • 業務處理:業務邏輯(Service)
  • 資料持久層:CRUD(Dao)

View

  • 展示資料
  • 提供連結髮起請求(a,from,img…等標籤可以提供)

Controller

  • 接收使用者請求(request:請求引數,session資訊等等…)
  • 交給業務層處理對應的程式碼
  • 控制檢視的跳轉

一個業務請求例子的請求處理過程:
使用者登入–>接收使用者的登入請求–>處理使用者請求(獲取使用者請求引數:username,password)–>交給業務層處理登入業務(判斷使用者名稱密碼是否正確(在service層做事務的處理))–>Dao層查詢使用者名稱密碼是否正確–>資料庫