Spring MVC数据验证简介
用户的输入一般是随意的,为了保证数据的合法性,数据验证是所有 Web 应用必须处理的问题。
在 Spring MVC 框架中有以下两种方法可以验证输入数据:
- 利用 Spring 自带的验证框架。
- 利用 JSR 303 实现。
数据验证分为客户端验证和服务器端验证,客户端验证主要是过滤正常用户的误操作,通过 JavaScript 代码完成。服务器端验证是整个应用阻止非法数据的最后防线,通过在应用中编程实现。
客户端验证
在大多数情况下,使用 JavaScript 进行客户端验证的步骤如下:
- 编写验证函数。
- 在提交表单的事件中调用验证函数。
- 根据验证函数来判断是否进行表单提交。
客户端验证可以过滤用户的误操作,是第一道防线,一般使用 JavaScript 代码实现。但仅有客户端验证是不够的,攻击者还可以绕过客户端验证直接进行非法输入,这样可能会引起系统异常,为了确保数据的合法性,防止用户通过非正常手段提交错误信息,必须加上服务器端验证。
服务器端验证
Spring MVC 的 Converter 和 Formatter 在进行类型转换时是将输入数据转换成领域对象的属性值(一种 Java 类型),一旦成功,服务器端验证器就会介入。也就是说,在 Spring MVC 框架中先进行数据类型转换,再进行服务器端验证。
服务器端验证对于系统的安全性、完整性、健壮性起到了至关重要的作用。在 Spring MVC 框架中可以利用 Spring 自带的验证框架验证数据,也可以利用JSR 303 实现数据验证。
Spring MVC数据验证简介相关推荐
- Spring MVC 数据验证——validate注解方式
1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...
- Spring MVC数据验证
文章目录 客户端验证 服务器端验证 自定义 Spring 验证器 Validator接口 ValidationUtils 类 Spring MVC验证器应用实例 JSR 303 验证 Hibernat ...
- Spring MVC自定义验证注释
在上一教程中,我展示了如何使用注释来验证表单 . 这对于简单的验证非常有用,但是最终,您需要验证一些现成的注释中没有的自定义规则. 例如,如果您需要根据输入的出生日期来验证用户已超过21岁,或者可能需 ...
- 基于佟刚老师视频教程的Spring MVC数据类型转换学习总结
基于Spring MVC数据类型转换的学习笔记总结 问题 页面中数据格式为字符串格式,后台pojo中对应的类型可能为另外一种对象. 如: 在前台页面输入一个固定格式的时间字符串,在后台接收为一个jav ...
- 【ASP.NET MVC4】第八课:MVC数据验证、验证特性、自定义验证
知识点:MVC数据验证概述.验证特性的使用.自定义验证.扩充基于 Entity Framework 的数据模型. 1.MVC 数据验证概述 1.1 为什么要进行数据验证 ASP.NET MVC 中的 ...
- [Spring MVC] - InitBinder验证
Spring MVC使用InitBinder验证: 使用InitBinder做验证的情况一般会在此Controller中提交的数据需要有一些是业务性质的,也即比较复杂的验证情况下才会使用.大部份简单的 ...
- java地址映射关系,Spring MVC——基础(简介,使用,地址映射)
"大佬们"嘴中的SSH,SSM框架,我这种小白终于解除到第二个S了,关于Spring MVC框架,根据最近的学习发现,还是有很多不足和需要加强巩固的地方,所以,通过总结博客的方式将 ...
- Spring MVC:测试简介
测试是软件开发中最重要的部分之一. 井井有条的测试有助于使应用程序代码保持良好状态,并且处于工作状态. 有很多不同类型的测试和方法. 在本文中,我想对基于Spring MVC的应用程序进行单元测试进行 ...
- Spring MVC JSR-303验证框架之Hibernate-Validator
对于 JSR 303 验证,目前有两个实现,一个是 Hibernate Validator,一个是 Apache BVal.本教程采用的是 Hibernate Validator,注意它和 Hiber ...
最新文章
- [AaronYang]C#人爱学不学8[事件和.net4.5的弱事件深入浅出]
- “Java引领技术人生”专题讲座北京、上海站圆满举行
- CPU是如何访问到内存的?
- 火星民众彻夜排队接种飞鸽传书
- [swift] LeetCode 215. Kth Largest Element in an Array
- 浙江非税设定服务器信息,非税操作手册.doc
- 超好用的文件转换神器!拿走不谢~
- Linux下添加开机启动,Linux设置程序开机自启动
- 去美国看展会1:办理护照和签证
- BiliBili视频下载
- java操作svg文件
- 别只关注chatGPT能不能写论文了,它还支持49中场景,代码都给你写好了,速领
- 游戏开发和设计推荐书籍
- 天敏T2四核精简版固件(安卓)_机顶盒使用指南(转载)
- 定义销售组织(Sales Organization)
- Ubuntu 12.04 LTS 64bit 下安装 jdk-6u43-linux-x64.bin的步骤
- GBP310-ASEMI整流桥GBP310
- 微信小程序调用豆瓣电影API(详细)
- Java语句for(String string : strs)什么意思?
- t12电烙铁c语言程序,T12白光烙铁控制器源码.doc
热门文章
- 腾讯云认证考试常见问题答疑
- 你不知道的《阿里巴巴Java开发手册》背后故事
- Kubernetes学习总结(1)——Kubernetes入门简介
- SVN学习总结(3)——分支合并
- JavaScript学习总结(2)——JavaScript数据类型判断
- sql 没数据补零_SQL 小白入门小课堂
- 基 于 svm 的 图 像 分 类_CeO2和MgO助烧剂对矾土基莫来石合成料烧结的影响
- java中有关类的程序设计_《Java程序设计一》 1,设计课程类及类中包含的属性和方法....
- BZOJ 1486 最小圈(二分+判负环)
- 默认权限umask、文件系统权限、特殊权限