springmvc---数据校验

【SpringMVC】springmvc中的数据校验 使用代理的方式,在参数都解析好了之后,我先校验下参数,之后再执行处理器方法。校验解析出来的参数,如果这个参数后面跟的是BindingResult,那么特定的参数解析器会将绑定结果解出来;所以可以用不同的校验组件,我们属性的就是Hibernate Validator ,如果想换校验组件;这里注意:springmvc中只是引用了校验框架,真正的校验功能,springmvc没有实现。真正干事的是校验框架,所以本篇是分析,springmvc是如何使用校验框架的。切点很好理解,就是对类的过滤,根据提供的条件。... 阅读详情

1、什么是数据校验?

是指用来校验数据是否合法—合乎规定

2、数据校验包括页面校验、后台校验;

页面校验一般不安全,很容易出现校验被绕行;
在对于数据安全要求较高的情况下要采用后台校验

3、后台校验

1)在web项目中,规定了一种数据校验模式,称为JSR303校验方式

这种方式参考了Hibernate的数据校验方式,在springmvc中提供了实现JSR303校验的方式,主要在springmvc的框架中整合校验框架

2)实现:

a、需要jar包
Jar包:hibernate-validator包,jboss-logging包,validation-api包,classmate包

b、在springmvc的配置文件中添加校验器
需要添加工厂bean,再校验器

<!-- 校验器的配置:先工厂,再校验器 -->
<bean id="validatorFactory" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
	<!-- 通过属性添加 -->
	<property name="providerClass" value="org.hibernate.validator.HibernateValidator">
	</property>
</bean>

c、要在实体类的属性上面添加对应的注解
了解有哪些校验注解?
d、处理请求的执行单元形参要添加注解
@Validated Person person,BindingResult bindingResult
形参前面的@Validated注解和BindingResult形参成对出现的
e、最后校验结果送回到页面视图

3)将校验的结果信息进行软编码操作–即配置到外部文件

a、创建配置文件比如:ValidationMessage.properites
b、将结果信息抽取到此配置文件中,使用键值对保存,然后再将key引用回到实体类的属性中去
c、在springmvc配置文件中添加加载配置文件的类的bean

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
	<property name="basenames">
		<list>
			<!-- 省略文件的扩展名 -->
			<value>classpath:ValidationMessage</value>
		</list>
	</property>
</bean>

需要将此bean再注入到校验器工厂中

<!-- 校验器的配置:先工厂,再校验器 -->

<bean id="validatorFactory" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
	<!-- 通过属性添加 -->
	<property name="providerClass" value="org.hibernate.validator.HibernateValidator">
	</property>
	<!-- 将配置文件加载对象注入到工厂中来 -->
	<property name="validationMessageSource" ref="messageSource"></property>
</bean>

4、校验注解有:

非空校验
1)@NotNull----此注解通常用于给基本类型对应的包装类做非空校验
2)@NotBlank----此注解用于给String类型做非空校验
3)@NotEmpty----此注解用于对集合属性做非空校验

闭合区间校验
4)@Size—对字符串、集合做区间校验,即最大和最小
5)@Length—对字符串做区间校验,最长和最短
6)@Range—对字符串、基本类型的包装类做区间校验,即最大和最小值

其他
7)@Email邮箱格式校验
8)@Pattern—自定义正则表达式实现校验

5、当客户进行数据添加之后,点击提交,在后台实现了数据校验,如果存在校验信息,说明客户所填写内容有不合理的,所以给客户响应页面的时候返回原界面

SpringMVC数据校验 永远不要相信用户的输入,我们开发的系统凡是涉及到用户输入的地方,都要进行校验,这里的校验分为前台校验和后台校验,前台校验通常由javascript来完成,后台校验主要由java来负责,这里我们可以通过spring mvc+hibernate validator。 数据校验 在java中有一个bean validation的数据验证规范,该规范的实现者有很多,其中hibernate validato... 阅读详情

相关推荐

