SpringMVC的四個核心接口

在最簡單的SpringMVC應用程序中,控制器是唯一的你需要在java web部署描述文件(即Web.xml文件)中配置Servlet。Spring MVC控制器---通常稱做DispatcherServlet,實現了前端控制器設計模式,並且每個web請求必須通過他以便它能夠管理請求的生命週期。

當一個web請求發送到SpringMVC應用程序,dispatcher servlet首先接受請求,然後他組織哪些在 Spring Web應用程序上下文配置的(例如實際請求處理控制器和視圖解析器)或者使用註解配置的組件,所有者這些都需要處理該請求。

 

1.HandlerMapping的使用主要分爲兩步:註冊和查找。

        註冊是根據配置文件中的配置將一個字符串和一個Controller類以<key,value>的形式存入到Map中,這個key就是對應的url中的某個字段。

        查找就是HandlerMapping根據url中的的某個字段,在Map中以這個字段爲key值對應的Controller類,並將Controller類封裝成一個HandlerExecutionChain對象,HandlerExecutionChain中除了有Controller對象外,還有一組攔截器。

2.Controller 是負責處理由DispatcherServlet 分發的請求,它把用戶請求的數據經過業務處理層處理之後封裝成一個Model ,然後再把該Model 返回給對應的View 進行展示

3. ViewResolver的作用就是通過解析MdoelAndView,將MdoelAndView中的邏輯視圖名變爲一個真正的View對象,並將MdoelAndView中的Model取出。

4.View的作用就是在獲取到ViewResolve傳來的View和Model,對Model進行渲染,通過View對象找到要展示給用戶的物理視圖,將渲染後的視圖展示給用戶。用很直白的話將就是將數據通過request存儲起來,找到要展示給用戶的頁面,將這些數據放在頁面中,並將頁面呈現給用戶。

 

在Spring3.0中定義一個控制器類,這個類必須標有@Controller註解。

當有@Controller註解的控制器收到一個請求時,它會尋找一個合適的handler方法去處理這個請求。這就需要控制器通過一個或多個handler映射去把每個請求映射到handler方法。爲了這樣做,一個控制器類的方法需要被@RequestMapping註解裝飾,使它們成爲handler方法。

handler方法處理完請求後,它把控制權委託給視圖名與handler方法返回值相同的視圖。爲了提供一個靈活的方法,一個handler方法的返回值並不代表一個視圖的實現而是一個邏輯視圖,即沒有任何文件擴展名。你可以將這些邏輯視圖映射到正確的實現,並將這些實現寫入到上下文文件,這樣你就可以輕鬆的更改視圖層代碼甚至不用修改請求handler類的代碼。
爲一個邏輯名稱匹配正確的文件是視圖解析器的責任。一旦控制器類已將一個視圖名稱解析到一個視圖實現。它會根據視圖實現的設計來渲染對應對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章