SpringBoot 处理HTTP 请求的方法

RequestMapping 的 method 类型有 GET、HEAD、POST、PATCH、DELETE、OPTIONS、TRACE。可以通过这些 method 来处理前端用不同方法提交的数据

GET

GET 方法是最常用的方法。用 GET 方法可以获取资源。比如,以下代码用 GET 方法获取所有图书

    @RequestMapping("/select")
    @ResponseBody
    public List select1() {
        return bookService.selectBook();
    }

等同于

    @GetMapping("/select")
    @ResponseBody
    public List select2() {
        return bookService.selectBook();
    }

DELETE

如果需要删除一个数据,根据 Restful 风格则需要使用 DELETE 方法。在使用 DELETE 方法删除资源的时候,要注意判断是否成功,因为 返回的是 VOID 类型。

一般有以下三个方法判断。

  • 使用 try catch exception :如果不发生异常,则默认为成功,但这样并不好。
  • 通过存储过程返回值来判断是否正确执行:如果执行成功,则返回 1 或 大于 0 的值;如果执行失败,则返回 0。
  • 在执行 DELETE 方法前首先查询是否有数据:在执行 DELETE 方法后返回值是 0,所以,一般先查询一下是否有数据

后端 :

    @DeleteMapping("/delete")
    //(同上)@RequestMapping(value = "/delete", method = RequestMethod.DELETE) 
    @ResponseBody
    public int delete2(@RequestParam(value = "id", required = true) int id) {
        return bookService.deleteById(id);
    }

 前端 AJAX 请求:


    
    

POST

如果需要添加对象,那一般会使用 POST 的方法传递一个 Model 对象

GET 和 POST 的区别:

  1. GET 在浏览器中可以回退,而 POST 访问同一个地址时也是再次提交请求。
  2. GET 请求会被浏览器主动缓存,而 POST 则不会。
  3. GET 中的参数会被完整地保留在浏览器历史记录里,而 POST 中的参数则不会被保留。
  4. GET 只能进行 URL 编码,而 POST 支持多种编码方式。
  5. GET 只接收ASCII字符,而POST没有限制。
  6. GET 的安全性相比 POST 低,因为参数直接暴露在 URL 上,所以不能用它递敏感信息。
  7. GET 的参数是通过 URL 传递的,而 POST 的参数是放在request body中的。但是,以上这些都不是绝对的,比如 POST 也可以通过 URL 路径提交参数。

后端:

    @PostMapping("/add")
//   (同上) @RequestMapping(value = "/add",method = RequestMethod.POST)
    @ResponseBody
    public int add(@ModelAttribute("bookshelf") Bookshelf bookshelf) {
        return bookService.add(bookshelf);
    }

前端 form 表单


    
id: 输入1: 输入2:

PUT

如果对象需要更新,则用PUT方法发送请求。

后端:

    @PutMapping("/update")
//   (同上) @RequestMapping(value = "/update" ,method = RequestMethod.PUT)
    @ResponseBody
    public String update2(@RequestParam(value = "id", required = true) int id) {
        Bookshelf bookshelf = new Bookshelf();
        bookshelf.setBkno(id);
        bookshelf.setBcategory("更改1");
        bookshelf.setBklocation("更改2");
        bookService.updateById(bookshelf);
        return "ok";
    }

前端 AJAX 请求:


    
    

局部更新可使用 Mybatis-plus 实现 

OPTIONS

该方法用于获取当前URL。若请求成功,则会在 HTTP ( HyperText Transfer Protocol,超文本传输协议) 头中包含一个名为 “Allow" 的头,其值是所支持的方法,如值为“GET、POST"。它还允许客户端查看服务器的性能。如果遇到“500错误”,则OPTIONS不进行第二次请求。

TRACE

它显示服务器收到的请求,主要用于测试或诊断。
 

你可能感兴趣的:(SpringBoot,Spring,Springboot,springBoot,java)