博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正。

文章目录

  • 前言
  • 正文
    • 接收Get请求的参数
      • 不使用注解直接通过参数名接收参数
      • 使用PathVariable注解接收路径参数
    • 接收Post请求的参数
      • Post请求提交的参数类型
      • Content-Type:multipart/form-data格式参数
        • 不使用注解通过参数名接收对应参数
        • 不使用注解,通过`HttpServletRequest`对象获取参数
        • 使用`@RequestParam`注解接收参数
      • Content-Type:application/x-www-form-urlencoded格式参数
      • Content-Type:application/json格式参数
        • 使用`@RequestBody`注解接收参数:
        • 不使用注解,通过`HttpServletRequest`获取参数
  • 后端使用集合接收参数(List<String>)
  • 有趣的点:前端传String 后端使用集合接收参数

前言

本文通过示例介绍:Controller层如何获取Get与Post请求携带的参数(SpringMVC框架)

正文

接收Get请求的参数

不使用注解直接通过参数名接收参数

Get请求的参数直接拼接在Url路径后面,如下所示:
http://localhost:8080/TW_Server/Test/getTest.do?userName=root&password=123456
该请求携带了两个名分别为userNamepassword的参数,他们的值分别是root123456

后台写法如下:

测试结果:

此方法要求请求的参数名与接口写的参数名必须一致,否则后台接收不到。

使用PathVariable注解接收路径参数

Get请求参数写在Url路径中,如下所示:
http://localhost:8080/TW_Server/Test/root/123456/getTest.do
路径中root123456 是我传的参数

后台写法如下:

测试结果:

还可以写成以下格式,这样只需要保证@PathVariable注解括号里的值与路径值对应就可以获取到参数,否则会报错:

测试结果:

接收Post请求的参数

Post请求提交的参数类型

我自己常遇到的:
Content-Type:multipart/form-data(用于在表单中上传文件)
Content-Type:application/x-www-form-urlencoded(浏览器原生的form表单类型,不能上传文件)
Content-Type:application/json(以json形式进行传输,通常是传输对象时使用)

不常遇到的:
Content-Type:application/xml
Content-Type:application/javascript
Content-Type:text/plain
Content-Type:text/html

Content-Type:multipart/form-data格式参数

不使用注解通过参数名接收对应参数

首先我创建一个文件如下所示:

后台写法(方法体就是将文件内容做个输出,不用过于纠结,我们的重点是接收参数):

发送测试请求:

测试结果:
控制台输出的文件内容

接口返回的结果:

不使用注解,通过HttpServletRequest对象获取参数

后台写法:

测试结果:

这个写法不能获取文件参数。

使用@RequestParam注解接收参数

@RequestParam注解括号中的值要与请求中传的参数名相同才行,否则会报错。

后台写法:

发送测试请求:

测试结果依然是可以拿到数据,这里就不贴图了。


Content-Type:application/x-www-form-urlencoded格式参数

该格式接收参数的方法直接参考multipart/form-data格式的就可以了,只是他不能上传文件而已。


Content-Type:application/json格式参数

使用@RequestBody注解接收参数:

创建一个Param实体类:

后台写法:

测试结果:

不使用注解,通过HttpServletRequest获取参数

后台写法:

发送测试请求:

测试结果:

后端使用集合接收参数(List)

前端传参格式(请求方式为post):

后端接受格式

输出结果:

有趣的点:前端传String 后端使用集合接收参数

如下图所示,使用 List< String > a 接收参数:

如果传一个参数名为:a 的参数就会报错,但是如果将参数名改为stringList,会接收成功

而且stringList会匹配参数中所有的集合参数:

如果想用集合指定的参数名接收参数可以将集合封装到一个类中:



后端接收Get请求与Post请求 参数示例相关推荐

  1. Vue简单封装axios—解决post请求后端接收不到参数问题

    1.在src/下新建api文件夹,api/下新建index.js和public.js 在public.js中: import axios from 'axios'; import qs from 'q ...

  2. axios 发 post 请求,后端接收不到参数的解决方案

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 问题场景 场景很简单,就是一个正常 axios post 请求: axios({headers: { ...

  3. 【跨域问题】Vue简单封装axios—解决post请求后端接收不到参数问题

    原因分析: 1. 传参数据没有序列化? 解决办法: [推荐] [推荐阅读] vue+axios+qs序列化 "三步解析"[含demo实例]- 代码篇 2. 服务端接受数据格式参数配 ...

  4. axios发送post数据后台收不到_axios 发 post 请求,后端接收不到参数的解决方案

    问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: ...

  5. 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)...

    上次遗留了两个问题,先说一下自己的看法 问题: 1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗. 2._request_ctx_stack和_ ...

  6. Axios Post 请求后端接收不到数据

    最近做一个小项目,前端使用 axios 请求数据,后端使用 node 写接口.调试时发现后端取不到请求的参数,解决时浪费了很多时间,这里贴出来解决方法. 项目地址在这里:html-edit-npm 可 ...

  7. 解决Ajax异步请求中传数组参数,后台无法接收问题

    解决Ajax异步请求中传数组参数,后台无法接收问题 参考文章: (1)解决Ajax异步请求中传数组参数,后台无法接收问题 (2)https://www.cnblogs.com/wangshuaiand ...

  8. Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)

    场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...

  9. get请求获取不到参数

    问题描述: 后台管理系统进行跳转时,get传参后端接收不到. 排错过程: 检查前段页面参数命名. 打印所有GET请求参数,并没有参数被传递. 查看nginx-access与error日志,发现无报错, ...

最新文章

  1. SQLServer数据库自增长标识列的更新修改操作
  2. sklearn自学指南(part14)--Logistic回归
  3. 从事件和DDD入手来构建微服务
  4. 关于计算机的网络作文,关于网络世界的作文
  5. 使用Canvas扩展绘制动态ASP.NET Core Blazor条形图
  6. 关于利用exchange server 2003搭建邮件服务器:小进步……
  7. Matlab程序接口应用总结
  8. Linux系统编程——进程间通信概述
  9. Matlab中绘制灰度直方图的两个函数imhist和histogram
  10. jetty中war包解压路径
  11. 国际冠码与国际电话区号
  12. USGS批量下载影像(Sentinel2/哨兵2/Landsat)数据、bda程序安装-(史上最全讲解)
  13. Python---excel筛选
  14. [Life] search torrent engineer
  15. 综述:人工智能、数据科学、机器学习
  16. 在虚拟机下运行gazebo,关于vmw_ioctl_command error Invalid argument错误
  17. python 线程通信的几种方式_Python 线程、线程通信、多线程
  18. 使用UltraISO制作U盘启动盘教程
  19. 基于移动互联网的订餐APP系统设计与实现
  20. Django——Ajax

热门文章

  1. redis集群模式详解
  2. matlab中pwelch函数计算功率谱密度
  3. 【学习笔记】ROS-移动机器人导航相关
  4. 机械臂6D姿态检测(RGB、RGBD、雷达)综述
  5. 金融安全算法介绍系列6——RSA
  6. Mendix敏捷开发零基础学习《二》-进阶(Microflow微流、表单验证、运算符、条件判断、数据嵌套、触发器、Debug问题跟踪、版本管理)
  7. Web开发之常用框架BootStrap
  8. Jsch报错:com.jcraft.jsch.JSchException: session is down
  9. December, 14
  10. ImageIO javax.imageio;读取图片问题