问题解决后我还将双手奉上100分!我在Y盘的确看到生成的图片了,然后我将图片拷贝到D盘根目录!但是在另外一个JSP中引用这张图片是无法显示。如果将这张图片换成系统自带的图片可以显示![code=Java]
<%@page contentType="text/html; charset=GB2312"%>
<html>
<head>
</head>
<body background="D:\1.gif">
</body>
</html>

解决方案 »

  1.   

    <%@ page contentType="text/html;charset=utf-8"%>
    <%@ page import="org.jfree.data.general.DefaultPieDataset"%>
    <%@ page import="org.jfree.chart.*"%>
    <%@ page import="org.jfree.chart.plot.*"%>
    <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
    <%@ page import="org.jfree.chart.labels.StandardPieToolTipGenerator"%>
    <%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
    <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
    <%@ page import="java.io.*"%>
    <%@ page import="javax.servlet.*"%><HTML> 
    <HEAD> 
    <% 
        int airForce = (String)request.getParameter("airForce") == null ? 23 : Integer.parseInt((String)request.getParameter("airForce"));
        int army = (String)request.getParameter("army") == null ? 40 : Integer.parseInt((String)request.getParameter("army"));
        int navy = (String)request.getParameter("navy") == null ? 82: Integer.parseInt((String)request.getParameter("navy"));
        System.out.println("airForce: "+airForce);
        System.out.println("army: "+army);
        System.out.println("navy: "+navy);%>
    <TITLE>投票结果展示</TITLE> 
    </HEAD> <BODY> 
    <%
                DefaultPieDataset data = new DefaultPieDataset(); 
    //数据初始化
                data.setValue("air",airForce); 
                data.setValue("army",army); 
                data.setValue("navy",navy); 
                
                //HttpSession session = request.getSession();            PiePlot3D plot = new PiePlot3D(data);//生成一个3D饼图 
                //plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//设定图片链接 
                JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true); 
                chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色 
              //////  chart.setTitle("reult");//可选,设置图片标题 
            ///////    plot.setToolTipGenerator(new StandardPieToolTipGenerator()); 
            //////    StandardEntityCollection sec = new StandardEntityCollection(); 
            //////    ChartRenderingInfo info = new ChartRenderingInfo(sec); 
           //////     PrintWriter w = new PrintWriter(out);//输出MAP信息 
                //500是图片长度,300是图片高度
                //String filename = ServletUtilities.saveChartAsPNG(chart,500,300,info,session); 
                //System.out.println("**"+request.getContextPath());
                //String realPath = request.getServletPath();
                //System.out.println("##"+realPath);
               // File tempFile = File.createTempFile("111", ".gif", 
                //        new File("Y:\\filePath")); 
               // ChartUtilities.saveChartAsPNG(tempFile, chart,500 ,300 , info); 
                   File tempFile = new File("Y:\\filePath\\1.gif");
                  try 
                      {
                     ChartUtilities.saveChartAsPNG(tempFile, chart, 500, 300, null);
                      } 
                  catch (IOException e) 
                   {
                     e.printStackTrace();
                    } 
    //String filename = ServletUtilities.saveChartAsJPEG(chart,500,300,info,session); 
             //   ChartUtilities.writeImageMap(w,"map0",info,false);          //   String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
            
             
    %> </BODY> 
    </HTML> 
      

  2.   

    1.可能是你生成图片的格式有问题
    你用qq工具 截图  保存成 *.bmp  在放到  <body background="D:\1.gif"> 看看能不能显示
    或者<img src="">  吧你1.gif 直接显示下 如果是显示个 X 那就是 图片格式有问题
    2.可能  你掉用这个页面的 时候还没有生成  你的那个图片 所以找不到
      

  3.   

    你说的第一种可能性还是有的,因为我用系统自带的图片编辑器打开生成的图片,并且另存为再放到D盘后可以显示这张图片!也就是我必须修改图片后才能再页面中显示!
    第二种是不可能的,因为,我是从Y盘把图片拷贝到D盘后再调用那个JSP的!
      

  4.   

    我觉得是在<body background="D:\1.gif"> 
    这句代码时,图片还没有生成。。
    建议不要在jsp写java代码 可以在background指向一个servlet
    然后在servlet中生成图片。这样是肯定可行的。
      

  5.   

    怎么试?
    直接用HTML方式打开图片吗?
      

  6.   

    我前阵子就做了一个报表
    也是jfreechart环境是 struts1 hibernate spring也用了  但和jfreechart没什么关联 呵呵我是把生成的图片放到form里  再到页面上读取显示  不是很难需要帮助 可以加我  
      

  7.   

    你调用saveChartAsPNG生成图片,为何扩展名用gif?
    浏览器对显示图片格式的要求要高一些,不能随便起扩展名
      

  8.   

    你的Html怎么学到的,浏览器只认相对目录
    <body background="D:\1.gif"> 
    绝对目录的写法
    <body background="file:///D:\1.gif"> 
      

  9.   

    html中使用写绝对目录这种低级错误是不容许
      

  10.   


    png或者调用saveChartAsJPEG保存为jpg格式的
      

  11.   

    生成图片的时候,可以保存到WEB项目的相对路径中啊.
    比如在项目里建一个文件夹image,生成图片保存的时候,可以保存到
    String path=application.getRealPath("/image/");
    保存到path路径里,在JSP里就可以使用相对路径来引用这个图片了
      

  12.   

    String path=application.getRealPath("/image"); 
    File tempFile = new File(path+"/1.gif"); 
      

  13.   

    我再修改以前别人做的项目时,发现javaweb的程序里面的图片都时png格式的,当时我还纳闷的,为啥用这个格式呢,呵呵~~欣赏楼主,问题解决后,贴出指出答案位置所在。浏览这么久久没发现有几个这样做的楼主,大家应该学习才对呀~~
      

  14.   

    我也出现了类似情况.试了两个方法,图片已经生成.jpg和.png两个文件,但都无法在jsp页面中显示.但不是显示红插.换了不是用jfreechart生成的图片在页面中是可以正常显示的.