本文说明
-
该内容如果有错误,可以指出共同探讨
-
以下代码只是简单的说明代码
-
表单格式:form-data、x-www-form-urlencoded
-
非表单格式:json、xml、html、text等
1.HttpServletRequest
范围:
- get请求可以使用
- 表单格式的post请求,非表单格式的post请求不可以用
使用方法:
public String sendSms(HttpServletRequest req){
//Key是你post表单或者get请求中的key
System.out.println(req.getParameter("key"));
return req.getParameter("key");
}
2.在方法体中直接写参数
范围:
- get请求可以使用
- 表单格式的post请求,非表单格式的post请求不可以用
使用方法:
public String sendSms(String key){
//Key是你post表单或者get请求中的key
System.out.println(key);
return key;
}
3.@RequestParam
范围:
- get请求可以使用
- 表单格式的post请求,非表单格式的post请求不可以用
- 当请求体的参数名字和接收参数的形参名字不一样的时可以使用
缺点:在你请求中的参数没有该参数会报错,为防止报错,需要设置 required = false。也可以为没有该参数使设上默认属性defaultValue = “你要设置的默认值”。
使用方法:
public String sendSms(@RequestParam(value = "key",required = false,defaultValue = "1") String key){
System.out.println(key);
return key;
}
4.用bean来接收参数
范围:
- get请求可以使用
- 表单格式的post请求(非表单格式的post请求请看第5条**)**
使用方法:
public String sendSms(User user){
//user属性的字段需要和请求中的参数名字一样,这样对应的字段才会获取到值
System.out.println(user.toString);
return user.toString;
}
5. @RequestBody
作用:当post提交的数据不是表单格式可以用@RequestBody来解析你的参数。比如:json、xml格式可以使用这个注解。
范围:
- 表单格式和非表单格式的post请求都可以用,但是会把表单格式的数据当做非表单格式来处理。
使用方法:
@PostMapping("/sendsms")
public String sendSms(@RequestBody User user){
System.out.println(user);
return user.toString();
}
6.@PathVariable
主要用来接收请求的url的参数,用法如下
@DeleteMapping("/{deleteId}")
public AjaxResult deleteRiskOneResource(@PathVariable("deleteId") Integer deleteId){
riskStandardMapper.deleteById(deleteId);
AjaxResult ajax = AjaxResult.success();
return ajax;
}