Java后台接收数据的三种方式(url、form-data与application/json)

 更新时间:2023年07月13日 10:49:31   作者:瑶山  
本文主要介绍了Java后台接收数据的三种方式(url、form-data与application/json),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

url传参的方式

    /**
     * 请求路径:http://localhost:8080/hello/show5/1/james
     */
    @PostMapping("show5/{id}/{name}")
    public void test5(@PathVariable("id") Long ids, @PathVariable("name") String names){
    }

以form_data方式传输

    @PostMapping("/add/user")
    public JSONObject addUser(User param){
        return userService.addUser(param);
    }

字段接收-形参

    /**
     * @RequestParam() 里边的值必须要和前端传递过来的参数名字相同
     */
    @PostMapping
    public String testUser(@RequestParam("name") String a, @RequestParam("phone") String b, String password){
        return "ok";
    }

以json数据传输

    @PostMapping("/add/user")
    public JSONObject addUser(@RequestBody User param){
        return userService.addUser(param);
    }

其实还有一种以前用过的请求方式:HttpServerletRequest.getParameter("name"),不常用

注解

@RequestParam

作用:将指定的请求参数赋值给方法中的形参

  • 指定的参数可以是普通元素、数组、集合、对象等等
  • 一个请求——》可以有多个@RequestParam

语法:@RequestParam(value="参数名",required="true/false",defaultValue="")

value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

示例:

    @PostMapping("/test")
    public void test(@RequestParam(required = true)String name) {
    }

@RequestBody

作用:接收前端传递的Json对象的字符串。(请求体中的数据)

  • Post请求,GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据
  • 一个请求——》只有一个@RequestBody

@PathVariable

作用:接收请求路径中占位符的值。

Get路径请求

语法:@RequestMapping(value=”user/{userId}/{userName}”)
示例:
    /**
     * 请求路径:http://localhost:8080/hello/show5/1/james
     */
    @PostMapping("show5/{id}/{name}")
    public void test5(@PathVariable("id") Long ids, @PathVariable("name") String names){
    }

formdata和json的区别

Content-Type(内容类型)

语法格式:

Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something

常见的媒体格式类型:

  • text/html : HTML格式
  • text/plain :纯文本格式
  • text/xml : XML格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png:png图片格式

以application开头的媒体格式类型:

  • application/xhtml+xml :XHTML格式
  • application/xml: XML数据格式
  • application/atom+xml :Atom XML聚合格式
  • application/json: JSON数据格式
  • application/pdf:pdf格式
  • application/msword : Word文档格式
  • application/octet-stream : 二进制流数据(如常见的文件下载)
  • application/x-www-form-urlencoded : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:

  • multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

formdata:

常用有两种: application/x-www-form-urlencoded 和 multipart/form-data , 默认为application/x-www-form-urlencoded

  • multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
  • x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的

json:

application/json: JSON数据格式,将数据进行序列化的一种方式,后端可以直接使用

关于post请求能用@pathVariable注解的尝试

正常来说这个注解习惯使用在get请求上, 之前偷懒代码贴出的是post, 关于此项的疑惑做个尝试

找个controller复制过来之前的代码

启动项目, 端口80, 打开postman, 发送请求

控制台

@PathVariable是spring3.0的新功能:接收请求路径中占位符的值, 请求方式post, get, put等都可以

到此这篇关于Java后台接收数据的三种方式(url、form-data与application/json)的文章就介绍到这了,更多相关Java后台接收数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实战项目之谷歌浏览器全屏效果实现

    SpringBoot实战项目之谷歌浏览器全屏效果实现

    这篇文章主要介绍了通过 Java SpringBoot来实现谷歌浏览器的全屏效果,希望页面展示时可以实现全屏效果以提高用户体验。感兴趣的小伙伴跟着小编往下看吧
    2021-09-09
  • springBoot项目中使用@Value取值出现的问题及解决

    springBoot项目中使用@Value取值出现的问题及解决

    这篇文章主要介绍了springBoot项目中使用@Value取值出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Spring启动过程中实例化部分代码的分析之Bean的推断构造方法

    Spring启动过程中实例化部分代码的分析之Bean的推断构造方法

    这篇文章主要介绍了Spring启动过程中实例化部分代码的分析之Bean的推断构造方法,实例化这一步便是在doCreateBean方法的 instanceWrapper = createBeanInstance(beanName, mbd, args);这段代码中,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2022-09-09
  • java使用命令行打包JAR

    java使用命令行打包JAR

    如何把写好的Java程序打包为jar文件呢?下面说的就是java使用命令行打包JAR的方法
    2013-11-11
  • java web如何解决瞬间高并发

    java web如何解决瞬间高并发

    这篇文章主要为大家详细介绍了java web解决瞬间高并发的策略,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Spring注解之@Conditional使用解析

    Spring注解之@Conditional使用解析

    这篇文章主要介绍了Spring注解之@Conditional使用解析,@Conditional注解可以说是SpringBoot的条件注解,表示组件只有在所有指定条件都匹配时才有资格注册,条件是可以在 bean 定义注册之前​​以编程方式确定的任何状态,需要的朋友可以参考下
    2024-01-01
  • SpringMVC框架中使用Filter实现请求日志打印方式

    SpringMVC框架中使用Filter实现请求日志打印方式

    这篇文章主要介绍了SpringMVC框架中使用Filter实现请求日志打印方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 利用solr实现商品的搜索功能(实例讲解)

    利用solr实现商品的搜索功能(实例讲解)

    下面小编就为大家分享一篇利用solr实现商品的搜索功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 非常全面的Java SpringBoot点赞功能实现

    非常全面的Java SpringBoot点赞功能实现

    但是这些功能再项目中是高频出现的,如果直接操作数据库的话,对数据库压力太大。那遇到这个问题怎么解决?这篇文章主要给大家介绍了关于Java SpringBoot点赞功能实现 的相关资料,需要的朋友可以参考下
    2022-01-01
  • MySQL安装与idea的连接实现

    MySQL安装与idea的连接实现

    本文主要介绍了MySQL安装与idea的连接实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论