springboot restful 请求参数传递url设置方式

Springboot中参数传递的三个注解的使用 Springboot中参数传递的三个注解的使用Springboot中参数传递的三个注解的使用@PathVariable@RequestParamGET用法POST用法@RequestBody Springboot中参数传递的三个注解的使用 本文只要介绍springboot中有关参数传递的三个注解:@PathVariable 、@RequestParam 以及 @RequestBody的使用 @PathVariable @PathVariable 注解主要是用来获取 url 参数,Spring Boot 支持 阅读详情
引入:

现在开发中springboot工程一般都是使用REST风格开发(Representational State Transfer – 表现形式状态转换)

区别对比:

  • 传统风格资源描述形式
    http://localhost/user/getById?id=1
    http://localhost/user/saveUser
  • REST风格描述形式
    http://localhost/user/1
    http://localhost/user
  • 优点:
    • 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
    • 书写简化

Rest风格如何通过url路径传递参数?

主要理解三个注解的使用:

@PathVariable介绍
  • 名称:@PathVariable
  • 类型:形参注解
  • 位置:SpringMVC控制器方法形参定义前面
  • 作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应
  • 场景: 请求参数为1个的时候很常用, 例如id参数请求, 状态参数等
使用示例:
// 如GET请求 请求url:http://localhost/user/1 这个1为方法形参直接传递来的,那么就可以使用@PathVariable注解将形参与路径参数绑定(使用占位符{}),两者的名称要保持一致,如不一致需要在注解里value指定占位符名称,如@PathVariable("id")

@GetMapping("/users/{id}")
@ResponseBody
public User getUser(@PathVariable Integer id){
    User user = userService.getUserbyId(id)
    return user
}

@RequestMapping注解
  • 名称:@RequestMapping
  • 类型:方法注解 类注解
  • 位置:SpringMVC控制器方法定义上方
  • 作用:设置当前控制器方法请求访问路径,如果设置在类上统一设置当前控制器方法请求访问路径前缀
  • 场景: 定义访问的路径
使用示例:
// 请求url:http://localhost/user/save,主要用来定义访问的路径设置
@Controller
// 类上方配置的请求映射与方法上面配置的请求映射连接在一起,形成完整的请求映射路径
@RequestMapping("/user")
public class UserController {
    //请求路径映射
    @RequestMapping("/save") //此时save方法的访问路径是:/user/save
    @ResponseBody
    public String save(){
        System.out.println("user save ...");
        return "{'module':'user save'}";
    }
}

注意: 如果使用此注解时没有配合指定的HTTP请求方法时, 那么默认情况下, 这个请求会接受GET/POST/PUT/DELETE/HEAD/OPTIONS 等所有HTTP请求方法

@RequestBody注解
  • 名称:@RequestBody
  • 类型:形参注解
  • 位置:SpringMVC控制器方法形参定义前面
  • 作用:将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次
  • 场景: 请求参数超过1个 , json格式参数传输, 表单数据传输 , 对象数据请求, 实际开发常用POST请求方法
使用示例:
// 请求url:http://localhost/pojoParamForJson
// 企业实际开发基本都是使用json格式请求参数【application/json】
// 使用@RequestBody注解将外部传递的json数据映射到形参的实体类对象中,要求属性名称一一对应
@RequestMapping("/pojoParamForJson")
@ResponseBody
public String pojoParamForJson(@RequestBody User user){
    System.out.println("pojo(json)参数传递 user ==> "+user);
    return "{'module':'pojo for json param'}";
}

// 请求url:http://localhost/listPojoParamForJson
// 此注解也可用来接受多个pojo类型的json数组集合参数
@RequestMapping("/listPojoParamForJson")
@ResponseBody
public String listPojoParamForJson(@RequestBody List<User> list){
    System.out.println("list pojo(json)参数传递 list ==> "+list);
    return "{'module':'list pojo for json param'}";
}
@RequestParam注解
  • 名称:@RequestParam
  • 类型:形参注解
  • 位置:SpringMVC控制器方法形参定义前面
  • 作用:绑定请求参数与处理器方法形参间的关系
  • 场景: url地址传参, 表单传参【application/x-www-form-urlencoded】, 发送非json数据
  • 参数:
    • required:是否为必传参数
    • defaultValue:参数默认值
使用示例:
// 请求url:http://localhost/select?name=zs&age=18
// 常用于传递普通参数:请求参数名与形参名不同时,使用此注解关联请求参数名称与形参名称之间的关系
@RequestMapping("/select")
@ResponseBody
// 方法形参是username,实际url地址是name,需要使用此注解进行映射
public String select(@RequestParam("name") String userName , int age){
    System.out.println("普通参数传递 userName ==> "+userName);
    System.out.println("普通参数传递 age ==> "+age);
    return username;
}
// 如果请求参数名称和方法形参名称一致,不需要加此注解,也可以成功访问
小结:
  1. 后期开发中,发送请求参数超过1个时,以json格式为主,使用@RequestBody
  2. 如果发送非json格式数据,选用@RequestParam接收请求参数
  3. 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

