SpringMVC系列(四)(請求處理的十個實驗(下))

0 引言

作者正在學習SpringMVC相關內容,學到了一些知識,希望分享給需要短時間想要了解SpringMVC的讀者朋友們,想用通俗的語言講述其中的知識,希望與諸位共勉,共同進步!

本系列會持續更新!!可以放心食用!

1 十個請求處理實驗中的后五個

1.1 實驗六 POJO級聯封裝復雜屬性

首先我們現根據實驗六的內容先填寫相關內容,點擊注冊:

并看一下發送的請求為Get類型,我們先來看一下它的請求地址后面帶的參數:

1)username=Lin&password=1234&cellphone=12345

2)&address.province=福建省&address.city=廈門市&address.area=翔安區

3)&hobby=足球&hobby=籃球

4)&sex=男

5)&grade=一年級&agreement=on

我們發現1/4/5行都是簡單類型屬性;第二行是一個需要封裝成一個POJO對象(因為是.出來的);第三行需要封裝成一個數組,這樣的一個復雜的POJO類型,后端應該怎么樣來接這個數據呢?

首先必須要先寫一個POJO對象來封裝他們:

import lombok.Data;@Data
public class People {//基礎屬性private String username;private String password;private String cellphone;private boolean agreement;private String sex;private String grade;//POJO對象private Address address;//數組private String[] hobby;}@Data
class Address {private String province;private String city;private String area;
}

然后編寫Comtroller代碼:

    @RequestMapping(value = "/handle06")public String handle06(People people){System.out.println(people);return "ok!!!";}

隨后進行測試:

網頁端:

?

后端:

?

1.2?實驗七?@RequestBody注解接收JSON格式數據

實驗七讓我們自己使用postman進行傳輸JSON格式的數據,

首先編寫后端java代碼(需要帶上注解@RequestBody,表明前端傳進來的數據是JSON格式的):

    @RequestMapping(value = "/handle07")public String handle07(@RequestBody People people){System.out.println(people);return "ok!!!";}

我們就拿實驗六中的數據,進行JSON格式的封裝(JSON格式的數據如下,省的大伙兒再打一遍了):

{

? ? "username":"小林學編程",

? ? "password":"123456",

? ? "cellphone":"1234567",

? ? "agreement":"true",

? ? "sex":"男",

? ? "hobby":["籃球","足球"],

? ? "address":{

? ? ? ? "province":"福建省",

? ? ? ? "city":"廈門市",

? ? ? ? "area":"翔安區"

? ? }

}

隨后打開postman進行測試:

?

進行測試:

postman端:

?

后端:

?

1.3?實驗八?文件上傳

進入實驗八:

當我們發送注冊請求時:

?

看F12中的請求體中的數據,有兩個是圖片文件:

?

要想后端收到文件可以這么寫,使用MultipartFile類進行接收:

