SpringMVC 初始SpringMVC 在 Spring 的基本架構中,紅色圈起來的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是屬於Spring基本架構裡面的一個組成部分,屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面 ...
SpringMVC
初始SpringMVC
在 Spring 的基本架構中,紅色圈起來的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是屬於Spring基本架構裡面的一個組成部分,屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面,所以我們在後期和 Spring 進行整合的時候,幾乎不需要別的什麼配置。
Spring+MVC=SpringMVC : 在spring的基礎上,對MVC思想的一個實現,是一個MVC框架
SpringMVC: 對servlet做的一個封裝,換成controller層
相對於struts2,SpringMVC和Spring結合的更加完美
SpringMVC初配置
1. 複製項目到Test_Shop_SSM,添加一個jar包
spring-webmvc-4.1.0.RELEASE.jar
2. 配置web.xml
只有在滿足地址尾碼 .do,才會進入SpringMVC框架
3. 添加,配置SpringMVC的主配置文件 springmvc-servlet.xml
4. 創建controller包,創建一個普通的類ClientController,添加對應註解
與視圖解析器,拼接前置和後置地址為/success.jsp
5. 修改login.jsp 的登錄跳轉地址
地址後加上匹配規則 .do,進入SpringMVC框架
工作流程:
1. 載入web.xml,讀取配置,啟動SpringMVC
2. 發送URL請求,匹配規則*.do,實例化SpringMVC的Servlet對象
3. 掃描註解路徑,尋找標記註解@Controller層
4. 根據URI請求的地址,匹配方法上的註解@RequestMapping的值
5. 執行方法
6. 解析返回值,匹配預設的視圖解析器,拼接成一個跳轉的URI(預設轉發)
參數收集
1. 內置對象 HttpServletRequest (瞭解)
2. 方法參數收集(常用)
前臺的key值對應到參數值,就可以獲取到value
3. 方法對象收集 (常用)
3.1 後臺執行無參構造方法,創建對象
3.2 根據前臺的key,調用對應的set/get方法完成賦值
SpringMVC亂碼處理
在web.xml添加Spring過濾,處理所有請求地址,轉譯字元編碼UTF-8
模擬完成SSM框架下登錄功能
1.Spring家族體系 Spring AOP:為Spring容器管理的對象提供了對面向切麵編程的支持; Spring DAO:該層封裝了對資料庫的訪問,並且處理了其拋出的錯誤消息,同時還基於AOP模塊提供了事務管理; Spring ORM:Spring支持多種ORM框架,簡化了資料庫操作。 Spring Web :Web 上下文模塊建立在應用程式上下文模塊之上,為基於 Web 的應用程式提供了上下文。 Spring MVC :MVC 框架是一個全功能的構建 Web 應用程式的 MVC 實現。通過策略介面,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
2.SpringMVC框架定義 Spring 框架提供了構建 Web 應用程式的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,可以選擇是使用內置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種視圖技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架並不知道使用的視圖,所以不會強迫您只使用 JSP 技術。 Spring MVC 分離了控制器、模型對象、分派器以及處理程式對象的角色,這種分離讓它們更容易進行定製。 Spring的MVC框架主要由DispatcherServlet、處理器映射、處理器(控制器)、視圖解析器、視圖組成。
3.SpringMVC執行流程 首先用戶發送請求到前端控制器,前端控制器根據請求信息(如 URL)來決定選擇哪一個頁面控制器進行處理並把請求委托給它,即以前的控制器的控制邏輯部分; 頁面控制器接收到請求後,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在 Spring Web MVC 中叫命令對象,併進行驗證,然後將命令對象委托給業務對象進行處理;處理完畢後返回一個 ModelAndView(模型數據和邏輯視圖名); 前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的視圖進行渲染,並把模型數據傳入以便視圖渲染; 前端控制器再次收回控制權,將響應返回給用戶
4.視圖解析器 在開發中,視圖通常就是JSP、Velocity 等。Spring 預設提供了多種視圖解析 器,比如,我們可以使用最常用解析器InternalResourceViewResolver 來查找 JSP視圖(與之相對應的視圖類為InternalResourceView)。 通常,一- 個視圖解 析器只能查找- - -個或多個特定類型的視圖,在遇到Spring 不支持的視圖或者我 們要自定義視圖查找規則的情況下,我們就可以通過擴展Spring 來自定義自己 所需的視圖解析器。目前,視圖解析器都需要實現介面 org. springframework.web.servlet.ViewResolver,它包含方法 resolveViewName,該方法會通過視圖名查找並返回Spring 視圖對象。 |