springMVC是什麼: 前端
springMVC是一個MVC的開源框架,springMVC=struts2+spring,springMVC就至關因而Struts2加上sring的整合,可是這裏有一個疑惑就是,springMVC和spring是什麼樣的關係呢?這個在百度百科上有一個很好的解釋:意思是說,springMVC是spring的一個後續產品,其實就是spring在原有基礎上,又提供了web應用的MVC模塊,能夠簡單的把springMVC理解爲是spring的一個模塊(相似AOP,IOC這樣的模塊),網絡上常常會說springMVC和spring無縫集成,其實springMVC就是spring的一個子模塊,因此根本不須要同spring進行整合。web
SpringMVC前端控制的使用:spring
1.替換項目中的 servlet層 或者 action層(struts2框架)設計模式
2.springMVC的執行流程:實現 經過配置文件的方式/註解方式網絡
核心架構的具體流程步驟以下:數據結構
一、 首先用戶發送請求——>DispatcherServlet,前端控制器收到請求後本身不進行處理,而是委託給其餘的解析器進行處理,做爲統一訪問點,進行全局的流程控制;架構
二、DispatcherServlet——>HandlerMapping,HandlerMapping將會把請求映射爲HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象、多個HandlerInterceptor攔截器)對象,經過這種策略模式,很容易添加新的 映射策略;app
三、 DispatcherServlet——>HandlerAdapter,HandlerAdapter將會把處理器包裝爲適配器,從而支持多種類型的處理器,即適配器設計模式的應用,從而很容易支持不少類型的處理器;框架
四、 HandlerAdapter——>處理器功能處理方法的調用,HandlerAdapter將會根據適配的結果調用真正的處理器的功能處理方法,完成功能處理;並返回一個ModelAndView對象(包含模型數據、邏輯視圖名);單元測試
五、 ModelAndView的邏輯視圖名——> ViewResolver, ViewResolver將把邏輯視圖名解析爲具體的View,經過這種策略模式,很容易更換其餘視圖技術;
六、 View——>渲染,View會根據傳進來的Model模型數據進行渲染,此處的Model實際是一個Map數據結構,所以很容易支持其餘視圖技術;
七、返回控制權給DispatcherServlet,由DispatcherServlet返回響應給用戶,到此一個流程結束。
爲何要使用springMVC?
不少應用程序的問題在於處理業務數據和顯示業務數據的視圖的對象之間存在緊密耦合。一般,更新業務對象的命令都是從視圖自己發起的,使視圖對任何業務對象更改都有高度敏感性。並且,當多個視圖依賴於同一個業務對象時是沒有靈活性的。
Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即便用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助咱們簡化開發,Spring Web MVC也是要簡化咱們平常Web開發的。
MVC設計模型
MVC 是一種著名的設計模式,特別是在 Web 應用程序領域。模式全都是關於將包含業務數據的模塊與顯示模塊的視圖解耦的。這是怎樣發生的?視圖(例如,JSP 頁面)怎樣可以與其模型(例如,包含數據的 JavaBean)解耦?記得這句格言麼?一個層次的重定向幾乎能夠解決計算機業中的全部問題。確實,在模型和視圖之間引入重定向層能夠解決問題。此重定向層是控制器。控制器將接收請求,執行更新模型的操做,而後通知視圖關於模型更改的消息。依賴於模型的狀態而且依賴於請求的控制器能夠決定要顯示哪一個視圖。
springMVC的強大之處
1.Spring MVC 實現了即用的 MVC 的核心概念。它爲控制器和處理程序提供了大量與此模式相關的功能。而且當向 MVC 添加反轉控制(Inversion of Control,IoC)時,它使應用程序高度解耦,提供了經過簡單的配置更改便可動態更改 組件的靈活性。Spring MVC 爲您提供了徹底控制應用程序的各個方面的力量。
2.Spring 的 Web MVC 模塊是圍繞 DispatcherServlet 而設計的。DispatcherServlet 給處理程序分派請求,執行視圖解析,而且處理語言環境和主題解析,此外還爲上傳文件提供支持。
3.DispatcherServlet 經過使用處理程序映射來決定哪個處理程序應當處理傳入的請求。處理程序映射只是用於標識使用哪個處理程序來處理特定 URL 模式的映射。處理程序是隻有一種方法 ModelAndView handleRequest(request,response) 的控制器接口的實現。Spring 還有一些可用的高級處理程序實現;其中一個重要的高級處理程序實現是 SimpleFormController,它提供了將命令對象綁定到表單、對其執行驗證等功能。
4.您已經在本系列教程的先前教程中使用了 DispatcherServlet 和簡單的處理程序。在下一個部分中,將使用 SimpleFormController 並說明 Spring MVC 提供的各類即用功能。
springMVC優點
一、清晰的角色劃分:前端控制器(DispatcherServlet)、請求處處理器映射(HandlerMapping)、處理器適配器(HandlerAdapter)、視圖解析器(ViewResolver)、處理器或頁面控制器(Controller)、驗證器( Validator)、命令對 象(Command 請求參數綁定到的對象就叫命令對象)、表單對象(Form Object 提供給表單展現和提交到的對象就叫表單對象)。
二、分工明確,並且擴展點至關靈活,能夠很容易擴展,雖然幾乎不須要;
三、因爲命令對象就是一個POJO,無需繼承框架特定API,可使用命令對象直接做爲業務對象;
四、和Spring 其餘框架無縫集成,是其它Web框架所不具有的;
五、可適配,經過HandlerAdapter能夠支持任意的類做爲處理器;
六、可定製性,HandlerMapping、ViewResolver等可以很是簡單的定製;
七、功能強大的數據驗證、格式化、綁定機制;
八、利用Spring提供的Mock對象可以很是簡單的進行Web層單元測試;
九、本地化、主題的解析的支持,使咱們更容易進行國際化和主題的切換。
十、強大的JSP標籤庫,使JSP編寫更容易。