JavaWeb中的请求响应——请求

简单参数

原始方式获取请求参数

定义

原始的web程序中,获取请求参数,需要通过HttpServletRequest 对象手动获取。

  1. Controller方法形参中声明HttpServletRequest对象
  2. 调用对象的getParameter(参数名)
    (注:不过原始的web程序需要进行手动类型转换,较为繁琐)

代码

@RequestMapping("/simpleParam"){
	String name = request.getParameter("name");
	String ageStr = request.getParameter("age");
	int age = Integer.parseInt(ageStr);
	System.out.println(name+"  :  "+age);
	return "OK";
}

SpringBoot中接收简单参数

定义

请求参数名与形参变量名相同时,定义形参即可接收参数。
注:会自动进行类型转换

代码

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name") String username , Integer age){
	System.out.println(username + " : " + age);
	return "OK";
}

SpringBoot中@RequestParam注解

定义

如果方法形参名称与请求参数名称不匹配,可以使用 @RequestParam注解 完成映射。
(注:@RequestParam中的required属性默认为true,代表该前台请求参数必须传递,如果不传递将报错。 如果该参数是没传递,可以将required属性设置为false。)

代码

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name") String username , Integer age){
	System.out.println(username + " : " + age);
	return "OK";
}

实体参数

解决

若前端传递十几个参数,则用简单参数比较繁琐,不便于后期的维护。
所有的请求参数封装到一个实体类

定义

请求参数名与形参对象属性名相同,定义POJO接收即可。
其余则按照对象层次结构关系即可接收嵌套POJO属性参数。

代码

(右键->生成 或者快捷键ALT+INSERT生成get/set方法和toString方法)
(注:请求参数名与形参对应的属性名保持一致)
实体类对象

public class User {
	private String name;
	private Integer age;
	private Address address;
}

public class Address {
	private String province;
	private String city;
}

形参方法

//指定请求路径
@RequestMapping("/Pojo")
	public String simplePojo(User user){
	System.out.println(user);
	return "OK";
}

数组集合参数

定义

数组:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
集合:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam注解 绑定参数关系

代码

//数组参数
@RequestMapping("/arrayParam")
	public String arrayParam(String[] hobby){
	System.out.println(Arrays.toString(hobby));
	return "OK";
}

//集合参数
@RequestMapping("/listParam")
	public String listParam(@RequestParam List<String> hobby){
	System.out.println(hobby);
	return "OK";
}

日期参数

定义

使用 @DateTimeFormat 注解完成日期参数格式转换
日期格式:
updateTime=2022年12月12日 10时05分45秒
updateTime=2022/12/12 10:05:45

代码

@RequestMapping("/dateParam")
	public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
	System.out.println(updateTime);
	return "OK";
}

Json参数

定义

JSON数据键名(key)与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody注解 标识
(注:要想发送请求,传递json格式的请求数据,要将请求方式设置为post方式。因为json格式的请求数据要放在请求中携带到服务端的。json格式的数据key值要加双引号

代码

实体对象如上所述

@RequestMapping("/jsonParam")
	public String jsonParam(@RequestBody User user){
	System.out.println(user);
	return "OK";
}

路径参数

定义

通过请求URL直接传递参数,使用 {…} 来标识该路径参数,需要使用 @PathVariable 注解获取路径参数,路径参数的参数值id与方法形参名称id保持一致

//单个请求参数
@RequestMapping("/path/{id}")
	public String pathParam(@PathVariable Integer id){
	System.out.println(id);
	return "OK";
}

//多个请求参数
@RequestMapping("/path/{id}/{name}")
	public String pathParam2(@PathVariable Integer id, @PathVariable String name){   System.out.println(id+ " : " +name);
	 return "OK";
 }

总结

在这里插入图片描述

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

୧⍤⃝�摩西摩西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值