- - PR -
アプレットからサーブレットへの通信
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-02-25 20:29
先日の続きなのですが、
今現在、URLConnectionを使用しようと考えております。 送信側では -------------------------------------- String s = t1.getText(); URL url = new URL("http://localhost/xxxx/servlet/xxxx"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); conn.setUseCaches(false); ObjectOutputStream ObjOut = new ObjectOutputStream(conn.getOutputStream()); ObjOut.writeObject(s); ObjOut.close(); -------------------------------------- このようにし、受け取る側のサーブレットでは、 -------------------------------------- InputStream in = request.getInputStream(); ObjectInputStream ObjIn = new ObjectInputStream(in); String s = (String)ObjIn.readObject(); -------------------------------------- のようにしているのですが、 この2行目で例外が発生しているのですが、 その理由がわかりません。 どなたか分かる方がいらっしゃいましたら、お手数ですがご教授お願いします。 |
|
投稿日時: 2007-02-25 21:10
どんな例外が発生しているのでしょう?
|
|
投稿日時: 2007-02-25 23:04
HTTPのGETパラメータとして送信した情報および、
GET・POSTで送信したHTMLのFORMタグ内のINPUTタグの情報は、 ServletRequest.getParameter を用いて取得するのが通常です。 URLConnectionを使っていようが、ブラウザから送信されようが、 ちゃんとしたHTTPのリクエストであれば同じように処理できます。 ですから、通常のサーブレットのサンプルを元にパラメータを取得しましょう。 もし、ObjectOutputStream / ObjectInputStreamでJavaのオブジェクト送受信を したいと考えているのであれば、まずこの二つのStreamで単純にFileに書き出して 読み出すという実証コードを書いて正常に動かせることを確認しましょう。 HTTPで通信する場合、バイナリデータを送る場合には面倒があります。 HTTPでHTMLの<INPUT type="file">でのデータ送信の仕様を確認してください。 まともにバイナリデータを送るのが面倒であれば、バイナリデータを テキストで表現して送信→受け取ったサーブレットで逆変換 といったことをするなど工夫します。 まとめると、 1.まずサーブレットの基礎を復習 2.ObjectOutputStream / ObjectInputStreamの動作を確認する 3.HTTPでバイナリデータを送信するための方法を考える といった項目に分離して、問題解決を試みましょう。 |