SpringBoot 映射路径中 匹配正则表达式

简介: SpringBoot 映射路径中 匹配正则表达式

微信截图_20220525195745.png


你好,我是博主宁在春

关于在映射路径中匹配正则表达式,我是第一次知道(原谅我的无知)。在之前都是手动判断(if、类型判断啥的)或者是添加验证。这次学长给了我一个项目,让我学习学习,就是在里面发现这个的。


一、曾经


像我以前的使用,都是像下面这种方式使用的,根本就没考虑这个问题😂


/**
 * 在请求中我们并没有对id的输入做限制,什么都可以输入
 * 我这里限制了id的类型为Long。
 * 如果输入字符进入,则会直接报400错误
 *
 * @param id
 * @return
 */
 @GetMapping("/{id}")
 public String demo1(@PathVariable("id") Long id){
     return "demo"+id.toString();
 }


输入字符,直接报400


QQ截图20220525195859.png


输入数字可以正常访问。


微信截图_20220525195924.png


这样的结果出现是我限制了id的类型为Long,我们换成String类型试试。


@GetMapping("/{id}")
 public String demo1(@PathVariable("id") String id){
     return "demo: "+id;
 }


结果就是都可以访问了。😂


微信截图_20220525200004.png


思考:假定id一定需要为全数字,但是类型又为String,这种字符输入的是不是应该被抛掉,不应该请求进来勒?


二、使用正则表达式


正则表达式就是起这样的作用。


/**
 * 在这个请求中,我们就限制了 url中的id必须为数字类型
 * 输入非数字类型就会直接转到404
 * @param id
 * @return
 */
 @GetMapping("/{id:\d+}")
 public String demo(@PathVariable("id") Long id){
     return "demo"+id.toString();
 }


输入数字是可以正常访问的:


QQ截图20220525200040.png


看看输入字符:

报的错误是没有找到,404,不是之前的请求错误。


QQ截图20220525200101.png


我们接着换成String类型来试的话,结果也是一模一样的。


三、小结


使用正则表达式在Resulful风格中单参数时非常实用。


或者是在下面这样的情况下也可以非常实用,就是请求中既有一个单参数,又携带了一个Java对象。


@PostMapping("/{id:\d+}")
 public String demo2(@PathVariable("id") String id,@RequestBody BookDTO bookDTO){
     return "demo: "+id;
 }


四、自言自语


本文就是简单介绍了,具体使用具体情况具体分析啦。


你好,我是博主宁在春主页

希望本篇文章能让你感到有所收获!!!

我们:待别日相见时,都已有所成


目录
相关文章
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
25天前
|
Java
SpringBoot配置图片访问404SpringBoot配置图片访问路径springboot如何访问图片
SpringBoot配置图片访问404SpringBoot配置图片访问路径springboot如何访问图片
7 0
|
3月前
|
Java
SpringBoot 映射路径中 匹配正则表达式
SpringBoot 映射路径中 匹配正则表达式
58 0
|
4月前
|
缓存 前端开发 JavaScript
SpringBoot中静态资源映射处理
SpringBoot中静态资源映射处理
42 0
|
5月前
|
前端开发 应用服务中间件 API
简单明了!网关Gateway路由配置filters实现路径重写及对应正则表达式的解析
简单明了!网关Gateway路由配置filters实现路径重写及对应正则表达式的解析
115 0
|
7月前
|
Java 数据安全/隐私保护 Spring
spring boot中获取所有RequestMapping的URL路径列表集
spring boot中获取所有RequestMapping的URL路径列表集
|
8月前
|
XML Java 数据格式
解决SpringBoot获取mapper.xml路径的问题
当mapper.xml与mapper.class放在同一文件夹下时,是不能够将xml文件打包进项目的,项目构建的时候不会加载到target文件夹中。在pom.xml中加入如下这句:
185 0
|
9月前
|
Java Nacos Spring
springboot 配置文件中的属性映射到实体类的属性中
springboot 配置文件中的属性映射到实体类的属性中
|
10月前
|
Java 测试技术 数据库连接
|
10月前
|
前端开发 JavaScript Java
【SpringBoot学习笔记 六】JSR303数据校验、日志配置及输出、静态资源映射
【SpringBoot学习笔记 六】JSR303数据校验、日志配置及输出、静态资源映射
54 0