用户的输入一般是随意的,为了保证数据的合法性,数据验证是所有 Web 应用必须处理的问题。

在 Spring MVC 框架中有以下两种方法可以验证输入数据:

  • 利用 Spring 自带的验证框架。
  • 利用 JSR 303 实现。

数据验证分为客户端验证和服务器端验证,客户端验证主要是过滤正常用户的误操作,通过 JavaScript 代码完成。服务器端验证是整个应用阻止非法数据的最后防线,通过在应用中编程实现。

客户端验证

在大多数情况下,使用 JavaScript 进行客户端验证的步骤如下:

  • 编写验证函数。
  • 在提交表单的事件中调用验证函数。
  • 根据验证函数来判断是否进行表单提交。

客户端验证可以过滤用户的误操作,是第一道防线,一般使用 JavaScript 代码实现。但仅有客户端验证是不够的,攻击者还可以绕过客户端验证直接进行非法输入,这样可能会引起系统异常,为了确保数据的合法性,防止用户通过非正常手段提交错误信息,必须加上服务器端验证。

服务器端验证

Spring MVC 的 Converter 和 Formatter 在进行类型转换时是将输入数据转换成领域对象的属性值(一种 Java 类型),一旦成功,服务器端验证器就会介入。也就是说,在 Spring MVC 框架中先进行数据类型转换,再进行服务器端验证。

服务器端验证对于系统的安全性、完整性、健壮性起到了至关重要的作用。在 Spring MVC 框架中可以利用 Spring 自带的验证框架验证数据,也可以利用JSR 303 实现数据验证。

Spring MVC数据验证简介相关推荐

  1. Spring MVC 数据验证——validate注解方式

    1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...

  2. Spring MVC数据验证

    文章目录 客户端验证 服务器端验证 自定义 Spring 验证器 Validator接口 ValidationUtils 类 Spring MVC验证器应用实例 JSR 303 验证 Hibernat ...

  3. Spring MVC自定义验证注释

    在上一教程中,我展示了如何使用注释来验证表单 . 这对于简单的验证非常有用,但是最终,您需要验证一些现成的注释中没有的自定义规则. 例如,如果您需要根据输入的出生日期来验证用户已超过21岁,或者可能需 ...

  4. 基于佟刚老师视频教程的Spring MVC数据类型转换学习总结

    基于Spring MVC数据类型转换的学习笔记总结 问题 页面中数据格式为字符串格式,后台pojo中对应的类型可能为另外一种对象. 如: 在前台页面输入一个固定格式的时间字符串,在后台接收为一个jav ...

  5. 【ASP.NET MVC4】第八课:MVC数据验证、验证特性、自定义验证

    知识点:MVC数据验证概述.验证特性的使用.自定义验证.扩充基于 Entity Framework 的数据模型. 1.MVC 数据验证概述 1.1  为什么要进行数据验证 ASP.NET MVC 中的 ...

  6. [Spring MVC] - InitBinder验证

    Spring MVC使用InitBinder验证: 使用InitBinder做验证的情况一般会在此Controller中提交的数据需要有一些是业务性质的,也即比较复杂的验证情况下才会使用.大部份简单的 ...

  7. java地址映射关系,Spring MVC——基础(简介,使用,地址映射)

    "大佬们"嘴中的SSH,SSM框架,我这种小白终于解除到第二个S了,关于Spring MVC框架,根据最近的学习发现,还是有很多不足和需要加强巩固的地方,所以,通过总结博客的方式将 ...

  8. Spring MVC:测试简介

    测试是软件开发中最重要的部分之一. 井井有条的测试有助于使应用程序代码保持良好状态,并且处于工作状态. 有很多不同类型的测试和方法. 在本文中,我想对基于Spring MVC的应用程序进行单元测试进行 ...

  9. Spring MVC JSR-303验证框架之Hibernate-Validator

    对于 JSR 303 验证,目前有两个实现,一个是 Hibernate Validator,一个是 Apache BVal.本教程采用的是 Hibernate Validator,注意它和 Hiber ...

最新文章

  1. [AaronYang]C#人爱学不学8[事件和.net4.5的弱事件深入浅出]
  2. “Java引领技术人生”专题讲座北京、上海站圆满举行
  3. CPU是如何访问到内存的?
  4. 火星民众彻夜排队接种飞鸽传书
  5. [swift] LeetCode 215. Kth Largest Element in an Array
  6. 浙江非税设定服务器信息,非税操作手册.doc
  7. 超好用的文件转换神器!拿走不谢~
  8. Linux下添加开机启动,Linux设置程序开机自启动
  9. 去美国看展会1:办理护照和签证
  10. BiliBili视频下载
  11. java操作svg文件
  12. 别只关注chatGPT能不能写论文了,它还支持49中场景,代码都给你写好了,速领
  13. 游戏开发和设计推荐书籍
  14. 天敏T2四核精简版固件(安卓)_机顶盒使用指南(转载)
  15. 定义销售组织(Sales Organization)
  16. Ubuntu 12.04 LTS 64bit 下安装 jdk-6u43-linux-x64.bin的步骤
  17. GBP310-ASEMI整流桥GBP310
  18. 微信小程序调用豆瓣电影API(详细)
  19. Java语句for(String string : strs)什么意思?
  20. t12电烙铁c语言程序,T12白光烙铁控制器源码.doc

热门文章

  1. 腾讯云认证考试常见问题答疑
  2. 你不知道的《阿里巴巴Java开发手册》背后故事
  3. Kubernetes学习总结(1)——Kubernetes入门简介
  4. SVN学习总结(3)——分支合并
  5. JavaScript学习总结(2)——JavaScript数据类型判断
  6. sql 没数据补零_SQL 小白入门小课堂
  7. 基 于 svm 的 图 像 分 类_CeO2和MgO助烧剂对矾土基莫来石合成料烧结的影响
  8. java中有关类的程序设计_《Java程序设计一》 1,设计课程类及类中包含的属性和方法....
  9. BZOJ 1486 最小圈(二分+判负环)
  10. 默认权限umask、文件系统权限、特殊权限