Reputation: 2777
I am writing code in which i am reading blob image from database and want to show that image on my jsp page .
through google i find out the solution that , byte[] can be converted to buffered image
but how can i use buffered image on jsp page...?
Upvotes: 3
Views: 1368
Reputation: 3424
I would recommend write a servlet 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>
Now use it in JSP page like :
<img src="showMyImage?imageFimeName=flowers.jpg" / >
Here goes the doGet
implementation of 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);
}
Upvotes: 2
Reputation: 382474
The easiest is to send your image with a servlet or a different jsp.
If you use a JSP, be careful to simply send your binary without any html (or blank line). Like this for example :
response.setContentType("image/png");
OutputStream sos = response.getOutputStream();
BufferedImage myImage = stuff.getImage(request.getParameter("id"));
ImageIO.write(myImage, "png", sos);
sos.flush();
sos.close();
(here using javax.imageio.ImageIO)
Then you can simply use the image like this :
<img src="myservlet.jsp?id=somestuff">
Upvotes: 2