Spring MVC教程——檢視閱讀
阿新 • • 發佈:2020-05-14
Spring MVC教程——檢視閱讀
參考
Spring MVC教程——一點——藍本
Spring MVC教程——c語言中午網——3.0版本太老了
Spring MVC教程——易百——4.0版本不是通過maven建立的
Spring MVC教程——javaschool純理論
Spring MVC應用——javaschool純理論
Spring MVC學習總結
Spring MVC 4.2.4.RELEASE 中文文件——基礎學習後看
SpringMVC面試題
目前大多數使用的是spring4.x.
springboot基於 Spring Framework 5.0 on JDK 8 & 9
---
Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組。
- 基於Spring MVC框架:spring-framework-5.0.2.RELEASE
什麼是MVC
MVC是一個架構,或者說是一個設計模式,它就是強制性使應用程式的輸入,處理和輸出分開。將一個應用程式分為三個部分:Model,View,Controller。
原理圖 :
Model模型:負責完成業務邏輯:由JavaBean構成,在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用像EJB和javabean這樣的構件物件來處理資料庫。由於應用於模型的程式碼只需寫一次就可以被多個檢視重用,所以減少了程式碼的重複性。
View檢視:就是負責跟使用者互動的介面。一般就是由HTML,css元素組成的介面,當然現在還有一些像js,ajax,flex一些也都屬於檢視層。 在檢視層裡沒有真正的處理髮生,只負責資料輸出,並允許使用者操縱的方式。MVC能為應用程式處理很多不同的檢視。
Controller控制器:負責接收請求—>呼叫模型—>根據結果派發頁面並經過模型處理返回相應資料。
MVC的優點
1、分工明確:使用MVC可以把資料庫開發,程式業務邏輯開發,頁面開發分開,每一層都具有相同的特徵,方便以後的程式碼維護。它使程式設計師可以集中精力於各自的模型開發領域。
2、鬆耦合:檢視層和業務層分離,這樣就允許更改檢視層程式碼而不用重新編譯模型和控制器程式碼,同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和檢視相分離,所以很容易改變應用程式的資料層和業務規則。
3、複用性高(利於各層邏輯的複用):像多個檢視能夠共享一個模型,不論你檢視層是用flash介面或是wap介面,用一個模型就能處理他們。將資料和業務規則從表示層分開,就可以最大化從用程式碼。
4、有利於標準化.
MVC的缺點
1、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和資料訪問層中都增加相應的程式碼。
2、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此獲取相應的資料,如今卻必須通過中間層來完成。
3、增加理解的複雜度。由於它沒有明確的定義,所以完全理解MVC並不是很容易。
常見的MVC框架
常見的伺服器端MVC框架有:Struts、Spring MVC、ASP.NET MVC、Zend Framework、JSF;常見前端MVC框架:vue、angularjs、react、backbone;由MVC演化出了另外一些模式如:MVP、MVVM。
什麼是Spring MVC
Spring MVC概述
Spring MVC是Spring Framework的一部分,是基於Java實現MVC的輕量級Web框架。Spring MVC的特點:
1. 輕量
2. 高效
3. 與Spring相容性好
4. 功能強大。RESTful、資料驗證、格式化、繫結機制、本地化、主題等
5. 簡潔靈活
Spring MVC功能
Spring MVC圍繞DispatcherServlet設計。 DispatcherServlet的作用是將請求分發到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的使用者可以採用基於註解的Controller宣告方式。官網上說Spring的Web模組提供了大量獨特的功能,包括:
- 清晰的角色劃分:控制器(controller)、驗證器(validator)、 命令物件(command object)、表單物件(form object)、模型物件(model object)、 Servlet分發器(DispatcherServlet)、 處理器對映(handler mapping)、檢視解析器(view resolver)等等。 每一個角色都可以由一個專門的物件來實現。
- 強大而直接的配置方式:將框架類和應用程式類都能作為JavaBean配置,支援跨多個context的引用,例如,在web控制器中對業務物件和驗證器(validator)的引用。
- 可適配、非侵入:可以根據不同的應用場景,選擇合適的控制器子類 (simple型、command型、form型、wizard型、multi-action型或者自定義),而不是從單一控制器 (比如Action/ActionForm)繼承。
- 可重用的業務程式碼:可以使用現有的業務物件作為命令或表單物件,而不需要去擴充套件某個特定框架的基類。
- 可定製的繫結(binding) 和驗證(validation):比如將型別不匹配作為應用級的驗證錯誤, 這可以儲存錯誤的值。再比如本地化的日期和數字繫結等等。在其他某些框架中,你只能使用字串表單物件, 需要手動解析它並轉換到業務物件。
- 可定製的Handler Mapping和View Resolution:Spring提供從最簡單的URL對映, 到複雜的、專用的定製策略。與某些web MVC框架強制開發人員使用單一特定技術相比,Spring顯得更加靈活。
- 靈活的Model轉換:在Springweb框架中,使用基於Map的 鍵/值對來達到輕易地與各種檢視技術的整合。
- 可定製的本地化和主題(Theme)解析:支援在JSP中可選擇地使用Spring標籤庫、支援JSTL、支援Velocity(不需要額外的中間層)等等。
- 簡單而強大的JSP標籤庫(Spring Tag Library):支援包括諸如資料繫結和主題(Theme) 之類的許多功能。它提供在標記方面的最大靈活性。
- JSP表單標籤庫:在Spring2.0中引入的表單標籤庫,使得在JSP中編寫 表單更加容易。
Spring MVC 快速入門
示例:
1、可以通過module建立工程,再通過"JBLJavaToWeb"外掛把Java專案改為Web專案。
2、直接maven建立一個webapp工程,再新增對應的資料夾和包。
pom.xml
web.xml
注意事項:
- DispathcerServlet是Spring MVC提供的核心控制器,這是一個Servlet程式,該Servlet會接收所有請求。
- 核心控制器會讀取一個hellospringmvc-servlet.xml配置,載入Spring MVC的核心