goo blog サービス終了のお知らせ 

コトハノチカラ

ビジュアル的センスが0の左脳人間が、
どこまで言葉だけで自分を表現できるか、
やれるとこまでやってみるブログです。

JSPにてBLOB型の画像出力成功!!

2009-07-27 16:03:07 | ITなお話

かなり時間をかけてしまったが、やっとデータベース上のBLOB型の画像データをJSPにて出力することができた。

そもそも基本的に勘違いしていたのは、画像を出力するJSPページに遷移する処理の中で、画像データを取得しようとしていたこと。

取得すること自体は問題なくできるのだが、遷移先のJSPのページに画像データを渡す方法がどうしてもわからずに、途方に暮れていたのだ。

だけどもそうではなくて、遷移したJSPの中で、画像を表示するServletを呼び出せばよかったのだ。

具体的には、JSP側には以下のように書く。

<img src="hoge_servlet" />

そんで、そこから呼び出されるServletのほうで、以下のようにする。

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
byteOut.write( DBから取得した画像データ(byte[]), 0, 画像サイズ(int) );
response.setContentType( "image/jpeg" );
response.setContentLength( byteOut.size() );
OutputStream out = response.getOutputStream();
out.write( byteOut.toByteArray() );
out.close();

こうすると、画像を出力するためだけのHTMLが作成されて、それをJSPのイメージタグで参照して画像が表示される。

今までrequestに関してはある程度理解していたのだけど、responseに関しては正直あまり深く考えていなかったので、今回のことでとても勉強になりました。

今のところの問題点としては、基本的にはServletの呼び出しなどは全てStrutsを使っているのだけど、画像の表示に関しては直接Servletを呼び出していること。

まあ、基本的な動きとしては問題ないのだけど、こうやって一部ではStrutsを使って、一部では使わないという設計が良いのかどうかがちょっとばかり不安。

まあ、基本的なことがわかってしまえば、あとは応用でどうにでもなるから、これでまたガシガシ製造ができるぞ~!!


最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Unknown (師子乃)
2018-11-06 20:48:00
初めまして。

勉強させていただきます!
返信する