RestFul风格

什么是RestFul?

        RestFul就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存等机制。

功能

        资源:互联网所有的事物都可以被抽象为资源

        资源操作:使用post、delete、put、get,使用不同方法对资源进行操作

        分别对应:添加、删除、修改、查询


传统方式操作资源:通过不同的参数来实现不同的效果。方法单一:get和post

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

使用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

传统方式:

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RestFulController {
    @RequestMapping("/add")
    public String test4(int a, int b, Model model){
        int result = a+b;
        model.addAttribute("msg","结果为:" + result);
        return "test";
    }
}

RestFul风格: 

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RestFulController {
    @RequestMapping("/add/{a}/{b}")
    public String test4(@PathVariable int a, @PathVariable int b, Model model){
        int result = a+b;
        model.addAttribute("msg","结果为:" + result);
        return "test";
    }
}

使用同样的请求地址,但是执行不同的功能:

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;

@Controller
public class RestFulController {
    @GetMapping("/add/{a}/{b}")
    public String test4(@PathVariable int a, @PathVariable String b, Model model){
        String result = a+b;
        model.addAttribute("msg","get方式结果为:" + result);
        return "test";
    }

    @PostMapping("/add/{a}/{b}")
    public String test5(@PathVariable int a, @PathVariable String b, Model model){
        String result = a+b;
        model.addAttribute("msg","post方式结果为:" + result);
        return "test";
    }
}

当方法是post的时候:

    <form action="/add/1/哈哈" method="post">
        <input type="submit">
    </form>

点击提交后的显示结果为:

当方法是get的时候:

    <form action="/add/1/哈哈" method="get">
        <input type="submit">
    </form>

点击提交后的显示结果为:

注意:

@RequestMapping(value="/hello",method={RequestMethod.GET})

等价于:

@GetMapping("/hello")

RestFul风格的好处:

1、简洁

2、高效(支持缓存)

3、安全

传统的操作:

http://localhost:8080/add?a=1&b=2

别人一看就知道,后台有变量a和b,值分别是1和2

RestFul:

http://localhost:8080/add/1/2

别人只能看见1和2,看不见变量名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值