【问题标题】:Struts Web Application: Reusable Validation Client-Side & Server-SideStruts Web 应用程序:可重用验证客户端和服务器端
【发布时间】:2015-02-05 02:14:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: java jquery validation jsp struts2


    【解决方案1】:
    • 服务器端验证是强制性的:请求可以来自修改过的网页,例如使用 FireBug 或任何类型的 DevTools 更改的规则。或者更简单的是,恶意用户可以从一个页面(或 javascript 块,或者其他)创建的请求ad-hoc,完全绕过您的页面。

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

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

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

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

    如果您想重用您的服务器端验证作为客户端验证,您可以使用Struts2-jQuery-plugin,如@987654326所述@。

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

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

    【讨论】:

    • :) 喜欢门的比喻。
    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多