SpringMVC的執(zhí)行流程及組件詳解
這篇文章主要介紹了SpringMVC的執(zhí)行流程及組件詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
一、核心模塊
數(shù)據(jù)庫訪問技術(shù)與集成:JDBC、XML等
Web與遠(yuǎn)程調(diào)用技術(shù):SpringMVC、WebServlet、WebSocket等
面向切面編程:AOP
基礎(chǔ)設(shè)施:Tomcat
Spring核心容器:Beans、Core、Context、Expression、ContestSupport
測試:Test
二、執(zhí)行流程
1.用戶通過頁面發(fā)送Ajax之類的請求,DispatcherServlet捕獲并解析用戶發(fā)來的請求URL,得到請求資源標(biāo)識符URI
2.DispatcherServlet根據(jù)URI調(diào)用HandlerMapping,HandlerMapping根據(jù)請求URL查找Handler,并將請求映射為HandlerExecutionChain處理器執(zhí)行鏈(包含處理器攔截器和處理器對象)
3.HandlerMapping返回HandlerExecutionChain給DispatcherServlet
4.DispatcherServlet根據(jù)獲得的Handler選擇HandlerAdapter,通過處理器適配器調(diào)用具體的處理器,HandlerAdapter把處理器包裝為適配器,并開始執(zhí)行攔截器的preHandler()方法,并根據(jù)適配器的結(jié)果調(diào)用真正的處理器的功能處理方法
5.調(diào)用具體的處理器Handler,在填充Handler的入?yún)⑦^程中spring將會進(jìn)行:執(zhí)行HttpMessageConveter、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)格式化、數(shù)據(jù)驗(yàn)證,調(diào)用具體的Controller完成處理功能,并返回一個ModelAndView對象
6.Controller返回ModelAndView對象到HandlerAdapter
7.HandlerAdapter再將ModelAndView對象的視圖邏輯名或模型返回給DispatcherServlet
8.DispatcherServlet調(diào)用視圖解析器ViewResolver來解析HandlerAdapter傳遞過來的邏輯視圖名
9.ViewResolver將解析的邏輯視圖名傳遞給DispatcherServlet
10.DispatcherServlet根據(jù)解析出的視圖結(jié)果,調(diào)用具體的視圖,根據(jù)傳來的Model模型數(shù)據(jù)進(jìn)行渲染
11.最后View返還控制權(quán)給DispatcherServlet,由DispatcherServlet返回最終視圖給用戶
三、核心組件
1.DispatcherServlet:前端控制器,控制中心
2.HandlerMapping:解析請求URL,解析出控制器,從而映射控制器,相關(guān)類有16個
3.HandlerAdapter:調(diào)度Controller來處理業(yè)務(wù)邏輯
4.ViewResolver:解析DispatcherServlet傳遞的邏輯視圖名,并將結(jié)果傳遞給DispatcherServlet
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java Map如何根據(jù)key取value以及不指定key取出所有的value
這篇文章主要介紹了Java Map如何根據(jù)key取value以及不指定key取出所有的value,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Spring實(shí)戰(zhàn)之使用Resource作為屬性操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用Resource作為屬性,結(jié)合實(shí)例形式分析了spring載人Resource作為屬性相關(guān)配置與使用技巧,需要的朋友可以參考下2020-01-01spring boot如何基于JWT實(shí)現(xiàn)單點(diǎn)登錄詳解
這篇文章主要介紹了spring boot如何基于JWT實(shí)現(xiàn)單點(diǎn)登錄詳解,用戶只需登錄一次就能夠在這兩個系統(tǒng)中進(jìn)行操作。很明顯這就是單點(diǎn)登錄(Single Sign-On)達(dá)到的效果,需要的朋友可以參考下2019-06-06Springboot項(xiàng)目啟動到一半卡住了,不報(bào)錯問題及解決
這篇文章主要介紹了Springboot項(xiàng)目啟動到一半卡住了,不報(bào)錯問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06