AjaxとJavaでの通信方法についての疑問

このQ&Aのポイント
  • AjaxとJavaの通信方法について疑問があります。
  • 具体的には、Javaでサーバを作成してAjaxと通信する方法や、JSPを使った通信方法についてわかりません。
  • 入門サイトの多くがPHPを使用しているため参考にならないため、適切なサイトを知りたいです。
回答を見る
  • ベストアンサー

AjaxとJava

私はAjaxの勉強をしようと思っています。 そのため、簡単なサーバ側はJavaのアプリケーションを作って学ぼうと思ったのですが、どうやって通信すればよいかよくわかりません。 一応わからないなりにいろいろ方法を考えてみたのですが、どれも疑問点があります。 (1)、サーバをJavaで作成して、Ajaxと通信する方法 (2)、JSPを使って、Ajaxと通信する方法 どちらの方法も、 (1)どうやってAjaxからの(正確にはJavaScriptからの)リクエストを受け取って、値を取り出したらいいか (2)どうやってサーバからJavaScriptにデータを送るのか がわかりません(送るパケットは極めてシンプルなもの、たとえば数字とか文字列がいいです)。 入門サイトはほとんどのサーバ側はPHPで作っているので、あまり参考にならないと考えています。 なにか参考になるようなサイトなどはないでしょうか? お返事お待ちしております。

質問者が選んだベストアンサー

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

私は、JavaもJSPも存じませんが、質問者さんの疑問は、基本的にJavaScript側の問題です。 JavaScriptからGETあるいはPOSTを投げれば、サーバー側で通常のフォームデータと同じように受け取るだけです。 また、サーバーからなんらかのデータを返す場合は、通常出力すればよいだけです。 問題は「JavaScriptからどうやってサーバーへPOSTやGETを投げて、返答を受け取るか」という箇所だけだと思います。 サーバー側で難しいことはなにもありません。 ちょっと気になったのは、質問者さんのおっしゃる「Ajax」とは、Jaxerやnode.jsのようなサーバー側でJavaScriptが動作するものではないですよね? 一般的な通信は「クライアント→サーバー→クライアント」となりますが、「サーバー→クライアント→サーバー」の通信を想像されているのであれば、ちょっとAjaxの範囲ではなくなります。

lain_003
質問者

お礼

みなさんお返事ありがとうございます。 確かに自分の質問がおかしかったと感じております。 解決策としてはjQueryを使ってデータをXML形式でデータをサーバに送信しました。あとはそれを解析してhogehoge という感じです。 ありがとうございました。

その他の回答 (1)

回答No.2

>(1)どうやってAjaxからの(正確にはJavaScriptからの)リクエストを受け取って、 >値を取り出したらいいか >(2)どうやってサーバからJavaScriptにデータを送るのか >がわかりません。 うーん、答えづらいですね。サーバは何を想定されていますか? JSP ということは Tomcat を想定されているのでしょうか? Tomcatでの経験は? AJAXなしの画面を組んだご経験は?

