📄 chartdemoservlet.java
字号:
package com.bjsxt.drp.util.servlet;
import java.io.*;
import java.text.NumberFormat;
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.data.*;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.chart.*;
import org.jfree.chart.labels.PieSectionLabelGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
import com.bjsxt.drp.statreport.ClientStatManager;
/**
* 演示通过servlet直接输出图表
* @author Winter Lau
*/
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
);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
PieSectionLabelGenerator generator=
new StandardPieSectionLabelGenerator(
"{0} : {1} ({2})",
NumberFormat.getNumberInstance(),
NumberFormat.getPercentInstance());
plot.setLabelGenerator(generator);
ChartUtilities.writeChartAsJPEG(res.getOutputStream(),
1.0f,chart,400,300,null);
}
/**
* 获取一个演示用的简单数据集对象
* @return
*/
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
// dataset.setValue("一级分销商",100);
// dataset.setValue("二级分销商",200);
// dataset.setValue("三级分销商",300);
Map map = ClientStatManager.getInstance().getClientLevelCount();
for (Iterator iter= map.entrySet().iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry)iter.next();
dataset.setValue((String)entry.getKey(),Double.parseDouble(String.valueOf(entry.getValue())));
}
return dataset;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -