學習日記-SpringMVC-day49-9.4

知識點:


1.RequestMapping(3)

知識點

核心內容

重點

@RequestMapping注解的parameters屬性

通過parameters指定請求參數條件

(如bookID),控制請求匹配規則(必須包含/排除特定參數或值)

參數存在性檢查 vs 參數值限制(如parameter1!=value1)

多參數條件組合

支持逗號分隔多參數條件

(如parameter1=value1,parameter2),同時校驗參數存在性及值匹配

值限制參數與無值限制參數的混合寫法

請求參數自動綁定

方法形參(如String bookID)自動接收請求中同名參數的值

形參與parameters屬性同名時的綁定機制

測試案例:search方法

@RequestMapping(value="/search", method=GET, parameters="bookID") + 形參接收bookID,輸出并跳轉頁面

無參數請求報錯 vs 帶參數請求成功的對比

2.RequestMapping(4)

知識點

核心內容

重點

Request參數設置

在request.js頁面添加代碼,演示parameters的使用,要求攜帶bookID參數

問號后參數格式(?bookID=100)與工程路徑處理

參數校驗機制

通過parameters屬性強制校驗請求參數(如bookID必須存在且值需匹配100)

參數名不匹配(bookID vs bookIDx)或值不匹配(200 vs 100)觸發400錯誤

條件表達式擴展

支持 = 和 != 運算符限制參數值

動態校驗邏輯(如bookID!=100時拒絕該值)

工程路徑處理

強調斜杠對路徑的影響(如/user/search需避免重復斜杠)

路徑拼接錯誤導致缺失工程路徑

3.RequestMapping(5)

知識點

核心內容

重點

Ant風格資源地址匹配規則

問號匹配單個字符,星號匹配任意字符,雙星號匹配多層路徑

雙星號與單星號的區別(多層路徑 vs 單層路徑)

單星號通配符

