Spring MVC(Model-View-Controller)框架是基于經典的 MVC 設計模式構建的,用于開發 Web 應用程序。下面是 Spring Boot MVC 的工作流程和詳細解釋:
1.客戶端發起請求
1.客戶端(通常是瀏覽器)發起 HTTP 請求到服務器,請求特定的 URL 資源。
2. DispatcherServlet 接收請求
DispatcherServlet 是 Spring MVC 的核心組件之一,它攔截所有的請求(/*),作為前端控制器負責請求的調度和處理。
3. 處理器映射器(Handler Mapping)
Handler Mapping(處理器映射器)根據請求的 URL 找到合適的 Controller(控制器)。Controller 是處理請求并生成響應的組件。
4. 執行處理器(Controller)
找到合適的 Controller 后,DispatcherServlet 將請求轉發給該 Controller。Controller 根據請求中的信息(如路徑、參數等)調用相應的業務邏輯,通常是調用 Service 層的方法來處理業務邏輯。
5. 處理請求
Controller 處理完請求后,通常會將處理結果封裝為一個 Model(模型)對象。Model 包含了數據,通常是業務處理結果的數據。
6. 視圖解析器(View Resolver)
View Resolver(視圖解析器)根據 Controller 返回的邏輯視圖名(如 “home”)解析出實際的視圖對象。視圖對象負責渲染數據,生成最終的 HTML(或其他格式)作為響應返回給客戶端。
7. 渲染視圖
視圖對象接收到 Model 對象,結合模板引擎(如 Thymeleaf、FreeMarker 等)或者直接渲染技術(如 JSP)將 Model 中的數據渲染到 HTML 頁面中。
8. 返回響應
DispatcherServlet 接收到最終的渲染結果(HTML 頁面或其他響應數據),將其返回給客戶端瀏覽器。
9. 客戶端接收響應
客戶端瀏覽器接收到服務器返回的響應,根據響應內容渲染頁面或執行其他操作。
總結:
Spring MVC 的工作流程涵蓋了從客戶端請求到響應的整個過程。DispatcherServlet 充當了中央控制器的角色,通過 Handler Mapping 找到合適的 Controller 處理請求。Controller 負責業務邏輯處理,并將結果封裝在 Model 中,然后由 View Resolver 解析視圖并渲染數據。最終,DispatcherServlet 將渲染好的響應返回給客戶端瀏覽器。