一起來學大資料|此框只應天上有,後起之秀SpringMVC
MVC用於應用程式的分層開發,而在眾多的MVC中,springMVC在時代的選擇下,成為當今最流行也是最優秀的MVC設計模式。下面,我們一起來看看。
MVC
MVC就是模型-檢視-控制器(Model-View-Controller)的縮寫。具體的解釋如下:
- 模型(Model):負責封裝和實現應用程式的具體功能。
- 檢視 (View):這個模組負責資料的視覺化展示,也就是我們看到的頁面中展示的內容。
- 控制器(Controller): 控制器作用於model和view上,用來接收使用者的請求,委託model來處理,將處理結果在傳給view展示出來,相當於一箇中間的排程者。
再來看一張圖片,mvc就是這樣的一種思路。
這裡有兩個概念要區分:mvc設計模式和mvc框架
我們上面講的是mvc設計模型,而對於mvc框架,它強制性的將應用程式輸入、處理和輸出分開。如果我們要使用MVC框架,則一定要遵守該框架的規則,其實我們可以很容易知道,它所使用的三個核心部件都是來自MVC模型。
模式是框架的基礎
舉一個簡單的簡單的例子,我認為mvc設計模式就是工程設計師創作的設計圖案,而mvc框架是我們根據圖紙建造的建築物,而這個最終的建築物有可能增加功能,也有可能削弱某部分功能;總之,最後的的建築物都是遵循工程設計師的意願。
SpringMVC
對於Spring的mvc和Struts2都是屬於表現層的框架,其mvc是Spring框架的一部分,下面是一張Spring的整體結構圖。很明顯的就看到mvc的表現層位置。其餘的,我們之前的文章也已經有所提及。
DAO:一起來學大資料|Spring的事務管理,一分錢也不能少
AOP:一起來學大資料|Spring之AOP操作,巧奪天功的切面技術
ORM:一起來學大資料|優秀的持久層框架Mybatis,連線資料庫快人一步
Core:一起來學大資料|秒懂Spring註解,艾特一下你就明白,這麼妙?
Springmvc處理流程
入門程式:使用瀏覽器顯示商品列表
第一步、建立動態web專案
第二步、匯入jar包
我們使用的是開發工具是eclipse,需要我們手動匯入與springmvc相關的jar包。
第三步、建立配置檔案
同樣的,在配置檔案springmvc.xml中加入約束和配置controller掃描包。
在web.xml中配置前端控制器,在這我們會載入springmvc.xml配置檔案以及專案當中以.action為字尾的檔案。
第四步、建立JSP頁面以及商品pojo
封裝之後,我們獲取get和set方法。
第五步、建立ItemController
ItemController是一個普通的java類,我們需要在類的上面加上@Controller註解,把Controller交由Spring管理;在方法上面加上@RequestMapping這樣的註解,在裡面我們指定請求的url。在這裡的.action字尾是可以省略的。
第六步、啟動服務
將專案加入tomcat並啟動,在頁面上輸入localhost:8080/springmvc-first/itemList.action我們便可以得到一個簡單表格。
以上資料只是為了測試,並沒任何意義。為什麼可以在螢幕上打出這樣的表呢?我們需要解析一下springMVC的架構圖。
springMVC的架構
- 我們向前端控制器DispatcherServlet傳送請求
- DispatcherServlet在接到請求後,開始呼叫HandlerMapping處理器對映器。
- 處理器對映器會根據我們請求的url找到對應的處理器,生成處理器物件及處理器攔截,之後返回到DispatcherServlet中
- DispatcherServlet通過HandlerAdapter處理器介面卡呼叫處理器
- 執行處理器Controller後端控制器
- Controller執行完成返回ModelAndView
- HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet
- DispatcherServlet將ModelAndView傳給ViewReslover檢視解析器
- ViewReslover解析後返回具體View
- DispatcherServlet對View進行渲染檢視
- DispatcherServlet響應使用者
元件說明:
在上面的圖片中是springmvc的各個元件中,處理器對映器、處理器介面卡、檢視解析器稱為springmvc的三大元件,就是上面的黃色標註。
而需要我們使用者去開發的元件有handler、view,也就是上面的綠色標註。
這就是我們今天講的springMVC的一些知識點,僅僅只是理論知識,明天我們來看看具體的例項,體驗一把真正SpringMVC的優秀。
有幫助到大家的話,記得收藏關注一下喲~
有何不足,請多多指正,虛心請教。
感謝堅持關注的朋友~
世界很大,幸好有你~
歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。
聚焦最新科技諮訊,探尋未來智慧領域,我是女陶Mario