- PR -

アプレットからサーブレットへの通信

投稿者投稿内容
GONZO
会議室デビュー日: 2007/02/19
投稿数: 4
投稿日時: 2007-02-19 17:31
はじめまして。
今後お世話になります。

今現在、Javaの開発中なのですが、
アプレットに入力文字列(キー)を入力し、
それをサーブレットへ渡し、
そこでハッシュテーブルでの検索をして、
JSPを表示させようとしているのですが、
アプレットに入力されたものをサーブレットへ渡す方法が分からなく困っています。

初歩的な質問なのですが、Javaを勉強中な身故に、
他のサイトで書かれていること読んでも理解できません。
どなたかご教授よろしくお願いします。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-19 17:33
どんなサイトを参考にされていて、何がわからないのでしょうか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-19 17:55
こういった場所で的確な答えを得ようとする場合、質問の仕方にも工夫が要ります。
今回の場合、「〜する方法」がやたら長いので答えにくいのですね。

「分からないこと」を分割してください。
そして、それぞれの項目について「何が」わからないかを具体的に追求してください。

・どんな方法論でやるのかがわからない
・どんなAPIを使えばいいのかわからない
・特定のAPIの使い方がわからない

それが「質問の仕方の初歩」です。


質問の意図がはっきりしないので、憶測で答えているのではずしているかもしれませんが、
アプレットからサーブレットに対してデータを渡す場合、HTTPでの通信が必要になります。
もし、アプレットからのHTTPのリクエストに対し、JSPでレスポンスを返して、
それをもってアプレットが表示されているHTMLを書き換えたい
考えているのであれば、根本的に理解が間違っています。
(「JSPを表示」のくだりは何に対して表示ですか?ブラウザ?アプレット?)

Javaの勉強というよりは、HTTPの勉強が必要なのかもしれませんね。
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-02-19 18:33
Servletはほとんど素人なので的外れかもしれませんが、
formの後のスクリプトでアプレットのデータをinputタグに入れてsubmitしたのではまずいでしょうか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-19 19:34
引用:

だっちょさんの書き込み (2007-02-19 18:33) より:
Servletはほとんど素人なので的外れかもしれませんが、
formの後のスクリプトでアプレットのデータをinputタグに入れてsubmitしたのではまずいでしょうか?



該当アプレットは自分が表示されているページを失うわけですから
終了することになります。
アプレットは用済みで、アプレットの表示されているページを
差し替えたいのであれば、そういう方法論でかまわないと思うのですが
それが意図なのかは不明ですね。

遷移した先のHTMLでアプレットを表示したとしても、
それは別のアプレットなわけですし。
サーバ側とアプレットの間でデータをやり取りするなら、
アプレットのリロードが入らない、直接通信方式とするのが通常だと思います。
サーバ側の受け口がサーブレットであれば通常はHTTPで通信する必要があるわけで、
これはこれで結構面倒なのですよね。

そのへんの基本的な方法論がわからないという質問なのかも知れず、
そうでないのかも知れず。スレ主待ちですね。
GONZO
会議室デビュー日: 2007/02/19
投稿数: 4
投稿日時: 2007-02-20 00:23
ご回答ありがとうございます。

質問の意図が分かり難く申し訳ありません。
まずは

・ユーザからアプレットで文字列を受け取る。
・その文字列をサーブレットに渡し、そこで処理する。
・ユーザのブラウザにJSPを表示。

ということをやりたいのですが、
その基本的な方法論が分からない所存です。

HTTPの勉強不足のようで、その点は勉強してみたいと思います。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-20 13:49
引用:

GONZOさんの書き込み (2007-02-20 00:23) より:
・ユーザからアプレットで文字列を受け取る。
・その文字列をサーブレットに渡し、そこで処理する。
・ユーザのブラウザにJSPを表示。



箇条書きになっただけで質問内容が掘り下げられていないような…。
「手も足も出ない」状況なのだと推測して、指針を示しておきます。

・ユーザからアプレットで文字列を受け取る。

アプレットにTextFieldなどの文字入力コンポーネントを貼り付けます。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/TextField.html
あとは、ボタンの押下などのイベントでgetText()してやればよいでしょう。

・その文字列をサーブレットに渡し、そこで処理する。

原始的にHTTP通信をするのであれば、HttpURLConnectionを使います。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/HttpURLConnection.html
サーブレットではHttpServletRequestからgetParameter()で値を取得します。
HTMLでinputタグを作ってデータを送る場合と同じようなHTTPパケットを
送ってやるようにすればよいでしょう。

・ユーザのブラウザにJSPを表示。

アプレットとブラウザはサーバ側から見た場合、別のクライアントなのですね。
アプレット->サーブレット間のHTTP通信に対して行ったレスポンスは、
あくまでもアプレットで受け取るだけなので、ブラウザに表示されることはありません。
アプレットとJavaScriptの連携をするなどして、ブラウザからHTTPリクエストを
投げる必要があると思います。

HTTPの通信がどのように行われるかをまず考えてください。
ブラウザ、アプレットという2つのクライアントとサーバ間で
どういうやりとりをする設計を考えていますか?

個別事項を調べた後、不明があればまた質問してください。
GONZO
会議室デビュー日: 2007/02/19
投稿数: 4
投稿日時: 2007-02-20 14:43
度々ありがとうございます。
引用:

nagiseさんの書き込み (2007-02-20 13:49) より:

原始的にHTTP通信をするのであれば、HttpURLConnectionを使います。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/HttpURLConnection.html
サーブレットではHttpServletRequestからgetParameter()で値を取得します。
HTMLでinputタグを作ってデータを送る場合と同じようなHTTPパケットを
送ってやるようにすればよいでしょう。



上記を参考にして勉強してみます。
また何かありましたらよろしくお願いします。

[ メッセージ編集済み 編集者: GONZO 編集日時 2007-02-20 14:45 ]

スキルアップ/キャリアアップ(JOB@IT)