后端接受前端数据的常用方法
文章目录
前言
有人说java工程师就是spring工程师,也有人说java工程师就是接口工程师,其实都不准确,我个人人外java工程师就是要和数据打交道,那今天我们就来了解一下后端接受前端数据的常用方法。
一、通过HttpServletRequest接收
并不推荐这种方式,这种方式很麻烦,而且是许多年前成熟的内容:
首先创建实体类
@Data
@ToString
public class User {
private String name;
private Integer age;
private Double money;
}
@RequestMapping("/getUser")
public String getUser(HttpServletRequest request) {
User user = new User();
user.setName(request.getParameter("name"));
user.setAge(Integer.valueOf(request.getParameter("age")));
user.setMoney(Double.parseDouble(request.getParameter("money")));
return JSON.toJSONString(user);
}
二、@RequestParam注解
@RequestMapping(value = "/getUser")
public String getUser(@RequestParam("name") String name,
@RequestParam("age") Integer age,
@RequestParam(value = "money", required = false) Double money) {
User user = new User();
user.setName(name);
user.setAge(age);
user.setMoney(money);
return JSON.toJSONString(user);
}
经常用到的注解, 将指定的请求参数赋值给方法中的形参,支持get/post请求,属性:
(1)value :绑定请求的参数名,默认绑定为同名的形参;
(2)required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报错;
(3)defaultValue:默认值,表示如果请求中没有接收到值时的默认值。
三、@PathVariable注解
@RequestMapping(value = {"/getUser/{name}/{age}/{money}","/method07/{name}/{money}"})
public String getUser(@PathVariable("name") String name,
@PathVariable(value = "age", required = false) Integer age,
@PathVariable("money") Double money) {
User user = new User();
user.setName(name);
user.setMoney(money);
user.setAge(age);
return JSON.toJSONString(user);
}
接收请求路径中占位符的值,支持get/post请求,属性:
(1)value:String类型,绑定请求的参数名,用大括号的参数默认绑定为同名的形参。
四、@RequestBody注解
接收前端传递的Json对象的字符串,只能是 Post请求。
@RequestMapping(value = "/getUser")
public String getUser(@RequestBody User user) {
return JSON.toJSONString(user);
}
五、直接在Controller 方法参数上配置参数名
@RequestMapping("/getUser")
public String getUser(String name, Integer age, Double mon) {
User user = new User();
user.setName(name);
user.setAge(age);
user.setMoney(money);
return JSON.toJSONString(user);
}
这种形式传参与请求方式无关,get post .put 等皆可。
六、@ModelAttribute 接收实体参数
@RequestMapping("/getUser")
public String getUser(@ModelAttribute("user") User user) {
return JSON.toJSONString(user);
}
总结
以上就是后端获取数据的几种形式,多多练习。