Spring--SpringMVC的調用流程

一.簡介

1.1主要作用

在這里插入圖片描述

SSM框架構建起單的技術棧需求!其中的SpringMVC負責表述層(控制層)實現簡化!

最終總結:

 1. 簡化前端參數接收( 形參列表 )2. 端數據響應(返回值)

1.2核心組件和調用流程

Spring MVC與許多其他Web框架一樣,是圍繞前端控制器模式設計的,其中中央 Servlet DispatcherServlet 做整體請求處理調度!

除了DispatcherServletSpringMVC還會提供其他特殊的組件協作完成請求處理和響應呈現。

SpringMVC處理請求流程:

image-20250124120507117

SpringMVC涉及組件理解:

  1. DispatcherServlet : SpringMVC提供,我們需要使用web.xml配置使其生效,它是整個流程處理的核心,負責接收請求、分發,并給予客戶端響應![ CEO ]
  2. HandlerMapping : SpringMVC提供,我們需要進行IoC配置使其加入IoC容器方可生效,它內部緩存handler(controller方法)和handler訪問路徑數據,被DispatcherServlet調用,用于查找路徑對應的handler![秘書]
  3. HandlerAdapter : SpringMVC提供,我們需要進行IoC配置使其加入IoC容器方可生效,它可以處理請求參數和處理響應數據數據,每次DispatcherServlet都是通過handlerAdapter間接調用handler,他是handler和DispatcherServlet之間的適配器![經理]
  4. Handler : handler又稱處理器,他是Controller類內部的方法簡稱,是由我們自己定義,用來接收參數,向后調用業務,最終返回響應結果![打工人]

整個流程:

流程說明(重要):

  1. 客戶端(瀏覽器)發送請求, DispatcherServlet攔截請求。
  2. DispatcherServlet 根據請求信息調用 HandlerMapping
  3. HandlerMapping 根據 URL 去匹配查找能處理的 Handler(也就是我們平常說的 Controller 控制器) ,并會將請求涉及到的攔截器和 Handler 一起封裝。
  4. DispatcherServlet 調用 HandlerAdapter適配器執行 Handler
  5. 方法上添加了@ResponseBody
  6. 通過HttpMessageConverter來返回結果轉換為JSON并響應

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66988.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66988.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66988.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#集合排序的三種方法(List<T>.Sort、LINQ 的 OrderBy、IComparable<T> 接口)

見過不少人、經過不少事、也吃過不少苦&#xff0c;感悟世事無常、人心多變&#xff0c;靠著回憶將往事串珠成鏈&#xff0c;聊聊感情、談談發展&#xff0c;我慢慢寫、你一點一點看...... 1、使用 List<T>.Sort 方法與自定義比較器 public class Person{public string …

從ChatGPT熱潮看智算崛起

2025年1月7日&#xff0c;科智咨詢發布《2025年IDC產業七大發展趨勢》&#xff0c;其中提到“ChatGPT開啟生成式AI熱潮&#xff0c;智能算力需求暴漲&#xff0c;算力供給結構發生轉變”。 【圖片來源于網絡&#xff0c;侵刪】 為何會以ChatGPT發布為節點呢&#xff1f;咱們一起…

Frida使用指南(三)- Frida-Native-Hook

1.Process、Module、Memory基礎 1.Process Process 對象代表當前被Hook的進程,能獲取進程的信息,枚舉模塊,枚舉范圍等 2.Module Module 對象代表一個加載到進程的模塊(例如,在 Windows 上的 DLL,或在 Linux/Android 上的 .so 文件), 能查詢模塊的信息,如模塊的基址、名…

Electron學習筆記,安裝環境(1)

1、支持win7的Electron 的版本是18&#xff0c;這里node.js用的是14版本&#xff08;node-v14.21.3-x86.msi&#xff09;云盤有安裝包 Electron 18.x (截至2023年仍在維護中): Chromium: 96 Node.js: 14.17.0 2、安裝node環境&#xff0c;node-v14.21.3-x86.msi雙擊運行選擇安…

漏洞修復:Apache Tomcat 安全漏洞(CVE-2024-50379) | Apache Tomcat 安全漏洞(CVE-2024-52318)

文章目錄 引言I Apache Tomcat 安全漏洞(CVE-2024-50379)漏洞描述修復建議升級Tomcat教程II Apache Tomcat 安全漏洞(CVE-2024-52318)漏洞描述修復建議III 安全警告引言 解決方案:升級到最新版Tomcat https://blog.csdn.net/z929118967/article/details/142934649 service in…

提示詞的藝術 ---- AI Prompt 進階(提示詞框架)

提示詞的藝術 ---- AI Prompt 進階&#xff08;提示詞框架&#xff09; 寫在前面 上周發布了一篇《提示詞的藝術----AI Prompt撰寫指南》&#xff0c;旨在幫助讀者理解提示詞的作用&#xff0c;以及簡單的提示詞撰寫指南。本篇作為進階內容&#xff0c;將給出常用的提示詞框架…

PyQt4 的圖片切割編輯器

一、 編輯器功能明確 允許用戶加載圖片、選擇切割模式、對切割后的圖片片段進行操作&#xff08;如移動、復制、粘貼、刪除等&#xff09;&#xff0c;并支持撤銷和重做操作。 環境&#xff1a;Py2.7 PyQt 4.11 二、導入模塊介紹 sys: 用于訪問與 Python 解釋器強相關的變…

[MySQL]數據庫表內容的增刪查改操作大全

