Struts Web 应用程序:可重用的验证客户端和服务器端

2024-03-11

我们的 Struts 应用程序重复了许多表单验证检查:(1) jQuery/JS 中的客户端,以及 (2) Java 中的服务器端。

我问我的领导为什么,他说“你永远不能相信客户端。”但另一方面,为了方便起见,他也想在浏览器中提供 JS/jQuery 验证。

有很多冗余代码。在双方进行可重用验证的正确策略是什么?现在人们是否手动重复客户端/服务器端验证?


  • 服务器端验证是强制性的:请求可以来自修改后的网页,例如使用 FireBug 或任何类型的开发工具更改规则。或者更简单的是,请求可以由恶意用户从创建的页面(或 JavaScript 块或其他)制作ad-hoc,完全绕过您的页面。

把它想象成你家的门:有了它,没有正确钥匙的人就无法进入。没有它,任何人都可以进入。

  • 客户端验证是用户友好的 and 性能友好:它可以防止用户等待服务器的否定响应,它可以防止网络被本来可以停止的错误请求淹没(考虑到用户数量以及上传文件和表单数据的可能性,这可能会达到临界值)弥撒很快)。

把它想象成带有门的门intercom大楼外。有了它,如果你不接对讲机,人们会立即离开。没有它,人们需要进入大楼、爬楼梯、敲你的门……只是发现你不在家。

You NEED要应用服务器端验证,在 Struts2 的情况下可以通过validate() http://struts.apache.org/docs/form-validation.html or validateXXX()方法,或通过XML Validation http://struts.apache.org/docs/basic-validation.html,或使用注释(使用内置的Struts2 注释 http://struts.apache.org/docs/validation-annotation.html每个动作,或与jsr 303-验证-插件 https://github.com/umeshawasthi/jsr303-validator-plugin由 @UmeshAwasthi 每个实体)。

如果你想reuse your 服务器端验证作为客户端验证你可以使用Struts2-jQuery-插件 http://struts.jgeppert.com/struts2-jquery-showcase/index.action如上所述在这个答案中 https://stackoverflow.com/a/27863566/1654265.

顺便说一句,HTML5(带有后备)和客户端的基本 jQuery 验证应该足够了。

将真正的精力放在服务器端,然后如果您还有时间和预算,请增强客户端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts Web 应用程序:可重用的验证客户端和服务器端 的相关文章

随机推荐