MVC理解,通俗易懂

  1. MVC框架整體概述:
    M(model)指模型端,也就是DAO類和數據庫:DAO類中寫了三個表不一樣種類的「增刪改查」的方法,而且與數據庫和控制端servlet直接相連;V(view)是指視圖端,視圖端直接與客戶端相連。視圖端有兩種,一種爲HTML,主要是用於爲用戶提供請求輸入,另外一種是JSP,這種是動態的HTML,主要是用於根據客戶的請求將從數據庫返回的信息實現可視化;C(control)指控制端,即servlet,這也是MVC框架的核心技術,整體上即能接受來自用戶的請求,又能根據用戶的請求經過調用DAO類的方法從數據庫得到須要的信息返回JSP,能夠說是鏈接M與V之間的橋樑,相當重要。
  2. MVC框架之M
    M主要包括DAO類和數據庫,但還有DTO傳輸類,這個地方主要針對數據庫設計提出長遠的要求,數據庫設計很差,或者考慮不全面,直接影響到後期功能的實現多少以及難易程度等:好比說與自增有關的功能,後期有些功能在現實中僅須要名字就能夠查了,而咱們的表中將學號和姓名共同設置成主鍵,容許了同名不一樣學號,這就爲違背了現實中須要實現的功能的要求,所以在後期,經過利用學號結合DTO類返回了一個封裝了惟一學號的全部實體信息的DTO類供servlet對須要的信息進行提取處理;DAO類裏面中寫了三個表不一樣種類的「增刪改查」的方法,經過封裝了JDBC操做的工具類實現與數據庫的鏈接。
  3. MVC框架之V
    對於V,主要講JSP,之前學的HTML頁面是靜態的,是死的,一次編寫不會在改變,除非重寫,而JSP不一樣,JSP因servlet而活,若是說JSP和HTML軀體,servlet就是靈魂,有了靈魂的軀體纔是活的了,這就是爲何說JSP是活的HTML,同時也代表了JSP也能實現HTML的功能。JSP的「活」主要是由於它能根據servlet的變化而變化,那麼它們是經過什麼實現的呢?毋庸置疑,java代碼,的確,JSP可以嵌入java片斷,還可以與html標籤混用。若是說java代碼是JSP頁面和servlet交互的接口或者說是通道,那麼這還僅僅是個通道,數據呢,數據怎麼交流,servlet從數據庫獲得的數據怎麼反饋到JSP頁面,JSP頁面又是怎樣提取出數據呢,這就涉及到下面的servlet和session技術了。
  4. MVC框架之C
    做爲MVC框架的核心,C位出道,天然充當着關鍵的做用。先說明一下,整個系統的流程大體爲HTML/JSP->servlet->HTML/JSP。C中主要實現三個步驟(誇張點,全國通用):1、得到請求中的參數,2、根據參數去從數據庫中得到值而後封裝到session(處理),3、響應到對應頁面,主要是重定向。對於箭頭前的HTML/JSP,大可能是JSP,用戶提出需求,而後servlet經過得到從請求中傳過來的參數,結合DTO(有時纔要)調用DAO中相應的方法,從數據庫中獲得須要的數據封裝到session響應到對應頁面,那麼上一段中JSP頁面與數據庫數據交互的問題就解決了,請看下段。
  5. Session技術 若是說C是鏈接M與V之間的物理鏈路,那麼Session就是它們之間的數據鏈路,物理鏈路通了數據鏈路不必定通,但數據鏈路通了物理鏈路必定通。物理鏈路只是爲數據的傳輸提供渠道而已。Session的創建通常是在控制端,也就是servlet,它將獲得的數據封裝到Session中,重要的,核心的,敲重點,封裝信息到Session是爲這個Session設一個鍵值對,鍵就是key,值就是咱們要傳輸的信息,同時key是惟一標識Session的,JSP頁面和servlet都可以經過惟一的key獲得對應的數據信息,還有Session一旦創建,便貫穿全系統。這也就解決了JSP頁面經過惟一的key值從對應的Session得到數據信息的問題。