我的jsp页面获取了一个BufferedImage 对象,但是无法显示出来,只是显示一个红X。 
jsp页面代码 
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);DrawLine dl=new DrawLine();BufferedImage image =dl.drawReflexLine(20, 10, 0);
ImageIO.write(image, "JPEG", response.getOutputStream());其中 
DrawLine dl=new DrawLine(); 
BufferedImage image =dl.drawReflexLine(20, 10, 0); 
我放在swing里面          DrawLine dl = new DrawLine();
        BufferedImage image = dl.drawReflexLine(40, 50, 0);
        jLabel1 = new JLabel(new ImageIcon(image));
        jScrollPane2.getViewport().add(jLabel1);
就可以正确的显示出图像。 
这说明我的dl.drawReflexLine(40, 50, 0);方法没有错误 所以应该只是jsp页面显示BufferedImage 出现了问题,但是我上面的写法是根据网上一个准确运行的验证码程序改成的,应该也没有错误,不知道到底是什么问题? 

解决方案 »

  1.   

    你试一下修改成以下代码:
    OutputStream out = response.getOutputStream();
    DrawLine dl=new DrawLine();BufferedImage image =dl.drawReflexLine(20, 10, 0);
    ImageIO.write(image, "JPEG", out);
    out.flush();
    out.close();
      

  2.   

    http://www.javaresearch.org/article/18121.htm
    http://zhidao.baidu.com/question/31492511.html
    参考这两个就会明白了.
      

  3.   

    其实就是说你当前的jsp页面是你图片的路径,把你使用图片的地方的src写成你当前的jsp就可以了...你试试吧....
      

  4.   

    out.clearBuffer();// 增加这一句,删除以前的所有输出
    response.setHeader("Pragma","No-cache");
    response.setHeader("Cache-Control","no-cache");
    response.setDateHeader("Expires", 0);
    DrawLine dl=new DrawLine();BufferedImage image =dl.drawReflexLine(20, 10, 0);
    ImageIO.write(image, "JPEG", response.getOutputStream());
      

  5.   

    生成验证码的程序,你参考这个看看吧! 建议用 servler
    http://www.java2000.net/viewthread.jsp?tid=93