Java接收前端请求体的多种方式总结

 更新时间:2023年08月25日 10:11:12   作者:wei_shuo  
这篇文章主要给大家介绍了关于Java接收前端请求体的多种方式,文中通过代码介绍的非常详细,对大家学习或者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对象中

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

@PathVariable

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

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

@RequestParam

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

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

@Validated

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

方法参数校验

方法参数校验,应用于控制器的处理方法,验证传入参数是否满足指定校验规则

@Validated注解应用在方法的参数上,对request参数进行校验;校验的规则可以通过在RequestDto类的属性上使用注解@NotNull@NotBlank等定义

@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注解:接收请求头的值,可以将请求头中指定的信息绑定到方法的参数上

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

@HttpServletRequest

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

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

总结 

到此这篇关于Java接收前端请求体的多种方式的文章就介绍到这了,更多相关Java接收前端请求体内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringCloud Feign的使用简介

    SpringCloud Feign的使用简介

    这篇文章主要介绍了SpringCloud Feign的使用简介,帮助大家更好的理解和学习使用SpringCloud,感兴趣的朋友可以了解下
    2021-04-04
  • java实现区域内屏幕截图示例

    java实现区域内屏幕截图示例

    这篇文章主要介绍了java截图示例,需要的朋友可以参考下
    2014-04-04
  • 一文带你了解Java万物之基之Object类

    一文带你了解Java万物之基之Object类

    Java是一门天然的面向对象的语言。而所有我们手动创造出来的类,都继承于同一个类,即Object类。本文将通过示例为大家详细介绍一下Java中的Object类,需要的可以参考一下
    2022-03-03
  • Java 数据结构与算法系列精讲之背包问题

    Java 数据结构与算法系列精讲之背包问题

    背包问题是一个非常典型的考察动态规划应用的题目,对其加上不同的限制和条件,可以衍生出诸多变种,若要全面理解动态规划,就必须对背包问题了如指掌
    2022-02-02
  • 浅谈Java几种文件读取方式耗时

    浅谈Java几种文件读取方式耗时

    本文主要介绍了浅谈Java几种文件读取方式耗时,主要介绍了4种,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • JavaWeb入门:HttpResponse和HttpRequest详解

    JavaWeb入门:HttpResponse和HttpRequest详解

    这篇文章主要介绍了Django的HttpRequest和HttpResponse对象,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Spring MVC参数校验详解(关于`@RequestBody`返回`400`)

    Spring MVC参数校验详解(关于`@RequestBody`返回`400`)

    这篇文章主要介绍了Spring MVC参数校验的相关资料,主要是针对`@RequestBody`返回`400`的问题,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • Java中Swagger框架的使用详解

    Java中Swagger框架的使用详解

    这篇文章主要介绍了Java框架Swagger的使用详解,在开发期间接口会因业务的变更频繁而变动,如果需要实时更新接口文档,这是一个费时费力的工作,Swagger应运而生,他可以轻松的整合进框架并通过一系列注解生成强大的API文档,需要的朋友可以参考下
    2023-08-08
  • springboot+jwt+springSecurity微信小程序授权登录问题

    springboot+jwt+springSecurity微信小程序授权登录问题

    这篇文章主要介绍了springboot+jwt+springSecurity微信小程序授权登录问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java有序的Map LinkedHashMap用法详解

    Java有序的Map LinkedHashMap用法详解

    LinkedHashMap是Java提供的一个集合类,它继承自HashMap,并在HashMap基础上维护一条双向链表,本文给大家介绍java 有序的Map LinkedHashMap简介,感兴趣的朋友一起看看吧
    2024-01-01

最新评论