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類的代碼。
為一個邏輯名稱匹配正確的文件是視圖解析器的責任。一旦控制器類已將一個視圖名稱解析到一個視圖實現。它會根據視圖實現的設計來渲染對應對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM