【多種不同提交方式】通過springboot實現與前端網頁數據交互(非常簡潔快速)

【多種不同提交方式】通過springboot實現與前端網頁數據交互

提示:幫幫志會陸續更新非常多的IT技術知識,希望分享的內容對您有用。本章分享的是springboot的使用。前后每一小節的內容是存在的有:學習and理解的關聯性。【幫幫志系列文章】:每個知識點,都是寫出代碼和運行結果且前后關聯上的去分析和說明(能大量節約您的時間)。

所有文章都*不會*直接把代碼放那里,讓您自己去看去理解。我希望我的內容對您有用而努力~


本文章是系列文章,技術棧內容為:【springboot+vue】【前后分離】
【詳細圖文,實操步驟分享,節約時間版】。最終完成一個商業化項目。內容有:
springboot知識
mybatisPlus知識
vue知識
node.js知識

本小節的內容是
springboot篇章 之 : 2.實現與前端網頁數據交互
本小節-附一個小節(建議觀看)(保證 主要章節內容篇幅不大,且不繁瑣):
apiPost工具的安裝及使用
因為我們無法:直接通過瀏覽器來實現post、put、delete等方式的提交,有postMan等等很多網頁測試工具,最后選擇是:apiPost國內的比較簡潔方便

上一小節是: springboot篇章 之 : 1.創建idea工程
基于電腦的jdk1.8通過idea創建springboot2.x版本
現在springboot是3.x以上版本,jdk版本至少要求17.但是很多時候我們電腦是jdk1.8(求穩定性和安全性)。文本分享本機電腦1.8的jdk。idea如何非常簡潔快速的創建springboot


文章目錄

  • 【多種不同提交方式】通過springboot實現與前端網頁數據交互
  • 前言
  • 一、創建項目結構
  • 二、發送及接受數據
    • get提交
    • post提交
    • put提交
    • delete提交
  • 說明
  • 總結


前言

您已經創建好了一個springboot項目,且運行沒有環境報錯
文章開頭有鏈接,能快速創建一個springboot項目,且那篇文章也有附小節,分享了關于idea創建項目的時候,會遇到的各種問題。


一、創建項目結構

web服務器項目,會創建對應的包,使其不同功能的代碼,放到不同的包里面。dao關聯數據庫,service業務邏輯,controller關聯網頁數據,model/pojo/entity實體模板,utils工具類

在這里插入圖片描述

二、發送及接受數據

在controller包里面創建一個類,這個類的功能就是關聯前端網頁數據
在這里插入圖片描述

//類的最上面 添加一個注解@RestController
//@RestController 表示 這個類里面的所有方法 返回的都是數據//@Controller這個注解添加到類上面,表示這個類屬于控制器:
//			類里面的方法返回的可能是   需要跳轉網頁的名字[那你后臺項目就得折騰網頁]
//當前系列文章 是前后分離(快速手搓成型)(后臺項目沒有網頁)
//  		當前沒有多余的內容來分享網頁(越多內容怕越會看暈)[如需看,請查閱幫志其他文章]@RestController
public class BbzController {}

get提交

發送數據 :
先在類里面寫方法

@RequestMapping("/hello")
@RequestMapping(value = "/hello",method = RequestMethod.GET)
@GetMapping(value = "/hello")
public String helloBoot(){return "你好,幫幫志";
}//注意:::::  三個@注解描述的事情,一模一樣。  代碼三選一即可(三個同時要報錯哦~)
//對應的  網頁地址是 : localhost:8080/hello

網頁輸入地址 localhost:8080/hello 得到后臺的數據
因為我們在類的上面寫了@RestController。表示方法的返回值,都是給前端的數據。后面我們數據會復雜,前端vue.js根據key來取,在放不同位置就可以了
在這里插入圖片描述

方法上面的注解(value = “/hello”) 和網頁 localhost:8080 /hello
所以:這個是對應的。您可以修改為實際的業務名稱如:/login(登陸) /register(注冊)
所以:您可以在類里面寫很多很多個不同的方法,上面注解一樣(但是指定 不同的 網頁地址),注解后面的value=單詞不一樣。網址拼接不同的地址(/單詞),不同網址它就執行不同的方法。
localhost:8080/hello
localhost:8080/login
localhost:8080/register

