tomcat服務器以及接受請求參數的方式

1.javaee:意為java企業版,指java企業級開發的規范總和,包含13項技術規范

2.事實上服務器和客戶端進行交互的過程中,有一個前端控制器在中間運作,這個控制器為DispatcherServlet,它負責將客戶端請求的信息包裝成HttpServletrequest對象,同時負責將服務器所傳回的響應信息包裝成HttpServletresponse對象.

3.獲取請求參數的方式:

(1)原始方式:

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ControllerHello {@RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){String name = request.getParameter("name");String age = request.getParameter("age");int a = Integer.parseInt(age);System.out.println(name + "+" + age);return "ok";}
}

注意點:①getParameter的括號中必須加括號,表示字符串,且必須與請求參數的參數名一致;

②獲取的是個字符串,需要自行進行轉換;

(2)簡單參數:

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ControllerHello {@RequestMapping("/simpleParam")public String simpleParam(String name, Integer age){System.out.println(name + "+" + age);return "ok";}
}

第二種十分簡潔,不需要進行類型轉換;但要求形參名必須和請求參數名一致;

如果不一致,可以加上@RequestParam(name = “name”)注解:

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ControllerHello {@RequestMapping("/simpleParam")public String simpleParam(@RequestParam(name = "name") String username, Integer age){System.out.println( username + "+" + age);return "ok";}
}

同時該注解可以添加第二個參數:required;

默認為true,表示必須傳入,否則報400錯誤,顯示請求異常;

(3)實體對象參數:

這個需要創建一個實體類pojo,并用實體對象來接受請求參數,要求請求參數名必須對應實體類的屬性名;同時有嵌套格式的話需要在請求時,進行加.的修飾:

例如:

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import new_start.new_start4.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ControllerHello {@RequestMapping("/pojo")public String pojo(User user){System.out.println(user);return "ok";}
}

(4)數組參數:

請求中只需要傳值時使用同一個key值,同時這個key值等同于數組名即可;

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import new_start.new_start4.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;@RestController
public class ControllerHello {@RequestMapping("/hobby")public String hobby(String[] hobby){System.out.println(Arrays.toString(hobby));return "ok";}
}

同時還可以用集合,只不過要加上@RequestParam:

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import new_start.new_start4.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.List;@RestController
public class ControllerHello {@RequestMapping("/hobby")public String hobby(@RequestParam List<String> hobby){System.out.println(hobby);return "ok";}
}

(5)日期參數

(6)json參數:

通過json傳遞參數必須要用post請求方式,要把參數寫在請求體中:同時用實體類接受,實體類的屬性名和鍵名一致:但要注意形參名前要加@RequestBody

package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import new_start.new_start4.pojo.User;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.List;@RestController
public class ControllerHello {@RequestMapping("/json")public String json(@RequestBody User user){System.out.println(user);return "ok";}
}(7)路徑參數:注意要加@PathVariable,同時mapping路徑映射要加{}來設定參數名
package new_start.new_start4.controller;import jakarta.servlet.http.HttpServletRequest;
import new_start.new_start4.pojo.User;
import org.springframework.web.bind.annotation.*;import java.util.Arrays;
import java.util.List;@RestController
public class ControllerHello {@RequestMapping("/path/{id}")public String json(@PathVariable Integer id){System.out.println(id);return "ok";}
}

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

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

相關文章

武警智能兵器室系統架構設計與關鍵技術解析

在現代化武警部隊建設中&#xff0c;武器彈藥的安全管理與快速響應能力直接影響部隊戰斗力。本文基于某實戰化智能兵器室建設案例&#xff0c;深入解析其系統架構設計、關鍵技術實現及創新管理機制&#xff0c;為安防領域提供可借鑒的解決方案。 整體拓撲結構 系統采用分層分布…

RLHF獎勵模型的訓練

由于 RLHF 的訓練過程中需要依賴大量的人類偏好數據進行學習&#xff0c;因此很難在訓練過程中要求人類標注者實時提供偏好反饋。為此&#xff0c;我們需要訓練一個模型來替代人類在 RLHF 訓練過程中實時提供反饋&#xff0c;這個模型被稱為獎勵模型 &#x1f538;一、 目標函…

