SpringMVC-04-Restful风格

RestFul风格

概念

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

功能

  • 资源:互联网所有的事物都可以被抽象为资源
  • 资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作;
  • 分别对应CRUD

传统方法操作资源:通过不同的参数来实现不同的效果

使用Restful操作资源:可以通过不同的请求方式来实现不同的效果。如下,请求地址一样,但是功能不同!

  • http://localhost/item/1 查询,GET
  • http://localhost/item/ 新增,POST
  • http://localhost/item/ 更新,PUT
  • http://localhost/item/1 删除,DELETE

学习测试

  1. 新建一个类 RestfulController

    @Controller
    public class RestfulController {
    
        //原来的:http://localhost:8080/add?a=1&b=2
        //Restul:http://localhost:8080/add/a/b
    
    //    @RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.DELETE)
        @GetMapping("/add/{a}/{b}")
        public String test1(@PathVariable int a,@PathVariable int b, Model model){
            int res = a + b;
    
            model.addAttribute("msg","结果为"+res);
    
            return "test";
        }
    
    }
    
  2. 在SpringMVC中可以使用@PathVariable注解,让方法的参数的值对应绑定到一个URL模板变量上。

  3. 测试请求

思考:使用路径变量的好处

  • 简洁
  • 获得参数更加方便,框架会自动进行类型转换
  • 通过路径变量的类型可以约束访问参数

使用method属性指定请求类型

用于约束请求的类型,可以收窄请求范围。

小结:

所有地址栏请求默认都会是HTTP GET类型的。

方法级别的注解变量有如下:

@GetMapping 
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

小黄鸭调试法

我向我解释一遍代码执行流程。

你可能感兴趣的:(SpringMVC-04-Restful风格)