解决httpServletRequest.getParameter获取不到参数

2023-10-30

用httpServletRequest.getParameter接收post请求参数,发送端content Type必须设置为application/x-www-form-urlencoded;否则会接收不到

    @RequestMapping(value = "/a2")
    @ResponseBody
    public String hello3(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
        String string = httpServletRequest.getParameter("json");
        System.out.println(string);
        return "hahah";
    }

 用@RequestBody接收请求可以用任意类型的content Type

    @RequestMapping(value = "/a")
    @ResponseBody
    public void hello1(@RequestBody String string) {
        System.out.println(string);
    }

application/x-www-form-urlencoded通过表单提交,在sevlet实现中,mutipart/form-data和application/x-www-form-urlencoded会被特殊处理,请求参数将被放置于request.paramter,这是一个map。我们可以从map中获取参数进行验证,或者其他拦截需求,map的获取类似hibernate的延迟加载,当调用request.getparamter()方法,servlet才会从请求流中读取请求参数加载入map。InputStream也会存有这份数据,但如果这份数据被读取,那么到了controller层将无法读出数据,同样,拦截之后到达controller层时请求数据已经被加载入了controller层方法实参,实参对象需要有set方法,框架会以反射的方式调用属性的set方法注入数据,数据只会被注入到已有的属性。

当以application/json的content-type传送数据,被传送的对象只需被json序列化。当以application/x-www-form-urlencoded的方式传送数据。请求的内容需要以..=..&..=..的格式提交,在请求体内内容将会以”&”和“ = ”进行拆分。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决httpServletRequest.getParameter获取不到参数 的相关文章

  • JAVA--Object(对象序列化)

    一 定义 把一个Object对象直接转化为字节流 让后把字节流直接写入本地硬盘或者网络中 如果需要对某个对象实现序列化 必须实现Serializable接口 Serialzable为空接口 起标识作用 transient修饰的成员无法被序列
  • 用Eclipse插件Git,让Repository回滚到之前的版本

    软件 1 Eclipse Neon 3 Release 4 6 3 2 Git Eclipse自带Git插件 Git远程仓库回滚的方法有两种 一 只回滚提交的代码 步骤如下 1 获取代码到最新版本 2 项目 鼠标右键 team show i
  • 什么是内存屏障?为什么需要内存屏障?

    1 什么是内存屏障 为什么需要内存屏障 首先 为了性能编译器和处理器都会对指令进行重排序 什么是内存屏障 内存屏障是一条指令 该指令可以对编译器 软件 和处理器 硬件 的指令重排做出一定的限制 比如 一条内存屏障指令可以禁止编译器和处理器将
  • Flutter 跨平台编程

    特点 Flutter 是一个令人兴奋的新软件开发工具包 可让您同时面向多个平台 因此您可以从一个代码库构建适用于 iOS Android 甚至 Web 和桌面的应用程序 与现代 Web 技术类似 Flutter 使用声明式方法进行 UI 开
  • C++数据封装 介绍和实现方法

    C 中的数据封装是一种OOP概念 它允许开发人员将数据和操作数据的函数组合在一起 并对外部隐藏数据细节 这样可以使代码更加安全 因为外部用户无法直接访问类的私有数据成员 以下是在C 中实现数据封装的一些步骤 创建一个类 首先 创建一个类来表