基于eBPF的零侵入LLM智能体观测:AgentSight架构与实战

在分布式系统和云原生架构中,可观测性是保障应用稳定运行与高效排障的核心能力。其原理在于通过日志、指标和追踪三大支柱,从外部视角持续收集和分析系统状态,而非依赖应用内部埋点。这一技术价值在于能以统一、低开销的方式,理解复杂系统的内部行为,尤其在微服务、容器化及Serverless等动态环境中至关重要。应用场景广泛覆盖了性能监控、安全审计、故障诊断与根因分析。当我们将这一基础理念应用于当下快速发展的AI智能体领域时,便自然引出了对LLM智能体进行无侵入、系统级行为观测的需求。传统的应用层方案需要集成SDK,对闭

weixin_28696185的博客 324

参数校验(Hibernate-Validation)

Validation

weixin_45948508的博客 1285

Grok-1.5+Ollama企业级本地化部署与合规实践指南

本文详细介绍了Grok-1.5+Ollama企业级本地化部署与合规实践指南,重点分析了本地化部署的成本优势和数据主权保障。通过RTX 4090显卡的硬件选型、Ubuntu 22.04系统优化及部署流程中的关键陷阱规避,为企业提供了高效、安全的AI模型部署方案。特别适合金融、医疗等敏感行业。

weixin_29094539的博客 182

hibernate Validation 注解中,@Size、@Length 注解的含义和区别

验证实 体类中 类型是(Array、Collection、Map、String)的属性的长度长度是否在给定的范围之内。验证 Number 和 String 对象是否小等于指定的值。验证 Number 和 String 对象是否大等于指定的值。属性的长度 是否在给定的范围之内。...

猎人在吃肉 1万+

【NIFI】实现HANA->ORACLE数据同步

实现 HANA->ORACLE数据同步。

weixin_43159039的博客 1508

Kubernetes CRD 系列(一):CRD 介绍