接收數據 :

//注解看習慣,三選一  get提交
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String helloBoot01(String name){ //形參namereturn "你好"+name;
}

手動輸入網址為:http://localhost:8080/hello?name=bangbangzhi
?后面是參數=值,參數的名字對應方法形參的名字

網站輸入?帶數據,后臺接受到之后,拼接到字符串又return顯示到了網頁
在這里插入圖片描述

多個參數用&隔開
手動輸入網址為:http://localhost:8080/hello?name=bangbangzhi&age=18&gender=男&…
get傳數據給服務器很常見,它也是明文顯示到網址上。一般搜索使用。
所以:各位可以打開一個百度/嗶哩/京東啥的,任意搜索,觀察網址,?左邊的是地址?右邊的是參數,多個用&隔開的

//http://localhost:8080/hello?name=bangbangzhi&age=18&gender=男@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String helloBoot01(String name,int age,String gender){//數據會自動放到這些形參里面  數據就在后臺代碼層面了//怎么用,就看代碼怎么寫了。傳過來了隨便用(一般交給service業務判斷 最后給dao操作數據庫)nameagegender  //都是字符串,為什么這里是男 而不是bangbangzhi  //因為方法(參數單詞)  和網頁地址參數單詞  一模一樣return "你好";
}

post提交


@RequestMapping(value = "/helloPost",method = RequestMethod.POST)
@PostMapping(value = "/helloPost")  //注意注解變了  二選一
public String postHello(){return "你好,幫幫志";  //方法體和剛才一模一樣//但是現在的邏輯是://頁面發送一個post請求,地址是helloPost//進入這個方法,返回一些數據給前端網頁  
}

直接在網頁輸入網址無法提交為post請求
直接在網頁輸入網址是get提交
我們可以做一個網頁(如果您會):
method=“get/post” 可以指定不同的提交方式,我同時寫兩個,肯定是要報錯的,此處是演示。
action=“就是提交到后臺的地址,當前為:/helloPost”,對應剛才寫的代碼。
在這里插入圖片描述
最好是,使用網頁測試工具(它有很多很多不同的提交方式+參數填寫+地址填寫+請求頭+一口氣來個100個(壓力測試)…+不完),還能看各種返回結果:
文章開頭有安裝下載使用分享文章的鏈接
在這里插入圖片描述
代碼方法寫完,啟動項目。填寫地址,選擇post,點擊發送
在測試工具看結果,不用開網頁了
在這里插入圖片描述
我拖拽到一起 截的屏。
代碼+post方式+地址+返回的結果

在工具里面添加參數名 和 參數值 在點擊發送。
后臺接收參數的方式和剛才一模一樣。(對應好單詞一致)
還有很多不同的參數寫法(單詞不一致帶注解,直接用對象來接收等等),在另一個springmvc文章里面,此處我們快速去實現前后分離,節約時間。不然的話,光是這些后臺框架,就可以分享很多很多+前端的腳手架,,那...對吧~

put提交

@PutMapping(value = "/helloPost")  //注意注解變了
public String putHello(String name){System.out.println(name); //接受數據,交給其他方法(業務層)return "你好,幫幫志";//返回處理結果 ,可以被if else封裝不同的結果返回
}

delete提交

@DeleteMapping(value = "/helloPost")  //注意注解變了
public String deleteHello(String name){System.out.println(name);return "你好,幫幫志";
}

說明

文章標題:
通過springboot實現與前端網頁數據交互

只要您的get提交是通的能運行,其他的請求方式都是可以運行的。
就兩個地方不一樣:
1.前端提交的方式不同(當前我們是用測試工具來實現,后期用vue代碼)
2.類里面的方法上面注解不一樣。
根據不同的網頁提交方式,執行不同的注解,對應不同的方法,方法里面的方法體是各自的功能

后面的提交方式,您看我的內容。可能覺得比較雞肋,沒有啥區別。那是
當前我沒有任何的業務邏輯

