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

@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来接受参数

相关文章:

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

代码例子&#xff0c;有注释大家可以自己试一下 RestController RequestMapping(value "demo") public class TestController {//Content-Type&#xff1a;application/x-www-form-urlencoded;表单提交form-dataPostMapping("/demo1")public String test…...

unity 中使用zeroMq和Mqtt 进行通讯

最近我在做一个车上的HMI项目&#xff0c;也就是车机应用&#xff0c;需要与云端和域控进行通信。HMI的功能已经外包了&#xff0c;但消息的统一层留给我自己来做。因为项目组其他人都没有经验&#xff0c;所以这个任务就落到了我头上&#xff0c;尽管我自己也没有太多经验&…...

四、k8s快速入门之Kubernetes资源清单

kubernetes中的资源 ⭐️ k8s中所有的内容都抽象为资源&#xff0c;资源实列化之后&#xff0c;叫做对象 1️⃣名称空间级别 ⭐️ kubeadm在执行k8s的pod的时候会在kube-system这个名称空间下执行&#xff0c;所以说当你kubectl get pod 的时候是查看不到的查看的是默认的po…...

掌握ElasticSearch(六):分析过程

文章目录 一、什么是分析1. 字符过滤 (Character Filtering)2. 分词 (Breaking into Tokens)3. 词条过滤 (Token Filtering)4. 词条索引 (Token Indexing) 二、内置分析器分类1. 标准分析器 (Standard Analyzer)2. 简单分析器 (Simple Analyzer)3. 语言分析器 (Language Analyz…...

【设计模式】使用python 实践框架设计

单一职责原则&#xff08;SRP&#xff09;&#xff1a;一个类应该只有一个职责&#xff0c;意味着该类只应该有一个引起变化的原因。这使得代码更易于维护和理解。 开放封闭原则&#xff08;OCP&#xff09;&#xff1a;软件实体&#xff08;类、模块、函数等&#xff09;应该…...

Apache paimon-CDC

CDC集成 paimon支持五种方式通过模式转化数据提取到paimon表中。添加的列会实时同步到Paimon表中 MySQL同步表:将MySQL中的一张或多张表同步到一张Paimon表中。MySQL同步数据库:将MySQL的整个数据库同步到一个Paimon数据库中。API同步表:将您的自定义DataStream输入同步到一…...

如何分析算法的执行效率和资源消耗

分析算法的执行效率和资源消耗可以从以下几个方面入手: 一、时间复杂度分析 定义和概念 时间复杂度是衡量算法执行时间随输入规模增长的速度的指标。它通常用大 O 符号表示,表示算法执行时间与输入规模之间的关系。例如,一个算法的时间复杂度为 O(n),表示该算法的执行时间…...

提示工程(Prompt Engineering)指南(进阶篇)

在 Prompt Engineering 的进阶阶段&#xff0c;我们着重关注提示的结构化、复杂任务的分解、反馈循环以及模型的高级特性利用。随着生成式 AI 技术的快速发展&#xff0c;Prompt Engineering 已经从基础的单一指令优化转向了更具系统性的设计思维&#xff0c;并应用于多轮对话、…...

音视频入门基础:FLV专题(19)——FFmpeg源码中,解码Audio Tag的AudioTagHeader,并提取AUDIODATA的实现

一、引言 从《音视频入门基础&#xff1a;FLV专题&#xff08;18&#xff09;——Audio Tag简介》可以知道&#xff0c;未加密的情况下&#xff0c;FLV文件中的一个Audio Tag Tag header AudioTagHeader AUDIODATA。本文讲述FFmpeg源码中是怎样解码Audio Tag的AudioTagHead…...

前端零基础入门到上班:【Day3】从零开始构建网页骨架HTML

HTML 基础入门&#xff1a;从零开始构建网页骨架 目录 1. 什么是 HTML&#xff1f;HTML 的核心作用 2. HTML 基本结构2.1 DOCTYPE 声明2.2 <html> 标签2.3 <head> 标签2.4 <body> 标签 3. HTML 常用标签详解3.1 标题标签3.2 段落和文本标签3.3 链接标签3.4 图…...

字符脱敏工具类

1、字符脱敏工具类 import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils;/*** 数据脱敏工具类** date 2024/10/30 13:44*/Slf4j public class DataDesensitizationUtils {public static final String STAR_1 "*";public static final …...

【jvm】jvm对象都分配在堆上吗

目录 1. 说明2. 堆上分配3. 栈上分配&#xff08;逃逸分析和标量替换&#xff09;4. 方法区分配5. 直接内存&#xff08;非堆内存&#xff09; 1. 说明 1.JVM的对象并不总是分配在堆上。2.堆是JVM用于存储对象实例的主要内存区域&#xff0c;存在一些特殊情况&#xff0c;对象…...

@AutoWired和 @Resource原理深度分析!

嗨&#xff0c;你好呀&#xff0c;我是猿java Autowired和Resource是 Java程序员经常用来实现依赖注入的两个注解&#xff0c;这篇文章&#xff0c;我们将详细分析这两个注解的工作原理、使用示例和它们之间的对比。 依赖注入概述 依赖注入是一种常见的设计模式&#xff0c;…...

C++设计模式创建型模式———原型模式

文章目录 一、引言二、原型模式三、总结 一、引言 与工厂模式相同&#xff0c;原型模式&#xff08;Prototype&#xff09;也是创建型模式。原型模式通过一个对象&#xff08;原型对象&#xff09;克隆出多个一模一样的对象。实际上&#xff0c;该模式与其说是一种设计模式&am…...

重学SpringBoot3-Spring WebFlux之SSE服务器发送事件

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ Spring WebFlux之SSE服务器发送事件 1. 什么是 SSE&#xff1f;2. Spring Boot 3 响应式编程与 SSE为什么选择响应式编程实现 SSE&#xff1f; 3. 实现 SSE 的基本步骤3.…...

YOLO即插即用模块---AgentAttention

Agent Attention: On the Integration of Softmax and Linear Attention 论文地址&#xff1a;https://arxiv.org/pdf/2312.08874 问题&#xff1a; 普遍使用的 Softmax 注意力机制在视觉 Transformer 模型中计算复杂度过高&#xff0c;限制了其在各种场景中的应用。 方法&a…...

探索开源语音识别的未来:高效利用先进的自动语音识别技术20241030

&#x1f680; 探索开源语音识别的未来&#xff1a;高效利用自动语音识别技术 &#x1f31f; 引言 在数字化时代&#xff0c;语音识别技术正在引领人机交互的新潮流&#xff0c;为各行业带来了颠覆性的改变。开源的自动语音识别&#xff08;ASR&#xff09;系统&#xff0c;如…...

学习路之TP6--workman安装

一、安装 首先通过 composer 安装 composer require topthink/think-worker 报错&#xff1a; 分析&#xff1a;最新版本需要TP8&#xff0c;或装低版本的 composer require topthink/think-worker:^3.*安装后&#xff0c; 增加目录 vendor\workerman vendor\topthink\think-w…...

.NET内网实战:通过白名单文件反序列化漏洞绕过UAC

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏&#xff0c;主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧&#xff0c;对内网和后渗透感兴趣的朋友们可以订阅该电子报刊&#xff0c;解锁更多的报刊内容。 02基本介绍 03原理分析 在渗透测试和红…...

AI Agents - 自动化项目:计划、评估和分配

Agents: Role 角色Goal 目标Backstory 背景故事 Tasks&#xff1a; Description 描述Expected Output 期望输出Agent 代理 Automated Project: Planning, Estimation, and Allocation Initial Imports 1.本地文件helper.py # Add your utilities or helper functions to…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...