当前位置: 首页 > article >正文

@DeleteMapping和@PostMapping和@GetMapping和Content-Type使用记录

代码例子,有注释大家可以自己试一下

@RestController
@RequestMapping(value = "demo")
public class TestController {

    //Content-Type:application/x-www-form-urlencoded;表单提交form-data
    @PostMapping("/demo1")
    public String test1(@RequestParam("id") Integer id,@RequestParam("name") String name) {
        System.out.println("test1......");
        return Integer.valueOf(id) + ":" + name;
    }

    //Content-Type:application/x-www-form-urlencoded
    @PostMapping("/demo2")
    public String test2(DemoUser demoUser) {
        System.out.println("test2......");
        return Integer.valueOf(demoUser.getId()) + ":" + demoUser.getName();
    }
    //Content-Type:application/json
    @PostMapping("/demo3")
    public String test3(@RequestBody DemoUser demoUser) {
        System.out.println("test3......");
        return Integer.valueOf(demoUser.getId()) + ":" + demoUser.getName();
    }

    //Content-Type:application/x-www-form-urlencoded;form-data表单;application/json(用@RequestBody接收)都可以
    @DeleteMapping("/demo4")
    public String test4(@RequestParam("id") Integer id,@RequestParam("name") String name) {
        System.out.println("test4......");
        return Integer.valueOf(id) + ":" + name;
    }

    //http:localhost:8080/demo/1
    @GetMapping("/{id}")
    public String test5(@PathVariable("id") Integer id) {
        System.out.println("test5....");
        return String.valueOf(id);
    }
     //application/json
    @PostMapping("/demo6")
    public String test6(@RequestBody Map<String,Object> map) {
        System.out.println("test6...............");
        return map.get("id") + ":" + map.get("name");
    }
}

@PutMapping

后端例子:

@PutMapping
public AjaxResult edit(@RequestBody CourseInfo courseInfo){
     return toAjax(courseService.updateCourse(courseInfo))
 }

前端例子:

export function updateCourse(data){
  return request({
    url:'/course',
    method:'put',
    data:data,
  })
}
@DeleteMapping

后端例子:

    @DeleteMapping("/{ids}")
    public AjaxResult delCourse(@PathVariable Long []ids){
        return toAjax(courseService.delCourse(ids));
    }

前端例子:

export function delCourse(id) {
  return request({
    url:'/course/'+id,
    method:'delete'
  })
}
<a th:href="@{/test/get}">get请求</a><br>
// 标记这个类是控制器
@Controller
// 规定浏览器url访问路径,严格区分大小写,不能存在相同的路径名,可以加 / ,也可以不加 /
@RequestMapping("/test")
public class HelloController {
    @RequestMapping("get")
    @ResponseBody	// 接受请求,响应JSON串
    public String show() {
        return "123";
    }
}

POST表单提交

<!--post提交-->
<form th:action="@{/test/post}" method="post">
    用户名:<input type="text" name="username">
    <input type="submit" value="添加信息">
</form>

<!--post提交文件-->
<form th:action="@{/test/up}" method="post" enctype="multipart/form-data">
    头像:<input type="file" name="photo"><br>
    <input type="submit" value="上传">
</form>
@Controller
@ResponseBody
@RequestMapping("/test")
public class HelloController {
    @RequestMapping("post")
    // @RequestParam:绑定形参的名字和请求参数的名字一致
    public String show(@RequestParam("username")String name) {
        return "用户名:"+name;
    }
}

@RequestParam:绑定形参(后端)的名字和请求参数(前端)的名字一致

import qs from 'qs';
const data = { 'bar': 123 };
const options = {
  method: 'POST',
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
  data: qs.stringify(data),
  url,
};
axios(options);
var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);

RESTful风格请求

1、RESTful风格格式
 http://localhost:8080/username/password/age http://localhost:8080/张三/123123/20

2、四种基本请求形式
GET:查询
POST:新增
PUT:更新
DELETE:删除
3、注解
@PathVariable
在参数中使用
与 @RequestMapping 搭配使用,映射路径
例:{id} 对应 @PathVariable Integer id
4、RESTful访问要求
在同一个地址下,通过不同的请求方法来决定哪个访问行为
通过请求方式决定访问的资源
5、代码案例
5.1、GET

<a th:href="@{/user}">查询所有的用户信息</a><br>
@RestController
public class Test(){
  @GetMapping("/user")
    public String getAllUser() {
        System.out.println("查询所有用户信息 --> /user --> get");
        return "success";
    }
}

5.2、POST

<form th:action="@{/user}" method="post">
    <input type="submit" value="添加用户信息">
</form>
@RestController
public class Test(){
    @PostMapping("/user")
    public String insertUser() {
        System.out.println("添加用户信息 --> /user --> post");
        return "success";
    }
}

5.3、PUT

<form th:action="@{/user}" method="post">
    <!--用来转换请求方式的,hidden隐藏域,_method必须这么写,put请求方式-->
    <input type="hidden" name="_method" value="put">
    <input type="submit" value="修改用户信息">
</form>
@RestController
public class Test(){
    @PutMapping("/user")
    public String updateUser() {
        System.out.println("修改用户信息 --> /user --> put");
        return "success";
    }
}

5.4、DELETE

<form th:action="@{/user/1}" method="post">
    <!--用来转换请求方式的,hidden隐藏域,_method必须这么写,delete请求方式-->
    <input type="hidden" name="_method" value="delete">
    <input type="submit" value="删除用户信息">
</form>
@RestController
public class Test(){
    @DeleteMapping("/user/{id}")
    public String deleteUser(@PathVariable("id") Integer id) {
        System.out.println("删除用户信息 --> /user/" + id + " --> delete");
        return "success";
    }
}

content-type,表示你前端用那种方式传参。
如果application/json使用json传参,那么你后台就需要用@RequstBody来接受参数。

如果用form-data表单方式传参,那么你后台可以直接用一个vo对象接收,或者你直接使用@RequestParam参数来接受

最后一个例子中,http:localhost:8080/demo/{id}–这种方式传参,你需要@PathVariable来接受参数


http://www.kler.cn/a/373471.html

相关文章:

  • Python小游戏14——雷霆战机
  • Linux基础 -- 文件同步之 rsync 命令的使用
  • OpenCV 学习笔记
  • 关于Android Studio Koala Feature Drop | 2024.1.2下载不了插件的解决办法
  • mysql5.7.44 arm 源码编译安装
  • IEEExtreme 18
  • C语言二叉树
  • 破解OCR生僻字难题,中安文字识别技术让文字录入更简单
  • Javascript——KMP算法
  • C#实现MD5加密
  • 有没有优质的公司可以提供高质量大模型数据?
  • laravel 安装后台管理系统, filament.
  • 学习区模型分享
  • float(‘inf‘)中inf是什么意思
  • linux之网络子系统- 内核接收数据包以及相关实际问题
  • 基于Gin和GORM的在线判题系统后端
  • 达梦变量赋值
  • 为什么选择AWS
  • Flink CDC系列之:理解学习Kubernetes模式
  • 【制造业&PPE】安全帽等施工现场安全防护装备识别图像分割系统源码&数据集全套:改进yolo11-DRBNCSPELAN
  • c++/qt调阿里云视觉智能开发平台
  • logback日志级别动态切换四种方案
  • 什么是x86架构,什么是arm架构
  • 【果蔬识别】Python+卷积神经网络算法+深度学习+人工智能+机器学习+TensorFlow+计算机课设项目+算法模型
  • 【Redis】
  • 设计模式 - 工厂方法模式