博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA 中Springmvc 请求 GET、 POST , application/x-www-form-urlencoded、application/json 区别与联系
阅读量:2386 次
发布时间:2019-05-10

本文共 1817 字,大约阅读时间需要 6 分钟。

 

Post和Get请求

共同点:本质上都是TCP连接

区别:   由于GET请求是直接把请求参数拼接到url上,浏览器往往会对url长度进行限制,所以会对请求参数的大小有所限制,而POST请求是吧请求参数放到body中,因此大小没有限制

GET请求会被浏览器主动cache,而POST不会,除非手动设置。
由于GET请求的参数会明文显示在url上,post不会,所以Post参数传输更安全
GET产生一个TCP数据包,浏览器会把http header和data一并发送出去;POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data
对参数的数据类型,GET只接受ASCII字符,而POST没有限制
GET请求只能进行url编码,而POST支持多种编码方式

application/x-www-form-urlencoded和application/json

区别:application/json的数据格式:json字符串 ,application/x-www-form-urlencoded的数据格式:键值对:key-value 
application/json数据放在body中,application/x-www-form-urlencoded都可以
表单提交时,请求头设置为application/x-www-form-urlencoded,POST和GET的区别
GET:     浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串append到url后面,用?分割,加载这个新的url
POST:   浏览器把form数据封装到http body中,然后发送到server
springmvc对application/x-www-form-urlencoded和application/json的处理
application/x-www-form-urlencoded:get 方式中queryString的值,和post方式中 body data的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到。
application/json:必须用接受@RequestBody,因为GET请求没有body,所以无法接受,只能使用post

 

Spring MVC常用的几种方式:

 普通GET:

@GetMapping(value = "optprom/list") JsonResult optionalPromotionList(Term term) throws Exception {        return null; }
其请求方式其实是在URL后拼接参数 例如:https://localhost/api/pos/promotion/optprom/list?page=1&rows=10&q=

路径参数 @PathVariable:

@GetMapping(value = "optprom/{id}")  JsonResult optionalPromotion(@PathVariable Long id) throws Exception {        return null;  }

  application/json @RequestBody:

@PostMapping(value = "optprom/save")  JsonResult optionalPromotionSave(@RequestBody OptionalPromotion optionalPromotion) throws            Exception {       return null;  }

 application/x-www-form-urlencoded  @RequestParam

@PostMapping(value = "message/wms")    public JsonResult wmsmessage(@RequestParam Map
params) throws Exception{ return null; }

 

转载地址:http://djnab.baihongyu.com/

你可能感兴趣的文章
PHP学习-面向对象
查看>>
js页面跳转整理
查看>>
在64位Win7操作系统中安装Microsoft Access Engine的解决方案
查看>>
30类CSS选择器
查看>>
微信支付的使用介绍
查看>>
PHP单例模式应用详解
查看>>
冒号课堂§5.2:数据类型
查看>>
博客搬家
查看>>
冒号课堂§6.2:平台语言
查看>>
《关于信息系统组织方式的一个提案》的评论与反评
查看>>
冒号和他的学生们(连载10)——超级范式
查看>>
冒号和他的学生们(连载9)——泛型范式
查看>>
冒号和他的学生们(连载13)——范式总结
查看>>
A Proposal on Organization of Information System
查看>>
冒号和他的学生们(连载2)——首轮提问
查看>>
正则表达式与文件格式化处理
查看>>
Java EE互联网轻量级框架整合开发
查看>>
Java语言程序设计(基础篇)
查看>>
大型网站技术架构:核心原理与案例分析
查看>>
JAVA并发编程实战
查看>>