1、总结:@PathVariable注解和@RequestParam注解区别
看这个符号'?':即问号:看请求路径中传递参数时是否用'?'拼接;
有的话用:
@RequestParam
一、@PathVariable注解
@RestController
public class UserController {
@GetMapping("/user/{username}/{password}")
public String getUser(@PathVariable("username") String username,
@PathVariable("password") String password){
return username+"\n"+password;
return
}}
二、基于@RequestParam注解
@RestController
public class UserController {
@GetMapping("/user")
public String getUser(@RequestParam("username") String username,
@RequestParam("password") String password){
return username+"\n"+password;
}
}
三、基于@PathVariable+@RequestParam混合使用:
@RestController
public class UserController {
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") int id,
@RequestParam("username") String username,
@RequestParam("password") String password){
return id+"\n"+username+"\n"+password;
}
}
四、基于@RequestBody注解:
注意:
1.@ResPonseBody:
处理响应,把对象装换为'JSON'格式;用于将Controller层返回的结果转换成JSON格式;
一般与'Controller'组成混合注解:@RestController = @ResPonseBody +@ResPonseBody;
2.@RequestBody:
处理请求,用于读取HTTP请求内容,把'JSON'格式的请求参数,封装成对象;
@RestController
public class UserController {
@PostMapping("/user")
public void getUser(@RequestBody User user){
return user.getUsername()+"\n"+user.getPassword();
}
}
五、基于HttpServletRequest请求:
(第一种请求方式):
(第二种请求方式):
@RestController
public class UserController {
@PostMapping("/user")
public String getUser(HttpServletRequest request){
return request.getParameter("username")+"\n"+request.getParameter("password");
}
}
六、直接封装成对象传参 :
@RestController
public class UserController {
@PostMapping("/user")
public void getUser(User user){
System.out.print(user.getUsername()+"\n"+user.getPassword());
}
}
七、请求参数名和接受形参名不同(@RequestParm):
@RestController
public class UserController {
@PostMapping("/user")
public String getUser(@RequestParm("userName") name){
System.out.print(name)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/188600.html