我知道我可以谷歌“HTML表单验证”,并将获得十亿个教程。我很清楚我可以使用简单的JavaScript来验证表单输入,但我被告知这不一定是一种有效的方法。我还听说验证客户端和服务器端代码是最佳做法。好!那么,除了在两者上编写代码之外,这究竟是什么意思呢?这是否意味着我使用JavaScript和其他一些使用Servlet,或者它是否意味着我在两者上编写相同的验证方法?
我真正的问题是,任何人都可以向我提供有关如何验证HTML表单的见解和指导。我正在使用JSP和Servlet,我需要进行大量的表单验证。
我已经使用Java中的regex进行了小型表单验证,但是在我编写更多代码之前想要确定我是否正确地走在正确的轨道上。
请给出富有成效的答案,如果我想对我的经验缺乏负面反馈,我会去Reddit。
谢谢!
答案 0 :(得分:6)
没有客户端的服务器端是可以的,没有服务器端的客户端是禁止的。
如何在服务器端进行验证真的取决于您。现有的库可以帮到你,但正则表达式也很好。请仔细阅读您需要验证的原因,这样您就不会忘记检查可能的攻击。</ p>
同样适用于客户端验证。 JQuery Validate模块相当不错,但你可以编写自己的,没问题。
答案 1 :(得分:1)
客户端验证对最终用户来说既礼貌又方便。
服务器端验证是绝对必要的。
正如你所说,关于如何最好地完成每项工作,有无数的资源。一个简单的策略是在客户端筛选有效性,在服务器上筛选正确性 - 也就是说,使用Javascript确保输入的类型正确并且形式(例如“看起来像一个日期”)和服务器端逻辑,以额外保证有效输入有意义(例如“对于该用户来说是合理的范围”)。这可以节省一些AJAX。这取决于您要在其上花费的应用程序,用户和资源。如果你不介意额外的Javascript和HTTP请求,你可以在客户端复制所有服务器端检查,但是你有两个用不同语言编写的独立程序来维护和保持同步。