springMVC --- 数据校验

数据校验

数据校验在web 应用里是非常重要的功能,通过数据校验,可以避免因为客户端非法数据的录入,导致的服务器类型转换异常,以及非法数据的数据保存。

数据校验分为客户端校验和服务器校验。

客户端校验是指,通过JavaScript 脚本语言对提交服务器的表单数据进行校验。校验通过以后,再将表单数据提交给服务器。 客户端校验优点是直观,可以在不访问服务器的情况下,直接对非法数据的错误信息直接在页面上显示出来。 客户端校验的缺点是并不安全,因为客户端校验需要依赖于浏览器和JavaScript。很多时候,可以绕过浏览器和JavaScript,直接访问服务器。

服务器校验是指,在服务器端接受到客户端提交的表单数据后,在访问业务组件前,进行的数据验证。验证通过,则访问业务组件,否则,给客户端发送错误提示。 服务器端校验优点是比较安全,是客户端数据访问业务组件的最后一道屏障。 服务器端校验缺点是执行效率相对较低。多了访问服务器的步骤,校验由服务器完成,所以,服务器压力要大一些。


SpringMVC 服务器校验

SpringMVC 拥有自己独立的数据校验框架,同时支持 JSR 303 标准的校验框架。Hibernate Validator 是 JSR 303 的一个参考实现

导入依赖

        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.1.5.Final</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.el</artifactId>
            <version>3.0.1-b11</version>
        </dependency>

在实体类属性中定义校验规则:

@NotBlank 判断字符串是否为null 或 空串(去掉首位空格)

@Min 判断数值最小值

@Max 判断数值最大值

@Email 判断邮箱是否合法

@Pattern(regexp="\d+") 判断是否匹配指定正则表达式

每个校验规则都有 message 属性,用于自定义错误信息。

/*姓名*/
@NotBlank(message = "姓名必须填写")
@Pattern(regexp = "[a-zA-Z\\u4e00-\\u9fa5]{2,}",message = "姓名必须为两个以上的汉字或字母")
private String name;
/*电话*/
@Pattern(regexp = "1[35789]\\d{9}",message = "电话必须以13、15、17、18、19开始的11位数")
private String phone;
/*工资*/
@NotBlank(message = "工资必须填写")
@Max(value = 100000,message = "工资不能高于十万")
@Min(value = 1800,message = "工资不能低于1800")
private Integer money;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值