后端接收Get请求与Post请求 参数示例

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

前言

本文通过示例介绍: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
路径中root 123456 是我传的参数

后台写法如下:
在这里插入图片描述
测试结果:
在这里插入图片描述

还可以写成以下格式,这样只需要保证@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会匹配参数中所有的集合参数:
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是使用 CppCMS 接收前端请求的一个简单示例: ```cpp #include <cppcms/application.h> #include <cppcms/applications_pool.h> #include <cppcms/service.h> #include <cppcms/http_request.h> #include <cppcms/http_response.h> class my_app : public cppcms::application { public: my_app(cppcms::service& srv) : cppcms::application(srv) { } virtual void main(std::string url) { if (url == "/hello") { handle_hello(); } else { response().status(404); response().out() << "Page not found"; } } void handle_hello() { if (request().request_method() == "GET") { response().out() << "Hello, World!"; } else { response().status(405); response().out() << "Method not allowed"; } } }; int main(int argc, char** argv) { cppcms::service srv(argc, argv); srv.applications_pool().mount(cppcms::applications_factory<my_app>()); srv.run(); return 0; } ``` 这个示例定义了一个名为 `my_app` 的应用程序,它继承自 `cppcms::application` 类,并覆盖了 `main` 方法。在 `main` 方法中,首先判断请求的 URL 是否为 `/hello`,如果是,则调用 `handle_hello` 方法进行处理。 在 `handle_hello` 方法中,首先判断请求的方法是否为 GET,如果是,则返回一个字符串 "Hello, World!",否则返回状态码 405(Method Not Allowed)。 在 `main` 函数中,创建了一个 `cppcms::service` 对象,并将 `my_app` 添加到应用程序池中。然后调用 `run` 方法启动服务,等待接收请求。 当访问 http://localhost:8080/hello 时,会输出 "Hello, World!"。如果使用 POST 方法访问该 URL,则会返回状态码 405。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机灵的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值