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

问题描述 投票:1回答:1

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

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

有很多冗余代码。 在双方都有可重复使用的验证的正确策略是什么? 这些天人们手动复制客户端/服务器端验证吗?

java jquery validation jsp struts2
1个回答
3
投票
  • 服务器端验证是强制性的 :请求可以来自修改后的网页,例如,使用FireBug或任何类型的DevTools更改规则。 甚至更容易,请求可以由恶意用户制作,来自页面(或javascript块,或其他)创建的ad-hoc ,完全绕过您的页面。

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

  • 客户端验证是用户友好的并且性能友好 :它可以防止用户等待服务器的否定响应,它可以防止网络被错误的请求所淹没(假设用户数量和上传文件的可能性)随着表格数据,这可能很快达到临界质量)。

可以把它想象成大楼外的对讲门。 有了它,如果你不回答对讲机,人们会立即离开。 没有它,人们需要进入建筑物,爬楼梯,敲门......只是发现你不在家。

需要应用服务器端验证,在Struts2的情况下,可以通过validate()validateXXX()方法,或通过XML Validation ,或使用注释(使用内置的Struts2 Annotations per-action或jsr303) -UmeshAwasthi每个实体的-validator-plugin )。

如果要将服务器端验证重用 为客户端验证,可以使用本答案中描述的Struts2-jQuery插件

BTW,HTML5(带后备)和客户端的基本jQuery验证应该足够了。

把真正的努力放在服务器端,然后如果你还有时间和预算,增强客户端。

© www.soinside.com 2019 - 2024. All rights reserved.