javascriptを使用してJava変数の値を変更するにはどうすればよいですか?
Javaサーブレットで変数を宣言したとint x=0;
したら、サーブレットの任意のボタンのonclickイベントでその値を1に変更したいのですが、どうすればよいですか?
ありがとう
javascriptを使用してJava変数の値を変更するにはどうすればよいですか?
Javaサーブレットで変数を宣言したとint x=0;
したら、サーブレットの任意のボタンのonclickイベントでその値を1に変更したいのですが、どうすればよいですか?
ありがとう
ノート!複数のスレッド (複数のユーザー) で使用される可能性があるため、サーブレット内で状態を保持しないでください。このような値は、Session
オブジェクトまたは何らかのバックエンド (データベースなど) に格納する必要があります。
質問に戻ります。ブラウザの JavaScript コードは、サーバー上で実行されている Java コードを直接操作することはできません。ただし、click
イベント ハンドラーをボタンにバインドし、サーブレットに対して AJAX 呼び出しを実行して、この値を増やすことができます。JQuery でそれを行う方法の例については、この回答を参照してください。
Java 変数の値を JavaScript から変更できません。
ただし、Java コードを使用して、Java スクリプト変数の値を変更できます。
いいえ、サーバーでリクエストを送信せずにそれを行うことはできません。リクエストを送信する準備ができている場合は、<input>
値に変数値を割り当ててリクエストで送信するAjax
か、JavaScript で送信することができます。
JavaScript
クライアント側Servlets
で実行され、サーバー側でJava
実行されます。
どちらも環境が違います。サーバー側オブジェクトの状態を から変更したい場合は、JavaScript
を通じて行う必要がありますAJAX
。
質問: Java サーブレットで int x=0; のような変数を宣言したとします。だから今、サーブレットの任意のボタンの onclick イベントでその値を 1 に変更したいのですが、どうすればそれを行うことができますか?
回答:サーブレットに変数を含めるべきではありません。Servlets are not Thread Safe.
セッションとして保存される可能性のあるクライアントの状態を変更したいだけだと思うからです。
javascript を使用して Java 変数を変更することはできませんが、その逆は可能です。Javascript はクライアント側で、jsp ページの Java コードはサーバー側で実行されます
javascript を直接使用して java 変数の値を変更することはできません。あなたができることは、隠しファイルを入れてリクエストパラメータのjavascript変数を取得するか、それをurlに渡してから、`rwquest.getParameter("field")を使って値を取得することです。
Javascript runs on client browser so you can't get it directly.
なんでそんなことできないってみんな言ってるのか理解できない
もちろんできます。JavaScript でリモート API を使用して、JavaScript から Java メソッドを何度も呼び出しました。たとえば Seam を使用する場合、次のように実行できます: http://docs.jboss.com/seam/latest/reference/en-US/html/remoting.html
ここで、OP は、使用したいフレームワーク、または OP に最適なリモーティング テクノロジを見つける必要があります。
たとえば、int をパラメーターとして受け取る Java メソッドを呼び出し、その値を変数に適用します。