支付宝手机网站支付前端怎么做seo技术网网
web/
2025/10/5 16:18:32/
文章来源:
支付宝手机网站支付前端怎么做,seo技术网网,小说阅读网站建设市场需求分析,公司做网站合同系列文章目录 提示#xff1a;这里可以添加系列文章的所有文章的目录#xff0c;目录需要自己手动添加 SpringBoot之参数校验 提示#xff1a;写完文章后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、参数校验的重要…系列文章目录 提示这里可以添加系列文章的所有文章的目录目录需要自己手动添加 SpringBoot之参数校验 提示写完文章后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、参数校验的重要性二、简单数据类型参数校验三、对象类型参数校验四、异常处理总结 前言
提示这里可以添加本文要记录的大概内容
在 SpringBoot 的世界里参数校验是确保数据完整性和正确性的重要一环。它就像是一道坚固的防线守护着我们的应用程序防止恶意或错误的数据闯入。 想象一下如果没有参数校验我们的应用将会面临各种数据不一致、空指针异常等问题就像是一场噩梦。但是有了 SpringBoot 的参数校验功能我们可以轻松地对传入的参数进行检查确保它们符合我们的预期。 这就像是给我们的应用程序加上了一层保护罩让我们可以放心地处理数据而不用担心数据的质量问题。所以让我们一起深入了解 SpringBoot 的参数校验吧掌握它的奥秘让我们的应用程序更加健壮和可靠 提示以下是本篇文章正文内容下面案例可供参考
一、参数校验的重要性
在应用程序的各个层面我们都需要对传入的参数进行校验以确保它们符合预期的格式、范围和约束。参数校验可以帮助我们避免以下问题
数据不合法通过对参数进行校验可以确保数据符合业务规则和数据模型的要求。异常处理在参数校验过程中可以提前捕获和处理非法参数避免在后续的业务逻辑中引发异常。安全性通过参数校验可以防止 SQL 注入、跨站脚本攻击等安全漏洞。
二、简单数据类型参数校验
SpringBoot自带了validation工具可以从后端对前端传来的参数进行校验用法如下
引入validation起步依赖
!-- 参数校验 --
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId
/dependency
在需要进行参数校验的实体类上添加Validated注解表示该类将进行参数校验。在参数前加校验注解表示对这个参数进行具体的参数校验。
// 该控制器开启参数校验
Validated
Controller
public class TestController {RequestMapping(/t1)ResponseBody// 在参数前加校验注解该注解的意思是字符串参数不能为nullpublic String t1(NotBlank String username){System.out.println(username);return 请求成功;}
}
访问http://localhost:8080/t1发现当没有传来参数时会抛出ConstraintViolationException异常。在校验参数的注解中添加message属性可以替换异常信息。
// 该控制器开启参数校验
Validated
Controller
public class TestController {RequestMapping(/t1)ResponseBody// 在参数前加校验注解该注解的意思是字符串参数不能为nullpublic String t1(NotBlank(message 用户名不能为空) String username){System.out.println(username);return 请求成功;}
}
除了NotBlank还有很多其他的注解
注解作用注解 描述DecimalMax数值的最大值可以包含小数。DecimalMin数值的最小值可以包含小数。Digits设置必须是数字且数字整数的位数和小数的位数必须在指定范围内Future日期是否为将来的日期。Past日期是否为过去的日期。Max数值的最大值。Min数值的最小值。NotNull不能为null可以是空Null必须为nullNotBlank字符串的值不能为空白即不能只包含空格。NotEmpty字符串、集合或数组的值不能为空即长度大于0Pattern字符串是否匹配指定的正则表达式。Size字符串、集合或数组的大小是否在指定范围内。Email字符串是否为有效的电子邮件地址。Length长度必须在指定范围内Range值必须在指定范围内URL必须是一个URLAssertTrue布尔值是否为true。AssertFalse布尔值是否为false。
三、对象类型参数校验
SpringBoot也可以校验对象参数中的每个属性用法如下
添加实体类
public class Student {NotNull(message id不能为空)private Integer id;NotBlank(message 姓名不能为空)private String name;// 省略getter/setter/tostring
}
编写控制器
Controller
public class TestController2 {RequestMapping(/t3)ResponseBody// 校验的对象参数前添加Validated并将异常信息封装到BindingResult对象中public String t3(Validated Student student,BindingResult result) {// 判断是否有参数异常if (result.hasErrors()) {// 所有参数异常ListObjectError list result.getAllErrors();// 遍历参数异常输出异常信息for (ObjectError err : list) {FieldError fieldError (FieldError) err;System.out.println(fieldError.getDefaultMessage());}return 参数异常;}System.out.println(student);return 请求成功;}
}
四、异常处理
ConstraintViolationException是 Java 的 Bean Validation API 抛出的异常用于表示在验证数据对象时违反了约束条件。当你在 Java 中使用 Bean Validation 注解如NotNull、Size等来定义数据对象的约束条件并尝试保存或更新一个违反这些约束条件的数据对象时ConstraintViolationException就会被抛出。ConstraintViolationException包含了关于违反约束条件的详细信息包括约束注解的名称、违反的属性路径以及相应的错误消息。这些信息可以帮助你定位和修复数据对象中的问题。
当抛出ConstraintViolationException异常后我们可以使用SpringMVC的异常处理器也可以使用SpringBoot自带的异常处理机制。当程序出现了异常SpringBoot会使用自带的BasicErrorController对象处理异常。该处理器会默认跳转到/resources/templates/error.html页面。 编写异常页面
!DOCTYPE html
html langen
headmeta charsetUTF-8title错误页面/title
/head
body
h1服务器开小差了/h1
/body
/html 总结
提示这里对文章进行总结
Spring Boot 参数校验是构建可靠和安全应用的重要组成部分。通过使用注解和验证器我们可以轻松地对请求参数进行校验并在异常情况下提供友好的错误消息。在实践中遵循最佳实践结合业务需求进行细粒度的参数校验可以提高应用的可靠性和用户体验。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87447.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!