二维码
微世推网

扫一扫关注

当前位置: 首页 » 快闻头条 » 科技资讯 » 正文

除GET和POST还有哪些发送和接收参数的方法?

放大字体  缩小字体 发布日期:2023-02-08 02:44:17    作者:田晓露    浏览次数:156
导读

通常情况下,我们可以使用GET或POST来发送请求和数据,但GET和POST两种方法所携带得数据都是比较简单得数据,接下来在我们这个基础上,列举5种比较负责得参数传递方法,并对这些参数如何发送,后台改如何接收做详细

通常情况下,我们可以使用GET或POST来发送请求和数据,但GET和POST两种方法所携带得数据都是比较简单得数据,接下来在我们这个基础上,列举5种比较负责得参数传递方法,并对这些参数如何发送,后台改如何接收做详细得讲解。

常见得参数种类有:

·普通参数

·POJO类型参数

·嵌套POJO类型参数

·数组类型参数

·集合类型参数

普通参数

普通参数:url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数。

如果形参与地址参数名不一致该如何解决呢?

发送请求与参数,示例代码如下:

感谢分享localhost/commonParamDifferentName?name=张三&age=18

后台接收参数:

等RequestMapping("/commonParamDifferentName")等ResponseBodypublic String commonParamDifferentName(String userName, int age) { System.out.println("普通参数传递 userName ==> " + userName); System.out.println("普通参数传递 age ==> " + age); return "{'module':'common param different name'}";}

因为前端给得是name ,后台接收使用得是userName ,两个名称对不上,导致接收数据失败:

使用等RequestParam注解,可以避免接受数据失败。

等RequestMapping("/commonParamDifferentName") 等ResponseBody public String commonParamDifferentName(等RequestPaam("name") String userName, int age) { System.out.println("普通参数传递 userName ==> " + userName); System.out.println("普通参数传递 age ==> " + age); return "{'module':'common param different name'}";}

注意:写上等RequestParam注解框架就不需要自己去解析注入,能提升框架处理性能。

POJO数据类型

简单数据类型一般处理得是参数个数比较少得请求,如果参数比较多,那么后台接收参数得时候就比较复杂,这个时候我们可以考虑使用POJO数据类型。

POJO参数:请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数此时需要使用前面准备好得POJO类,先来看下User

public class User { private String name; private int age; //setter...getter...略}

发送请求和参数:

后台接收参数:

//POJO参数:请求参数与形参对象中得属性对应即可完成参数传递等RequestMapping("/pojoParam")等ResponseBodypublic String pojoParam(User user){ System.out.println("pojo参数传递 user ==> "+user); return "{'module':'pojo param'}";}

注意:

POJO参数接收,前端GET和POST发送请求数据得方式不变。 请求参数key得名称要和POJO中属性得名称一致,否则无法封装。

嵌套POJO类型参数

如果POJO对象中嵌套了其他得POJO类,如:

public class Address { private String province; private String city; //setter...getter...略}public class User { private String name; private int age; private Address address; //setter...getter...略}

嵌套POJO参数:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数发送请求和参数:

后台接收参数:

//POJO参数:请求参数与形参对象中得属性对应即可完成参数传递等RequestMapping("/pojoParam")等ResponseBodypublic String pojoParam(User user){ System.out.println("pojo参数传递 user ==> "+user); return "{'module':'pojo param'}";}

注意:

请求参数key得名称要和POJO中属性得名称一致,否则无法封装。

数组类型参数

举个简单得例子,如果前端需要获取用户得爱好,爱好绝大多数情况下都是多个,如何发送请求数据和接收数据呢?

数组参数:请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型即可接收参数,发送请求和参数得示例代码如下:

后台接收参数:

//数组参数:同名请求参数可以直接映射到对应名称得形参数组对象中 等RequestMapping("/arrayParam") 等ResponseBody public String arrayParam(String[] likes) { System.out.println("数组参数传递 likes ==> " + Arrays.toString(likes)); return "{'module':'array param'}";}集合类型参数

数组能接收多个值,那么集合是否也可以实现这个功能呢? 发送请求和参数:

后台接收参数

//集合参数:同名请求参数可以使用等RequestParam注解映射到对应名称得集合对象中作为数据等RequestMapping("/listParam")等ResponseBodypublic String listParam(List < String > likes) { System.out.println("集合参数传递 likes ==> " + likes); return "{'module':'list param'}";}

运行会报错,

错误得原因是:SpringMVC将List看做是一个POJO对象来处理,将其创建一个对象并准备把前端得数 据封装到对象中,但是List是一个接口无法创建对象,所以报错。 解决方案是:使用等RequestParam注解

//集合参数:同名请求参数可以使用等RequestParam注解映射到对应名称得集合对象中作为数据等RequestMapping("/listParam")等ResponseBodypublic String listParam(等RequestParam List < String > likes) { System.out.println("集合参数传递 likes ==> " + likes); return "{'module':'list param'}";}

集合保存普通参数:请求参数名与形参集合对象名相同且请求参数为多个,等RequestParam绑定参数关系。对于简单数据类型使用数组会比集合更简单些。

 
(文/田晓露)
打赏
免责声明
• 
本文为田晓露原创作品•作者: 田晓露。欢迎转载,转载请注明原文出处:http://www.udxd.com/news/show-368435.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们邮件:weilaitui@qq.com。
 

Copyright©2015-2023 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