SpringMVC 的工作原理

SpringMVC的工作原理

SpringMVC處理請求的過程,以及涉及到的主要組件

SpringMVC請求處理過程

1?? 用戶 —> Dispatcher Servlet

用戶發(fā)送請求給 Dispatcher Servlet 前端控制器 , Dispatcher Servlet 前端控制器不進行處理,而是調(diào)用其他解析器進行用戶的請求處理,它只作為一個轉(zhuǎn)發(fā)器

2?? Dispatcher Servlet —> HandlerMapping, 3? HandlerMapping —> Controller

DispatcherServlet 接受到請求后,調(diào)用 HandlerMapping,然后根據(jù) URL,尋找到對應(yīng)的 Controller

4?? Dispatcher Servlet —> HandlerAdapter , 5? HandlerAdapter —> Controller

完成了 URL 和 Controller 映射過程后,也就是找到了對應(yīng)的 Controller,那么Dispatcher Servlet 就調(diào)用 HandlerAdapter 適配器,去執(zhí)行該 Controller

6 ? Controller —> HandlerAdapter , 7? HandlerAdapter —> Dispatcher Servlet

Controller 完成業(yè)務(wù)處理,返回一個ModelAndView 對象(包含模型數(shù)據(jù)、邏輯視圖名)

8 ? Dispatcher Servlet —> ViewResolver , 9? ViewResolver —> Dispatcher Servlet

Dispatcher Servlet 調(diào)用 ViewResolver 進行 ModelAndView 對象的解析,將ModelAndView 的邏輯視圖名解析為具體的 View,返回 View 視圖對象

10 ? Dispatcher Servlet —> View , 11 Dispatcher Servlet —> 用戶

Dispatcher Servlet 調(diào)用 View 對傳進來的Model模型數(shù)據(jù)進行渲染,此處的Model實際是一個Map數(shù)據(jù)結(jié)構(gòu)。返回控制權(quán)給DispatcherServlet,由DispatcherServlet將結(jié)果響應(yīng)給用戶


SpringMVC的組件

DispatcherServlet 前端控制器 (框架提供):控制中心,用于接收請求,調(diào)用其他組件來處理用戶的請求,并且響應(yīng)結(jié)果。減小組件間的耦合性

HandlerMapping 處理器映射器(框架提供):根據(jù)請求URL尋找匹配的Handler,也就是Controller。映射方式包括注解方式、配置文件方式、實現(xiàn)接口方式

HandlerAdapter 處理器適配器:根據(jù)HandlerAdapter 自身要求的規(guī)則,去執(zhí)行Handler,也就是Controller

Controller處理器(開發(fā)者編程):在DispatcherServlet的控制下,對具體的用戶請求進行處理。開發(fā)者需要根據(jù)業(yè)務(wù)需求編寫Controller

ViewResolver 視圖解析器:根據(jù)邏輯視圖名解析成具體的頁面地址,再將處理結(jié)果生成View視圖。Springmvc 支持多類型的視圖解析,例如:jsp、freemarker、pdf、excel等

View 視圖 (開發(fā)者編程) : View就是展示給用戶的界面,需要開發(fā)者進行頁面設(shè)計,視圖中通常使用標簽語言來展示模型數(shù)據(jù)

參考鏈接:https://www.cnblogs.com/xiaoxi/p/6164383.html

????????????????? https://www.cnblogs.com/heavenyes/p/3905844.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容