随机推荐

  • vmare连接远程服务器的问题

    测试环境 两端都是VMware Workstation 12 Pro 1 需要共享虚拟机 在虚拟机上点击右键 gt Manage gt Share 后面按照操作设置 2 远程服务器的443是用来做登录认证的 需要对外开放 如果远程服务器在内
  • mysql学习 day05

    今天 先继续完成了对约束的学习 约束 列级约束 表级约束 语法 create table 表名 字段名 字段类型 列级约束 字段名 字段类型 列级约束 表级约束 注意 列级约束和表级约束的区别 位置 支持 列级约束 列的后面 除了外键 表级
  • 盲盒商城源码,潮乎盲盒小程序,猜客魔盒/叮当魔盒/王大盒前端uni后端Laravel,全开源源码

    产品技术栈以及环境配置 服务器环境 linux 宝塔 建议最小配置 2h 4G 5M 后台开发语言 后端Laravel框架开发 反向代理服务器 nginx 前端开发框架 uniapp vue 支持四端同步数据 数据库 mysql 5 6 需
  • 计算一个字符串中包含另一个字符串的个数

    strong 有时候我们需要在一个长字符串中匹配我们需要的字符 这里我就写了一个方法 用来统计 我们要匹配的字符在长字符串中出现的次数 strong 计算一个字符串中包含另一个字符串的个数 param param str1 param pa
  • 基于WiFi的宿舍智能安防系统

    word完整版可点击如下下载 gt gt gt gt gt gt gt gt 基于WiFi的宿舍智能安防系统 rar 自然语言处理文档类资源 CSDN下载1 资源内容 毕业设计lun wenword版10000字 开题报告 任务书2 学习目
  • Building and Installing ACE and Its Auxiliary Libraries and Services

    Synopsis The file explains how to build and install ACE its Network Services test suite and examples on the various OS p
  • Python多线程同时处理多个文件

    前言 在需要对大量文件进行相同的操作时 逐个遍历是非常耗费时间的 这时 我们可以借助于Python的多线程操作来大大提高处理效率 减少处理时间 问题背景 比如说 我们现在需要从一个文件夹下面读取出所有的视频 然后对每个视频进行逐帧处理 由于
  • Geogebra求一道极难的几何题

    第2小题 答案是45 Geogebra文件下载 链接 https caiyun 139 com m i 0E5CKWJDt7wMr 提取码 WSev
  • C++面向对象之对象的初始化和清理

    对象的初始化和清理 生活中我们买的电子产品都会有基本的出厂设置 在某一天我们不用的时候会删除一些自己信息数据保证安全 C 中的面向对象来源于生活 每个对象也都会有初始设置以及对象销毁前的清理数据的设置 构造函数和析构函数 对象的初始化和清理
  • ReenTranReadWriteLock 读写锁 笔记

    参考博客链接 1 https blog csdn net qq 19431333 article details 70568478 2 https blog csdn net yanyan19880509 article details 5
  • aix命令tar包命令应用

    打包并压缩gzip格式 利用ftp传输到远程服务器上 tar cvf ciod appuser gzip qc gt ciod appuser tar gzip ftp v n 192 1 1 48 lt
  • 【技巧】如何在 GitHub 上高效阅读源码?

    在 GitHub 上高效阅读源码的方法有以下几种 方法一 github项目页面 按键盘上的 句号 方法二 github项目页面地址栏github com 改为 github dev 方法三 github项目页面地址栏github com 改
  • 信息学奥赛一本通 1176:谁考了第k名

    题目链接 http ybt ssoier cn 8088 problem show php pid 1176 include
  • Operator ‘+‘ cannot be applied to ‘java.lang.String‘, ‘void‘的解决方法

    刚开始报下图错 是因为我在另一个类中定义有返回值void的方法 如图二 一个想要调用另一个的方法 且是字符串的类型的需要将void换成string 并将输出语句换成return 如图 记得最后一行的分号去掉
  • python循环写入excel中的不同sheet_python实现跨excel的工作表sheet之间的复制方法

    python 将test1的Sheet1通过 跨文件 复制到test2的Sheet2里面 包括谷歌没有能搜出这种问题答案 我们贴出代码 我们加载openpyxl这个包来解决 from openpyxl import load workboo
  • Java项目数据脱敏常用技术及Jasypt实战

    数据脱敏在Java项目中是一项非常重要的任务 它可以保护敏感数据 同时符合法规和隐私保护要求 在本篇博客中 我们将介绍数据脱敏的概念以及在Java项目中常用的开源框架和工具的实战应用 什么是数据脱敏 数据脱敏是指将敏感数据进行处理 使其在保
  • styled-components的配置和使用

    在react中 正常的给组件引入css文件 该css文件会直接作用于全局 使用styled components可以有效控制好css作用域 1 安装 yarn add styled components 2 配置并设置全局样式 新建一个js
  • Java实现CNN

    Java实现CNN 算法介绍 CNN的优势 卷积操作 池化操作 网络结构 训练过程 前向传播 反向传播 代码实现 数据模型类Dataset 矩阵尺寸类Size 核心操作类MathUtils Operator OperatorOnTwo接口下
  • 零基础学习Vue: 第21课 Vue 单向数据流父组件的属性值子组件如何更改:

    零基础学习Vue 第21课 Vue定义子组件template的常见3种写法 单向数据流原理 子组件不能直接修改父组件中传递的数据 如需间接改变父组件传递的数据 解决方法 可以在子组件data选项中存储父组件传递的数据之后修改子组件中的数据
  • 解决httpServletRequest.getParameter获取不到参数

    用httpServletRequest getParameter接收post请求参数 发送端content Type必须设置为application x www form urlencoded 否则会接收不到 RequestMapping