客户端传递参数给服务端的两种方式:请求参数路径变量

请求参数

请求参数可以发送值传递给服务器,请求参数采用key=value的形式并使用“&”符号进行参数间的分隔,例如:

http://localhost:8080/xxx/user?name=Tom&password=123456

传递过来的值Spring MVC需要解析,采用@RequestParam的形式来注释方法中的参数,获取上面两个参数的方法为:

@GetMapping("/name")
public User getUserByName(@RequestParam("id") Integer userId, @RequestParam("name") String username){}或者@GetMapping("/xxx/user")
public User getUser(HttpServletRequest request){Integer userId = Integer.decode(request.getParameter("id"));String username = request.getParameter("name");
}

路径变量

路径变量类似请求参数,但是没有key部分。由名称可知路径中存在变量,例如要传递一个age为23的参数到服务端,其请求的URL为:

http://localhost:8080/xxx/user/Tom/25;

服务端接受和处理的方法为:

@GetMapping("/name/{name}/{id}")
public User getUserByName(@PathVariable("name")String username, @PathVariable("id")Integer userId){}

参数写在路径上好,还是写在请求参数上好

在RESTful风格中,/user/{name} 和 /user/{id} 两个路径,它们的http-method是一样的,接收的都是String字符串。那么当客户端发送请求传递过来一个参数时,是给/user/{name}呢?还是给/user/{id}呢?

所以,在RESTful风格中,当两个路径的http-method一样时,那么路径就不要一样。比如可以将上面的/user/{name}改成/user/name/{name}

Spring请求参数和路径变量相关推荐

  1. SpringMVC请求参数和路径变量

    目录 SpringMVC请求参数和路径变量 1.请求参数 2.路径变量 SpringMVC请求参数和路径变量 1.请求参数 1.请求参数是通过表单/URL?后面的参数,如xxxx:8080?name= ...

  2. 你真的懂请求参数和路径变量?

    1.请求参数 1.请求参数是通过表单/URL?后面的参数, 如xxxx:8080?name=springmvc&age=6中的name和age就是请求参数 2.URL请求参数示例 请求地址-请 ...

  3. PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)

    目录 一.请求参数中携带URL字符返回400错误 二. 请求参数中携带URL字符返回400错误原因 三.URL字符及对应的URL编码值列表 四.请求参数中携带URL字符转成URL编码值 一.请求参数中 ...

  4. Spring请求参数和响应结果全局加密和解密(1)

    阅读文本大概需要25分钟. 前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景.为了模拟真实的交互场景,先定制一下整个交互流程.第三方传输(包括请求和响应)数 ...

  5. http post请求 参数放在路径后面 java_「思唯网络学院」网络基本概念之HTTP协议...

    HTTP基本概念 HTTP,全称为 HyperText Transfer Protocol,即为超文本传输协议.是互联网应用最为广泛的一种网络协议,所有的 www 文件都必须遵守这个标准. HTTP ...

  6. http post请求 参数放在路径后面 java_【思唯网络学院】网络基本概念之HTTP协议...

    亲爱的,关注我吧 HTTP基本概念 HTTP,全称为 HyperText Transfer Protocol,即为超文本传输协议.是互联网应用最为广泛的一种网络协议,所有的 www 文件都必须遵守这个 ...

  7. Spring请求参数校验

    SpringMVC支持的数据校验是JSR303的标准,通过在bean的属性上打上@NotNull.@Max等进行验证.JSR303提供有很多annotation接口,而SpringMVC对于这些验证是 ...

  8. springMVC接收请求参数的几种方式

    1.  用注解@RequestParam绑定请求参数 用注解@RequestParam绑定请求参数a到变量a,当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,例如: ...

  9. Spring3 MVC请求参数获取的几种场景

    访问/aaa/bbb所对应的@Controller @RequestMapping("/aaa")//类级别,可以不需要,如果要了,下面所有的请求路径前都需要加入/aaa publ ...

最新文章

  1. vim php psr2 插件,将vim打造成c++超级ide(vim插件安装)
  2. POW矿池挖空块原理和解决方案
  3. (转载)netstat -r查看路由表时Flags的含义
  4. Java Swing Button控件点击事件的几种写法
  5. 编写函数,模拟内置函数 sorted()。
  6. 扩展方法的定义及使用
  7. aix升级openssh_AIX5.3如何安装openssh | 学步园
  8. (包含重力矢量)Pygame粒子模拟
  9. 关于更改当前公司(一)--ChangeCompany
  10. Hbuilder:实现阴影透明背景特效
  11. Nr,GenBank, RefSeq, UniProt 数据库的异同
  12. Linux 第一次学习笔记
  13. ACL 2022 主会长文论文分类整理
  14. 云词:让英语学习平步青云
  15. aspectj tomcat load-time waver
  16. python练手程序之猜大小
  17. Huffman Tree
  18. Windows10 邮箱批量导入联系人
  19. LS文法构图算法(3) Hilbert-Peano曲线
  20. 如何在pdf文件中编辑页眉页脚

热门文章

  1. Linux的一些简单命令操作
  2. 【Unity】关于屏幕自适应的思路
  3. BNU44583——Star Trek: First Contact——————【01背包】
  4. 华为收购港湾核心业务 6年恩怨尘埃落定
  5. 在MySQL中当有多个索引时 你知道MySQL是如何选择索引的吗 ???
  6. Flutter Provider 异步通信、Provider状态管理
  7. java基础—Objcet中的equals方法重写
  8. sublime text 3配置Kotlin
  9. 洛谷 P3320: bzoj 3991: LOJ 2182: [SDOI2015]寻宝游戏
  10. excel导入sqlserver数据库大数据量,可每秒控制数量