天天看点

SpringMVC笔记四:RestFul风格

RestFul风格

1. 概念

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

2. 功能

  • 资源:互联网中所有的事物都可以被抽象为资源,可以通过url统一资源定位符访问。
  • 资源操作:使用POST,GET,PUT,DELETE等不同的方法对资源进行操作。
  • 传统的操作资源方式:通过不同的参数来实现不同的效果。方法单一,即post和get例如:
    1. http://localhost/user/select.action?id=1
    2. http://localhost/user/delete.action?id=1
    3. http://localhost/user/update.action
    4. http://localhost/user/save.action
  • 使用RestFul风格操作资源:可以通过不同的请求方式实现不同的效果,请求地址可以一样,但是功能可以不同,它注重的是请求方法(PUT改,GET查,DELETE删,POST增),上面的修改为RestFul风格如下
    1. http://localhost/user/1
    2. http://localhost/user/1
    3. http://localhost/user
    4. http://localhost/user

3. 示例

在上一个列子中直接添加一个Controller,上一个例子地址:https://blog.csdn.net/weixin_41549354/article/details/108139130

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 {

    //传统方式,a跟b表示这个接口要接受的参数
    @RequestMapping("add1")
    public String test1(int a, int b, Model model) {
        model.addAttribute("msg", "相加结果为:"+(a+b));
        return "hello";
    }

    //RestFul风格
    //使用路径变量注解@PathVariable添加到方法的参数上,让方法参数的值绑定到一个URI模板变量上。
    //对应的@RequestMapping注解可以改为@GetMapping("add2/{a}/{b}"),
    //类似的有@DeleteMapping("add2/{a}/{b}")等等,虽然地址一样,但是它会根据前端提交的不同请求方式
    //识别到不同的@RequestMapping控制器中的方法。
    @RequestMapping(value="add2/{a}/{b}", method=RequestMethod.GET)
    public String test2(@PathVariable int a, @PathVariable int b, Model model) {
        model.addAttribute("msg", "相加结果为:"+(a+b));
        return "hello";
    }
}
           

访问测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M94ExocF-1597954310398)(D:\我的文档\Pictures\42.PNG)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OJSa7NLp-1597954310404)(D:\我的文档\Pictures\43.PNG)]