getParameter到底是从哪获取的参数?

我们平时我们在Controller类中总是通过request.getParameter方法来获取前端传来的参数,但有没有想过getParameter到底是从哪找到前端传来的参数呢(换句话说,前端传递的参数到底放在哪里从而可以通过getParameter来获取)
      实际上getParameter方法是从QueryString和FormData中获取的参数,那什么是QueryString和FormData呢?

QueryString—GET请求参数的存放位置

Get请求的请求头中没有设置Content-Type,url后面的请求参数实际是会存放到QueryString中
      如下图所示,打开开发者工具即可看到,url后面的参数会被放入其中

FormData—POST请求参数的存放位置

post请求的请求头中会默认设置Content-Type为application/x-www-form-urlencoded
(当然也有别的值,但在这里只讨论该值),当Content-Type被设为这个值的时候,参数是会被放入到FormData中的(如下图所示)

总结:

Get请求会把参数放入QueryString中,Post请求默认(当Content-Type默认设置为application/x-www-form-urlencoded的时候)会把参数放入FormData中,而request.getParameter方法的原理就是从QueryStirng和FormData中获取到参数的

补充:

另外,补充一点,这也是我今天在写项目的时候纠结的地方(用SSM框架写的)
      当通过ajax向后端发送请求的时候,我们通常把Content-Type设置为 “application/josn” ,当Content-Type为这个值的时候,请求参数是会被放入ReqestPayload中的(如图所示)

所以reques.getParameter也就拿不到啦(因为getParameter并不会去RequestPayload中拿数据),那怎么拿到数据呢?  答:可以通过@RequestBody注解拿到(面向注解编程//狗头)
      如下图所示,我是通过 Map<String,String>类型来接收数据的,这样前端传来的json格式的数据就会被放入到这个map中(json数据中的name和value分别存入map的key和value中),我们就可以从map中取得数据啦!

getParameter到底是从哪获取的参数相关推荐

  1. postman发送post请求,用request.getParameter()获取请求参数

    1.接口代码 @RequestMapping("notifyUrl")   public void notifyUrl(HttpServletRequest request, Ht ...

  2. html的子页面获取自己url,如何从html页面获取url参数并将其显示在textarea中?

    我用下面的在我的HTML页面的JavaScript功能,我想没有textarea的任何连接操作正常显示参数....如何从html页面获取url参数并将其显示在textarea中? function g ...

  3. 获取请求参数通用方式|| 中文乱码问题||请求转发

    1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数 1. String getParameter(String name):根据参数名称获取参数值    use ...

  4. Request_获取请求参数中文乱码问题处理

    * 中文乱码问题:                 * get方式:tomcat 8 已经将get方式乱码问题解决了                 * post方式:会乱码              ...

  5. Request_获取请求参数通用方式演示

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. Request_获取请求参数通用方式介绍

    1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数             1. String getParameter(String name):根据参数名称 ...

  7. struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式

    本文演示了JSP中获取HTTP参数的几种方式,还有action中获取HTTP参数的几种方式. 1. 创建JSP页面(testParam.jsp) <%@ page language=" ...

  8. ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...

    原文地址:ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段 ServletRequest 基本概念 ...

  9. struts2获取请求参数的三种方式及传递给JSP参数的方式

    接上一篇文章 package test;import com.opensymphony.xwork2.ActionSupport; import javax.servlet.http.*; impor ...

最新文章

  1. 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
  2. 存储服务器配置型号,存储服务器配置要求指什么
  3. 学生信息管理系统(连接数据库,面向对象的方法实现学生信息的增删改查操作)...
  4. model.train_on_batch介绍【TensorFlow2入门手册】
  5. Cannot add product to Opportunity in Fiori - RFC error
  6. 磁盘及文件系统的管理
  7. java list 比较相同的元素_java list 比较相同的元素 | 学步园
  8. 计算机专业新手博客,本博客的标题不是“当初学者学习编程语言的时候在学什么?”...
  9. 微博粉丝平台开发全攻略
  10. 5G iPhone,再等一年,有三款!
  11. 使用NuGet安装EntityFramework4.2
  12. 【转】使用oschina的git服务器
  13. 如何在WEBLOGIC中设置日志输入
  14. 机器学习课程笔记【十三】- 独立成分分析
  15. 3月9日 英语笔记-英标
  16. redis数据库实例
  17. 网站嵌入虚拟试衣间方案问题
  18. 选择性粘贴HTML,Excel中“选择性粘贴”的五种特殊用法
  19. 计算机常用的内存是rom,手机内存和电脑内存是一样的吗?智能硬件常用的ROM和RAM详解...
  20. NB-IoT物联网技术

热门文章

  1. geoserver地图发布服务教程---2.矢量文件的简单发布
  2. django admin后台列表页、修改/详情页图片预览功能
  3. echarts入门级地图
  4. python 爬虫 伪装浏览器_python爬虫中怎么伪装浏览器?
  5. oracle主键自增
  6. ebnf范式_(4条消息)扩展巴科斯范式(EBNF)简介
  7. const的用法,Const函数,Const变量,函数后面的Const
  8. 全面屏iphone 适配
  9. 乔布斯语录:领袖和跟风者的区别在于创新
  10. 【每日最爱一句】2013.06.17