前后端交互 | 传递参数的方式

news2025/1/5 20:30:38

目录

GET请求两种方式

第一种:?& 形式

第二种:不使用?或者引号进行 传递参数

POST请求 

小结:

get和post的使用情况

传参数重复


传参数:目前共有三种传递参数的方式

GET请求两种方式

第一种:?& 形式

java方法中入参什么注解都没有,适用于参数比较少的时候

例子:localhost:8080/school/student?name=张三&age=18

代码如下:

@GetMapping("/student")
public String get(String name,Integer age){
        
        return "success";
}

缺点:参数较多的时候可能会丢失参数,因为url有长度限制

第二种:不使用?或者引号进行 传递参数

适用于参数比较少

  • localhost:8080/school/student/张三/18

这样传值,代码举例如下,它会通过@PathVariable注解得到参数中的信息,注意的是,参数的位置不能够乱,参数必须一一对应

适用于:参数比较少,并且是单独的,(两个参数没有关联)

还适用于动态接口(应用场景:统计调用接口用户),写法如下:

@GetMapping("/{who}get-order/{orderNo}/{orderName}")
public String get(@PathVariable("orderNo") String no,
                  @PathVariable("orderName") String name,
                  @PathVariable("who") String who){
        
        System.out.println("谁调用了此接口:"+" " +who);
        return orderNo+orderName;
}

 如果说,想要参数不是必须传值的话 可以加上 required = false 设置属性可以为空

@GetMapping("/get-order/{orderNo}/{orderName}")
public String get(@PathVariable(value = "orderNo",required=false) String no,
                  @PathVariable("orderName",required=false) String name){
        
   
        return orderNo+orderName;
}

POST请求 

适用于当我们的参数特别多的时候

@Requestbody这个注解能够将拿到json数据,并且反序列化成java对象,前端传值一般为json数据,所以一般我们在参数中加上此注解,例子如下:

@PostMapping("/student")
public String post(@RequestBody Student student){

        return student.toString();
}

 上述写法中json必须和实体类在属性上必须一一对应,可能会因为参数的类型出现报错,可以采用以下的方式解决

@PostMapping("/student")
public String post(@RequestBody JSONObject jsonObject){

        String name = jsonObject.getString("name");

        return student.toString();
}

 在传值上,使用 @RequestBody JSONObject jsonObject 表示将请求体中的 JSON 数据绑定到 JSONObject 对象中,使用 @RequestBody Student student 则表示将请求体中的 JSON 数据解析为 Student 对象。对于 JSONObject 对象,我们可以使用 JSONObject 类中的方法解析 JSON 数据,而对于 Student 对象,我们可以直接使用 Student 类中的属性和方法访问学生对象的相关信息。

小结:

get和post的使用情况

因为get适用于参数较短的情况。因此一般用在查询的接口中,post一般用于数据的上传

post传值较为get更为可靠

传参数重复

第一种方式的参数是可以重复的,而且对于参数的位置也没有过多的要求,比如:localhost/school/student?name=张&age=18&name=李

上面的请求中获取的name参数是会同时得到两个的,name=张,李

然而在post请求中的json出现重复的时候,会发生覆盖现象,比如json为:

{“name”:“张”,"age":"18","name":"李"}

这样得到的name为 李,后面的json会覆盖前面的数据 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

史上最全BI知识全解,万字长文带你读懂BI

在各种新趋势的影响下,数字化不仅在当下有着强大的实力以及巨大的潜力,更是成为了未来世界的标志,成为了社会各界对未来发展的共识。企业为了执行数字化战略,实行数字化转型,实现数据价值,除了需要相关数字…

cpp综合项目—机房预约系统

目录 1、机房预约系统需求 1.1、 身份简介 1.2、机房简介 1.3、申请简介 1.4、 系统具体需求 2、创建项目 3、创建主菜单 3.1 菜单实现 3.2、接口实现 4、退出功能实现 4.1、退出功能实现 4.2、测试退出 5、创建身份类 5.1、身份的基类 5.2、学生类 5.3、老师类…

windows重装后恢复谷歌浏览器数据(旧的用户数据仍存在user data)

背景及注意前提!!! 首先基于我笔记本被公司电脑加域之后,原先家庭版还被升级成了专业版,但是旧的user用户数据还都存在。只是变成了两个用户,开机默认是加域后的用户。 如果你的C盘已经完全被重写了&…

shell计算天数差和月份差

