String filename=ServletUtilities.saveChartAsJPEG(chart,600,400,info,session);
        //设置生成图片,包括图片的大小,长度是300,宽是200
        System.out.println(filename);
        System.out.println(info);
       session.setAttribute("file_name1",filename);
        String URL= request.getContextPath() + "/servlet/DisplayChart? filename=" + filename; 
        session.setAttribute("file_url1",URL);
        System.out.println(URL);
这段代码是action中的,然后在jsp页面调用,不知道这样用对么
我用的时候,在Jsp页面调用,可以找到,就是显示不出图片

解决方案 »

  1.   

    楼主别急,我也昨天上网查了半天资料,最新版本的jfreechart1.5疯狂报错,官网又没有老版本下载,我拼命搜google,终于找到一个0.98老版本,搞定了jfreechart,画了一个漂亮的饼图出来.
    我大致看了一下你的方法,感觉是错误的.我的代码帖出让你参考一下.
    public class Img extends HttpServlet {
    public void service(ServletRequest req, ServletResponse res)
    throws ServletException, IOException {
    res.setContentType("image/jpeg");
    DefaultPieDataset data = getDataSet();
    JFreeChart chart = ChartFactory.createPie3DChart("引擎分析统计图", // 图表标题
    data, true, // 是否显示图例
    false, false);
    ChartUtilities.writeChartAsJPEG(res.getOutputStream(), 100, chart,
    650, 450, null); } private static DefaultPieDataset getDataSet() {
    DefaultPieDataset dataset = new DefaultPieDataset();
    String sql1 = "select a.FSITENAME,a.FSITEURL,count(*) from SEARCHSITE a,"
    + "WEBUSERS_HIS b where a.FSITEURL=b.FREFSITE group by a.FSITENAME,a.FSITEURl";
    List cty_list2 = oracles.runsql(sql1, "3");
    if (cty_list2 != null) {
    Element cnode3 = null;
    for (Iterator iter3 = cty_list2.iterator(); iter3.hasNext();) {
    cnode3 = (Element) iter3.next();
    String fff1 = (String) cnode3.attributeValue("1");
    String fff3 = (String) cnode3.attributeValue("3");
    dataset.setValue(fff1, Long.parseLong(fff3));
    }
    }
    return dataset;
    }
    }
      

  2.   

    jsp代码就只有一行.<img src="../Show">
    Show就是上面的Servlet,你要在web.xml配置一下.