プロが教える店舗&オフィスのセキュリティ対策術

Applet-Servlet間通信で
文字を送れるのは確認していますが
jpg画像ファイルを
アプレット-サブレット間で送受信
は可能なのでしょうか?
参考サイトがありましたら
紹介ください。

A 回答 (1件)

アプレット=サーブレット間でイメージをやり取りすることは可能です。


そのためには、入出力のストリーム関係と、BufferedImageの処理の基本がだいたい頭に入っていないといけませんが、そのあたりはだいたいわかりますか?
 例として、アプレットからサーブレットにイメージを送信する場合を考えるとこんな感じの処理が必要になります。

※アプレット側
// URLConnectionを取得し設定をする
URL url = new url( サーブレットの指定 );
URLConnection con = url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("content-type","application/octed-stream");
// ImageWriterの取得
Imagewriter iw = (Imagewrier)ImageIO.getImageWritersByFormatName("jpeg").next();
// URLConnectionからOutputStreamを取得
OutputStream out = con.getOutputStream();
//OutputStreamをもとにImageOutputStreamを作成
ImageOutputStream imout=ImageIO.createImageOutputStream(out);
// ImageWriterにImageOutputStreamを設定
iw.setOutput(imout);
// Imageの書き出し
iw.write( [書き出すBufferedImage] );
iw.flush();

※サーブレット側
// responseの設定
response.setContentType("application/x-java-serialized-object");
// ServletInputStreamを取得
ServletInputStream input = request.getInputStream();
// ServletInputStreamからBufferedImageを読み込む
BufferedImage img = ImageIO.read(input);

ここにあげたのは基本的な処理の流れで、これだけでできるというわけではありません。(ストリーム操作は例外処理を用意しないといけませんし、受け取った後にレスポンス側に返事をする処理も必要でしょう)なお、基本的な考え方がわかれば、逆のサーブレットからアプレットへの送信もだいたいわかると思います。
 ポイントは、ImageReader/ImageWriter、ImageInputStream/ImageOutputStream、それにImageIOクラスの使い方あたりでしょう。そのあたりが一通りわかれば、だいたいの流れはわかるかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!