【多种不同提交方式】通过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.mzph.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…