计算月份差 monthdiff.sh function getMonthDiff() { date1${1//-/} date1_year${date1:0:4} date1_month${date1:4:2} date2${2//-/} date2_year${date2:0:4} date2_month${date2:4:2} diff$(((date1_year-date2_year)*12 (date1_month-date2_m…

目前国内有哪些开源的非 SaaS 团队协作平台、项目管理工具呢?

以下是一些常用的开源团队协作平台和项目管理工具: 1.Gitea Gitea 是一个轻量级的 Git 服务,它提供了一个基于 Web 的界面,以方便地管理 Git 存储库。Gitea 也是一个自托管的 Git 服务,可以轻松地在本地或云环境中部署。 2.GitL…

详细分析置换算法

对于操作系统而言,虚拟空间是非常大的,我们往往无法直接将如此大的空间装入内存,而即使我们采用多级页表与段页式存储即使,也仅仅只是节省了页表的大小,如此将如何多的物理页装进内存仍然是一个问题,为此科…

【2023年4月美赛加赛】Z题:The future of Olympics 25页完整论文

【2023年4月美赛加赛】Z题:The future of Olympics 25页完整论文 1 题目 背景 国际奥委会(IOC)正面临着夏季奥运会和冬季奥运会申办数量的减少**[1]**。在过去,举办奥运会的竞争非常激烈,声望也很高。然而,最近,主办…

MySQL基础篇——MySQL数据库 表的操作,

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.表操作 1.表操作-查询创建 1)查询当前数据库所有表 2). 查看…

在ubuntu20.x上修改mysql密码

1,在安装mysql后测试mysql是否安装成功可链接数据测试输入一下命令命令都在终端中输入 mysql -u root -p 提示输入密码错误 输入命令后需要输入数据库密码,如忘记密码可进行数据库密码的修改 2,sudo cat /etc/mysql/debian.cnf 输入命令后…

MySQL2-多表查询、子查询、union、limit机制

一、多表查询 在实际开发中,大部分情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。一般一个业务都会对应多张表。 1.表的连接方式的分类 内连接:等值连接、非等值连接、自连接 外连接:左外连接(…

HTML+CSS实训——Day02——写一个登陆界面

前言 今天要继续完成我们的音乐软件了&#xff0c;昨天写完了封面&#xff0c;今天该完成开屏广告和登陆界面了。 登陆界面代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-C…

00后太卷了,老油条感叹真干不过...

在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。 真正让人反感的&#xff0c;是技术平平&…

Whatsns内容付费seo优化带采集和熊掌号运营问答系统

正文&#xff1a; 付费课程增加付费课程试听功能基础版和高级企业版&#xff0c;Plus版增加微信消息模板回答通知&#xff0c;采纳答案通知改进兼容因导入Discuz用户密码规则不兼容导致登录失败问题基础版和高级企业版&#xff0c;Plus版增加改进微信文本回复&#xff0c;支持…

【搭建服务器】Win10 IIS搭建webdav服务以及公网访问教程 - 挂载webdav

文章目录 1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表 4. 公网远程访问4.1 浏览器访问测试4.2 映射本地盘符访问4.3 安装Raidrive客户端 总结&#xff1a; 自己用W…

你真的会写测试用例吗?如何写?测试用例之中的细节拉满了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试用例中的细节…

进程间通信之system V共享内存

目录 &#x1f39e;一、共享内存---shm 1.1shmget ①ftok得到一个key ②shmget得到shm ③shm的性质 1.2 shmctl ①ipcrm ②shmctl 1.3shmat&&shmdt ①shmat ②shmdt 1.4通过shm完成进程间通信 1.5shm的特点 ①shm共享内存的优点 ②shm的缺点 1.6shm的内核…

78.建立一个Web应用程序的布局第二部分

上节课中&#xff0c;我们实现的页面如下图所示&#xff1a; 而最终的页面如下图所示&#xff1a; ● 首先我们 先添加menu的按钮 <menu><button>New</button><button>Reply</button><button>Forward</button><button>Mar…

中兴新支点操作系统电力主站和变电站安全操作系统解决方案

近日&#xff0c;由中国软件行业协会主办的“第二届中国国际软件发展大会”在北京国家会议中心成功召开&#xff0c;国家部委领导、两院院士、行业领袖、龙头企业代表等齐聚一堂&#xff0c;剖析行业热点、分享趋势前瞻。中兴新支点操作系统凭借在国网和南网广泛应用的出色表现…

彻底明白IP地址如何计算相关地址【收藏】

通过IP地址和子网掩码与运算计算相关地址&#xff0c;知道ip地址和子网掩码后可以算出&#xff1a; 1、 网络地址 2、 广播地址 3、 地址范围 4、 本网有几台主机 例1&#xff1a;下面例子IP地址为1921681005 子网掩码是2552552550。算出网络地址、广播地址、地址范围、主…

17种常见VR推广渠道,你知道几个?

随着各方面技术的成熟&#xff0c;VR内容越来越多地出现在了生活的各个角落&#xff0c;凭借其身临其境的3D沉浸式体验&#xff0c;惊艳了不少消费者&#xff0c;为线上平台、实体店铺导流变现实现了极大的价值&#xff0c;成为了当下商企最受欢迎的营销模式。 此前我们经常收…