2010-05-28 111 views
2

我知道我可以谷歌“HTML表单验证”,并将获得十亿教程。我很清楚我可以使用简单的JavaScript来验证表单输入,但我被告知这不一定是一种有效的方法。我也听说验证客户端和服务器端代码是最佳实践。好!那么,除了在两者上编写代码之外,这意味着什么呢?这是否意味着我使用JavaScript和其他Servlet进行了一些操作,还是这意味着我在两者上都编写了相同的验证方法?验证JSP和HTML表单,服务器端还是客户端或两者?

我真正的问题是任何人都可以给我洞察力和方向,以便如何验证我的HTML表单。我正在使用JSP和Servlet的,我有大量的表单验证。

我已经用Java中的正则表达式做了小小的表单验证,但是想知道在我编写更多的代码之前Im在正确的轨道上行驶。

只有生产性的答案,如果我想对我缺乏经验的负面反馈,我会去Reddit。

谢谢!

+0

我会密切关注这个问题。 – novato 2010-05-28 21:37:07

回答

6
  • 需要服务器验证,因为您无法依赖客户端验证。用户可以禁用,绕过或更改它。
  • 客户端验证非常方便,因为它已经占用了服务器的一些负载,并且在他必须等待服务器回复之前会向用户提示常见错误。

没有客户端的服务器没问题,客户端没有服务器端是一个禁忌。

您如何在服务器端验证是否真的取决于您。现有的图书馆可以帮助你,但是正则表达式也很好。请仔细阅读为什么您需要验证,所以您不要忘记检查可能的攻击。

同样的事情用于客户端验证。 JQuery验证模块相当不错,但你可以自己写,没问题。

1

客户端验证对终端用户来说很有礼貌,方便。

服务器端验证是绝对必要的。

正如你所说,关于如何最好地完成每一项工作,都有无数的资源。一个简单的策略是在服务器上筛选有效性,并在服务器上筛选正确性 - 也就是说,使用Javascript来确保输入具有正确的类型和形式(例如“看起来像日期”)和服务器端逻辑来额外保证有效的输入是有意义的(例如“对于这个用户来说在一个合理的范围内”)。这可以为您节省一些AJAX。这取决于应用程序,用户和您想要在其上花费的资源。如果您不介意额外的Javascript和HTTP请求,则可以在客户端复制所有服务器端检查,但是然后您将有两个用不同语言编写的单独程序来维护和保持同步。

相关问题