Spring MVC 是 Spring 框架的一部分,用于構建 Web 應用程序。它的執行流程如下:
-
前端控制器(DispatcherServlet)接收請求:用戶通過瀏覽器發送 HTTP 請求到服務器,請求首先被前端控制器 DispatcherServlet 接收。
-
HandlerMapping 查找處理器:DispatcherServlet 根據請求的 URL 和其他信息,通過 HandlerMapping 查找合適的處理器(Handler)。
-
處理器適配器(HandlerAdapter)執行處理器:找到處理器后,DispatcherServlet 使用處理器適配器 HandlerAdapter 來執行該處理器。
-
處理器執行業務邏輯:處理器(通常是控制器類中的方法)執行業務邏輯,可能涉及數據處理、數據庫操作等,并返回一個 ModelAndView 對象,該對象包含視圖名和模型數據。
-
視圖解析器(ViewResolver)解析視圖:DispatcherServlet 將 ModelAndView 對象傳遞給視圖解析器 ViewResolver,ViewResolver 根據視圖名找到對應的視圖實現。
-
視圖渲染:視圖負責將模型數據轉換為 HTML 頁面或其他形式的響應內容,并將其返回給瀏覽器。
-
響應返回給用戶:最終,瀏覽器收到響應并顯示給用戶。
示例流程
假設用戶訪問 /user/list
URL:
-
DispatcherServlet 接收請求:接收到
/user/list
的請求。 -
HandlerMapping 查找處理器:找到對應的處理器,例如
UserController
中的list
方法。 -
HandlerAdapter 執行處理器:調用
UserController
的list
方法。 -
處理器執行業務邏輯:
list
方法從數據庫獲取用戶列表,并返回一個包含用戶數據和視圖名userList
的 ModelAndView 對象。 -
ViewResolver 解析視圖:根據視圖名
userList
找到對應的 JSP 頁面或其他視圖模板。 -
視圖渲染:將用戶數據填充到 JSP 頁面中,生成 HTML 內容。
-
響應返回給用戶:瀏覽器收到 HTML 頁面并顯示用戶列表。
這個流程展示了 Spring MVC 如何將請求處理和視圖渲染分離,提供了高度的靈活性和可擴展性。