您的位置:首页 > 数据库 > MySQL

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

2012-08-03 15:47 316 查看
本来我的例子是用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);

                itemImage = imageDao.getImage(image).getBytes(1, (int)imageDao.getImage(image).length()); //通过getBytes()方法将获取的Blob类型数据转换

                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="<s:url value="show" />" border="0" width="100" height="100">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息