(一)Spring MVC簡介
阿新 • • 發佈:2018-08-11
spa 渲染 pin 行處理 根據 jstl 處理器 類的屬性 簡單
一、概述
Spring web mvc和Struts2都屬於表現層的框架,它是Spring框架的一部分。Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,
即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring MVC大大簡化了我們日常Web開發。
二、Struts2和SpringMVC對比
1、springmvc的入口是一個servlet即前端控制器,而struts2入口是一個filter過濾器。 2、springmvc是基於方法開發(一個url對應一個方法),請求參數傳遞到方法的形參,可以設計為單例或多例(建議單例),struts2是基於類開發,傳遞參數是通過類的屬性,只能設計為多例。 3、Struts采用值棧存儲請求和響應的數據,通過OGNL存取數據, springmvc通過參數解析器是將request請求內容解析,並給方法形參賦值,將數據和視圖封裝成ModelAndView對象,最後又將ModelAndView中的模型數據通過request域傳輸到頁面。Jsp視圖解析器默認使用jstl。
三、優點
√讓我們能非常簡單的設計出幹凈的Web層和薄薄的Web層; √進行更簡潔的Web層的開發; √天生與Spring框架集成(如IoC容器、AOP等); √提供強大的約定大於配置的契約式編程支持; √能簡單的進行Web層的單元測試; √支持靈活的URL到頁面控制器的映射; √非常容易與其他視圖技術集成,如Velocity、FreeMarker等等,因為模型數據不放在特定的API裏,而是放在一個Model裏(Map數據結構實現,因此很容易被其他框架使用); √非常靈活的數據驗證、格式化和數據綁定機制,能使用任何對象進行數據綁定,不必實現特定框架的API; √提供一套強大的JSP標簽庫,簡化JSP開發; √支持靈活的本地化、主題等解析; √更加簡單的異常處理; √對靜態資源的支持; √支持Restful風格。
四、Spring MVC架構
1、 用戶發送請求至前端控制器DispatcherServlet,前端控制器收到請求後自己不進行處理,而是調用處理器映射器。 2、 DispatcherServlet收到請求後調用HandlerMapping處理器映射器。HandlerMapping將會把請求映射為HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象、多個HandlerInterceptor攔截器)對象。 3、 處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一並返回給DispatcherServlet。 4、 DispatcherServlet通過HandlerAdapter處理器適配器調用處理器 5、 執行處理器(Controller,也叫後端控制器)。返回執行結果,封裝在ModelAndView中 6、 DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器, ViewResolver將把邏輯視圖名解析為具體的View,通過這種策略模式,很容易更換其他視圖技術; 7、 ViewReslover解析後返回具體View 8、 DispatcherServlet對View進行渲染視圖(即將對象模型的數據填充至視圖中)。此處的Model實際是一個Map數據結構,因此很容易支持其他視圖技術; 9、 DispatcherServlet將結果響應給用戶
(一)Spring MVC簡介