注意:url中的请求参数是键值对的形式, 形式是?分隔, 键值对以&区分, 以上注解都无需添加, 会自动解析拼成, ajax函数中的请求参数未写时,也无需加,但是建议使用实例类对象形参接受解析, 拓展性更好

【Spring Boot】Web开发 — URL映射 上节介绍介绍了@Controller和@RestController等注解,那么Spring Boot是如何将HTTP请求映射到具体方法的呢?Spring Boot支持URL路径匹配、HTTP Method匹配、params和header匹配等URL映射。本节开始介绍Spring Boot的URL映射。 阅读详情

相关推荐

robomimic实验复现全流程指南:从数据集下载到训练视频生成

本文提供了RoboMimic实验复现的完整实战指南,重点解析了从数据集下载、配置文件定制到模型训练与评估的全流程。以tool_hang任务为例,详细说明了环境准备、数据获取、训练监控及视频生成等关键步骤,并针对常见问题给出了排查方案,帮助研究者高效完成机器人模仿学习实验的闭环验证。

2w3e4r5t6y的博客 1030

springboot学习笔记(3)URL路由和参数处理

1.RESTful URL 典型的前后端分离的设计 GET http://localhost:8080/api/v1/books 获取读书清单列表 POST http://localhost:8080/api/v1/books 新增一个清单 一个URL代表一种资源或者一种资源的状态转换 ...

nairuozi的博客 3027

AFSim仿真系统—几何视角下的子系统交互机制解析

本文深入解析了AFSim仿真系统中子系统交互的几何机制。通过剖析世界坐标系、实体坐标系、部件坐标系等七层空间定位体系,阐述了传感器探测、目标指示等交互行为背后的几何原理与限制条件。掌握这套几何视角,是构建高保真、符合物理现实的AFSim仿真模型的关键,能有效避免坐标混乱、交互失效等常见问题。

terraform7cloud的博客 490

springmvc请求参数获取的几种方法

