天天看點

springMVC一、MVC二、SpringMVC參考文獻

文章目錄

  • 一、MVC
  • 二、SpringMVC
  • 參考文獻

在我們平時的javaWeb項目中。我們似乎用到了mvc模式,但是具體在哪裡用到了卻又傻傻分不清?。Controller,View層倒是好區分,可model層呢?service、Dao有事個什麼玩意兒??于是寫下了這篇文章,讓我們帶着問題開始吧?!

  • 什麼是mvc
  • 什麼是springMVC
  • springMVC它解決了什麼問題
  • springMVC它的原理是什麼

一、MVC

一般我們都知道

  • C代表Controller:負責轉發請求,對請求進行處理。
  • V代表View:視圖,用于展示。

那M呢?以前一直以為Model就是用來承接資料的,就是一些單純的java類用于對于資料庫中的表。然而,并不是這樣的。完整的Model應該還要包含對資料直接通路的權力,例如對資料庫的通路。

然而問題來了,我業務邏輯寫在哪裡啊,是C還是M❓。

由于C隻是一個個控制器,不負責業務,它隻負責安排人來執行任務。是以我們将複雜業務邏輯寫在M中

萬一有負責的業務邏輯呢?這勢必會導緻M層有複雜的方法。并且,為了代碼複用,可以将資料庫方法提取出來,這樣就産生了Dao層。相當于此時M層又被分解了,一部分叫做Dao,另一部分叫做Entity,另一部分叫做Service。

  • Dao:進行資料庫通路
  • Entity:用于承載資料,對應資料庫中的表
  • Service:編寫程式應有的功能(實作算法等等)

二、SpringMVC

SpringMVC是一個實作了MVC設計模式都輕量級Web架構。

其工作流程如下:

springMVC一、MVC二、SpringMVC參考文獻
  1. 使用者通過浏覽器向伺服器發送請求,請求會被Spring MVC的前端控制器DispatcherServlet所攔截;
  2. DispatcherServlet攔截到請求後,會調用HandlerMapping處理器映射器;
  3. 處理器映射器根據請求URL找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并傳回給DispatcherServlet;
  4. DispatcherServlet會通過傳回資訊選擇合适的HandlerAdapter(處理器擴充卡);
  5. HandlerAdapter會調用并執行Handler(處理器),這裡的處理器指的就是程式中編寫的Controller類,也被稱之為後端控制器;
  6. Controller執行完成後,會傳回一個ModelAndView對象,該對象中會包含視圖名或包含模型和視圖名;
  7. HandlerAdapter将ModelAndView對象傳回給DispatcherServlet;
  8. DispatcherServlet會根據ModelAndView對象選擇一個合适的ViewReslover(視圖解析器);
  9. ViewReslover解析後,會向DispatcherServlet中傳回具體的View(視圖);
  10. DispatcherServlet對View進行渲染(即将模型資料填充至視圖中);
  11. 視圖渲染結果會傳回給用戶端浏覽器顯示。

參考文獻

MVC -維基百科

MVC引入SERVICE層 提高代碼重用性 溝通CONTROL和MODEL

Spring MVC 4.2.4.RELEASE 中文文檔

《Java EE企業級應用開發教程Spring+Spring MVC+MyBatis》

繼續閱讀