在PHP上显示JFreechart画的统计图方法

  如何在PHP上显示JFreechart?可能大部分都遇到这种情况,在JSP上的servlet能完全的显示出JFreechart画的统计图,但是和其他语言混合运用就不能显示了

  我现在也遇到这个问题,想了半个小时终于弄明白了,实现的过程还是很简单的。(个人经验总结而已)

  解决的思路:

  1.先将JFreechart生成的图片保存在web 服务器上。

  2.然后在JSP上用<img>标签显示

  3.通过JS将JSP导入PHP页面

  这样就实现了。

  部分getColumnChart.jsp源码:

  

复制代码 代码如下:

  <%

  String startTime = request.getParameter("startTime");

  String endTime = request.getParameter("endTime");

  String filter = request.getParameter("filter");

  Charts charts = new Charts();

  String start = startTime == null ? "2013-05-12" : startTime;

  String end = endTime == null ? "2013-11-01" : endTime;

  String filters = filter == null ? "eventtype" : filter;

  JFreeChart chart = charts

  .getPieChart(startTime, endTime, filter);//开始时间、结束时间、filter

  String filename = ServletUtilities.saveChartAsJPEG(chart, 800, 400,

  null, session);

  FileOutputStream fos_jpg = null;

  File file = new File(application.getRealPath("")+"/charts");

  String path =request.getContextPath()+"/charts/NoData.jpg";

  try {

  file.mkdirs();

  fos_jpg = new FileOutputStream(file.getPath()+"/"+filename);

  ChartUtilities.writeChartAsJPEG(fos_jpg, 1.0f, chart, 800, 400,

  null);

  } catch (Exception e) {

  } finally {

  try {

  fos_jpg.close();

  } catch (Exception e) {

  }

  }

  path = request.getContextPath()+"/charts/"+filename;

  %>

  <div align="center">

  <img src="<%=path %>" name="图片" width=800 height=400 border=0>

  </div>

  实现导入JSP的JS源码

  

复制代码 代码如下:

  extjs.chart.chart3D = function(nodeid,id){

  var panel = new Ext.Panel({

  border:false,

  fitToFrame: true,//很简单的就一个Html标签

  html: '<iframe id="frameHelp" src="/getColumnChart.jsp" frameborder="0" width="100%" height="520" ></iframe>'

  });

  return panel;

  }