reverse_ssh 建立反向 SSH 連接指南 混淆AV [好東西喲]

目錄 &#x1f310; 工具簡介 ?? 前提條件 攻擊主機 (Linux) 目標主機 (Windows) &#x1f4cb; 詳細步驟 步驟 1&#xff1a;安裝 Go 環境 步驟 2&#xff1a;安裝必要依賴 步驟 3&#xff1a;下載并編譯 reverse_ssh 步驟 4&#xff1a;配置密鑰 步驟 5&#xff…

Ubuntu 下搭建ESP32 ESP-IDF開發環境,并在windows下用VSCode通過SSH登錄Ubuntu開發ESP32應用

Ubuntu 下搭建ESP32 ESP-IDF開發環境&#xff0c;網上操作指南很多&#xff0c;本來一直也沒有想過要寫這么一篇文章。因為我其實不太習慣在linux下開發應用&#xff0c;平時更習慣windows的軟件操作&#xff0c;只是因為windows下開發ESP32的應用編譯時太慢&#xff0c;讓人受…

Rust使用Cargo構建項目

文章目錄 你好&#xff0c;Cargo&#xff01;驗證Cargo安裝使用Cargo創建項目新建項目配置文件解析默認代碼結構 Cargo工作流常用命令速查表詳細使用說明1. 編譯項目2. 運行程序3.快速檢查4. 發布版本構建 Cargo的設計哲學約定優于配置工程化優勢 開發建議1. 新項目初始化?2. …

免費且好用的PDF水印添加工具

軟件介紹 琥珀掃描.zip下載鏈接&#xff1a;https://pan.quark.cn/s/3a8f432b29aa 今天要給大家推薦一款超實用的PDF添加水印工具&#xff0c;它能夠滿足用戶給PDF文件添加水印的需求&#xff0c;而且完全免費。 這款PDF添加水印的軟件有著簡潔的界面&#xff0c;操作簡便&a…

NW969NW978美光閃存顆粒NW980NW984

NW969NW978美光閃存顆粒NW980NW984 技術解析&#xff1a;NW969、NW978、NW980與NW984的架構創新 美光&#xff08;Micron&#xff09;的閃存顆粒系列&#xff0c;尤其是NW969、NW978、NW980和NW984&#xff0c;代表了存儲技術的前沿突破。這些產品均采用第九代3D TLC&#xf…

Mysql常用知識3:Kafka和數據庫優化

文章目錄 一、分布式消息系統&#xff08;Kafka相關問題5-10&#xff09;5. Kafka如何保證消息不丟失&#xff1f;6. 項目中Kafka具體怎么使用的&#xff1f;7. 消息異常未發送成功怎么解決&#xff1f;8. 重試具體怎么做的&#xff0c;循環嗎&#xff1f;9. 重試多次失敗怎么辦…

常見的RAG文檔解析輔助工具匯總及企業選型思考

以下當前比較知名的RAG的文檔解析輔助工具的開源項目匯總&#xff0c;包含核心功能、License信息及GitHub地址&#xff1a; 1. RAGFlow 核心功能&#xff1a;支持PDF/掃描件/CAD等23種格式解析&#xff0c;OCR準確率98%&#xff0c;知識圖譜融合&#xff0c;混合檢索&#xf…