関連するQ&A

  • 自宅でサーバを立てる際、JAVA、AJAXが動くためにすることは?

    WEBアプリはまったくの初心者ですが、日々精進しています。今、自宅でWEBサーバを立てようとしています。PHPならPHPのインストールをサーバに行い、PEARならライブラリをしかるべきところに置く必要があります。ではJAVAでできたWEBアプリケーションを動かすには、サーバで何かインストールすることはあるのでしょうか?また、同様にAJAXはどうでしょうか?それとも、JAVAはクライアント側に入っていればよくてサーバ側では何もすることはない、という認識で間違いないでしょうか?

    • ベストアンサー
    • Java
  • AjaxでXMLHttpRequestのローカル鯖

    Ajaxで使用するXMLHttpRequestをローカルサーバーで構築したいと考えています。 比較的簡単にできメジャーな方法を 教えてください。 下記サイトのサンプルなどを試したいと考えています。 AjaxTower  Ajax入門 http://www.ajaxtower.jp/ini/ Ajaxを勉強しよう http://www.openspc2.org/JavaScript/Ajax/Ajax_study/

    • ベストアンサー
    • AJAX
  • Ajaxの動き

    googleと本で調べたのですが、今いちわからないため質問させてください。 (1)教科書から、Ajaxは、XMLをJavascriptでやり取りしている非同期通信という定義なのはわかりましたが、結局、AJAXを使うということは、HTMLに、<Script>のタグで、JQueryなどのパスを書くということなのでしょうか? AJAXは概念的なものであって、プログラムやモジュールそのものではないと捉えています。 (2)Ajaxによる非同期通信は、何をきっかけとして通信が始まるのでしょうか? 通常は、FORMがSUBMITされたときに、サーバにリクエストがいくという認識ですが そもそも、Ajaxは、何をイベントとしてハンドルしているのでしょうか?(何をきっかけに処理が始まっているのでしょうか?) HTMLに、<Script>のタグで、JQueryのパスを書くと、ハンドルする機能が使用されるのでしょうか? Ajaxでも「リクエスト」は行われているけれども、処理結果として戻されるものがXML形式であるだけだという理解で良いのでしょうか?

    • ベストアンサー
    • AJAX
  • サーバー側のデータチェックの必要性

    現在JavaとJavascriptでWebアプリケーションを制作しています。 サーバーとの通信はすべてAjaxを使用して、Formで渡すような方法は取っていません。 Javascript側では細かいデータのチェックは行っているのですが、Java側ではデータのチェックを行っていません。 Ajax通信であるため、仮にブラウザでJavascriptを「無効」にしてしまうとAjaxそのものが起動しないためデータをサーバー側に送ることができなくなります。 このことを利用して、Javascript側で完璧なデータチェックを行い、Java側でのデータチェックを省略しています。 ただ、多くの手引書を見るとサーバー側(Java側)でもデータチェックを行う必要があると書かかれていますが、Ajaxのみで通信しているシステムにもこのことは当てはまるのでしょうか。 私の場合どのような危険性や問題点があるかご指摘ください。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • jqueryMobileがAjax?

    Ajaxという単語の意味がわからなくなりました… jqueryMobileの様々な解説をみているとページ切り替え時とかにAjaxによってとかいう表現が出てきますが、jqueryMobileは既にサーバーから取得したHTMLをjavascriptで表示切り替えしてるだけで、各ページの情報を適宜サーバーから取得しているというわけじゃないと思います。 Ajaxの定義はjavascriptを用いてページ遷移をすることなくサーバーと通信すること、と思っていたので、このjqueryMobileのAjaxという単語の使い方に違和感を覚えます。 jqueryMobileの解説でのAjaxって単語の使われ方は正しいんでしょうか? それともjqueryMobileは実際はクライアントサイドでの表示切り替えだけでなくサーバーとの通信を行ってるんでしょうか? 参考 http://dev.screw-axis.com/doc/jquery_mobile/components/pages_dialogs/page_links/

  • JQueryはAJAXとは無関係??

    質問◆JQueryおよびJQueryMobileは「AJAX」とは無関係なのでしょうか? 「JQueryMobileを使っているとき、DOMによってHTMLを動的に差し替えている」という認識なのですが、 特にRequest関連の記載をJavaScriptで記載していない限り、AJAXの処理は行われないのでしょうか? それとも、 JQuery Mobileを使っている場合は、ページ遷移などで、プログラマが意識していなくても(独自にプログラムを書いていなくても) AJAXの処理が行われているのでしょうか? /************************************/ サーバへのリクエストはなくても、1つのマシン内の、HTMLファイルとHTMLファイルの間で、 HTTPで通信がされるということはないと思っています。 (※基本、HTTPはクライアントとサーバの間のときしか使われないのですよね?) JQueryの技術情報のサイトを見ていると、 よく「document.ready」と書かれていたりするソースを見かけますが、 これはAjaxとは関係なく(通信とは関係なく)、 また「xhr.send」も書かれていないHTMLは、AJAXは使われないという理解です。 (「Form、submit」とも関係がない) XMLHttpRequestも「HttpRequest」とあるわけですし、 「Form、submit」を書いているときに行われるわけではないけれども、かわりに、 「xhr.send」とJavaScriptで実行されたタイミングで走る処理であり、 その際、「サーバから返される情報がXMLのデータ形式で(XML以外もですが、、)」だという理解なのですが、合っていますでしょうか?

    • ベストアンサー
    • AJAX
  • ajaxの使いどころ

    現在、会員制のWebサービスを作成しています。 まだ初期段階ですが、今は管理者用のユーザー管理ページに着手しており、サーバーサイド、クライアントサイド合わせて、およそ7割程度完成しているいるところです。 このページの現時点での実装では、ユーザーの削除、復活、パスワードリセット、登録情報の変更、新規ユーザーの登録といった全機能でajaxを使っています。 また、処理対象のユーザーは一覧のテーブルをクリックして選択するのですが、このクリック時にサーバーからユーザーの詳細情報を取得しており、ここでもajaxを使っています。 要するに、1ページ取得したあと、そのページ内でサーバーと通信を行う必要が生じたら、それはすべてajaxを使うという決まりです。 そこで、ajaxの運用についていくつかわからない点があり、質問させて頂きます。 (1) 会員専用ページという性質を考えると、ajaxでリクエストを送信した際にも、サーバーサイドではそのリクエストに対するセッションが有効かどうかをチェックする必要がありますよね? 一般的な会員向けWEBサービスでは、"ページ遷移毎"だけでなく、"ajaxでの通信毎"でもセッションのチェックを行うものなのでしょうか。 (2) ajaxでの通信時にセッションの有効性をチェックした結果、すでにタイムアウト等でセッションが無効な場合、一般的にはどうするべきなのでしょうか。 個人的にはlogoutページにリロードしたいと考えているのですが、このようにするには、サーバー側がレスポンスを返すときに、{error:{code:'1',message:'session_out'}}のようなJSONを返して、それをjavascript側で確認し、location.hrefを書き換える、というような流れで処理を行うことになるのでしょうか。 (3) そもそも、今回のように「1ページ内で生じるサーバー間通信は全てajaxで補う」という考え方は、一般的なものなのでしょうか。 なにが言いたいかというと、"セキュリティ等を考慮してajaxを使うべきではない処理"と"ajaxを積極的に使うべき処理"(もしくは、"ajaxを使っても差し支えない処理")の判断の仕方、つまり、ajaxの使いドコロがよく分かっていません。 以上3点につきまして、ご教授いただければ幸いです。

    • ベストアンサー
    • AJAX
  • Java/サーブレットでの一般的な2重リクエスト防止方法について

    Java/サーブレットでの一般的な2重リクエスト防止方法について いつもお世話になります。 JSP/サーブレットでWebアプリを作成しているのですが、2重リクエストを防止する方法について、 クライアント側とサーバ側それぞれで、一般的にはどのような実装を行うのかご教授願えませんでしょうか。 「クライアント側とサーバ側それぞれで」としているのは、JavaScript禁止の場合を考慮して、 サーバ側のみで対処する場合どうするのかを知りたいためです。 特別なフレームワークは利用しておらず、tomcatを使用したJSP/サーブレットにて開発を行っております。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • どこまでがAjaxなの?

    現在、Ajaxを勉強中の初心者です。 質問のタイトル通りなのですが、どこまでがAjaxなのかイマイチわかりません。 AjaxはJavaScript + XMLで非同期通信をする技術ですが 1.画像やプログラムファイルをサーバPC側に入れておいてクライアントPC側でラジオボタンの選択によって画像表示を変えるのはAjaxですか、それともただのJavaScriptですか? 2.サーバを使って以下のような入力可能文字カウンタを表示させるのはAjaxですか、それともただのJavaScriptですか? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>文字のカウント</title> </head> <body> <form>   <textarea cols="46" rows="5" id="title1" name="title1" size="50"></textarea><br />   あと<span id="inputlength1">20</span>文字入力できます<br /> </form>   <script type="text/javascript"><!--     function lengthCounter (node, max, cut) {       max = max || Number (node.maxLength) || 20;       return function () {         var rest = max - node.value.length;           if (rest < 0) {             if (cut) {               alert ('20文字以内にしてください');               rest = max;               node.value = node.value.substring (0, max);             }           }           return rest;       };     }     function dispValue (node, cbFunc) {       return function () {         node.firstChild.nodeValue = cbFunc ();   };     }     setInterval (dispValue ( document.getElementById ('inputlength1'),     lengthCounter (document.getElementById ('title1'), 20, true)), 100);   // --></script> </body> </html> 3.「googleサジェストのインクリメンタル検索にはAjaxの技術が利用されている」←ここでのAjaxにはPHPも含まれますか? 私はPHPをAjaxの枠には入れないような気がします。正確にはPHPとAjaxでインクリメンタル検索機能がつくられていると思うのですが。 4.PHPのみでAjaxと同じ非同期通信ができればそれはAjaxと呼ぶのか? よろしくお願いします。

    • ベストアンサー
    • AJAX
  • サーブレットはサーバーと同期型、AJAXは非同期型の意味が分かりません

    サーブレットはサーバーと同期型、AJAXは非同期型の意味が分かりません サーバーサイドjavaとか、サーブレットはクライアント側(ブラウザ側)と サーバー側とは同期型だけど、AJAXは非同期型なので軽くて、速いと参考書とかに 書いていましたが、非同期型とはどのような意味でしょうか。  クライアントの意図する情報を先読みして、その情報をバッファとしてサーバーとか に取り込んでいるとか、クライアント側に送信しているとか聞いたことがあるのですが。

    • ベストアンサー
    • AJAX

専門家に質問してみよう