【SpringMVC】3.Restful风格

Restful 指的是一种资源定位及资源操作的风格,它不是一个标准,也不是一个协议,只是一种风格。

基于这种风格设计的软件,可以更简洁、更有层次,更易于实现缓存等机制,以及安全性相对而言更好。

1. 功 能

  • 资源操作:使用 POST、DELETE、PUT、GET等方法对资源进行操作
  • 分别对应 添加、删除、修改、查询
1.1 传统方式操作资源

通过不同的参数来实现不同的效果,方法单一,方法类型基本是 POST 或者 GET

  • GET(查询):http://localhost/hello/getData.action?id=001
  • POST(新增):http://localhost/hello/saveData.action
  • POST(更新):http://localhost/hello/updateData.action
  • GET/POST(删除):http://localhost/hello/deleteData.action?id=001
1.2 使用Restful风格

可以通过不同的请求方式实现不同的效果。例如下面的示例,请求地址一样,但是功能可以不同。

  • GET(查询):http://localhost/hello/001
  • POST(新增):http://localhost/hello
  • PUT(更新):http://localhost/hello
  • DELETE(删除):http://localhost/hello/001

2. 示 例

2.1 传统方式下
  • 前端请求传参
http://localhost/hello?a=10&b=12
  • 后端接口接收参数
    @RequestMapping("/hello")
    public Integer hello(Model model,int a,int b) {
        //封装数据
        int result = a + b;
        model.addAttribute("message", result);
        //会被视图解析器处理
        return "hello";
    }
2.2 Restful风格下

使用注解@PathVariable,让方法参数的值对应绑定到一个URI模板变量上。

  • 前端请求传参
http://localhost/hello/10/12
  • 后端接口接收参数
    @RequestMapping(value = "/hello/{a}/{b}",method = RequestMethod.GET)
    public Integer hello(Model model,@PathVariable int a,@PathVariable int b) {
        //封装数据
        int result = a + b;
        model.addAttribute("message", result);
        //会被视图解析器处理
        return "hello";
    }

	//等同于下面的
    @GetMapping("/hello/{a}/{b}")
    public Integer hello(Model model,@PathVariable int a,@PathVariable int b) {
        //封装数据
        int result = a + b;
        model.addAttribute("message", result);
        //会被视图解析器处理
        return "hello";
    }

3. @RequestMapping注解对应的等价注解

@RequestMapping(value = "/hello/{a}/{b}",method = RequestMethod.GET) 等价于 @GetMapping("/hello/{a}/{b}")

@RequestMapping(value = "/hello/{a}/{b}",method = RequestMethod.POST) 等价于 @PostMapping("/hello/{a}/{b}")

@RequestMapping(value = "/hello/{a}/{b}",method = RequestMethod.PUT) 等价于 @PutMapping("/hello/{a}/{b}")

@RequestMapping(value = "/hello/{a}/{b}",method = RequestMethod.DELETE) 等价于 @DeleteMapping("/hello/{a}/{b}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值