    @RequestMapping(value = "/handle08")public String handle08(People people,@RequestParam("headerImg") MultipartFile headerImg,@RequestParam("lifeImg") MultipartFile lifeImg) throws IOException {//獲得原始文件名String headerImgName = headerImg.getOriginalFilename();// 保存圖片到本地headerImg.transferTo(new File("D:\\"+headerImgName));return "ok!!!";}

并將文件保存至我的D盤當中。

測試;

網頁端:

?

文件是否導入D盤中:

?

1.4?實驗九?HttpEntity獲得整個請求頭和請求體

前面我們分別測試了單獨獲得請求頭和請求體的內容,我們有沒有一種方法兩種都能獲得呢?有的兄弟有的,那就是HttpEntity類,java代碼可以這樣寫:

    @RequestMapping(value = "/handle09")public String handle09(HttpEntity<People> httpEntity){//獲得請求頭System.out.println("請求頭" + httpEntity.getHeaders());//獲得請求體System.out.println("請求體" + httpEntity.getBody());return "ok!!!";}

注意:HttpEntity<People>中的泛型指的是請求體中的數據類型!

然后使用postman發出請求:

?

測試結果:

postman端:

?

終端:

?

1.5?實驗十?傳入原生API(不推薦)

如果你是一個懷舊的人,可以使用原生的web處理API進行調用(這種方法不推薦,有更好的工具為啥不用)

    @RequestMapping(value = "/handle10")public String handle10(HttpServletRequest request, HttpServletResponse  response) throws IOException {//進行原始的操作return "ok!!!";}

具體的操作留給讀者自己去寫具體的操作,本篇不再重復。

2 十個實驗的測試代碼

如果大家也不想敲代碼的話,那就可以直接在我的gitee地址里面下載十個實驗的測試代碼:

lin/請求測試十個實驗https://gitee.com/lin2002wei/Request_code

參考:

P96-P100

100.請求處理 -實驗10:傳入原生API_嗶哩嗶哩_bilibili

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

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

相關文章

產線通信“變形記”:PROFIBUS-DP與ETHERNET/IP的食品飲料跨界融合

在食品飲料加工行業&#xff0c;為實現不同設備間高效通信&#xff0c;JH-PB-EIP疆鴻智能PROFIBUS DP轉ETHERNET/IP網關發揮著關鍵作用。西門子PLC常采用PROFIBUS DP協議&#xff0c;而碼垛機器人等設備多使用ETHERNET/IP協議&#xff0c;網關成為連接二者的橋梁。 將DP作為從站…

設計模式-觀察者模式(發布訂閱模式)

一、需要的類 一個發布類&#xff1a;里面一個是別人需要訂閱的屬性&#xff0c;以及用于存儲訂閱者的list&#xff0c;attach方法是往list集合里面添加元素&#xff0c;notifyObservers通知方法&#xff0c;也就是循環調用訂閱者里面的一個方法&#xff0c;這個notifyObserve…

Linux測試是否能聯網

ping百度看是否有返回包&#xff1a; ping www.baidu.com ping -c可以通過參數提前設置發送的包數量&#xff1a; ping -c 4 www.baidu.com 終止ping快捷鍵&#xff1a; 按下 Ctrl C&#xff1a;立即終止ping進程&#xff0c;并顯示統計信息。按下 Ctrl Z&#xff1a;將進…

TOGAF? 架構分區:優秀架構的秘密

TOGAF &#xff08;The Open Group架構框架&#xff09;已成為企業架構事實上的全球標準, 是世界上使用最廣泛的企業架構框架。 它為企業 IT 架構的設計、規劃、實施和管理提供了一套全面的方法和工具。但是&#xff0c;即使是經驗豐富的架構師也經常會忽略 TOGAF 中隱藏的寶…

如何讓視頻在特定的網站上播放/禁止播放?(常見的視頻防盜鏈技術之一)

一、需求背景 在各行各業中,不論是教育、貿易還是醫療領域,視頻內容都存在被盜用的風險。為加強視頻安全性,我們可以采取特殊設置措施,例如限制視頻僅在高安全性網站播放,或屏蔽高風險網站。那么,具體有哪些方法可以有效保護視頻安全呢? 二、需求解決 通過OVP防盜鏈技…

如何調鼠標的靈敏度 快速調節超簡單

鼠標靈敏度是指鼠標在移動時&#xff0c;指針在屏幕上移動的速度。適當的鼠標靈敏度不僅能夠提高工作效率&#xff0c;還能減少手部疲勞&#xff0c;優化游戲體驗。那么不同的使用場景&#xff0c;鼠標靈敏度怎么調呢&#xff1f;本文將詳細探討如何調整鼠標靈敏度&#xff0c;…

基于單次常規腦MRI的深度學習檢測多發性硬化癥急性和亞急性病變活動性|文獻速遞-最新論文分享

Title 題目 Deep learning detection of acute and sub-acute lesion activity from single-timepoint conventional brain MRI in multiple sclerosis 基于單次常規腦MRI的深度學習檢測多發性硬化癥急性和亞急性病變活動性 01 文獻速遞介紹 多發性硬化癥&#xff08;MS&am…

CloudFormation 實現 GitHub Actions OIDC 與 AWS ECR 的安全集成

引言:現代 CI/CD 的安全挑戰 在容器化應用部署流程中,傳統長期憑證管理已成為主要安全痛點。本文將詳細介紹如何通過 AWS CloudFormation 實現 GitHub Actions 與 Amazon ECR 的安全集成,利用 OIDC(OpenID Connect)技術消除長期憑證風險,構建符合企業級安全標準的 CI/CD…

JMeter常用斷言方式

簡介 接口斷言是接口測試中用于驗證響應結果是否符合預期的關鍵機制&#xff0c;根據業務需求編寫腳本添加斷言&#xff0c;可驗證接口的正確性。以下內容僅記錄常用的斷言方式&#xff0c;多個接口都有斷言時可以使用事務控制器來隔離不同的斷言。 斷言方式 1、響應斷言 1.…

web服務器搭建nginx

1 配置主機ip 1.1獲取主機ip ip a rootpc:/home/ruxin# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft foreve…

ubuntu ollama 遇到的若干問題

服務器原先有ollama&#xff0c;想要重裝&#xff0c;遇到一系列問題 安裝下載連接&#xff1a;https://github.com/ollama/ollama/blob/main/docs/linux.md模型下載鏈接&#xff1a;https://ollama.com/library/deepseek-r1:1.5b 一、安裝新的ollama 在root用戶下操作 1.卸…

Linux: errno: EMSGSIZE 5

最近看到一個envoy在發送UDP包時返回的錯誤:sendmsg failed with error code 5 這里的error code 5其實是,envoy自己定義的error code: case SOCKET_ERROR_MSG_SIZE:return IoErrorCode::MessageTooBig;class IoError {public:enum class

深度剖析 LNK 參數隱藏攻擊 (ZDI-CAN-25373)

1、漏洞描述 ZDI-CAN-25373 是一個 Windows 快捷方式文件(.LNK)漏洞,它允許攻擊者通過精心制作的惡意快捷方式文件來執行隱藏的惡意命令。攻擊者通過在 .LNK 文件的 COMMAND_LINE_ARGUMENTS 結構中填充大量空白字符(如空格、水平制表符、換行符等)來隱藏惡意命令。這些填…

Linux操作系統筆記3

接口管理命令&#xff1a; ip命令 字符終端 nmcli命令 字符終端 nmtui命令 可視化終端 ip命令&#xff1a; 使用 ip 命令可以配置臨時網絡的連接信息&#xff0c;相關命令如下&#xff1a; ip link&#xff1a;顯示網絡設備運行狀態 ip -s link&#xff1a;顯示更詳細的設備信…

Vue3 根據路由配置實現動態菜單

前言 最近在學習Vue3的相關語法&#xff0c;在閱讀官方文檔的時候覺得官方文檔的菜單欄比較簡潔美觀&#xff0c;于是想著能不能自己實現一個類似的多級菜單。代碼大部分由AI所做&#xff08;感謝活在這個人工智能時代&#xff09;。 設計 主要就是路由設計以及菜單設計 路…

C#中 Winform如何實現跨頁面調用

設計頁面 如下 其中Form2為啟動項 當點擊訂閱消息的時候 會創建Form1頁面 當 Form1頁面的點擊發送的時候 自動將發送的消息同步到label1中 Form2的代碼如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using S…

一個完整的Python解決方案,用于使用機器學習篩選最優模型并分析納米酶特征與Km/Vmax的相關性

以下是一個完整的Python解決方案,用于使用機器學習篩選最優模型并分析納米酶特征與Km/Vmax的相關性。代碼包含數據預處理、模型選擇、特征相關性分析和結果可視化,并附帶詳細注釋。 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn…

用python可視化南方大暴雨及洪水數據分析

用python可視化南方大暴雨及洪水數據分析 截至20250621,南方地區(特別是廣東、廣西、湖南等地)遭遇的極端暴雨和洪水災害&#xff0c;斑點魚將使用Python進行數據分析和可視化&#xff0c;展示洪水影響區域、雨勢強度以及經濟損失等情況。 數據搜集如下&#xff1a; import …

DeepSPV:一個用于從二維超聲圖像進行三維脾臟體積估算的深度學習流程|文獻速遞-最新論文分享

Title 題目 DeepSPV: A deep learning pipeline for 3D spleen volume estimation from 2D ultrasound images DeepSPV&#xff1a;一個用于從二維超聲圖像進行三維脾臟體積估算的深度學習流程 01 文獻速遞介紹 1.1 臨床背景 脾腫大&#xff0c;即脾臟增大&#xff0c;是…

PHP在做爬蟲時的解決方案

爬蟲不是一個小眾的場景,所以無論是哪個語言,都有很多相應的生態庫.這里介紹一下PHP的技術方案和代碼量。 關鍵能力 對頁面的解析能力 PHP的官方擴展中有Dom擴展,但是我建議使用electrolinux/phpquery這個庫,他相當于一個PHP版的JQ. 算上加載文件,只要三行就能獲取title標簽…