Spring MVC教程
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教程