SpringMVC 中的RestFul风格

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

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

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

RestFul风格 没有?后加参数这样的url地址了 它都是用/分隔 这样的地址看起来很简介 同时也具有很好地安全性 用户无法通过它的参数 去判断他是什么类型的请求了

@Controller
public class MyController {

    @GetMapping("/test/{a}/{b}")
    public String test(@PathVariable String a, @PathVariable String b, Model model){
        String msg = String.valueOf(Integer.parseInt(a) + Integer.parseInt(b));
        System.out.println(msg);
        model.addAttribute("msg","结果为" + msg);
        return "test";
    }
}

@GetMapping注解就是生命这是Get方式才能请求到的地址 如果是Post请求的方式就使用@PostMapping 它后面的{}中的值对应的是方法中的参数名 同时这个参数名也要有一个@PathVariable 注解声明 让他们相互对应 这样就形成了RestFul风格的url地址.。

@Controller
public class MyController {

    //RestFul风格的传参  RestFul可以有4中类型的函数 Get Put Post Delete
    //其中 Get类型的只能通过Get请求才能跳转到这个Controller Post类型的就只能通过Post请求跳转到该Controller
    //其他的同理  重点是Post和Get 这两种方式
    //@GetMapping 注解代表使用了RestFul风格 并且只能通过Get请求才能跳转到这个Controller中
    @GetMapping("/fun1/{a}/{b}")//路径中的a和b表示传递的参数 使用{}包起来 在Controller中 使用@PathVariable注解拿到传递的这个参数
    public String fun1(@PathVariable int a, @PathVariable String b, Model model){
        System.out.println("i am in");
        String r = a + b;
        model.addAttribute("msg",r);
        return "welcome";
    }

    //使用@PostMapping注解 表示只能通过Post请求才能进入  其中的参数也是通过@PathVariable注解拿到
    @PostMapping("/fun1/{a}/{b}")
    public String fun2(@PathVariable int a, @PathVariable int b,Model model){
        System.out.println("i am in");
        int r = a + b;
        model.addAttribute("msg",r);
        return "welcome";
    }

    @RequestMapping("/fun1")
    public String fun3(Model model){
        System.out.println("i am in");
        int r = 111;
        model.addAttribute("msg",r);
        return "welcome";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值