【问题标题】:Validating JSP's and HTML Forms, Server-side or Client-side, or both?验证 JSP 和 HTML 表单,服务器端还是客户端,或两者兼而有之?
【发布时间】:2011-02-25 08:03:09
【问题描述】:

我知道我可以通过 Google 搜索“HTML 表单验证”并获得十亿个教程。我很清楚我可以使用简单的 JavaScript 来验证表单输入,但有人告诉我这不一定是一种有效的方法。我还听说验证客户端和服务器端代码是最佳实践。好的!好吧,除了在两者上编写代码之外,这究竟意味着什么?这是否意味着我用 JavaScript 做一些事情,而用 Servlet 做一些事情,或者这是否意味着我在两者上都编写了相同的验证方法?

我真正的问题是,谁能给我一些见解和指导,告诉我如何验证我的 HTML 表单。我正在使用 JSP 和 Servlet,我有大量的表单验证要做。

我已经在 J​​ava 中使用正则表达式进行了小型表单验证,但想在编写更多代码之前弄清楚我是否走在正确的轨道上。

请仅提供有效的答案,如果我想对我的经验不足提出负面反馈,我会去 Reddit。

谢谢!

【问题讨论】:

  • 我会留意这个问题。

标签: html jsp validation


【解决方案1】:
  • 需要服务器端验证,因为您不能依赖客户端验证。用户可以禁用、绕过或更改它。
  • 客户端验证很方便,因为它已经占用了服务器的一些负载,并且它会在用户必须等待服务器回复之前提醒用户常见错误。

没有客户端的服务器端是可以的,没有服务器端的客户端是不行的。

如何在服务器端进行验证完全取决于您。现有的库可以帮助您,但正则表达式也很好。请阅读有关为什么需要验证的信息,这样您就不会忘记检查可能的攻击。

客户端验证也是如此。 JQuery Validate 模块挺不错的,不过你可以自己写,没问题。

【讨论】:

    【解决方案2】:

    客户端验证对最终用户来说是礼貌和方便的。

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 1970-01-01
      • 2013-09-16
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多