网上好多人都转载过这段代码,有谁知道这个PrintWriter w = new PrintWriter(out);里面的out是怎么来的吗?这里的ChartRenderingInfo又有什么用啊?谁能给讲讲吗?<%@ page contentType="text/html;charset=GBK"%> 
<%@ 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.*"%> 
<HTML> 
<HEAD> 
<META http-equiv=Content-Type content="text/html; charset=GBK"> 
<TITLE>[email protected]</TITLE> 
</HEAD> 
<BODY> 
<% DefaultPieDataset data = new DefaultPieDataset(); 
data.setValue("高中以下",370); 
data.setValue("高中",1530); 
data.setValue("大专",5700); 
data.setValue("本科",8280); 
data.setValue("硕士",4420); 
data.setValue("博士",80); 
PiePlot3D plot = new PiePlot3D(data);//3D饼图 
plot.setURLGenerator(new StandardPieURLGenerator("barview.jsp"));//设定链接 
JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true); 
chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色 
chart.setTitle("程序员学历情况调查表");//可选,设置图片标题 
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); 
ChartUtilities.writeImageMap(w, "map0", info, false); String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; %> <P ALIGN="CENTER"> 
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0"> 
</P> 
</BODY> 
</HTML> 

解决方案 »

  1.   

    哈哈,菜鸭问题被我看见啦,答对了就给分结贴哟。这个 out是 HttpServletResposne 的输出流啦。

    ServletOutputStream out = response.getOutputStream();方法就可以获取到呀
      

  2.   

    我在程序里没有定义这段ServletOutputStream out = response.getOutputStream();代码啊?
    这段程序能够正常显示饼图的,但是我没有定义out对象啊?你能在细点解释吗?还有这个ChartRenderingInfo一般有什么用?
    哈哈,菜鸭说话当然算话。
      

  3.   

    JSP内置对象out:
    out对象是JspWriter类的实例,是向客户端输出内容常用的对象
      

  4.   


    嗯,如果是jsp 的话,是有9个内置对象的。out对象是JspWriter类的实例,是向客户端输出内容常用的对象
    序号 方 法 说 明1 void clear() 清除缓冲区的内容2 void clearBuffer() 清除缓冲区的当前内容3 void flush() 清空流4 int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为05 int getRemaining() 返回缓冲区还剩余多少可用6 boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常7 void close() 关闭输出流
      

  5.   

    楼上的,下面是.java文件里面的代码,这段代码报错out cannot be resolved 怎么改啊?同样的代码在jsp页面里就不报错啊vFreeChart = ChartFactory.createPieChart3D(mc,pieDataset,true,false,false);
    PiePlot3D vPiePlot3D = (PiePlot3D) vFreeChart.getPlot();
        if (vPiePlot3D != null) {
    for (int i = 0; i < rowcount; i++)
    vPiePlot3D.setSectionOutlinePaint(0,Color.BLACK); vPiePlot3D.setToolTipGenerator(new StandardPieToolTipGenerator()); 
    StandardEntityCollection sec = new StandardEntityCollection(); 
    ChartRenderingInfo info = new ChartRenderingInfo(sec); 
    PrintWriter p = new PrintWriter(out);//输出MAP信息 
    String filename = ServletUtilities.saveChartAsPNG(vFreeChart, 500, 300, info, session); 
    ChartUtilities.writeImageMap(w, "map0", info, false);  String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;