get提交 是搜索用 明文顯示在網址里面
post提交 是新增/上傳資源用 內容在請求頭里面,一般是隱式的
put提交 是修改/更新用
delete提交 是刪除某個資源
根據不同提交方式,執行不同的邏輯(也是一種約定:前端同事,后臺同事,測試同事,xx同事,一下能明白這個需要處理什么)
【前后分離,可能后臺同事連頁面長什么樣,都沒見過,根據設計概要寫好接口和參數】

并且我們還可以用一些前端技術 或者 后臺技術來封裝我們的web項目,比如:只要是delete提交。就需要驗證…或者記錄… 。只要是xxx提交,就需要驗證是否。。。
在代碼管理和功能管理,會更加的細致和方便。


總結

說明一下:整個這個系列實現前后分離的springboot+vue項目。序號文章一共也就10幾篇,只有核心圖文重點操作步驟來實現這個目標(基本上您邊看邊寫:一個小時或者一上午就能跟著一起手搓一個前后分離項目,然后您可以自行添加功能和內容在您項目里面)

其他擴展細節知識點,本系列省略了(或者有鏈接)如:
controller其實是springmvc的,springmvc+spring很多內容本系列就不再贅述,可以去幫幫志其他系列文章查閱,有的~

(會陸續更新非常多的IT技術知識及泛IT的電商知識,可以點個關注,共同交流。?( ′・?・` )比心)
(也歡迎評論,提問。 我會依次回答~)

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

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

相關文章

使用 AI 如何高效解析視頻內容?生成思維導圖或分時段概括總結

一、前言 AI 發展的如此迅速,有人想通過 AI 提效對視頻的解析,怎么做呢? 豆包里面有 AI 視頻總結的功能,可以解析bilibili網站上部分視頻,如下圖所示: 但有的視頻解析時提示: 所以呢&#x…

鞅與停時 - 一種特別的概率論問題

討論一個有趣的概率問題: [P3334 ZJOI2013] 拋硬幣 - 洛谷 實際上是一個猴子打字問題,考慮一直無規律隨即打字的猴子,鍵盤上只有A-Z一共26個字母,對于一個特定的字符串 S S S : ABCABCAB ,能否在有限的打…

arcgis和ENVI中如何將數據輸出為tif

一、arcgis中轉換為tif 右鍵圖層: Data -> Export Data, 按照圖示進行選擇,選擇tiff格式導出即可,還可以選擇其他類型的格式,比如envi。 二、 ENVI中轉換為tif File -> Save As -> Save As (ENVI, NITF, TIFF, DTED) …

如何用命令行判斷一個exe是不是c#wpf開發的

在powershell下執行 $assembly [Reflection.Assembly]::ReflectionOnlyLoadFrom("你的exe全路徑") $references $assembly.GetReferencedAssemblies() echo $assembly $references | Where-Object { $_.Name -match "PresentationFramework|PresentationCore…

2025.05.07-華為機考第三題300分

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ 03. 城市緊急救援隊伍協同規劃 問題描述 智慧城市建設中,盧小姐負責設計一套緊急救援隊伍協同系統。城市被規劃為一個 n n n \times n

深入理解Redis SDS:高性能字符串的終極設計指南

📍 文章提示 10分鐘掌握Redis核心字符串設計 | 從底層結構到源碼實現,揭秘SDS如何解決C字符串七大缺陷,通過20手繪圖示與可運行的C代碼案例,助你徹底理解二進制安全、自動擴容等核心機制,文末附實戰優化技巧&#xff…

jupyter notebook漢化教程

本章教程記錄,jupyter notebook漢化步驟,如果對漢化有需求的小伙伴可以看看。 一、安裝jupyter 如果你是安裝的anaconda的那么默認是包含了Jupyter notebook的,如果是miniconda或者基礎python,默認是不包含的jupyter組件的&#x…

模擬設計中如何減小失配

Xx 芯片測試結果顯示,offset 指標偏高,不符合指標要求。所以查看了資料,溫習了減小的失配的方法。 注意點一: 將所有offet折算到輸入端,得到以下公式: 可以看到a)閾值電壓失配直接折算成輸…

C++ 與 Lua 聯合編程

在軟件開發的廣闊天地里,不同編程語言各有所長。C 以其卓越的性能、強大的功能和對硬件的直接操控能力,在系統開發、游戲引擎、服務器等底層領域占據重要地位,但c編寫的程序需要編譯,這往往是一個耗時操作,特別對于大型…

烤箱面包烘焙狀態圖詳解:從UML設計到PlantUML實現

題目:假設你正著手設計一個烤箱。建立一個跟蹤烤箱中面包狀態的狀態圖。要包括必要的觸發器事件、動作和監視條件。 一、狀態圖概述 狀態圖是UML(統一建模語言)中的一種行為圖,它用于描述系統中對象的狀態變化以及觸發這些變化的…

三款實用工具推薦:配音軟件+Windows暫停更新+音視頻下載!

各位打工人請注意!今天李師傅掏出的三件套,都是經過實戰檢驗的效率放大器。先收藏再劃走,說不定哪天就能救命! 一.祈風TTS-配音大師 做短視頻的朋友肯定深有體會——配個音比寫腳本還費勁!要么付費買聲音&#xff0c…

物流無人機結構與載貨設計分析!

一、物流無人機的結構與載貨設計模塊運行方式 1.結構設計特點 垂直起降與固定翼結合:針對復雜地形(如山區、城市)需求,采用垂直起降(VTOL)與固定翼結合的復合布局,例如“天馬”H型無人機&am…

Decode rpc invocation failed: null -> DecodeableRpcInvocation

DecodeableRpcInvocation 異常情況解決方法 錯誤警告官方FAQ 異常情況 記錄一下Dubbo調用異常 java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2025-05-07 22:09:5…

Excel VBA 詞頻統計宏

在Excel中,我們經常需要分析文本數據,例如統計某個單詞或短語在文檔中出現的次數。雖然Excel本身提供了一些文本處理功能(如COUNTIF),但對于復雜的詞頻統計,手動操作可能效率低下。這時,VBA宏可…

DRV8301 三相電機驅動芯片的硬件參數與應用設計

DRV8301 硬件參數分析 1. 電源與驅動能力 輸入電壓范圍:PVDD1(主電源)6V~60V,PVDD2(降壓轉換器電源)3.5V~60V,支持寬電壓應用場景。 驅動電流:1.7A 源極驅動電流(Sourc…

QT Sqlite數據庫-教程03 插入數據-下

【1】手動提交事務 #include <QtSql/QSqlDatabase> #include <QtSql/QSqlQuery> #include <QtSql/QSqlRecord>QSqlDatabase db; db.transaction(); for(int i0; i<100000; i){QSqlQuery cmd(QString("UPDATE %1 SET %2%3 WHERE id%4").arg(tab…

LeetCode 每日一題 2025/4/28-2025/5/4

記錄了初步解題思路 以及本地實現代碼&#xff1b;并不一定為最優 也希望大家能一起探討 一起進步 目錄 4/28 2302. 統計得分小于 K 的子數組數目4/29 2962. 統計最大元素出現至少 K 次的子數組4/30 1295. 統計位數為偶數的數字5/1 2071. 你可以安排的最多任務數目5/2 838. 推多…

三、Hadoop1.X及其組件的深度剖析

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月7日 專欄&#xff1a;Hadoop教程 一、Hadoop 1.X 概述 &#xff08;一&#xff09;概念 Hadoop 是 Apache 開發的分布式系統基礎架構&#xff0c;用 Java 編寫&#xff0c;為集群處理大型數據集提供編程模型&#xff0c;…

Java中字符轉數字的原理解析 - 為什么char x - ‘0‘能得到對應數字

前言 在Java編程中&#xff0c;我們經常需要將字符形式的數字轉換為實際的數值。有很多方法可以實現這一轉換&#xff0c;比如使用Integer.parseInt()或Character.getNumericValue()等方法。但有一種簡便且高效的方式是直接使用char - 0運算&#xff0c;本文將詳細解析這種方法…

第5講、Transformer 編碼器(Encoder)處理過程詳解

&#x1f50d; Transformer 編碼器&#xff08;Encoder&#xff09;處理過程詳解 Transformer Encoder 是一個由 N 層&#xff08;一般為 6 層&#xff09;堆疊而成的模塊結構。每一層的本質是兩個核心子模塊&#xff1a; 多頭自注意力&#xff08;Multi-Head Self-Attention…