springmvc處理一個請求的全流程


首先,用戶的瀏覽器發出了一個請求,這個請求經過互聯網到達了我們的服務器。

Servlet 容器首先接待了這個請求,並將該請求委托給 DispatcherServlet 進行處理。

接着 DispatcherServlet 將該請求傳給了處理器映射組件 HandlerMapping,並獲取到適合該請求的攔截器和處理器。

在獲取到處理器后,DispatcherServlet 還不能直接調用處理器的邏輯,需要進行對處理器進行適配。

處理器適配成功后,DispatcherServlet 通過處理器適配器 HandlerAdapter 調用處理器的邏輯,並獲取返回值 ModelAndView。

之后,DispatcherServlet 需要根據 ModelAndView 解析視圖。解析視圖的工作由 ViewResolver 完成,若能解析成功,ViewResolver 會返回相應的視圖對象 View。

在獲取到具體的 View 對象后,最后一步要做的事情就是由 View 渲染視圖,並將渲染結果返回給用戶。

核心組件:

組件

說明

DispatcherServlet

Spring MVC 的核心組件,是請求的入口,負責協調各個組件工作

HandlerMapping

內部維護了一些 <訪問路徑, 處理器> 映射,負責為請求找到合適的處理器

HandlerAdapter

處理器的適配器。Spring 中的處理器的實現多變,比如用戶處理器可以實現 Controller 接口,也可以用 @RequestMapping 注解將方法作為一個處理器等,這就導致 Spring 不止到怎么調用用戶的處理器邏輯。所以這里需要一個處理器適配器,由處理器適配器去調用處理器的邏輯

ViewResolver

視圖解析器的用途不難理解,用於將視圖名稱解析為視圖對象 View。

View

視圖對象用於將模板渲染成 html 或其他類型的文件。比如 InternalResourceView 可將 jsp 渲染成 html。

參考:https://cloud.tencent.com/developer/article/1156025


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM