jFreeChart 在jsp页上实现简单的折线图、柱状图

可参考资料与网址

 

官方网站

http://www.jfree.org/jfreechart/index.html

官方论坛

http://www.jfree.org/phpBB2/index.php

API 文档

http://www.jfree.org/jfreechart/api/gjdoc/index.html

中文API

http://blog.sina.com.cn/u/405da78d010000ap

 

 创建柱状图
1 引入jFreechart的包 :jcommon-1.0.15.jar 、jfreechart-1.0.12.jar

2 在web.xml中加入

XML code
  
< 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 > /servlet/DisplayChart </ url-pattern > </ servlet-mapping >


3 在jsp或者servlet或者action中写

Java code
//	  	饼图
//		1、准备数据
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("管理人员", 25);
		dataset.setValue("市场人员", 25);
		dataset.setValue("开发人员", 45);
		dataset.setValue("其他人员", 5);

//		2、生成图片
		JFreeChart chart = ChartFactory.createPieChart3D("公司组织架构图", dataset, true,
				true, false);	
		
		try{ 
			String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, request.getSession()); 
			String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
			request.setAttribute("graphURL",graphURL);
		} catch (Exception e){
		
		}
 



4 在页面引入

HTML code
  
< img src ="<%= request.getAttribute(" graphURL") % > ">

对于临时文件的清除,jfreechart提供了一个实现了HttpSessionBindingListener的类ChartDeleter,
里面有个valueUnbound方法,这个方法是在session执行remove的时候被执行,
也就是在页面刚进入的时候调用
session.removeAttribute("JFreeChart_Deleter");这样会删除当前session之前生成的图表。

还有一种方法是用流输出的方式,直接,即:
注释掉上面的try中的代码,加入如下代码
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);
然后在显示页面引入

  
< img src ="<%=request.getContextPath()%>/servlet ">

 

 

 

你可能感兴趣的:(PHP,xml,jsp,servlet,jfreechart)