目錄 一、增加表數據 1.全列插入與指定列插入 2.多行數據插入 3.更新與替換插入 二、查看表數據 1.全列查詢與指定列查詢 2.查詢表達式字段 3.為查詢結果起別名 4.結果去重 5.WHERE條件 6.結果排序 7.篩選分頁結果 8.插入查詢的結果 9.group by子句 三、修改表數…

在 Windows 11 中為 SMB 3.x 文件共享協議提供 RDMA 支持

注&#xff1a;機翻&#xff0c;未校。 Enable SMB Direct in Windows 11 在 Windows 11 中啟用 SMB Direct Provides RDMA support for the SMB 3.x file sharing protocol 為 SMB 3.x 文件共享協議提供 RDMA 支持 Vigneshwaran Vijayakumar November 3, 2024 Last Updat…

electron打包客戶端在rk3588上支持h265硬解

目錄 前言 chromium是如何支持h265硬解 electron/chromium第一次編譯 electron/chromium第二次編譯 前言 我們的客戶端程序是用electron打包的前端程序&#xff0c;其在rk3588主機上的linux環境運行。之前使用客戶端查看h264編碼的視頻直播是沒有問題的&#xff0c;但視頻源…

什么是網絡爬蟲?Python爬蟲到底怎么學?

最近我在研究 Python 網絡爬蟲&#xff0c;發現這玩意兒真是有趣&#xff0c;干脆和大家聊聊我的心得吧&#xff01;咱們都知道&#xff0c;網絡上的信息多得就像大海里的水&#xff0c;而網絡爬蟲就像一個勤勞的小礦工&#xff0c;能幫我們從這片浩瀚的信息海洋中挖掘出需要的…

【Jave全棧】Java與JavaScript比較

文章目錄 前言一、Java1、 歷史與背景2、語言特點3、應用場景4、生態系統 二、JavaScript1、歷史與背景2、語言特點3、應用場景4、 生態系統 三、相同點四、不同點1、語言類型2、用途3、語法和結構4、性能5、生態系統6、開發模式 前言 Java和JavaScript是兩種不同的編程語言&a…

GitCode 助力 AutoTable:共創 MyBatis 生態的自動表格管理新篇章

項目倉庫https://gitcode.com/dromara/auto-table 解放雙手&#xff0c;專注業務&#xff1a;MyBatis 生態的“自動表格”創新 AutoTable 是一款致力于為 MyBatis 生態賦予“自動表格”功能的創新插件。其核心理念是通過 Java 實體類自動生成和維護數據庫的表結構&#xff0c…

【MCU】DFU、IAP、OTA

我發現很多人把幾個概念都學混了&#xff0c;只記得一個升級了 DFU DFU (device firmware update)是指的 USB DFU&#xff0c;這個是 USB 的一個機制&#xff0c;可以升級設備的固件&#xff0c;可以去 USB-IF 查看規范文件。 OTA 全稱為 Over-the-air update&#xff0c;利…

ThinkPHP 8 操作JSON數據

【圖書介紹】《ThinkPHP 8高效構建Web應用》-CSDN博客 《2025新書 ThinkPHP 8高效構建Web應用 編程與應用開發叢書 夏磊 清華大學出版社教材書籍 9787302678236 ThinkPHP 8高效構建Web應用》【摘要 書評 試讀】- 京東圖書 使用VS Code開發ThinkPHP項目-CSDN博客 編程與應用開…

GD32F303 GCC 環境搭建

一、引言 在嵌入式開發領域&#xff0c;GD32F303 微控制器以其出色的性能和豐富的功能被廣泛應用。為了充分發揮其潛力&#xff0c;搭建一個高效的開發環境并深入理解項目構建過程至關重要。本文將詳細介紹如何基于 GCC 工具鏈搭建 GD32F303 的開發環境&#xff0c;重點聚焦于…

【C++】詳細講解繼承(下)

本篇來繼續說說繼承。上篇可移步至【C】詳細講解繼承&#xff08;上&#xff09; 1.繼承與友元 友元關系不能繼承 &#xff0c;也就是說基類友元不能訪問派?類私有和保護成員。 class Student;//前置聲明class Same //基類 { public:friend void Fun(const Same& p, con…

考研機試題:今年的第幾天

描述 輸入年、月、日&#xff0c;計算該天是本年的第幾天。 輸入描述: 包括三個整數年(1<Y<3000)、月(1<M<12)、日(1<D<31)。 輸出描述: 輸入可能有多組測試數據&#xff0c;對于每一組測試數據&#xff0c; 輸出一個整數&#xff0c;代表Input中的年、…

解鎖羅技鍵盤新技能:輕松鎖定功能鍵(羅技K580)

在使用羅技鍵盤的過程中&#xff0c;你是否曾因 F11、F12 功能鍵的默認設置與實際需求不符而感到困擾&#xff1f; 別擔心&#xff0c;今天就為大家分享一個簡單實用的小技巧 —— 鎖定羅技鍵盤的 F11、F12 功能鍵&#xff0c;讓你的操作更加得心應手&#xff01; 通常情況下…

Flink把kafa數據寫入Doris的N種方法及對比。

用Flink+Doris來開發實時數倉,首要解決是如何接入kafka實時流,下面是參考Doris官方文檔和代碼,在自己項目開發的實踐中總結,包括一些容易踩坑的細節。 目錄 Routine Load方法 接入kafka實時數據 踩坑的問題細節 Flink Doris Connector方法 完整示例 Routine Load方法…