SpringBoot对一个URL通过method(GET、POST、PUT、DELETE)实现增删改查操作

目录

  • [1. rest风格基础](#1. rest风格基础)
  • [2. 开启方法](#2. 开启方法)
  • [3. 实战练习](#3. 实战练习)

1. rest风格基础

我们都知道GET、POST、PUT、DELETE分别对应查、增、改、删除

虽然Postman这些工具可以直接发送GET、POST、PUT、DELETE请求。但是@RequestMapping并不支持PUT和DELETE请求操作。需要我们手动开启

2. 开启方法

PUT和DELETE还是通过method=POST进行请求,但是需要添加对应的隐藏域_method=PUT/DELETE

然后配置文件进行参数的配置:spring.mvc.hiddenmethod.filter.enabled=true

3. 实战练习

  1. 添加如下参数到application.properties文件。表示开启隐藏方法使用

    spring.mvc.hiddenmethod.filter.enabled=true

  2. 编写Controller。在一个请求路径上,分别定义了GET、POST、PUT、DELETE四种method

其中GetMapping、PostMapping、PutMapping、DeleteMapping等同于@RequestMapping对应的method。如下所示:

Java 复制代码
package com.hh.springboottest.myController;

import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {

    // @GetMapping("/user")
    @RequestMapping(value="/user", method = RequestMethod.GET)
    public String getUser() {
        return "get user";
    }

    // @PostMapping("/user")
    @RequestMapping(value="/user", method = RequestMethod.POST)
    public String saveUser() {
        return "save user";
    }

    // @PutMapping("/user")
    @RequestMapping(value="/user", method = RequestMethod.PUT)
    public String editUser() {
        return "edit user";
    }

    // @DeleteMapping("/user")
    @RequestMapping(value="/user", method = RequestMethod.DELETE)
    public String deleteUser() {
        return "delete user";
    }
}
  1. 编写resources/static/index.html页面。PUT和DELETE还是通过method=POST进行请求,但是需要添加对应的隐藏域_method=PUT/DELETE。还支持的一个隐藏域是_method=PATCH
Html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>test title</title>
</head>
<body>

<form action="/user" method="get">
    <input value="rest get提交" type="submit" />
</form>
<form action="/user" method="post">
    <input value="rest post提交" type="submit" />
</form>
<form action="/user" method="post">
    <input name="_method" type="hidden" value="PUT" />
    <input value="rest put提交" type="submit" />
</form>
<form action="/user" method="post">
    <input name="_method" type="hidden" value="DELETE" />
    <input value="rest delete提交" type="submit" />
</form>

</body>
</html>
  1. 然后访问http://localhost:8080/,点击rest get提交。如下所示:

    得到的结果如下:
相关推荐
cpolar技术支持2 天前
Spring Boot 接口本地正常,异地前端却报跨域?用 cpolar 跑通 CORS 预检与白名单
java·springboot·cpolar·前后端分离·cors
弹简特4 天前
【Java项目-企悦抽】17-抽奖模块02-抽奖接口实现
java·开发语言·状态模式·springboot
弹简特4 天前
【Java项目-企悦抽】16-抽奖模块01-获取活动完整信息接口实现
java·开发语言·状态模式·springboot
弹简特6 天前
【Java项目-企悦抽】15-活动管理模块02-活动创建测试与活动列表实现
java·开发语言·springboot
弹简特6 天前
【Java项目-企悦抽】13-奖品管理模块-奖品列表和创建奖品的实现
java·开发语言·网络·springboot
弹简特6 天前
【Java项目-企悦抽】14-活动管理模块01-创建活动的实现
java·开发语言·springboot
Q26433650237 天前
【有源码】基于uni-app的旅游行程规划小程序-基于微信小程序的智慧文旅综合服务平台
java·微信小程序·小程序·uni-app·毕业设计·springboot·源代码
凤山老林7 天前
Spring Boot 实现高并发分布式 ID 生成:雪花算法原理、时钟回拨处理与性能优化实战
springboot·雪花算法·分布式id·时钟回拨
小蒜学长8 天前
基于SpringBoot和Vue的低卡食品销售系统的设计与实现(代码+数据库+LW)
java·后端·springboot·健康管理·低卡食品销售系统