package ambow.ecport.utils; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; 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.data.general.DefaultPieDataset; /** * 演示通过servlet直接输出图表 * * @author 1e+10 */ @SuppressWarnings("serial") public class BarCharServlet 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(), 1.0f, chart, 800, 600, null); } /** * 获取一个演示用的简单数据集对象 * * @return */ private static DefaultPieDataset getDataSet() { DefaultPieDataset dataset = new DefaultPieDataset(); Map<String , Integer> map = new HashMap<String, Integer>(); map.put("苹果", 100); map.put("梨子", 200); map.put("葡萄", 300); map.put("香蕉", 400); map.put("荔枝", 500); for(Iterator iter = map.entrySet().iterator(); iter.hasNext();) { Map.Entry<String, Integer> e = (Map.Entry<String, Integer>)iter.next(); dataset.setValue(e.getKey(), e.getValue()); } /* dataset.setValue("苹果", 100); dataset.setValue("梨子", 200); dataset.setValue("葡萄", 300); dataset.setValue("香蕉", 400); dataset.setValue("荔枝", 500);*/ return dataset; } }