第一步导入jar包
jcommon-1.0.23.jar
jfreechart-1.0.19.jar
第二步 在web.xml中配置JFreeChart的分发器
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/chart</url-pattern>
</servlet-mapping>
第三步在servlet中测试
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1 得到数据
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(120, "上海", "苹果");
dataset.addValue(160, "广州", "苹果");
dataset.addValue(210, "北京", "梨子");
dataset.addValue(220, "上海", "梨子");
dataset.addValue(230, "广州", "梨子");
dataset.addValue(330, "北京", "葡萄");
dataset.addValue(340, "上海", "葡萄");
dataset.addValue(340, "广州", "葡萄");
dataset.addValue(420, "北京", "香蕉");
dataset.addValue(430, "上海", "香蕉");
dataset.addValue(400, "广州", "香蕉");
dataset.addValue(510, "北京", "荔枝");
dataset.addValue(530, "上海", "荔枝");
dataset.addValue(510, "广州", "荔枝");
// 2 构造JFreeChart
JFreeChart jfreeChart=ChartFactory.createBarChart3D(
"水果产量图", // 图表标题
"水果", // 目录轴的显示标签--横轴
"产量", // 数值轴的显示标签--纵轴
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、
true, // 是否显示图例(对于简单的柱状图必须
true, // 是否生成工具
true // 是否生成URL链接
);
String fileName= ServletUtilities.saveChartAsJPEG(jfreeChart, 250, 220, request.getSession());
String imageURL=request.getContextPath() + "/chart?filename="+fileName;
request.getSession().setAttribute("image", imageURL);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
在index.jsp里
<body>
<img alt="no image" src="${image}">
</body>
注意:
imageURL=request.getContextPath() + "/chart?filename="+fileName;
request.getSession().setAttribute("image", imageURL);
/chart 是在web.xml里配置单
filename 一定要小写