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

时间:2015-02-05 02:14:36

标签: java jquery validation jsp struts2

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

  • 客户端验证用户友好性能友好:它阻止用户等待服务器的否定响应,它可以防止网络充斥着可能已被停止的错误请求(考虑到用户数量以及上传文件和表单数据的可能性,这很快就会达到临界质量)。
  

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

需要以应用服务器端验证,对于Struts2,可以是validate()validateXXX()方法,也可以是XML Validation,或使用注释(内置Struts2 Annotations每个操作,或{@ 3}} @UmeshAwasthi per-entity)。

如果您想重复使用 服务器端验证作为客户端验证,您可以使用jsr303-validator-plugin,如上所述Struts2-jQuery-plugin

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

将实际工作投入到服务器端,如果您仍有时间和预算,请加强客户端。

相关问题