/user/*/createUser 匹配單層任意路徑(如aaa/bbb)

星號必須對應一層具體路徑

雙星號通配符

/user/?**?/createUser 匹配零到多層路徑(如空/aa/aa/bb/cc)

零路徑的特殊情況

問號通配符

/user/createUser?? 匹配固定長度任意字符(如AA/BB)

嚴格限定字符數量

實戰配置案例

@RequestMapping("/user/message?**?") 實現多層路徑匹配

需注意路徑拼接規則(類級路徑+方法級路徑)

測試驗證方法

通過JSP超鏈接和Postman工具測試不同URL匹配情況

前端路徑斜杠處理

4.RequestMapping(6)

知識點

核心內容

易混淆點

URL路徑變量綁定

通過@PathVariable注解實現URL占位符與形參的自動綁定

占位符命名形參命名的關系(占位符必須匹配注解值,形參名可自定義)

RESTful風格參數傳遞

使用/user/reg/{username}/{id}形式替代傳統?key=value傳參方式

路徑變量與傳統查詢字符串參數的應用場景區分

注解組合使用

@RequestMapping與@PathVariable的配合使用機制

注解值必須與URL模板變量嚴格一致

參數接收原理

通過反射機制實現路徑變量到方法參數的自動賦值

前端URL結構與后端處理方法的層級對應關系

實戰測試驗證

演示/user/reg/k/300如何映射到name="k"和id=300

URL前綴路徑(/user/reg)必須精確匹配控制器映射

5.RequestMapping注意事項(1)

知識點

核心內容

重點

RequestMapping注解的URL映射規則

URL路徑不可重復,同一控制器內不同方法若配置相同路徑會導致項目啟動報錯

語法檢查階段無法檢測重復,需通過運行時異常(如There is already...錯誤)發現

重復URL的典型錯誤案例

UserHandler類中hi()與hi2()方法均配置路徑/hi,引發"already mapped"沖突

報錯信息明確提示重復映射的方法名(如user.hi())

問題復現與驗證方式

通過重啟項目觸發異常,觀察控制臺輸出的重復路徑沖突提示

需區分語法錯誤(IDE提示)與運行時錯誤(部署階段暴露)

6.RequestMapping注意事項(2)

知識點

核心內容

重點

請求映射簡寫形式

@PostMapping

@RequestMapping(method = RequestMethod.POST) 的簡寫,同理適用于 @GetMapping、@PutMapping、@DeleteMapping

注解等價性:兩種寫法功能相同,但簡寫形式更簡潔

請求方式限制

使用 @PostMapping 后,僅允許 POST 請求,其他請求方式(如 GET)會報錯

測試驗證:通過修改請求方式觸發錯誤,證明注解生效

源碼解析

@PostMapping 源碼中明確標注為 @RequestMapping(method = RequestMethod.POST) 的快捷方式

關鍵注釋:"Shortcut for @RequestMapping(method = RequestMethod.POST)"

同類注解

除 @PostMapping 外,還有 @GetMapping、@PutMapping、@DeleteMapping 等,用法一致

命名規律:前綴對應 HTTP 方法名

7.RequestMapping注意事項(3)

知識點

核心內容

重點

表單/超鏈接數據提交規則

提交參數名需與目標方法參數名嚴格一致(如email字段需匹配形參String email)

參數名不一致時不會報錯,但接收值為null

GET請求參數綁定示例

通過@GetMapping路徑(如/hello3)和URL參數(?email=xx@xx.com)自動綁定形參

需確保URL參數名(email)與形參名完全一致

空值處理機制

參數名不匹配時,后端接收空值而非拋出異常

需主動檢查參數是否為空,避免邏輯漏洞

動態演示案例

通過瀏覽器地址欄直接測試(如/user/hello3?email=xx@xx.com),后臺成功捕獲參數值

未傳參時控制臺顯示email: null

8.Postman介紹

知識點

核心內容

重點

Postman工具介紹

功能強大的HTTP請求測試工具,支持GET/POST/PUT/DELETE等請求模擬,無需開發前端頁面即可測試后端接口

與手動編寫測試頁面的對比:工具效率更高,但需注意請求參數配置準確性

學習必要性

后端開發人員必備工具,簡化Web層Controller測試流程,提升開發效率

版本選擇

工具核心功能

模擬HTTP請求、接收響應數據,支持多種請求類型

功能取舍:僅學習常用功能,無需掌握全部高級特性

資源獲取

官網提供下載(www.postman.com)和文檔(learning.postman.com)

版本差異:新版功能可能增加學習成本,舊版更穩定

9,Postman安裝

知識點

核心內容

重點

Postman安裝步驟

1. 下載軟件(已提供資源);

2. 雙擊安裝(默認系統盤路徑);

3. 桌面生成快捷圖標

無需自定義安裝路徑;

安裝注意事項

- 需管理員身份運行;

- 安裝過程禁止亂點;

- 首次啟動較慢

自動啟動與手動雙擊的區別

異常處理

未自動啟動時:雙擊桌面圖標手動啟動

系統兼容性差異

10.Postman快速入門(1)

知識點

核心內容

重點

Postman基礎功能

發送HTTP請求(GET/POST)、管理請求集合(Collections)、查看響應數據(HTML/JSON)

請求方式選擇(GET vs POST)、響應數據格式(Raw vs Preview)

Postman界面設置

調整字體大小(File → Settings → Font Size)、界面縮放快捷鍵(Ctrl+/-)

快捷鍵沖突(需區分系統全局快捷鍵)

百度GET請求實戰

輸入www.baidu.com → 選擇GET方式 → Send → 解析返回的HTML數據

參數攜帶(Query Params vs Headers)、預覽模式(Preview顯示不全問題)

賬號注冊與免登錄

通過郵箱注冊(Create Account)或直接使用(Skip登錄)

工作空間同步(注冊賬號可跨設備同步請求歷史)

請求集合管理

創建Collection保存請求 → 命名規范(如hsp_百度) → 分類管理

集合共享(團隊協作時需導出/導入)

響應數據分析

Status Code(如200)、耗時、數據大小 → Preview模式(網頁渲染效果)

HTML解析差異(動態內容可能缺失)

11.Postman快速入門(2)

知識點

核心內容

重點

HTTP請求創建

New HTTP Request操作步驟,包含命名、請求方式、URL設置

參數(parameter)與頭信息(headers)配置區別

Connection管理機制

請求以connection集合形式管理,首次保存需創建集合

新建請求與選擇已有集合的邏輯關系

請求保存流程

Save HTTP Request觸發對話框的兩種情形(新建/選擇集合)

集合與單個請求的從屬關系

響應數據解析

Pretty(原生數據)與Preview(網頁渲染)雙模式對比

測試時數據正確性優先于界面展示

搜狐GET請求案例

完整演示從創建請求解析HTML響應的全流程

集合中多請求的并行管理

Postman測試核心價值

重點驗證服務器返回數據而非頁面樣式

接口測試與UI測試的本質差異

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

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

相關文章

【Day 50 】Linux-nginx反向代理與負載均衡

概述在現代 Web 架構中,Nginx 作為高并發、高性能的 HTTP 和反向代理服務器,被廣泛應用于提升服務性能、增強系統安全性和實現負載均衡。其中,反向代理能夠隱藏后端服務器信息并優化請求處理流程,負載均衡則可將請求分發到多個后端…

vue中配置 ts

在 Vue 項目中配置 TypeScript(TS)可以提升代碼的類型安全性和開發體驗。以下是在 Vue 項目(基于 Vite)中配置 TypeScript 的詳細步驟和關鍵配置: 一、創建支持 TypeScript 的 Vue 項目 如果是新建項目,推…

阿里云鏡像地址獲取,并安裝 docker的mysql和nginx等服務,java,python,ffmpeg,go等環境

阿里云那個鏡像地址獲取 阿里云鏡像加速器不是一個通用的 registry.cn-hangzhou.aliyuncs.com,而是你賬號專屬的,比如這樣: https://abcd1234.mirror.aliyuncs.com👉 登錄阿里云控制臺獲取: 阿里云鏡像加速器 然后替…

conda環境導出

1. 激活你想要打包的環境首先,確保你激活了你要打包的 conda 環境:conda activate qwen2. 導出環境配置使用 conda 命令將當前環境的配置導出為一個 .yml 文件,記錄下環境中所有的依賴和版本:conda list --export > techgpt_en…

openEuler2403安裝部署Kafka

文章目錄 openEuler2403安裝部署Kafka with KRaft一、前言1.簡介2.架構3.環境 二、正文1.部署服務器2.基礎環境1)JDK 安裝部署2)關閉防火墻 3.單機部署1)下載軟件包2)修改配置文件3)格式化存儲目錄4)單機啟…

發布工業智能體,云從科技打造制造業AI“運營大腦”

近日,在2025世界智能產業博覽會重慶市工業智能體首發儀式現場,云從科技重磅發布經營決策-產線運營智能體,為制造業的智能化轉型提供了全新的解決方案。該智能體的亮相,不僅代表著人工智能技術在工業領域的深度應用,更標…

【Linux基礎】parted命令詳解:從入門到精通的磁盤分區管理完全指南

目錄 前言 1 parted命令概述 1.1 什么是parted 1.2 parted與fdisk的對比 1.3 parted的主要優勢 2 parted命令的安裝與基本語法 2.1 在不同Linux發行版中安裝parted 2.2 parted的基本語法 2.3 parted的工作模式 3 parted交互式命令詳解 3.1 交互式操作流程 3.2 主要…

如何在路由器上配置DHCP服務器?

在路由器上配置DHCP服務器的步驟因品牌(如TP-Link、華為、小米、華碩等)略有差異,但核心流程一致,主要包括登錄管理界面、開啟DHCP功能、設置IP地址池及相關參數。以下是通用操作指南: 一、準備工作 確保電腦/手機已連…

HTML和CSS學習

HTML學習 注釋 <!-- -->組成 告訴瀏覽器我是html文件<!DOCTYPE html> <title>瀏覽器標簽</title> <body> <!--- 其中是主要內容 ---> <p> 段落 </p> </body> </html> (結束點…

OpenTenBase vs MySQL vs Oracle,企業級應用數據庫實盤對比分析

摘要 因為工作久了的緣故&#xff0c;接觸過不少數據庫。公司的管理系統用的MySQL&#xff0c;財務系統用的Oracle。隨著時代發展&#xff0c;國產開源數據庫已經在性能上能與這些國際知名頂尖數據庫品牌相媲美&#xff0c;其中OpenTenBase以其開放環境和優越性能脫穎而出&…

Oracle 備份與恢復常見的七大問題

為了最大限度保障數據的安全性&#xff0c;同時能在不可預計災難的情況下保證數據的快速恢復&#xff0c;需要根據數據的類型和重要程度制定相應的備份和恢復方案。在這個過程中&#xff0c;DBA的職責就是要保證數據庫&#xff08;其它數據由其它崗位負責&#xff09;的高可用和…

StringBuilder類的數據結構和擴容方式解讀

目錄 StringBuilder是什么 核心特性&#xff1a; StringBuilder數據結構 1. 核心存儲結構&#xff08;基于父類 AbstractStringBuilder&#xff09; 2. 類定義與繼承關系 3. 數據結構的核心特點 StringBuilder數據結構的初始化方式 1. 無參構造&#xff1a;默認初始容量…

LangChain實戰(十七):構建與PDF/PPT文檔對話的AI助手

本文是《LangChain實戰課》系列的第十七篇,將專篇深入講解如何構建能夠與PDF和PPT文檔進行智能對話的AI助手。通過學習本文,您將掌握復雜格式文檔的解析技巧、文本與表格處理技術,以及實現精準問答的系統方法。 前言 在日常工作和學習中,PDF和PPT文檔是我們最常接觸的文檔…

魚眼相機模型

魚眼相機模型 最近涉及魚眼相機模型、標定使用等&#xff0c;作為記錄&#xff0c;更新很久不曾更新的博客。 文章目錄魚眼相機模型1 相機成像2 魚眼模型3 畸變3.1 適用針孔和MEI3.2 Kannala-Brandt魚眼模型4 代碼實現1 相機成像 針孔相機&#xff1a;所有光線從一個孔&#xf…

大語言模型提示詞工程詳盡實戰指南

引言&#xff1a;與大型語言模型&#xff08;LLM&#xff09;高效對話的藝術大型語言模型&#xff08;LLM&#xff09;——例如我們熟知的GPT系列、Claude、Llama等——在自然語言處理&#xff08;NLP&#xff09;領域展現了驚人的能力&#xff0c;能夠執行文本摘要、翻譯、代碼…

HTTP 請求體格式詳解

1. 概覽與概念 Content-Type&#xff1a;HTTP 請求/響應頭&#xff0c;表示消息體的媒體類型&#xff08;MIME type&#xff09;。服務端用它決定如何解析請求體。常見場景&#xff1a; 純結構化數據&#xff08;JSON&#xff09; → application/json表單 文件上傳 → multip…

事務設置和消息分發

事務 RabbitMQ是基于AMQP協議實現的&#xff0c;該協議實現了事務機制&#xff0c;因此RabbitMQ也支持事務機制. SpringAMQP也提供了對事務相關的操作&#xff0c;RabbitMQ事務允許開發者確保消息的發送和接收是原子性的&#xff0c;要么 全部成功&#xff0c;要么全部失敗.| 前…

Python 中 try / except / else / finally 異常處理詳解

1. 基本結構 try:# 可能會拋出異常的代碼 except SomeException as e:# 捕獲并處理異常 else:# 如果 try 中代碼沒有異常&#xff0c;就執行這里 finally:# 無論是否發生異常&#xff0c;最后都會執行這里2. 各部分的作用 try 用途&#xff1a;包含可能發生異常的代碼段。如果代…

冰火島 Tech 傳:Apple Foundation Models 心法解密(下集)

引子 上集說到冰火島冰屋內,謝遜、張翠山、殷素素三人親見 “指令(Instructions)” 如何讓 AI 脫胎換骨,從木訥報地名的 “愣頭青”,變身為文采斐然的 “旅行作家”。 正當素素驚嘆這 AI 武學的奇妙時,謝遜卻突然神色一凜,指著手腕上用冰屑刻的 “4096” 字樣道:“這等…

Qt信號與槽機制全面解析

? 1. 核心概念信號與槽是Qt獨創的一種對象間通信機制&#xff0c;它使得一個對象的狀態變化或事件發生能夠自動通知其他對象作出響應&#xff0c;從而實現高度解耦的代碼設計。1.1 信號&#xff08;Signals&#xff09;定義&#xff1a;信號是由對象在特定事件發生時發出&…