- ベストアンサー
javascriptからjavaを呼び出す方法とは?
- javascriptでajaxを用いてjavaのメソッドにアクセスし、結果をjavascriptに返す方法について教えてください。
- 同じプロジェクト内のjavaメソッドをjavascript上で呼び出し、結果を受け取ることは可能でしょうか?
- javascriptからjavaを呼び出す方法についてご教示ください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3 です。 > 「javaを使わない」という条件だと、XMLのリクエストのみで実現は可能でしょうか。 DB上にあるデータを全てXML化して置いておけば出来なくはありません。 ただ、その場合は静的データ(XML)で管理することになるので、DBを使用する意味がなくなると思うのですが…。 DBを利用するならサーバサイドスクリプトの存在は必須です。 1. DBの内容をサーバ意サイドスクリプトで出力 2. 出力データを JavaScript で受け取り、カレンダーに描画する このような処理が必要になります。 出力データのフォーマットは JSON, XML 何でも良いですが、JavaScript で認識しやすいデータが望ましいですね。 DBデータがあらかじめキャッシュして置ける内容なら初めからJavaScriptに全データをObjectとして渡しておくのが理想だと思います。 月が変化する毎にリクエストを発行する必要がなくなりますので、コードを単純化できます。 その場合は、カレンダーを出力するHTMLをサーバサイドスクリプトで書いて、JSONを出力しておくのが楽な実装ですね。 # Re: mifu223さん
その他の回答 (4)
- wormhole
- ベストアンサー率28% (1626/5665)
>「javaを使わない」という条件だと、XMLのリクエストのみで実現は可能でしょうか。 「XMLのリクエストのみで実現」は不可能です。 XMLのリクエストを送ったとして、そのリクエストの応答は何がどうやって返すんですか? サーバーサイドでリクエストを受け取った後、リクエストの内容を勝手に解析して意図をくみ取りOracleデータベースにアクセスして応答を返す、何て事はやってくれませんよ。 javaである必要はありませんが「リクエストの内容に応じてOracleデータベースにアクセスし応答を返す」というサーバーサイド側のプログラムを作らないことにはどうしようもないです。
- think49
- ベストアンサー率59% (285/482)
testJava.java という事はコンパイル出来てないと思うのですが、JavaアプレットでもJavaサーブレットでも良いのでコンパイルしてください。 コンパイル言語はコンパイル前のソースコード状態(*.java)では実行できません。 Javaアプレットの function を JavaScript から呼び出す方法は下記URLに載っていました http://www1.inacatv.ne.jp/suisyagoya/cooperation/cooperation.html 最も、Javaアプレットは訪問者にpluginのインストールを強要する上、流行っていないためにあまりお勧めしません。 サーバ側に環境が必要ですが、Javaサーブレット(JSP)であれば訪問者へのインストール要求はなくなります。 XMLHttpRequest で JSP へHTTPリクエストを要求してJSPから結果を出力するように実装してください。 # Re: mifu223さん
補足
皆様回答ありがとうございます。 やはりjavascriptとjavaそれぞれが実行されるタイミングが違うので簡単には実現できないのですね。 後だしで申し訳ございませんが、 /project/WebContent/js/testJS.js は月毎のカレンダーを生成するプログラムで、 前後の月のボタンを押すと前後の月のカレンダーを表示するというものです。 ここで、月を移動したときやカレンダーを呼び出したときにOracleのDBのテーブルから 休日や祝日のスケジュールを呼び出し、その日の背景を赤塗りにするというのが最終目標です。 月が変わるごとに通信を行ってデータを受け取りたい(jsから該当の年月を渡してそれを元にその月の休日と祝日を取得したい)のでjsp上の実装ではなくjs上で行いたいという状態です。 「javaを使わない」という条件だと、XMLのリクエストのみで実現は可能でしょうか。
>まず技術的に、同じプロジェクト内のjavaメソッドをjs上で呼び出し、結果を受け取るということは可能なのでしょうか。 それがWebからアクセス可能な形で公開されて入れば可能です。Ajaxというのは非同期で指定のアドレスにアクセスする機能です。すなわち、アクセス先がHTTPプロトコルでアクセス可能でなければいけません。 testJava.javaというのは、どういう形のプログラムでしょうか。サーブレットですか? ならば、サーブレットが公開されているアドレスにAjaxでアクセスして下さい。 ただのクラスである場合は、それを利用するサーブレットを作成し公開して下さい。そしてそのサーブレットの中から必要なメソッドにアクセスするようにして下さい。
- wormhole
- ベストアンサー率28% (1626/5665)
javascriptとjavaのコードが、それぞれどこで実行されるものか理解していますか?
お礼
非常に参考になりました!ありがとうございます! 他の方もベストアンサーにしたいところですが、一番参考になったthink49さんの回答をベストアンサーとさせていただきました。 皆様貴重なお時間を割いてくださり誠にありがとうございました。