データベースからblob画像を読み取っているコードを書いていますが、その画像をjspページに表示したいと思います。
グーグルを通して私は、byte[]がバッファリングされた画像に変換できるという解決策を見つけます
しかし、どうすればjspページでバッファリングされた画像を使用できますか...?
データベースからblob画像を読み取っているコードを書いていますが、その画像をjspページに表示したいと思います。
グーグルを通して私は、byte[]がバッファリングされた画像に変換できるという解決策を見つけます
しかし、どうすればjspページでバッファリングされた画像を使用できますか...?
最も簡単なのは、サーブレットまたは別のjspを使用してイメージを送信することです。
JSPを使用する場合は、HTML(または空白行)なしでバイナリを送信するように注意してください。たとえばこのように:
response.setContentType("image/png");
OutputStream sos = response.getOutputStream();
BufferedImage myImage = stuff.getImage(request.getParameter("id"));
ImageIO.write(myImage, "png", sos);
sos.flush();
sos.close();
(ここではjavax.imageio.ImageIOを使用)
次に、次のような画像を使用できます。
<img src="myservlet.jsp?id=somestuff">
サーブレットを作成することをお勧めしますImageProvider
<servlet>
<servlet-name>showMyImage</servlet-name>
<servlet-class>com.photo.gallery.ImageProvider</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>showMyImage</servlet-name>
<url-pattern>/showMyImage</url-pattern>
</servlet-mapping>
次のようなJSPページで使用します。
<img src="showMyImage?imageFimeName=flowers.jpg" / >
ここにのdoGet
実装がありますImageProvider
public void doGet(HttpServletRequest request, HttpServletResponse response) {
/*Now you have the byte[] array by some way...
* Lets call it imageBytes[] */
response.setContentType("image/jpeg");
response.setContentLength(imageBytes.length);
response.getOutputStream().write(imageBytes);
}