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";
    }
}
发布了53 篇原创文章 · 获赞 0 · 访问量 1957

猜你喜欢

转载自blog.csdn.net/XXuan_/article/details/104120369