JavaWeb中的常用的请求传参注解说明
作者:IT__learning 发布时间:2023-06-19 03:12:06
1、@RequestMapping
@RequestMapping 既可以用在类级别,也可以用在方法级别,当它定义在类级别的时候,标明该控制器所处理的请求都将被映射到这个路径下。
另外,@RequestMapping中可以使用method属性,如果指定了method属性的值,那么就只能使用指定的请求方法,如果没有指定的话,那么就可以使用HTTP的get/post方法了。
get 请求特点
a. 请求参数会添加到请求资源路径的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)
b. 请求参数会显示在浏览器地址栏,路由器会记录请求地址 (极为的不安全)
c. 如果传输中文,必定会乱码(原因:get 请求默认编码格式为:IIO-8859-1,后台编码格式一般为:GBK或者UTF-8)
post 请求的特点
a. 请求参数添加到请求体里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到 Http 包的请求体当中)
b. 相对安全,但是,post 请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)
2、@GetMapping
用于将HTTP GET请求映射到特定处理程序方法的注释。
相当于@RequestMapping(method = RequestMethod.GET)
3、@PostMapping
用于将 HTTP POST 请求映射到特定处理程序方法的注释。
相当于@RequestMapping(method = RequestMethod.POST)
4、@RequestParam
这个注解是使用在方法的形参上的,主要用途就是将请求的参数绑定到方法的形参上,有一个required属性,默认情况下是true,就是必须要传参数,如果想该形参可传可不传参数的话,就将属性值设置为false即可。
@RequestMapping("/hello")
public String hello(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "age", required = true) String age) {
//age参数必须传 ,name可传可不传
...
}
5、@PathVariable
该注解主要是用于做动态绑定使用,让形参的值变成可供使用的URL变量,多用在 Restful 风格中。
@RequestMapping(value="/hello/{name}",method=RequestMethod.GET)
public String findPet(@PathVariable String name) {
//使用@PathVariable注解绑定 {name} 到String name
}
@PathVariable中的参数可以是任意的简单类型,如int、long、Date等,Spring会自动将其转换成合适的类型或者抛出TypeMismatchException异常,也可以注册支持额外的数据类型。
另外,它也支持正则表达式,这就决定了它超强的属性,它能在路径模板中使用占位符,可以设定特定的前缀匹配和后缀匹配,自定义格式等。
6、@RequestBody
该注解是指方法形参应该被绑定到HTTP请求的Body上。
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody User user){
//可以绑定自定义的对象类型
}
使用 @RequestBody 注解
@RequestBody 注解是用于接收请求的 Content-Type为application/json 类型的请求,数据类型是 JSON。
不使用 @RequestBody 注解
不使用 @RequestBody 注解时,可以接收 Content-Type为application/x-www-form-urlencoded 类型,或者 Text 类型的请求所提交的数据,数据格式:
aaa=111&bbb=222
1)form 表单提交以及用 Ajax 提交数据时方法所发送的请求就是这种类型。
2)后台只需用具有对应属性 id 和 name 的对象接收就行。
如果使用了 @RequestBody 来强行接收 Text 或者 application/x-www-form-urlencoded 类型,会报类型 not supported 的如下错误:
来源:https://blog.csdn.net/IT__learning/article/details/121582492


猜你喜欢
- Java代码package com.zzx.controller;import com.zzx.model.User;import org.
- Springboot swagger-ui.html访问不到问题在前面的Swagger2的基本配置中是可以访问到swagger-ui.htm
- 本文实例为大家分享了Android学习之Broadcast的使用方法,供大家参考,具体内容如下实现开机启动提示网络的广播package co
- 刚毕业的第一份工作是 java 开发,项目中需要用到 mybatis,特此记录学习过程,这只是一个简单 demo,mybatis 用法很多不
- final——final用于类表示该类不能派生子类。final用于方法表示该方法不能被子类重写。final用于变量时表示常量,类似于C/C+
- 如下所示:using System.Linq;List<string> ListA = new List<string&g
- 前言这里介绍一个.net自身携带的类ImageAnimator,这个类类似于控制动画的时间轴,使用ImageAnimator.CanAnim
- 对话框(Dialog)是Android系统在Activity或者其他组件运行过程中提供的一种提示机制。它可以帮助应用完成一些必要的提示功能,
- 第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap
- 第一步:项目中资源配置文件夹(resources文件夹)下先新增测试环境application-dev.yml和application-pr
- Failed to fectch URl
- 使用GridView实现表格分割线效果,网格布局表格布局也是可以实现的。效果如下:1.主函数代码:package com.example.q
- 因重定向无法正常goBack()解决方案首先说下问题,初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定
- 1、满二叉树、完全二叉树、平衡二叉树、红黑树、二叉搜索树的区别?参考文章:树、二叉树(完全二叉树、满二叉树)概念图解① 满二叉树高度为&nb
- 最大公约数:指两个或多个整数共有约束中最大的一个。最小公倍数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整
- 本文就是会将数组里面的单词进行倒序排列 例如 how old are you -> you are old how示例程序输出结果:t
- 平常我们工作中基本最多两级嵌套,但是有时候难免会遇到 * 嵌套的业务场景,笔者最近就碰到了,使用一般的嵌套发现赋值为空,这可难倒了菜逼的我,后
- 1、原来是将EditView放到了popupwindow,发现EditView原有的复制、粘贴、全选、选择功能失效了,所以便用DialogF
- 实践过程效果代码public partial class Form1 : Form{ private HookEx
- OPC Server服务器服务器的开发比较繁琐,本示例采用C#提供了一种简单快速实现OPCServer的方法,已经在工程项目中应用,希望对大