一、Get与Post区别
  Get和Post都是Http协议的组件,所以底层都是使用tcp链接。Get的请求方式是将http的header和data一并发往服务端,也就是一条tcp数据包发送,这就会有两个问题:

数据量有限,依赖于Tcp负载能力,所以携带的数据量很大的情况下,容易造成重发。
所有的携带的数据只能接受转化成ASCII字符。
  但是Post不一样,post使用两步走,先发送http的header,然后再传输data。数据类型也不受限制。而且数据隐秘性比较好。

1.get请求方式参数是拼接在url后,所以限制了可以发送的长度。Get不支持使用http Body获取参数,他只支持params,也就是URL拼接参数。
2. post可以传递参数可以大致分成两种,一种是表单:在sevlet实现中mutipart/form-data和application/x-www-form-urlencoded会被特殊处理,请求参数将被放置于request.paramter,解析成map。第二种,已application/json,参数是存放在json中的,参数必须要用@RequestBody才能解析出来。

@RequestBody是将post请求中内容转为一个整体对象。 @RequestBody的解析有两个条件:
1.POST请求中content的值必须为json格式(存储形式可以是字符串,也可以是byte数组);
2.@RequestBody注解的参数类型必须是完全可以接收参数值的类型,比如:Map,JSONObject,或者对应的JavaBean;
所以Integer类型不能作为@RequestBody注解的参数类型,这种方式只用在Content-Type=application/x-www-form-urlencoded这种情况下才能使用,sevlet将Body中的key-value转成Param。 可以使用 @RequestParam 接收

3、通用HttpServletRequest
  和Get方式一样,这是个通用的方式。这个也可以和URL拼接的一起搭,但是没有RequestParam的String类型值被拼接问题,优先级 form-data高于URL拼接高于x-www-form-urlencoded。

get获取请求参数:

(1) 直接获取request 如: public String getHtml(HttpServletRequest request) {}

(2) 什么也不加,直接在方法中获取参数值 如: public String getHtml(String url, String token) {}

(3) 利用@RequestParam 如: public User getUserInfo(@RequestParam(value = “url”,required = false) String url){}

post获取请求参数:

(1): 直接获取request 如: public String getHtml(HttpServletRequest request) {}

(2): 使用@RequestBody 可接受的参数 String, Map,JSONObject,或者对应的JavaBean

原文链接:https://blog.csdn.net/qfikh/article/details/88553603

get 和 post 请求方式 及其参数解析相关推荐

  1. HTTP请求方式和报文解析

    一.概述 最近想尝试写一个关于网络请求的系列文章,将网络请求的基础.使用及网络框架的学习分析总结以下,大致准备从以下几个方面分析: 网络请求的基础 HTTP请求方式和报文解析 Cookie 和 Ses ...

  2. SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍

    视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...

  3. SpringCloud中Feign服务调用请求方式及参数总结

    前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...

  4. 2021 Axios 各种请求方式传递参数格式整理

    目录 axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.post(url[, data[ ...

  5. feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)

    前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...

  6. js跨域请求方式 ---- JSONP原理解析

    这篇文章主要介绍了js跨域请求的5中解决方式的相关资料,需要的朋友可以参考下 跨域请求数据解决方案主要有如下解决方法: 1 2 3 4 5 JSONP方式 表单POST方式 服务器代理 Html5的X ...

  7. 服务器和Express配置请求方式及参数接收

    服务器和Express 1.网络通讯概述 网络通信三大要素: 协议,域名(IP),端口号; 通过ip找到计算机,再通过端口找到应用程序,符合规则就可进行数据传输. 传输协议:规定数据传输的规则,htt ...

  8. C# WebApi Get请求方式传递实体参数

    我又搞回笃NET啦!java之路真是命运多舛,好事多磨.不过,也许我已经进入无招胜有招,博取众家之长.融会贯通的地步了. 对于WebApi,今天又有了一些新的了解. 话说,Get请求方式,参数会附在U ...

  9. angularjs的$http请求方式

    /*$http常用的几个参数$http服务的设置对象:1.method 字符串 表示发送的请求类型 get post jsonp等等2.url 字符串 绝对或者相对的URL,请求的目标3.params ...

最新文章

  1. iOS Socket Client 通讯
  2. 机器学习小抄,轻松搞定理解机器学习!
  3. 当机械课程设计遇上程序猿2017-12-19
  4. vb.net2019-跨平台
  5. 小贝_mysql 存储过程
  6. Haystack全文搜索
  7. Android Studio 导入OpenCV 并调试运行face-detection例子
  8. javascript函数传参方式
  9. 东方联盟郭盛华发家史:8年来实现跨越式发展
  10. HiveSQL小练习--求连续消费的天数
  11. 企业私有云建设需求分析
  12. 云计算与虚拟化技术课堂零碎(一)
  13. 路由器与交换机知识总
  14. 扫码点餐有哪些优势?
  15. 一行 Python 能实现什么丧心病狂的功能?
  16. 两个不同包里有相同的类
  17. GAMES101 P10 几何1 笔记
  18. 谭浩强C++ 第十一章
  19. BISHIMIANSHI
  20. iPhone 5s--- iPhone x越狱详细教程,MacOS系统

热门文章

  1. 日本政府警告用户慎用谷歌应用程序商店
  2. 独立版WAP模板路径,17mb的独立版手机端模板路径
  3. 李宏毅ML lecture-10 CNN
  4. 五十行代码能否笼络女人的心?
  5. C# 关于OnMouseDown等事件的简单介绍
  6. Linux 时间同步 ntp
  7. 什么是职业安全健康管理体系
  8. 华为路由交换机端口的三种模式
  9. Gabor小波变换滤波器原理与创建
  10. dnspy 修改 伊格利亚战记 军队维护费和英雄维护系数