1.在URL后使用?和&拼接数据
URL: http://localhost:8090/findUserByNS?name=王昭君&sex=女
根据name=“王昭君” sex=女 查询用户数据?
- 使用简单参数接收
- 使用对象接受参数
优点:传输方便,引用广泛(请求类型: GET/DELETE /POST/PUT)参数直观,适合少量参数的传递
缺点:数据不安全,容易被获取
注意,URL与数据之间使用“?”分隔,不同的数据以“&”分割,数据类型后添加“=”追加对应数据(无数据则为null)
可以直接使用id参数,或者包含该参数的对象获取参数,在注解中只需要标明URL地址即可
@GetMapping("/getUserlist") //使用简单参数接收 //public List<User> findUserByNS(Sting name,String sex) { //使用对象接受参数 public List<User> findUserByNS(User user) {QueryWrapper<User> queryWrapper = new QueryWrapper<>(user); return userMapper.selectList(queryWrapper); }
同名提交
用户查询id=1,3,4,5的数据. 如果有同名参数一般采用 ',号 ’ 分隔
URL: http://localhost:8090/getUserByIds?ids=1,3,4,5
如果参数使用,号分隔,则SpringMVC可以自动的转化为数组查询多个用户
使用对应的List获取参数
@GetMapping("/getUserByIds")
public List<User> getUserByIds(Integer[] ids){
List<Integer> idList = Arrays.asList(ids);
return userMapper.selectBatchIds(idList);
}
2.RestFul参数接收
URL: http://localhost:8090/user/貂蝉/10
查询 name=“貂蝉” age> 10 岁 的用户.
使用对象接受参数
public List<User> findUserByNA(User user){
使用参数接受
public List<User> findUserByNA(@PathVariable String name,@PathVariable Integer age){
优点
- 用户不能了解请求的意图,请求方法不能出现动词。只能写名称
- 参数保密,只要后端了解数据的意义
- 传输量少,简洁
- 是个多个参数使用
缺点
数据依然不安全,容易被获取,但是获取者不会清楚数据的意义
注意:
- URL地址中参数与参数之间使用 /分隔.
- 请求的参数的位置一旦固定,不可轻易修改.
- 用户发请求时,就应该按照restFul的结构执行.
- restFul请求一般以get请求为主. put/delete/post
可以直接使用id参数,或者对象获取参数,在注解中需要追加参数,需要在方法中添加@PathVariable 注解,
可以使用对象,或者包含该参数的对象接受参数(不需要添加注解)@GetMapping("/user/{name}/{age}")
//使用参数接受
//public List<User> findUserByNA(@PathVariable String name,@PathVariable Integer age){
//使用对象接受参数
public List<User> findUserByNA(User user){return userService.findUserByNA(user);
}
3.使用对象传输参数
URL:http://localhost:8090/saveUser
let user = { name: '小燕子', age: 18, sex: '女' }
let url = "http://localhost:8090/saveUser"
axios.post(url,user) .then(promise => {
console.log(promise.data)
})
参数不会直接显示在URL中,而是以对象的形式打包发送给服务器,常用于get,put,post命令
优点:安全性高,传输量大,适合登录,注册,修改等form提交,大量数据提交的情况
缺点:书写麻烦,必须添加注解@RequestBody
注意:如果提交数据不满足,将默认为null
@PostMapping("/saveUser")
public String saveUser(@RequestBody User user){userMapper.insert(user);
return "新增用户成功!!!";
}