1. 程式人生 > >Spring MVC教程

Spring MVC教程

pro orm 行處理 定制 hand 加載 image 不同的 valid

Spring MVC 是一個模型 - 視圖 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它負責發送每個請求到合適的處理程序,使用視圖來最終返回響應結果的概念。Spring MVC 是 Spring 產品組合的一部分,它享有 Spring IoC容器緊密結合Spring松耦合等特點,因此它有Spring的所有優點。

SpringMVC架構圖所下所示
技術分享圖片

Spring Web MVC框架特點

清晰的角色劃分:控制器(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映射, 到復雜的、專用的定制策略。

靈活的model轉換:在Springweb框架中,使用基於Map的 鍵/值對來達到輕易地與各種視圖技術的集成。

可定制的本地化和主題(theme)解析:支持在JSP中可選擇地使用Spring標簽庫、支持JSTL、支持Velocity(不需要額外的中間層)等等。

簡單而強大的JSP標簽庫(Spring Tag Library):支持包括諸如數據綁定和主題(theme) 之類的許多功能。它提供在標記方面的最大靈活性。

JSP表單標簽庫:在Spring2.0中引入的表單標簽庫,使得在JSP中編寫 表單更加容易。

Spring Bean的生命周期可以被限制在當前的HTTP Request或者HTTP Session。 準確的說,這並非Spring MVC框架本身特性,而應歸屬於Sping MVC使用的WebApplicationContext容器。

Spring MVC大致的執行流程如下:

1、首先瀏覽器發送請求給前端控制器DispatcherServlet,DispatcherSerlvet根據請求信息,基於一定的原則選擇合適的控制器進行處理並把 請求委托給它。

2、頁面控制器接收到請求之後進行功能處理,首先需要收集、綁定請求參數到一個對象(命令對象),並進行驗證,然後將該對象委托給業務對象進行處理(service層);業務對象處理之後控制器將返回一個ModelAndView(模型數據和邏輯視圖名);

3、DispatcherServlet根據返回的邏輯視圖名,選擇合適的視圖進行渲染(界面展示、資源加載),並把模型數據傳入以便視圖渲染。

4、前端控制器將響應返回個客戶端瀏覽器。

Spring MVC教程