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

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

常见的参数种类有:

·普通参数

·POJO类型参数

·嵌套POJO类型参数

·数组类型参数

·集合类型参数

普通参数

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

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

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

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

http://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 ,两个名称对不上,导致接收数据失败:

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

使用@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...略}

发送请求和参数:

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

后台接收参数:

//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属性参数发送请求和参数:

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

后台接收参数:

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

注意:

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

数组类型参数

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

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

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

后台接收参数:

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

集合类型参数

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

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

后台接收参数

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

运行会报错,

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

错误的原因是: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绑定参数关系。对于简单数据类型使用数组会比集合更简单些。

文章来源于:王晴儿网页设计博客 欢迎分享交流,转载请注明出处

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/262439.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年5月8日 01:08
下一篇 2023年5月8日 01:08

相关推荐

  • 我来分享 淘宝产品参数在哪里看。

    对于消费者来说,如果想要了解产品信息的话,需要去看淘宝产品参数,这些参数内容可以帮助你更好的选择合适的产品。那淘宝产品参数在哪里查看呢?接下来的内容中为大家进行相关的介绍。淘宝产品参数在哪里看?这个还…

    2023年10月18日
    010
  • 我来说说使用MySQL如何进行修改wait_timeout参数。

    很多小伙伴在使用MySQL的过程中,并不知道如何进行wait_timeout的参数修改,下面简单的解释一下: 1.修改参数配置文件 vi /etc/my.cnf [mysqld] wait_timeout = 28800 interactive_timeout = 28800 注意这里只需增…

    2024年6月13日
    00
  • URL的动态参数对SEO的影响。

    在SEO优化日常工作中,我们经常将,工欲善其事,必先利其器,这里的“器”重点就是指我们的网站自身形态,而在影响网站结构的众多因素中,就是URL的动态参数。 特别是相对于动态网站而言,它显得格外重要,但我们深知…

    2022年10月30日
    017
  • 小编教你seo外链参数怎样算是高质量的。

    太多网站不是很有效然而,不能忽视外部链条的作用您可以通过外链发布平台查看高质量的外链参数,并在多个方向上实现跟踪和内容设置。1。排名是高质量链接的最好证明对于高质量的外部链接,结果参数是最关键的如果你…

    2023年6月29日
    00
  • ajax的常用参数介绍

    1)url:  要求为String类型的参数,(默认为当前页地址)发送请求的地址。2)type:  要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏…

    2023年5月15日
    02
  • 小编分享 淘宝产品参数怎么设置。

    在淘宝上的每个产品都是有商品参数的,这些参数在上传宝贝的时候就需要填写了,有些参数是必须填写的,有些则是可填可不填的,有些人还不知道这些参数具体怎么设置比较好,下面教大家。淘宝产品参数怎么设置?淘宝参…

    2023年10月20日
    02
  • 我来教你店铺评价分低会影响店铺排名吗?还有哪些影响?。

    说起店铺的评价,各位店家们可能之前也做过类似于好评返现的活动吧!也是因为大家都知道店铺的评价对于一个店铺来说实在是太重要的,尤其是差评,那么到底会不会影响到店铺的排名呢?1、淘宝平台会根据店铺评价来判断…

    2023年10月28日
    00
  • 小编教你动态参数对SEO有什么影响。

    在seo日常工作中,我们经常将,工欲善其事,必先利其器,这里的“器”重点就是指我们的网站自身形态,而在影响网站结构的众多因素中,就是URL的动态参数。 特别是相对于动态网站而言,它显得格外重要,但我们深知,在…

    2023年6月28日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息