当前位置: 首页 > wzjs >正文

大连比较好的网站公司吗惠州百度seo排名

大连比较好的网站公司吗,惠州百度seo排名,中企动力做的电梯网站,wordpress客户端无法上传图片我们通过浏览器访问不同的路径,就是在发送不同的请求,在发送请求时,可能会带一些参数,本文将介绍了Spring MVC中处理不同请求参数的多种方式 一、传递单个参数 接收单个参数,在Spring MVC中直接用方法中的参数就可以…

我们通过浏览器访问不同的路径,就是在发送不同的请求,在发送请求时,可能会带一些参数,本文将介绍了Spring MVC中处理不同请求参数的多种方式

一、传递单个参数

接收单个参数,在Spring MVC中直接用方法中的参数就可以,如以下代码:

@RequestMapping("Param")
@RestController
public class ParamController {@RequestMapping("a1")public String tex1(String string){return "接收到参数:"+string;}
}

我们使用Postman传参后,浏览器访问127.0.0.1:8080/Param/a1?string=Spring

Spring MVC会根据方法,找到对应的参数,赋值给方法,参数不一致,是获取不到参数,即为null(包装类型)

注意:

使用基本类型来接收参数时,参数必须传(除boolean类型),否则报500错误;类型不匹配,会报400错误(此处400/500等都是状态码,其他篇章会涉及讲解)

1.1、正常传递参数
@RequestMapping("a2")public Object text2(int a){return "接收到参数a:"+a;}

通过Fiddler观察请求和响应, HTTP响应状态码为200(正常)

1.2、不传a参数

通过Fiddler观察请求和响应, HTTP响应状态码为500(服务器异常)

尝试观察程序的错误日志,并解决:

可选的整型参数“a”存在,但由于被声明为基本类型,所以无法转换为 null 值。建议将其声明为对应基本类型的对象包装器。

1.3、传递参数类型不匹配

对于包装类型, 如果不传对应参数,Spring 接收到的数据则为null。所以开发中,对于参数可能为空的数据,建议使用包装类型

二、传递多个参数

和传输一个参数一样,直接使用方法的参数接收即可

@RestController
public class ParamController {@RequestMapping("Param")public String Demo1(String name,String age){return "接收到参数name: "+name+" ,age: "+age;}
}

使用浏览器发送请求并传参:127.0.0.1:8080/Param?name=小奥奇&age=8

可以发现,后端程序是正确拿到nameage参数的值

当有多个参数时,前后端是以参数的名称进行参数匹配的,但是参数的位置是不影响后端获取参数的结果

三、传递对象

如果需要传递的参数较多时,使用方法传参就要有很多形参,并且后续每增加一个参数,也要修改方法的声明,比较麻烦~,在此情况下我们便可以把这些参数封装成一个对象

Spring MVC 也可以自动实现对象参数的赋值,我们先创建一个Cat对象

public class Cat {private String name;private int age;private String hobby;public String getName() {return name;}public int getAge() {return age;}public String getHobby() {return hobby;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public void setHobby(String hobby) {this.hobby = hobby;}@Overridepublic String toString() {return "Cat{" +"name='" + name + ''' +", age=" + age +", hobby='" + hobby + ''' +'}';}
}

实现传递对象的方法

  @RequestMapping("Cat")public Object Cat(Cat cat){return cat.toString();}

使用浏览器发送请求并传参:127.0.0.1:8080/Cat?name=咪咪&age=1&hobby=喜欢吃小鱼干

正好对应我们Cat类中的三个成员变量,此过程中 Spring 会根据参数名称自动绑定到对象的各个属性上,如果属性未传递,则会赋值位null(基本类型会被赋值为默认初始值,比如 int 赋值 0)

四、后端参数重命名(后端参数映射)

在一些情况下,前端传递的参数 key 和我们后端接受的 key 可以不一致,比如前端想加密URL中的信息,会使用 p 传递给后端,后端是使用 password 字段来接收的(保证可读性,不然后续维护时,不知道 p 到底是什么),如果出现这种情况,我们可以使用 @RequestParam 来重命名前后端的参数值

