RESTful风格
作者:互联网
Restful就是一个资源定位、资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
资源:互联网所有的事物都可以被抽象为资源
资源操作:分为POST、DELETE、PUT、GET四种方法,使用不同方法对资源进行操作(增、删、改、查
1. 传统方式操作资源
通过不同的参数来实现不同的效果!方法单一!
http://127.0.0.1/item/queryItem.action?id=1 (查询,GET)
http://127.0.0.1/item/saveItem.action (新增,POST)
http://127.0.0.1/item/updateItem.action (更新,POST)
http://127.0.0.1/item/deleteItem.action?id=1 (删除,GET或POST)
2. RestFul方式操作资源
可以通过不同的请求方式来实现不同的效果!
如下:请求地址一样,但是功能可以不同!
http://127.0.0.1/item/1 (查询,GET)
http://127.0.0.1/item (新增,POST)
http://127.0.0.1/item (更新,PUT)
http://127.0.0.1/item/1 (删除,DELETE)
3.代码展示
1、RESTful风格url
@PathVariable 用于修饰方法传入参数,表示该参数值从请求路径中获取
@RequestMapping("h2/{a}/{b}") /{a}/{b}:表示要传入的参数值,在请求url中用斜线/分隔多个参数。
@Controller public class RESTfulController { //传统方式:http://localhost:8080/h1?a=1&b=11 @RequestMapping("h1") public String test1(int a, int b , Model model){ int rslt=a+b; model.addAttribute("msg", "结果为:"+rslt); return "hello"; } //RESTful:http://localhost:8080/h2/1/11 @RequestMapping("h2/{a}/{b}") public String test2(@PathVariable int a, @PathVariable int b , Model model){ int rslt=a+b; model.addAttribute("msg", "结果为:"+rslt); return "hello"; } }
url不变,使用method属性区分
@RequestMapping的请求路径用value或path属性表示
@RequestMapping的method属性表示请求方式,例如:POST、GET等。
@RequestMapping(value = "h3/{a}/{b}",method = RequestMethod.GET) public String test3(@PathVariable int a, @PathVariable int b , Model model){ int rslt=a+b; model.addAttribute("msg", "get结果为:"+rslt); return "hello"; } @RequestMapping(value = "h3/{a}/{b}",method = RequestMethod.POST) public String test4(@PathVariable int a, @PathVariable int b , Model model){ int rslt=a+b; model.addAttribute("msg", "post结果为:"+rslt); return "hello"; }
3、使用@GetMapping、@PostMapping
@GetMapping:@RequestMapping(method = RequestMethod.GET)的快捷方式
@PostMapping:@RequestMapping(method = RequestMethod.POST)的快捷方式
@GetMapping("h3/{a}/{b}") public String test5(@PathVariable int a, @PathVariable int b , Model model){ int rslt=a+b; model.addAttribute("msg", "get结果为:"+rslt); return "hello"; } @PostMapping( "h3/{a}/{b}") public String test6(@PathVariable int a, @PathVariable int b , Model model){ int rslt=a+b; model.addAttribute("msg", "post结果为:"+rslt); return "hello"; }
值得注意的是浏览器地址栏进行访问默认是Get请求
标签:http,PathVariable,int,风格,rslt,model,RESTful,RequestMapping 来源: https://www.cnblogs.com/ForeverLoveByMe/p/16693661.html