web.xml 我也配置了,但是 上网看了很多代码,就是没看懂如何能靠servlet的方法 获得后台的图像,在前台jsp中该写什么东西啊?在线坐等高手!
public class ChartDemoServlet extends HttpServlet { 
 public void service(ServletRequest req, ServletResponse res) 
 throws ServletException, IOException 
 { 
 res.setContentType("image/jpeg"); 
 DefaultPieDataset data = getDataSet(); 
 JFreeChart chart = ChartFactory.createPieChart3D(
"水果产量图", 
 data, 
 true, 
 false, 
 false 
 ); 

 ChartUtilities.writeChartAsJPEG(res.getOutputStream(), 
 100,chart,400,300,null); 
 } 
 /** 
 * 获取一个演示用的简单数据集对象
 * @return 
 */ 
 private static DefaultPieDataset getDataSet() { 
 DefaultPieDataset dataset = new DefaultPieDataset(); 
 dataset.setValue("苹果",100); 
 dataset.setValue("梨子",200); 
 dataset.setValue("葡萄",300); 
 dataset.setValue("香蕉",400); 
 dataset.setValue("荔枝",500); 
 return dataset; 
 } 
}

解决方案 »

  1.   

    ChartUtilities.writeChartAsJPEG(res.getOutputStream(),  
    100,chart,400,300,null);  
    quality must be in between 0.0f to 1.0f
      

  2.   


    package test;import java.awt.Font;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartUtilities;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.PiePlot;
    import org.jfree.data.general.DefaultPieDataset;public class ChartDemoServlet extends HttpServlet {  
    private static final long serialVersionUID = 1L;

    public void service(ServletRequest req, ServletResponse res)  
    throws ServletException, IOException  
    {  
    res.setContentType("image/jpeg");  
    DefaultPieDataset data = getDataSet();  
    JFreeChart chart = ChartFactory.createPieChart3D(
    "水果产量图",  
    data,  
    true, 
    false,  
    false  
    );  
    chart.getTitle().setFont(new Font("黑体", Font.BOLD, 20));
        PiePlot piePlot = (PiePlot) chart.getPlot();
    piePlot.setLabelFont(new Font("宋体", Font.BOLD, 10));
    chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 10)); ChartUtilities.writeChartAsJPEG(res.getOutputStream(),  
    0.5f,chart,400,300,null);  
    }  
    /**  
    * 获取一个演示用的简单数据集对象
    * @return  
    */  
    private static DefaultPieDataset getDataSet() {  
    DefaultPieDataset dataset = new DefaultPieDataset();  
    dataset.setValue("苹果",100);  
    dataset.setValue("梨子",200);  
    dataset.setValue("葡萄",300);  
    dataset.setValue("香蕉",400);  
    dataset.setValue("荔枝",500);  
    return dataset;  
    }  
    }完整代码
      

  3.   

    恩,这个是对字体的修改吧。 我是像如何能在jsp页面或得这个生成的图片呀?
      

  4.   

    我使用的strust2前端在js中直接生成action
    <div id="graph" style="float: center">
    <form id="graphForm" action="generateStockGraph" style="float: center">
    <h2>股票投资组合图</h2>
    <img id="graphStockNames" src="" />
    <script>
    function show(){

    var names="";
    <%out.println(sb.toString()); %>
    return names;
    }

    function createGraph(){
    var names=show();
    var graphStockNames=document.getElementById("graphStockNames");
    graphStockNames.src="generateStockGraph.action?param="+names;

    }
    //show();
    createGraph();
    setInterval(show,10000);

    </script>

    </form>
    </div>
      

  5.   

    主要看这个方法吧
    function createGraph(){
                            var names=show();
                            var graphStockNames=document.getElementById("graphStockNames");
                            graphStockNames.src="generateStockGraph.action?param="+names;
                            
                        }
      

  6.   

    你的那个js 怎么调用的? 我刚学, 不懂啊。麻烦多贴点代码啊。 能加Q 聊下吗?
      

  7.   

    已经在本地生产图片了.那你前台的img不就是指向这个图片的地址吗?!
      

  8.   

    我用了你贴出来的代码了,那是个java代码呀,你的浏览器里面的http://localhost/jfreechart/cmd 里面是不是用severlet了吗  那如果是前台显示的话,是不是应该是xxx.jsp 这样的把?小弟不明白 请讲解下
      

  9.   


    例如还是我的代码<img src="cmd" width="300" height="300" />
    你说的是这个吗?jsp最后还是编译成servlet运行的,只是jsp比servlet更容易编辑html代码而已。servlet是以图片的形式输出的,因此就把它看做一个图片,用img 标签去调用就好。
      

  10.   

    我还是不明白。我想问个很简单的问题,我只需要在演示JSP页面里面输入 <img src="cmd" width="300" height="300" /> ??? 不会吧!这样和后面的java是连接不在一起吧,我想知道的是中间是如何连接在一起的,这个是一直困扰我的问题呀。
      

  11.   

    servlet 输出图片,访问servlet相当于访问了一个图片,可以把servlet的访问地址当成是图片的地址,用<img就可以调用
    servlet就是java
    就这么回事