【问题标题】:Query MySQL Database Client Side查询 MySQL 数据库客户端
【发布时间】:2011-11-30 09:15:24
【问题描述】:

我正在尝试验证用户名在注册表单上的唯一性,并希望在客户端键入用户名后立即验证用户名的唯一性,而不是在提交表单后执行此服务器端。

我是否应该从数据库中收集一个结果集,将其存储在一个数组中,然后以 bean 的形式将其传递给 jsp 页面(我使用的是模型 2 设计,因此用户在到达之前通过一个 servlet jsp页面)?如果数组很大怎么办?如何将这些数据带入 javascript?

或者,有没有办法在客户端使用 ajax 和 javascript 进行查询?也许有可能以某种方式在后台运行查询?

我真的只是在寻找一些方向,因为我什至不知道从什么开始研究这样的东西。在性能方面,这甚至是明智之举吗?

【问题讨论】:

  • 为什么这个查询会返回一个大的结果集?你要么得到一行一列,即如果用户名已经存在,或者没有行。
  • 大部分来自于从数据库中收集所有用户名并填充一个数组列表,然后在用户实际提交表单之前将其发送到 jsp 页面。这只是我大声思考这是否是正确的方法的方式。
  • 啊。我不熟悉 JSP,但你的意思是所有的用户名都会发送给客户端吗?那将是一个糟糕的安全选择。无论如何,除非您出于缓存原因这样做,否则没有理由从数据库中加载每个用户名来检查是否被占用。

标签: mysql ajax jsp servlets


【解决方案1】:

我会为此使用“AJAX”。

这是一种方法:在表单的用户名文本字段上设置一个 blur() 处理程序。当调用 blur() 方法时,您将用户名发布到后端代码;它验证它并返回一些适当的响应。然后,您解析响应并更改用户名文本字段上的 CSS 类(例如,将其变为红色)- 或执行任何其他您想要在视觉上指示“正在使用的用户名”的操作。

无论哪种方式,您都必须将用户名从客户端获取到服务器以进行验证;你不会想要任何允许客户端直接使用数据库的机制(想想安全/漏洞/等)。

如果您还不熟悉,请查看 jQuery (http://jquery.com/),让您的客户端生活更轻松。

【讨论】:

  • 如何将用户名发布到后端代码?我是否必须真正离开当前页面,或者所有这些都可以在后台不通知用户的情况下完成?
猜你喜欢
  • 2015-09-24
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2011-03-31
  • 2019-04-03
  • 1970-01-01
相关资源
最近更新 更多