1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。 /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username * @param password * @return */ @RequestMapping("/addUser1") public String addUser1(String username,String p

qq_43154385的博客 448

UE5 C++教程(一、基本结构)

虚幻API由三块组成,分别是Runtime,Developer utilitiew,functionality for the Editor,大多数游戏性编程只使用运行时模块,最常见的三个是Corn、CornUObject和Engine。

skycol的博客 1万+

从仿真到打样:PMOS栅极泄放电路设计全流程复盘与三个踩坑点总结

本文详细复盘了PMOS栅极泄放电路从仿真到打样的全流程设计,重点总结了三个关键踩坑点:三极管BE结过压击穿、静态功耗超标和栅极振荡现象。通过优化缓启动电路、改进保护设计和布局调整,最终实现18ms开通时间、190μs关断时间和8μA静态功耗的工业级性能指标,为类似电源开关设计提供实用参考。

weixin_28693683的博客 370

springboot:数据库(URL)参数介绍

SpringBoot数据库(URL)参数介绍

拒绝熬夜啊的博客 4947

从零构建法律案例数据库:Python爬虫实战与法律文本挖掘全攻略

在当今数字化浪潮席卷全球的背景下,法律行业正经历着前所未有的变革。法律案例数据库作为法律大数据的重要组成部分,已经成为法律从业者、研究人员、法学院学生乃至企业法务部门的必备工具。然而,商业法律数据库如北大法宝、威科先行、LexisNexis等往往价格不菲,且数据访问受限。对于个人研究者或小型机构而言,构建一个定制化的法律案例数据库不仅能节省成本,更能根据特定研究需求灵活调整数据结构。

2201_76125261的博客 537

RestFul风格传参

RestFul风格就是所有参数都由/传递,而不是传统的?xx&xx形式 例如:写一个Controller: package controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.we

weixin_44976835的博客 6787

SimSwap复现指引及代码分析【2023有更新】

我的环境!!!😚😚😚 之后会遇到:还会遇到至此环境配置完毕!下面是所需要的checkpoint。至此环境准备结束。先试试环境是否有问题,图片是代码包中给的。我用的是512的checkpoint,无水印,a是源脸,b是目标脸。输出到./output/result_whole_swapsingle.jpg 如图是可以成功换脸的:(为了方便查看将图像裁剪到了128x128) 表示图像预处理,相应的改为也是一样。不加就是对已经面部对齐的图像进行简单的面部交换。 加上就是无水印。 交换一张图片中的所有面孔。

zik的博客 2045

NVIDIA Isaac Sim 入门教程(二)

Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(现在工作区中应该会出现一个名为 "视口 2 "的新视口。如果您想创建更多的视口,请按照相机检查器扩展进行操作。单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。单击并向左拖动视口 2 的左侧,使视口大小相等。

机器人控制与仿真应用 6544

Restful风格请求 后端接口参数接收详解

基于restful api接口规范,在SpringBoot项目中,前端HTTP请求中的参数如何映射到Controller层的接口方法中的参数?这里针对各种方式做一个测试与总结。

java全栈工程师 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot获取URL请求参数方式

文章目录直接把表单的参数写在Controller相应的方法的形参中使用HttpServletRequest接收GET:POST:常用API使用一个bean来接收使用@PathVariable获取路径中的参数使用注解@RequestParam绑定请求参数到方法入参使用@ModelAttribute注解获取POST请求的FORM表单数据 直接把表单的参数写在Controller相应的方法的形参中 适用于get方式提交,不适用于post方式提交。 url形式:http://localhost/SSMDemo/de

abde630154071的博客 2143

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

springboot url请求的多种方式

第一种 请求方式 get 请求url http://ip:port/类路径/方法路径 例子 http://localhost:8080/helloWorld/s...

chukuaiyao2414的博客 516

什么是RestFul架构 ? Springboot四种传参方式 ?

1、Restful Rest:资源表现层状态转化 所谓的资源就是指网络中一切事物都是资源Resource 每一个资源都有一个唯一URL 表现层:将资源具体呈现出来形式,称之为表现层,例如jsp,html 状态转化:用来操作展示出来资源只有到服务器端才能确定是哪种状态转化 1.1、什么是唯一URL 传统url:http://localhost:8080/demo/user/findById?id=1 在?前面的是地址,在?后面的是传递的参数 Restful: http://localhost:8

暴走的山交君的博客 688

Springboot页面传参的方式总结

@RequestBody ,不能通过表单和url 传参 @PostMapping(value = "/test") @ApiOperation(value = "开始流程", notes = "开始流程") public R test(@RequestBody TestDemo startProcessInstanceReq) { System.out.println("startProcessInstanceReq = " + startProcessInstanceReq); re.

liu20121787的博客 4585

springboot---接收前端请求

对于Url类请求(注意是纯url请求),客户端是不能通过body写出数据的,服务端拿到的body是空的。因此一般情况下,我们提供的HttpClient被Url类的请求getOutputStream()的时候会抛一个异常,而HttpServer接受到Url类的请求后getInputStream()的时候也会抛一个异常,这都是为了告诉调用者这是不合理的。因此综上所述,如果为get请求时,后台接收参数的注解应该为RequestParam,如果为post请求时,则后台接收参数的注解就是为RequestBody。

lipviolet的博客 1万+

SpringBoot请求方式及其请求传递的方式

本文介绍了SpringBoot中常用的请求方式及参数传递方法。主要内容包括:1. 常用请求注解:@RequestMapping、@GetMapping、@PostMapping等;2. 四种参数传递方式:@PathVariable获取路径参数、@RequestParam获取查询参数、@RequestBody处理JSON请求体、隐式参数绑定机制;3. 参数绑定原理和转化过程;4. 不同场景下的最佳实践建议。文章通过具体示例说明了各种参数传递方式的使用场景和实现方法,帮助开发者根据实际需求选择最适合的参数处理方

Liuzhengyue_的博客 461

springboot中参数传递的三个注解的使用

文章目录springboot中参数传递的三个注解的使用@PathVariable@RequestParamGET用法POST用法@RequestBody springboot中参数传递的三个注解的使用 @PathVariable @PathVariable 注解主要是用来获取 url 参数,Spring Boot 支持 restfull 风格的 url,比如一个 GET请求携带一个参数 id 过来,我们将 id 作为参数接收,可以使用 @PathVariable 注解 @RestController @Re

拒绝熬夜啊的博客 2621

springboot 参数传递(url路径传递)

springboot参数传递(url路径传递) ********************************* 相关注解 @PathVariable @Target({ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface PathVariable...

weixin_43931625的博客 7786

SpringBoot基础-参数传递

@RequestParam,@PathVariable的使用

weixin_46899412的博客 6067

SpringBoot @PathVariable 处理相同模式URL请求

首先,看一个例子,以下是一个网站中7个网页的URL请求: 1、首页 <script src="http://localhost:8180/api/demo_index_index/pv.html"></script> 2、体育首页 <script src="http://localhost:8180/api/demo_sport_index/pv.html"...

波点兔的博客 1162

什么是RestFul架构风格&&Springboot四种传参方式

什么是RestFul架构风格&&Springboot四种传参方式 1、Restful Rest:资源表现层状态转化 所谓的资源就是指网络中一切事物都是资源Resource 每一个资源都有一个唯一URL 表现层:将资源具体呈现出来形式,称之为表现层,例如jsp,html 状态转化:用来操作展示出来资源只有到服务器端才能确定是哪种状态转化 1.1、什么是唯一URL 传统url:http://localhost:8080/demo/user/findById?id=1 在?0前面的是地址,在?后

小爽帅到拖网速的博客 5796

SpringBoot-05-RESTful

SpringMVC常用注解 @RestController 表明所有方法都返回json对象,之前要返回一个json对象的时候,我们的做法是在方法上@ResponseBody,然后返回一个对象,让框架用jackson帮我们转成json格式。现在如果整个类中的方法返回的都是json格式,就可以直接在类上添加这个注解。 @RestController public class StudentController { @RequestMapping("/getStudent") public Ob

weixin_43805402的博客 267

SpringBoot RestFul风格API接口开发

本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理。 一、概念:   REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到...

a7412605567的博客 502
focuscoder
博客等级 码龄3年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值