`

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

    博客分类:
  • j2ee
阅读更多

可参考资料与网址

 

官方网站

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">

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics