如何使用javascript连接和访问数据库的值? 我想注册一个用户,所以当我要创建用户时,我想检查天使用户名是否可用(意味着想要对数据库进行搜索操作)? 我们可以用javascript做到这一点吗?因为它是用于客户端所以我很困惑?
答案 0 :(得分:2)
我们可以用javascript做到这一点吗?因为它是用于客户端所以我很困惑?
JavaScript是一种通用编程语言,而不是客户端语言。人们一直在服务器端使用它。
但是,如果您的意思是,您是否可以使用网络浏览器中的 来访问服务器上的数据库 ,答案是:不直接,不是(嗯,除非你是在内联网上跳过篮球,否则你真的不想跳过去;你需要一个中间层。您可以在客户端上使用JavaScript向服务器发送消息(例如,通过ajax);然后,服务器端代码需要处理这些消息,确保它们有效且无恶意,然后非常谨慎地更新数据库并将结果发送回客户端浏览器。
服务器端语言可以是JavaScript或您要在服务器上使用的任何其他语言。我注意到你标记了你的问题jsp
,所以大概你想要用Java编写服务器端的东西(而不是JavaScript)。如果是这样,如果您想使用ajax,那么您将获得现代的非页面刷新体验,它看起来像这样:
用户执行并操作,在浏览器中发起一个事件。
JavaScript代码通过向服务器发送ajax消息来处理事件;在登录的情况下,您可能想要POST
。
JSP(或者更好的是,servlet)
收到POST
消息
验证内容,检查恶意内容和其他类似攻击
使用预准备语句查询和/或更新数据库,以避免SQL注入攻击
发送响应,并提供有关操作结果的信息
JavaScript代码收到对POST
ajax调用的响应并查看它以查看发生了什么
答案 1 :(得分:2)
直接,不是。 JavaScript通常在不受信任的机器上运行。 由于JavaScript是一种脚本语言。因此,您应该考虑使用ajax调用(例如帖子)来访问您的服务器数据库......
类似thread讨论问题
答案 2 :(得分:0)
感谢上帝,用JavaScript无法实现。您需要一种服务器端脚本语言来验证某些用户对数据库的输入。
答案 3 :(得分: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服务器的更好方法是使用一些服务器端语言,如PHP,Java,.NET等。客户端javascript只能用于接口。
有传言说有关服务器javascript存在的古老传说,但这是另一个故事。 ;)