將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);
                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">


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章