基于Sqoop的MySQL-Hive全量/增量同步解決方案(支持多表批量處理

一、全量同步方案設計 1.1 基礎命令模板 sqoop import \ --connect jdbc:mysql://mysql_host:3306/db_name \ --username user \ --password pass \ --table source_table \ --hive-import \ --hive-table target_table \ --hive-overwrite \ # 覆蓋已有表 --num-mappers 8 …

前端學習(7)—— HTML + CSS實現博客系統頁面

目錄 一&#xff0c;效果展示 二&#xff0c;實現博客列表頁 2.1 實現導航欄 2.2 實現個人信息 2.3 實現博客列表 三&#xff0c;實現博客正文頁 3.2 復用 3.4 實現博客正文 四&#xff0c;實現博客登錄頁 4.1 版心 4.2 登錄框 五&#xff0c;實現博客編輯頁 5.1 …

【技能拾遺】——家庭寬帶單線復用布線與配置(移動2025版)

&#x1f4d6; 前言&#xff1a;在家庭網絡拓撲中&#xff0c;客廳到弱電箱只預埋了一根網線&#xff0c;由于已將廣電的有線電視取消并改用IPTV。現在需要解決在客廳布置路由器和觀看IPTV問題&#xff0c;這里就用到單線復用技術。 目錄 &#x1f552; 1. 拓撲規劃&#x1f55…

VTK|實現類似CloundCompare的測量功能

文章目錄 CloundCompare在點、線、面三種模式下的顯示內容? 圖1&#xff1a;點模式? 圖2&#xff1a;線模式? 圖3&#xff1a;面模式 增加控制菜單欄實現測量功能類如何調用項目git鏈接 CloundCompare在點、線、面三種模式下的顯示內容 點 線 面 三張圖展示了 CloudComp…

4000萬日訂單背后,餓了么再掀即時零售的“效率革命”

當即時零售轉向價值深耕&#xff0c;贏面就是綜合實力的強弱。 文&#xff5c;郭夢儀 編&#xff5c;王一粟 在硝煙彌漫的外賣行業“三國殺”中&#xff0c;餓了么與淘寶閃購的日訂單量竟然突破了4000萬單。 而距淘寶閃購正式上線&#xff0c;還不到一個月。 在大額福利優惠…

vedio.ontimeupdate()和video.onloadeddata()

video.onloadeddata &#xff08;&#xff09; video.onloadeddata 是 JavaScript 中用于監聽 HTML <video> 元素 「當前幀數據已加載」 的事件處理器。當視頻的第一幀畫面數據加載完成&#xff08;足以開始播放&#xff09;時&#xff0c;會觸發此事件。 1. 基本用法 …

Baklib內容中臺革新企業知識實踐

Baklib智能知識中樞構建 作為現代企業知識管理的核心架構&#xff0c;Baklib內容中臺通過整合多源異構數據形成智能化知識中樞&#xff0c;實現從信息采集到價值轉化的全鏈路管理。其底層采用跨平臺數據貫通技術&#xff0c;支持API接口與企業現有CRM、ERP系統無縫對接&#x…

用不太嚴謹的文字介紹遙測自跟蹤天線的基本原理

前兩天跟一個客戶見面的時候&#xff0c;客戶問我&#xff1a;遙測自跟蹤天線能夠跟蹤目標&#xff0c;是什么原理&#xff1f;不需要目標的位置&#xff0c;怎么做到自跟蹤的&#xff1f; 突然一瞬間&#xff0c;有點語塞。 難道要介紹天線、饋源、極化、左旋、右旋、和差網…

VS配置redis環境、redis簡單封裝

一、安裝redis數據庫 1.下載redis的壓縮包 wget https://download.redis.io/releases/redis-6.0.5.tar.g 2.解壓縮redis壓縮包&#xff0c;一般就在當前路徑 tar -zvxf redis-6.0.5.tar.gz -C /usr/local/redis 方便找我把它解壓縮在/usr/local/redis&#xff0c;如果沒有r…

C++23 已移除特性解析

文章目錄 引言C23 已移除特性介紹1. 垃圾收集的支持和基于可達性的泄漏檢測&#xff08;P2186R2&#xff09;背景與原理存在的問題移除的影響 2. 混合寬字符串字面量拼接非良構&#xff08;P2201R1&#xff09;寬字符串編碼概述混合拼接的問題示例分析移除的意義 3. 不可編碼寬…

Cloudflare

Cloudflare 是一個網絡基礎設施和網站安全服務提供商&#xff0c;它的主要作用是讓網站 更快、更安全、更可靠。簡單來說&#xff0c;它是一個“護盾 加速器”。 &#x1f9e9; Cloudflare 的主要功能&#xff1a; 1. &#x1f680; 加速網站訪問&#xff08;CDN&#xff09…