1

如何使用 javascript 连接和访问数据库的值?我想注册一个用户,所以当我要创建用户时,我想检查用户名是否可用(意味着要对数据库进行搜索操作)?我们可以用javascript做到这一点吗?因为它用于客户端所以我很困惑?

4

4 回答 4

2

我们可以用javascript做到这一点吗?因为它用于客户端所以我很困惑?

JavaScript 是一种通用编程语言,而不是客户端语言。人们一直在服务器端使用它。

但是,如果您的意思是,您是否可以在 Web 浏览器中使用 JavaScript来访问您服务器上的数据库,答案是:不能直接,不能(好吧,除非您在 Intranet 上并且跳过您真的不知道的障碍想跳过);你需要一个中间层。您可以让客户端上的 JavaScript 向服务器发送消息(例如,通过ajax);然后,服务器端代码需要处理这些消息,确保它们有效且无恶意,然后非常谨慎地更新数据库并将结果发送回客户端浏览器。

服务器端语言可以是 JavaScript 或您想在服务器上使用的任何其他语言。我注意到你标记了你的问题jsp,所以大概你想用 Java(而不是 JavaScript)编写服务器端的东西。如果是这样,并且如果你想使用 ajax 来获得现代的、非页面刷新的体验,它看起来像这样:

  1. 用户执行和操作,在浏览器中引发事件。

  2. JavaScript 代码通过向服务器发送 ajax 消息来处理事件;在登录的情况下,您可能想要执行POST.

  3. 一个 JSP(或者更好的是,一个 servlet)

    1. 收到POST消息

    2. 验证内容,检查恶意内容和其他类似攻击

    3. 使用准备好的语句和类似语句查询和/或更新数据库以避免 SQL 注入攻击

    4. 发送响应,其中包含有关操作结果的信息

  4. JavaScript 代码接收到对POSTajax 调用的响应并查看它以了解发生了什么

于 2012-06-01T11:18:56.970 回答
2

直接说不行。JavaScript 通常在不受信任的机器上运行。由于 JavaScript 是一种脚本语言。因此,您应该考虑使用 ajax 调用(例如帖子)来访问您的服务器数据库...

类似的线程讨论这个问题

于 2012-06-01T11:26:22.337 回答
0

感谢上帝,JavaScript 是不可能的。您需要一种服务器端脚本语言来验证某些用户对数据库的输入。

于 2012-06-01T11:16:08.290 回答
0

出于多种原因(不良做法、安全问题等),您不应该使用客户端 javascript 访问数据库,但如果您真的想这样做,这里有一个示例:

var connection = new ActiveXObject("ADODB.Connection") ;

var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>;Password=<password>;Provider=SQLOLEDB";

connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");

rs.Open("SELECT * FROM table", connection);
rs.MoveFirst
while(!rs.eof)
{
   document.write(rs.fields(1));
   rs.movenext;
}

rs.close;
connection.close; 

连接到 sql server 的更好方法是使用一些服务器端语言,如 PHP、Java、.NET 等。客户端 javascript 应仅用于接口。

并且有一个关于服务器javascript存在的古老传说的传言,但这是另一个故事。;)

于 2012-06-01T11:16:33.113 回答