1. 什么是Restful风格
Restful风格是浏览器通过url向服务器请求资源的时候,url设置的一种风格。
没有学习使用Restful风格之前,我们发送的请求可能是通过url里的键值对 localhost:8080?key=value 或者请求体之中的参数将参数发送给服务器。
学习了Restful风格之后,我们请求的url之中某一部分就可以代表一个参数,在这个位置添加上参数之后,服务器解析url就可以获取前端上传的参数,如 localhost:8080/value。
2. 使用Restful风格的好处
- url变得更加简洁而且高效
- 请求变得更具有安全性
3. 怎么将一个非Restful风格的Controller转变为Restful风格的
非Restful风格的Contoller类(要记得在参数前加上注解@RequestParam,否则会500):
@RequestMapping("/add"})
public String notRestful(@RequestParam("a") int a, @RequestParam("b") int b, Model m) {
m.addAttribute("result", "a + b结果为:" + (a + b));
return "result";
}
此时的请求为:localhost:8081/add?a=1&b=2
有两种方式来将一个非Restful风格的Controller类转变为Restful风格的。
- 使用@RequestMapping,RequestMapping的注解之中有两个参数需要设置,第一个是path,用来匹配url的,第二个是method,用来限制接受的请求类型。(参数前要加上@PathVariable注解,和@RequestParam一样,不加就会500)
@RequestMapping(path="/add/{a}/{b}", method = RequestMethod.GET)
public String restful1(@PathVariable("a") int a, @PathVariable("b") int b, Model model) {
model.addAttribute("result", "a + b结果为:" + (a + b));
return "result";
}
此时的请求为:localhost:8081/add/1/2
- 使用@GetMapping,对应着设置了限制Get请求的RequestMapping
@GetMapping("/add/{a}/{b}")
public String restful1(@PathVariable("a") int a, @PathVariable("b") int b, Model model) {
model.addAttribute("result", "a + b结果为:" + (a + b));
return "result";
}
此时的请求为:localhost:8081/add/1/2