溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringMVC執(zhí)行過(guò)程是怎樣的

發(fā)布時(shí)間:2022-01-05 14:52:32 來(lái)源:億速云 閱讀:138 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“SpringMVC執(zhí)行過(guò)程是怎樣的”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一 Spring核心模塊

下圖為Spring核心模塊,其中SpringMVC模塊位于Spring框架的Web模塊部分

SpringMVC執(zhí)行過(guò)程是怎樣的

二 SpringMVC執(zhí)行原理

下圖為SpringMVC的一個(gè)較完整的流程圖,實(shí)線表示SpringMVC框架提供的技術(shù),不需要開(kāi)發(fā)者實(shí)現(xiàn),虛線表示需要開(kāi)發(fā)者實(shí)現(xiàn)。

簡(jiǎn)要分析執(zhí)行流程:

1.DispatcherServlet表示前置控制器,是整個(gè)SpringMVC的控制中心。用戶發(fā)出請(qǐng)求,DispatcherServlet接收請(qǐng)求并攔截請(qǐng)求,

我們假設(shè)請(qǐng)求的url為:

http://localhost:9999/SpringMVC/input-product

如上url拆分成三部分:
  • http://localhost:9999 服務(wù)器域名

  • SpringMVC部署在服務(wù)器(http://localhost:9999)上的web站點(diǎn)

  • input-product表示控制器

通過(guò)分析,如上url表示為:請(qǐng)求位于服務(wù)器localhost:9999上的SpringMVC站點(diǎn)的input-product控制器

2.HandlerMapping為處理器映射。DispatcherServlet調(diào)用HandlerMapping,HandlerMapping根據(jù)請(qǐng)求url查找Handler

3.HandlerExecution表示具體的Handler,其主要作用是根據(jù)url查找控制器,如上url被查找控制器為:input-product

4.HandlerExecution將解析后的信息傳遞給DispatcherServlet,如解析控制器映射等

5.HandlerAdapter表示處理器適配器,其按照特定的規(guī)則去執(zhí)行Handler

6.Handler讓具體的Controller執(zhí)行

7.Controller將具體的執(zhí)行信息返回給HandlerAdapter,如ModelAndView

8.HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet

9.DispatcherServlet調(diào)用視圖解析器(ViewResolver)來(lái)解析HandlerAdapter傳遞的邏輯視圖名

10.視圖解析器將解析的邏輯視圖名傳給DispatcherServlet

11.DispatcherServlet根據(jù)視圖解析器解析的視圖結(jié)果,調(diào)用具體的視圖

12.最終視圖呈現(xiàn)給用戶。

SpringMVC執(zhí)行過(guò)程是怎樣的

三 SpringMVC核心組件

(一)DispatcherServlet

DispatcherServlet就是所謂的SpringMVC前端控制器,作為整個(gè)SpringMVC的控制中心,,其相關(guān)UML如下所示:

SpringMVC執(zhí)行過(guò)程是怎樣的

(二)HandlerMapping

HandlerMapping主要用來(lái)解析請(qǐng)求url,解析出控制器,從而映射控制器,其相關(guān)類有16個(gè)。

SpringMVC執(zhí)行過(guò)程是怎樣的

如下為HandlerMapping的UML圖

SpringMVC執(zhí)行過(guò)程是怎樣的

(三)HandlerAdapter

HandlerAdapter主要是調(diào)度Controller來(lái)處理業(yè)務(wù)邏輯等,想相關(guān)類有6個(gè)。

SpringMVC執(zhí)行過(guò)程是怎樣的

如下為HandlerAdapter的UML:

SpringMVC執(zhí)行過(guò)程是怎樣的

(四)ViewResolver

ViewResolver接口主要作用是解析DispatcherServlet傳遞的邏輯視圖名,并將解析結(jié)果傳回給DispatcherServlet。實(shí)現(xiàn)該接口的相關(guān)類或接口共有19個(gè)。

SpringMVC執(zhí)行過(guò)程是怎樣的

如下為ViewResolver主要的UML:

SpringMVC執(zhí)行過(guò)程是怎樣的

“SpringMVC執(zhí)行過(guò)程是怎樣的”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI