1

javascript を使用してデータベースに接続し、値にアクセスするにはどうすればよいですか? ユーザーを登録したいので、ユーザーを作成しようとしているときに、ユーザー名が使用可能かどうかを確認したい(データベースで検索操作を行いたいという意味)? JavaScriptでこれを行うことはできますか?クライアント側で使用しているため、混乱していますか?

4

4 に答える 4

2

JavaScriptでこれを行うことはできますか?クライアント側で使用しているため、混乱していますか?

JavaScript は汎用プログラミング言語であり、クライアント側の言語ではありません。人々は常にサーバー側でそれを使用しています。

ただし、 Web ブラウザーでJavaScript を使用してサーバー上のデータベースにアクセスできますか?答えは: 直接ではありません。ジャンプしたい); 中間層が必要です。クライアントの JavaScript からサーバーにメッセージを送信することができます (たとえば、ajaxを介して)。次に、サーバー側のコードでこれらのメッセージを処理し、メッセージが有効で悪意がないことを確認してから、慎重にデータベースを更新し、結果をクライアント ブラウザーに送り返す必要があります。

サーバー側の言語は、JavaScript またはサーバーで使用するその他の言語にすることができます。あなたが質問jspにタグを付けたことに気づいたので、おそらくサーバー側のものを(JavaScriptではなく)Javaで書きたいと思うでしょう。その場合、また ajax を使用して、最新の非ページ更新エクスペリエンスを実現する場合は、次のようになります。

  1. ユーザーがアクションを実行し、ブラウザでイベントを発生させます。

  2. JavaScript コードは、ajax メッセージをサーバーに送信することでイベントを処理します。ログインの場合は、おそらくPOST.

  3. JSP (さらに良いのは、サーブレット)

    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サーバーに接続するためのより良い方法は、PHP、Java、.NETなどのサーバー側言語を使用することです。クライアントjavascriptは、インターフェースにのみ使用する必要があります。

そして、サーバーjavascriptの存在についての古代の伝説の噂がありますが、これは別の話です。;)

于 2012-06-01T11:16:33.113 に答える