当前位置: 首页 > news >正文

Controller方法请求类型和参数

get请求和post请求:

  • GET请求:通常用于请求服务器发送某个资源。GET请求会把参数包含在URL中,这些参数在浏览器回退时是无害的,并且可以被Bookmark。GET请求产生的URL地址可以被缓存,但请求参数会被完整保留在浏览器历史记录里,同时有长度限制,并且只接受ASCII字符。由于GET请求的参数直接暴露在URL上,因此不能用来传递敏感信息。
  • POST请求:通常用于向指定资源提交数据进行处理,例如提交表单或者上传文件。POST请求的参数通过request body传递,不会暴露在URL上,因此相对更安全。POST请求不会受到URL长度限制,并且支持多种编码方式。

简单的说: get请求的参数是在url后面的

post请求的数据是通过RequestBody传递的,更加安全

RequestParam:

针对QueryString参数传递, 就是一个用&分隔的字符串

http://localhost:8080/login?username=harden&password=123123

如果参数名和url传递的key一致则RequestParam("id")中的名字可以省略

@RequestParam('id', required=false) 

require属性默认为true, 也就是说必须要传递id这个参数, 但是当required属性设置为false, 则表示不是必须的, 可以不传

当参数不用RequestParam注解的时候也是传不传无所谓,不传取值为null  例如:

public void login(String id, @RequestParam('name') String name)

则表示id参数不传也行, 但是name必须传

当接受对象是一个自定义的对象时, 比如User对象, 有name, password等属性, 在通过QueryString传递时, 会自动的将User中与之对应的属性赋值, 没有传的属性为null

public void login(User user)

但是一旦加上注解就会报错, 因为加上注解@RequestParam的话 该参数就是一定要有的

传递数组和集合:

这两种方式都行: 1. 多行的name, 2. 一行name, 在value中多个值, 用逗号隔开

优先的是多行形式, 也就是说, 当如下:

这种形式时, 就会将第一个name视为一个整体"明哥,明哥哥",即数组的一个元素

PathAvailable:

这种方法就是直接在url上面写数据, 格式不再是键值对的形式, 而是直接的路径形式

例如: 

@RequestMapping('login/{name}/{password}')
public void login(@PathVariable('name') String name, @PathVariable('password') password)
http://localhost:8080/login/harden/123123

对应的就是login这个方法, 然后第一个参数的值为harden, 第二个为12123

注意, RequestMapping中的参数名一定要和@PathVariable中的名字对应上

数组和集合的传递方式:

多个值之间用逗号隔开

上传文件:

RequestBody:

只能有一个RequestBody

传递数组集合:

注意数组或集合的格式的书写即可

传json对象:

HttpServlertRequest:

和jsp中的好像

混合:

相关文章:

  • SpringMVC——REST简介及入门案例
  • 前置机跟服务器的关系
  • 文件操作2
  • node.js-WebScoket心跳机制(服务器定时发送数据,检测连接状态,重连)
  • C语言刷题第三章(下)
  • WPF未来展望:紧跟技术发展趋势,探索新的可能性
  • 《基于大数据的营养果蔬推荐系统的设计与实现》开题报告
  • C++ STL—— String库
  • Vue3中 ref 与 reactive区别
  • OKHttp3 源码阅读 - Kotlin版本
  • 基于WebRTC技术的EasyRTC嵌入式音视频SDK:多平台兼容与性能优化
  • 以实现生产制造、科技研发、人居生活等一种或多种复合功能的智慧油站开源了
  • GraphRAG 融合 RAG:双剑合璧,精度更上一层楼
  • [超详细]JAVA接入DeepSeek保姆级教学[小白]
  • 图论part3|101.孤岛的总面积、沉没孤岛、417. 太平洋大西洋水流问题
  • 考研408-数据结构完整代码 线性表的顺序存储结构 - 顺序表
  • Unity2D 井字棋
  • 双路快排--力扣215.数组中的第K个最大元素(java)
  • 车载以太网测试-9【网络层】-子网划分的子网掩码VLAN
  • 项目组织管理类型-职能式组织和矩阵式组织的区别
  • 4天内,云南昆明又一县市区原主官被查
  • 荷兰外交大臣费尔德坎普将访华
  • 以色列在加沙发起新一轮强攻,同步与哈马斯展开无条件谈判
  • 持续降雨存在落石风险,贵州黄果树景区水帘洞将封闭至6月初
  • 李洋谈美国黑帮电影与黑帮文化
  • 外交部驻港公署正告美政客:威胁恫吓撼动不了中方维护国家安全的决心