SpringMVC執行流程

余月七發表於2021-04-04

SpringMVC執行流程

簡單原理

Spring MVC 框架像許多其他 MVC 框架一樣, 以請求為驅動 , 圍繞一箇中心 Servlet 分派請求及提供其他功能DispatcherServlet 是一個實際的 Servlet (它繼承自 HttpServlet 基類)

當發起請求時被前置的控制器攔截到請求,根據請求引數生成代理請求,找到請求對應的實際控制器,控制器處理請求,建立資料模型,訪問資料庫,將模型響應給中心控制器,控制器使用模型與檢視渲染檢視結果,將結果返回給中心控制器,再將結果返回給請求者


簡單的執行流程

1.DispatcherServlet表示一個前端控制器,是整個SpringMVC的控制中心。

​ 當使用者發出請求,DispatchServlet接收請求並攔截請求。

    • 如上 url 拆分成三部分:
    • SpringMVC ------> 部署在伺服器上的 web 站點
    • hello ------> 表示控制器
    • 通過分析,如上 url 表示為:請求位於伺服器 localhost:8080 上的 SpringMVC 站點的 hello 控制器

2.HandlerMapping表示處理器對映,所以DispatchSerlvet去呼叫HandlerMapping,然後HandlerMapping根據url去查詢Handler

3.HandlerExcution表示具體的Handler,主要作用是根據URL去找控制器。

4.HandlerExcution將解析後的資訊傳遞給DispatcherServlet。

5.HandlerAdapter表示處理器介面卡,它是按照特定的規則去執行Handler

6.Handler讓具體的Controller執行。

7.Controller將具體的執行資訊返回給HanderAdapter,比如ModelAndView。

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

9.DispatcherServlet呼叫檢視解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯檢視名。

10.檢視解析器將解析的邏輯檢視名傳遞給DispatcherServlet。

11.DispatcherServlet根據檢視解析器解析的檢視結果,呼叫具體的檢視。

12.最後呈現給使用者。

相關文章