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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值