CR(Custom Resource)其实就是在 Kubernetes 中定义一个自己的资源类型,是一个具体的 “自定义 API 资源” 实例,为了能够让 Kubernetes 认识这个 CR,就需要让 Kubernetes 明白这个 CR 的宏观定义是什么,也就是需要创建所谓的 CRD(Custom Resource Definition)来表述。 可能这么说并不是太直观,换个方式表达一下,我们想要创建一个 Pod 的时候,那么会编写一个 YAML 配置,然后前两行一般会这么写: [root@l

会哭的雨@的博客 7921

Hibernate Validator验证注解说明

Hibernate Validator是JSR-303的一个实现。在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比。注解更加简洁、灵活。 注解说明 Bean Validation 中内置的 constraint @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue

小马哥(新博客地址 http://maruifu.cn ) 5887

如何解决ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.

解决ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE

2744

springmvc详解2

springmvc的配置文件的放置位置问题 第一种位置是和src平级的位置---config文件夹(sourcefolder),此时需要在前端控制器配置中添加init-param标签实现加载springmvc配置文件,此时此配置文件最终保存到了classes文件夹中.项目的部署地址我们可以从下图中找出: springmvc配置文件放到了WEB-INF文件夹中,此时文件的名称必须符合格式:前...

ATT 391

手把手教你用EG2153搭建开关电源:SOP-8封装驱动芯片的5个设计技巧

本文详细介绍了使用EG2153自振荡半桥驱动芯片搭建开关电源的五个核心设计技巧。内容涵盖从深入理解芯片工作机制、频率编程计算误区、SOP-8封装的热管理方案,到死区时间评估与外部保护电路设计,以及实战调试与故障排查指南,旨在帮助工程师实现稳定可靠的小功率电源设计。

weixin_29200485的博客 378

一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式 电容(Capacitor) 电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种: 应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

weixin_43904073的博客 2237

【SpringMVC学习06】SpringMVC中的数据校验

这一篇博文主要总结一下springmvc中对数据的校验。在实际中,通常使用较多是前端的校验,比如页面中js校验,对于安全要求较高的建议在服务端也要进行校验。服务端校验可以是在控制层conroller,也可以是在业务层service,controller校验页面请求的参数的合法性,在服务端控制层conroller的校验,不区分客户端类型(浏览器、手机客户端、远程调用);service层主要校验关键业

4万+

YOLOv10改进 | 主干篇 | 引入FasterNet:Run, Don‘t Walk,追求更快的神经网络

本文引入了 FasterNet 作为 YOLOv10 的主干网络。通过 PConv 算子,我们有效降低了模型的计算冗余。对于追求极致推理速度的场景(如树莓派、Jetson Nano),该改进方案极具价值。建议在训练时配合混合精度训练 (AMP)进一步加速。

weixin_51988935的博客 604

SpringMVC_数据校验

SpringMVC_数据校验

底层码农 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SpringMVC的数据校验

Springmvc之数据校验

weixin_49251493的博客 2183

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SpringMVC 学习(十一)之数据校验

在实际的项目中,一般会有两种校验数据的方式:客户端校验和服务端校验客户端校验:这种校验一般是在前端页面使用 JS 代码进行校验,主要是验证输入数据的合法性,不合法的数据则没有必要再发送至服务端了。前端校验可以有效的提高用户体验,但是无法确保数据完整性,因为前端用户可以方便的拿到请求地址,然后直接发送请求,传递非法参数服务端校验:可以有效的保证数据安全与完整性,但是用户体验要差一点,所以客户端校验和服务端校验通常两者结合使用。

zjs246813的博客 2426

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringMVC之数据校验

文章目录第一步:导入校验的jar包第二步:在springmvc.xml中配置第三步:在前端加校验第四步:在后端加校验第五步:在接收数据的实体类中的属性前添加校验的注解第六步:在Controller方法的实体类参数前添加@Valid注解,并且通过BindResult对象类封装错误信息 第一步:导入校验的jar包 第二步:在springmvc.xml中配置 第三步:在前端加校验 <%@ pa...

张议的博客 686

SpringMVC中的数据校验

SpringMVC中的数据校验   这一篇博文主要总结一下springmvc中对数据的校验。在实际中,通常使用较多是前端的校验,比如页面中js校验,对于安全要求较高的建议在服务端也要进行校验。服务端校验可以是在控制层conroller,也可以是在业务层service,controller校验页面请求的参数的合法性,在服务端控制层conroller的校验,不区分客户端类型(浏览器、手机...

weixin_30617561的博客 102

springMVC如何对输入数据校验

前言 数据的校验是交互式网站一个不可或缺的功能,数据验证分为客户端验证和服务器端验证。前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验;但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已,服务器端验证是整个应用阻止非法数据的最后防线,通过在应用中编程实现。 客户端验证在大多数情况下,使用 JavaScript 进行客户端验证的步骤

xqqqiang的博客 926

SpringMVC进行数据校验

文章目录SpringMVC进行数据校验举例在vo对象的属性上打上相应验证注解列举一些验证注解配置**validateMessage.properties**文件在springmvc.xml中配置验证对象 SpringMVC进行数据校验 SpringMVC本身没有数据校验功能,需要借助hibernate的校验框架。 在vo对象的属性上打上相应验证注解 配置validateMessage.prope...

qq_32640013的博客 301

SpringMvc之数据校验

在学习之前我们先提出点问题来,什么是数据校验?什么时候使用数据校验?数据校验的使用方法?        数据校验是所有web必须处理的问题,因为web的开放性,网上所有的浏览者都可以自由的使用该操作,因此该应用通过输入页面的数据是非常复杂的,不仅会包含正常用户的误输入,还可能包含恶意用户的非法输入。一个健壮的应用系统必须将这些输入阻止在应用之外,防止这些非法输入的数据进入系统,这样才可以保证系统...

qq_33028695的博客 349
上一篇: springmvc请求方式的转换
下一篇: springmvc的工作流程
System_sheep
博客等级 码龄8年 3粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值