将 mysql 中的 Blob 的图片在 jsp 中显示

本来我的例子是用 Struts2+Hibernate+Spring 三个框架搭建的,但是没有什么大碍,我们只有知道核心部分在怎么实现的就行。

以下是我的 Action 的代码:


//show image
private static Image image = new Image();

public Image getImage() {
    return image;
}

public void setImage(Image image) {
    this.image = image;
}

//imageDao对象我是Spring注入进来的,你可以用new创建

public static void showImage(){

    byte[] itemImage = null;

    HttpServletResponse response = ServletActionContext.getResponse();
    response.reset();
    response.setContentType("image/jpeg");

    try {
            image.setId(0);
            //通过getBytes()方法将获取的Blob类型数据转换
            itemImage = imageDao.getImage(image).
            getBytes(1, (int)imageDao.getImage(image).length());
            OutputStream out = response.getOutputStream();
            out.write(itemImage);
            out.flush();
            out.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

以下是 ImageDAO 的 method


    public Blob getImage(Image image) {

        Image img = (Image) template.get(Image.class, image.getId());     //按指定id获取的image对象

        Blob blob = img.getImage();

        return blob;                     //return blob 对象
    }

JSP 的代码为:

   <img src="<http://wewoor.blog.163.com/blog/<s:url> value="show" />" border="0" width="100" height="100">

最后修改于 2012-09-06