1. 程式人生 > 實用技巧 >SpringMVC五大元件和請求響應流程

SpringMVC五大元件和請求響應流程

一、SpringMVC五大元件

DispatcherServlet 前端控制器
HandlerMapping 對映處理器
Controller: 處理器
ModelAndView: (處理結果和檢視名)
ViewResolver 檢視解析器。

二、請求響應流程

DispatcherServlet收到請求後,依據HandlerMapping的配置,呼叫相應的Controller來處理,Controller將處理結果封裝成ModelAndView物件,返回給DispatcherServlet,DispatcherServlet依據ViewResolver的解析,呼叫相應的檢視物件,(如jsp)來生成相應的頁面。

springMVC的五大元件的關係
在這裡插入圖片描述
在這裡插入圖片描述

1.使用者請求傳送給前端控制器(DispatcherServlet),前端控制器收到請求路徑,但不知道請求的是那個Control中的哪個方法
2.DispatcherServlet找到處理器對映器(HandlerMapping),實際上處理器對映器存放了Map<String,Handler>,通過請求的url地址找到對應的處理器及自定義的攔截器等
3.前端控制器依然不能處理這個業務請求,它這時做的還有另外一件事情,因為返回Handler,它也不知道這個Handler是什麼型別,因為在spring mvc中Handler除了可以是註解形式的之外,其實還可以是非註解形式的(非註解形式我們一般不用),前端控制器並不知道這個Handler到底是什麼型別的,那就沒辦法執行它,那總得找個東西執行,這時它就會把這個事交給另外一個元件來處理,這個元件就叫處理器介面卡,這個處理器介面卡就是來適配不同型別的Handler。它就會根據你不同型別的Handler來選擇不同型別的介面卡來執行它。

4.處理器介面卡拿到處理器,執行。就是執行對應的Control層被@RequestMapping註解標註的方法,執行成功返回ModelAndView
5.通過對應的檢視解析器(如jsp檢視解析器,Thymeleaf檢視解析器)請求解析檢視找到這個檢視解析器,它來把這個檢視解析,解析完了之後它會返回一個View物件。
6.最後我們再呼叫這個檢視解析器的渲染檢視這個過程,渲染檢視這個過程其實就是對於我們的jsp來說,就是把這個資料渲染成html響應給頁面。