Java接收前端请求体方式

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


文章目录


Java接收前端请求体的方式 请求体(Request Body)是HTTP请求中的一部分,用于传输请求的数据;在HTTP请求中,请求体通常用于POST、PUT等需要传递数据的请求方法

  • 表单数据(Form Data):请求体以键值对的形式表示,使用&符号分隔不同字段;例如:username=johndoe&password=123456
  • JSON数据:请求体以JSON(JavaScript Object Notation)格式表示,通常用于传递结构化的数据;例如:{"name": "John Doe", "email": "johndoe@example.com"}
  • 文件上传:请求体用于传输文件的二进制数据;通常会使用特定的编码方式对文件进行处理,如multipart/form-data

@RequestBody

@RequestBody:Spring框架中用于接收前端请求体的注解,可以将请求体的内容绑定到Java对象中

java 复制代码
http://localhost:8080/api/search?code=123
java 复制代码
	@GetMapping("/search")
    public void  handleRequest(@RequestParam("code") String code) {
        // 处理路径参数
    }

@PathVariable

@PathVariable:Java中接收前端请求中的路径参数;路径参数是指URL中的一部分,它们以占位符的形式存在于API的URL中,可以在Java代码中动态获取和使用

java 复制代码
http://localhost:8080/api/example/123
java 复制代码
	@GetMapping("/example/{id}")
    public void  handleRequest(@PathVariable("id") String id) {
        // 处理路径参数
    }

@RequestParam

@RequestParam注解:接收查询字符串参数或表单参数;可以将请求中的参数值绑定到方法的参数上;该方式适用于获取特定参数的值

java 复制代码
@RequestParam(value="参数名",required="true/false",defaultValue="")

// value:参数名
 
// required:是否包含该参数,默认为true:请求路径必须包含该参数,否则报错
 
// defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
java 复制代码
http://localhost:8080/api/example?id=123
java 复制代码
	@GetMapping("/example")
    public void  handleRequest(@RequestParam(value="id",required="true")) {
        // 处理路径参数
    }
java 复制代码
http://localhost:8080/api/example?123
required= false:表示请求中可以没有该参数,方法参数将被设置为 null
java 复制代码
	@GetMapping("/example")
    public void  handleRequest(@RequestParam(value="id",required="false")) {
        // 处理路径参数
    }
java 复制代码
http://localhost:8080/api/example?id=1
defaultValue="hello":接受参数默认为123,有参数传递则为请求参数
java 复制代码
	@GetMapping("/example")
    public void  handleRequest(@RequestParam(value="id",required="false",defaultValue="123")) {
        // 处理路径参数
    }

@Validated

@Validated注解:方法参数或方法返回值进行校验

方法参数校验

方法参数校验,应用于控制器的处理方法,验证传入参数是否满足指定校验规则
@Validated注解应用在方法的参数上,对request参数进行校验;校验的规则可以通过在RequestDto类的属性上使用注解@NotNull@NotBlank等定义

java 复制代码
@PostMapping("/example")
public void handleRequest(@Validated @RequestBody RequestDto request) {
   // 处理请求
}

方法返回值校验

处理方法的执行完毕,可以对方法返回对象进行校验,确保返回数据满足指定校验规则
@Validated注解应用在方法的返回值上,对ResponseDto对象进行校验;校验规则通过ResponseDto类的属性上使用注解来定义

复制代码
@GetMapping("/example/{id}")
public @Validated ResponseDto handleRequest(@PathVariable("id") String id) {
   // 处理请求
   return responseDto;
}

@RequestHeader

@RequestHeader注解:接收请求头的值,可以将请求头中指定的信息绑定到方法的参数上

java 复制代码
@GetMapping("/example")
public void handleRequest(@RequestHeader("User-Agent") String userAgent) {
   // 处理请求头的值
}

@HttpServletRequest

@HttpServletRequest注解:方法参数中注入HttpServletRequest对象,通过它来获取完整的请求信息,包括请求体、请求头、路径参数和查询字符串参数等

java 复制代码
@PostMapping("/example")
public void handleRequest(HttpServletRequest request) {
   // 处理请求信息
}

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请------点赞👍收藏⭐️评论📝


相关推荐
逝水无殇9 分钟前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
iCOD3R30 分钟前
Skill - kill-ai-slop 解决“AI 味”样式
前端·css·ai编程
皮音1 小时前
Skill 在项目中的实践 —— 从 Agent 困境到 Skill 工程化
前端
大龄秃头程序员1 小时前
RN 0.86 新架构实战:TurboModule + Fabric 组件 + iOS 原生容器,完整代码开源
前端·react native
这是个栗子1 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
Hilaku1 小时前
Vue 和 React 真正的差距,不在语法,而在团队犯错成本
前端·javascript·程序员
凤凰院凶涛QAQ1 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香1 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
右耳朵猫AI2 小时前
PHP周刊2026W28 | 安全更新、Laravel 13.18、Twig 3.28
开发语言·php·laravel
second602 小时前
第一部分:快速上手 —— 建立 C++ 基本语法与编程范式
开发语言·c++