Restful风格
概念
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制
对比
-
之前controller类的写法(resource文件里存在hello.jsp)
@Controller public class RestFulController { @RequestMapping("/add") public String index( int p1, int p2, Model model){ int result = p1+p2; model.addAttribute("msg", "结果:"+result); return "hello"; } }
相应的,在启动请求时,如果手动赋值我们需要向地址栏里输入
http://localhost:8080/add?p1=1&p2=2; //p1和p2的值可以自定义
-
用了Restful后
@Controller public class RestFulController { @RequestMapping("/add/{p1}/{p2}") public String index(@PathVariable int p1, @PathVariable int p2, Model model){ //@PathVariable加在每个变量上 int result = p1+p2; model.addAttribute("msg", "结果:"+result); return "hello"; } }
-
之后便可以这么输入了
http://localhost:8080/add/1/2; //p1为1,p2为2
-
更改请求方式
- 第一种方法
@Controller
public class RestFulController {
@RequestMapping(value = "/hello/{p1}/{p2}",method = {RequestMethod.POST})//把RequestMethod.后面的更改就可以了
public String index(@PathVariable int p1, @PathVariable int p2, Model model){
int result = p1+p2;
model.addAttribute("msg", "结果:"+result);
return "hello";
}
}
-
第二种方法
使用
@GetMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping
@Controller public class RestFulController { @PostMapping("/hello/{p1}/{p2}") public String index(@PathVariable int p1, @PathVariable int p2, Model model){ int result = p1+p2; model.addAttribute("msg", "结果:"+result); return "hello"; } }
效果等同于第一种方法!