 @RequestMapping("A1")public String A1(@RequestParam("p") String password){return "接收参数: password:"+password;}

该注解表示从前端接收到 p 赋值给 password

那如果我们直接传递给后端的参数 password 呢?

2025-05-30T22:37:36.378+08:00 WARN 27268 — [SpringDemo1] [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter ‘p’ for method parameter type String is not present]

控制台打印日志显示:请求参数 p 不存在

那既然是 String 引用类型,我们尝试不传参数试试,会不会得到 null ~~

我们发现,当不传参数时,直接报客户端错误了,因为当我们使用该注解时,这个参数就变成必传参数了,我们点进该注解的源码中:

表示:若请求缺失此参数,会抛出**MissingServletRequestParameterException**,返回 HTTP 400(Bad Request) 错误,我们可以通过设置该 required 使该参数为非必传参数

@RequestMapping("A1")public String A1(@RequestParam(value = "p",required = false) String password){return "接收参数: password:"+password;}

required 设置为 false ,再次空传参数得到:

结论:

使用 @RequestParam 进行参数重命名时,请求参数只能和 @RequestParam 声明的名称一致,才能进行参数绑定和赋值

使用 @RequestParam 进行参数重命名时, 参数就变成了必传参数

五、传递数组

@RequestMapping("A2")public String A2(String[] arr){return "接收参数:arr:"+ Arrays.toString(arr);}

和传递引用类型一样,直接把数组当成参数,那数组包含多个元素,我们该如何传递呢?

此外,我们还可以直接使用方式二在一行中传递多个元素:

可以看到,方式二每个元素是以逗号分隔的,但是如果我们本来就要传递一个逗号呢?

那么逗号就会转义为%2c

六、传递集合

集合参数:和数组类似,同一个请求中出现多个同名参数,需要使用@RequestParam绑定参数关系,Spring自动将其值收集到一个集合中

@RequestMapping("A1")public String A1(@RequestParam List<Integer> list){return "接收参数:"+list;}

七、传递JSON数据

7.1、概念

JSON概念:JSON 全称为 JavaScript Object Notation(JavaScript 对象表示法),是一种轻量级的数据交互格式

简单来说:JSON就是客户端和服务端进行交互的一种数据格式有自己的格式和语法使用文本表示对一个对象或数组的信息,因此本质上是字符串,主要负责在不同的语言中数据传递和交换

7.2、JSON语法

还可以压缩为:

{“name”:“Json.CN”,“url”:“http://www.json.cn”,“page”:88,“isNonProfit”:true,“address”:{“street”:“科技园路.”,“city”:“江苏苏州”,“country”:“中国”},“links”:[{“name”:“Google”,“url”:“http://www.google.com”},{“name”:“Baidu”,“url”:“http://www.baidu.com”},{“name”:“SoSo”,“url”:“http://www.SoSo.com”}]}

我们可以使用在线JSON格式化工具来进行校验和书写:https://www.bejson.com/

7.3、JSON的优点:
  1. 简单易用:语法简单,易于理解和编写,可以快速进行数据交换。
  2. 跨平台支持:JSON可以被多种编程语言解析和生成,可以在不同的平台和语言之间进行数据交换和传输。
  3. 轻量级:相较于XML格式,JSON数据格式更加轻量级,传输数据时占用带宽较小,可以提高数据传输速度。
  4. 易于扩展:JSON的数据结构灵活,支持嵌套对象和数组等复杂的数据结构,便于扩展和使用。
  5. 安全性:JSON数据格式是一种纯文本格式,不包含可执行代码,不会执行恶意代码,因此具有较高的安全性。
7.4、JSON字符串和Java对象互转

Spring MVC框架集成了JSON的转换工具,我们可以直接使用来完成两者的互转

本质上是 jackson-databind 提供的功能,SpringMVC框架中已经把该工具包引入了进来,咱们直接使用即可,如果脱离SpringMVC使用,需要引入相关依赖

使用 ObjectMapper 对象提供的两个方法,可以完成对象和JSON字符串的互转 writeValueAsString: 把对象转为JSON字符串 readValue: 把字符串转为对象

public class JSONText {@Testpublic void JsontoJava() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();//定义一个JSON字符串String s="{"name":"咪咪","age":1,"color":"blue"}";//转对象Animals cat=mapper.readValue(s,Animals.class);System.out.println(cat.toString());}@Testpublic void JavatoJson() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();//创建Java对象Animals cat = new Animals();cat.setName("cat");cat.setAge(1);cat.setColor("blue");//转换为JSONString str = mapper.writeValueAsString(cat);System.out.println(str);}
}
7.5、传递JSON对象

接收JSON对象,需要使用@RequestBody注解

RequestBody:请求正文,意思是这个注解作用在请求正文的数据绑定,请求参数必须写在请求正文中

@RequestMapping("A3")public String A3(@RequestBody Animals animals){return animals.toString();}

我们再postman中传入的是JSON格式的字符串,但在后端代码中,Spring会把我们传入的JSON字符串转化成一个对象,我们就不用自己转化为Java对象了,还可以对此对象进行操作:

@RequestMapping("A3")public String A3(@RequestBody Animals animals){System.out.println(animals.getColor());animals.color="彩虹色";return animals.toString();}

八、获取URL中参数@PathVariable

这个注解主要作用在请求URL路径上的数据绑定(默认传递参数写在URL上,Spring MVC 就可以获取到)

@RequestMapping("A4/{id}")public String A4(@PathVariable Integer id){return "获取id: "+id;}

我们还可以传递两个参数:

@RequestMapping("A4/{id}/{age}")public String A4(@PathVariable Integer id,@PathVariable Integer age) {return "获取id: "+id+",age: "+age;}

这两个也默认为必传参数,如果我们只传递一个参数,会发生客户端错误,那么我们是否可以设置为非必传参数

答案是:理论上可以,但是我们若对改路径传一个参数,那么这个参数是id还是age****Spring也不知道,所以参数是必传的,另外我们可以重命名(此处不再演示)

九、上传文件@RequestPart

 @RequestMapping("A5")public String A5(MultipartFile file) {System.out.println(file.getOriginalFilename());return "文件获取成功";}

http://www.dtcms.com/wzjs/299644.html

相关文章:

  • 郑州哪有做网站的seo网上课程
  • 公司网站怎么更新长沙百度推广开户
  • 商城类网站备案深圳龙岗区优化防控措施
  • 做seo需要建网站吗如何自己开发网站
  • 郑州网站建站网站外链图片
  • 做网站每页面费用网页制作app
  • 想在百度做网站成人培训机构
  • 绘制网站结构图职业培训机构哪家最好
  • 做外贸的阿里巴巴网站是哪个好制作网站软件
  • wordpress文本自动分页seo常用分析的专业工具
  • 郑州网站建设 推广我赢网客服系统
  • 网站建设用哪种语言好凡科建站官网入口
  • 网站建设常见问题及解决办法网站权重排名
  • 网站建设要点广州seo诊断
  • 网站模板上传教程视频教程在线服务器网站
  • 秦皇岛做网站seo的有什么推广的平台
  • 团购网站 模板福州短视频seo机会
  • 怎么做网站评论seo关键词优化的技巧
  • 官方网站建设维护合作协议企业培训系统app
  • 宜春建设网站公司如何优化搜索引擎的搜索功能
  • 如何自己搭建一个企业网站seo排名外包
  • 电子商务企业网站建设规划方案网站关键词优化工具
  • 高端h5网站开发网站seo收录工具
  • 做网站主要学什么软件南宁百度seo推广
  • 上国外网站用什么机箱好手机端搜索引擎排名
  • 日本网站图片做淘宝代购百度top排行榜
  • 男女做的那个视频网站怎么网络推广
  • 自己做网站如何销售seo关键词是怎么优化的
  • 做黄色网站赚钱么营销的手段和方法
  • html5黑色网站下载百度软件