RSS
热门关键字:
当前位置 : 主页>编程开发>java编程>入门>列表

Tomcat下使用Jfreechart 简单例子(servlet)

来源:我要研发网 作者: 时间:1970-01-01 点击:



  这个例子是我参考JFreeChart Developer Guide做.用Google搜一下,可以下载到.

字串3

  1.Tomcat安装不描述.现在假如Tomcat 安装目录为C:Tomcat 5.0,新建C: Tomcat 5.0 webapps  myServlets目录.

字串1

  安装JDK  安装目录C:j2sdk1.4.2_09 并将C:j2sdk1.4.2_09libjfreechart-1.0.0-rc1.jar加到CLASSPATH中.

字串8

  2.去http://www.jfree.org/jfreechart/index.php下载jfreechart-1.0.0-rc1,后解压缩,将jfreechart-1.0.0-rc1.jar,jcommon-1.0.0-rc1.jar,gnujaxp.jar,放到C: Tomcat 5.0webapps  myServletsWEB-INFlib下 和 C: j2sdk1.4.2_09lib下. 字串6

  3.新建index.html 放到C: Tomcat 5.0  webapps  myServlets下

字串6

  


JFreeChart 简单<img alt="" src="http://51dev.com/ads/de.gif" />例子


JFreeChart: 简单例子


字串4

  下面有两个简单例子,调用servlet,生成统计图.

字串9

  


  • 条形统计图href="servlet/ServletDemo1">条形统计图;

  • 可以选择统计图类型 href="chart.html">三种类型.



字串7

  4.新建Chart.html 放到C: Tomcat 5.0  webapps  myServlets下 字串3

  


JFreeChart Servlet Demo 2


JFreeChart Servlet Demo



Please choose a chart type:


Pie Chart
Bar Chart
Time Series Chart





字串8

  5.新建ServletDemo1.java 并用JDK编译成class 文件,当然要将C:  j2sdk1.4.2_09  lib  jfreechart-1.0.0-rc1.jar加到CLASSPATH中,才能正确编译. 字串7


字串8

  package com.jrefinery.chart.demo;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class ServletDemo1 extends HttpServlet {
public ServletDemo1() {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream out = response.getOutputStream();
try {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10.0, "S1", "C1");
dataset.addValue(4.0, "S1", "C2");
dataset.addValue(15.0, "S1", "C3");
dataset.addValue(14.0, "S1", "C4");
dataset.addValue(-5.0, "S2", "C1");

字串3


dataset.addValue(-7.0, "S2", "C2");
dataset.addValue(14.0, "S2", "C3");
dataset.addValue(-3.0, "S2", "C4");
dataset.addValue(6.0, "S3", "C1");
dataset.addValue(17.0, "S3", "C2");
dataset.addValue(-12.0, "S3", "C3");
dataset.addValue( 7.0, "S3", "C4");
dataset.addValue(7.0, "S4", "C1");
dataset.addValue(15.0, "S4", "C2");
dataset.addValue(11.0, "S4", "C3");
dataset.addValue(0.0, "S4", "C4");
dataset.addValue(-8.0, "S5", "C1");
dataset.addValue(-6.0, "S5", "C2");
dataset.addValue(10.0, "S5", "C3");
dataset.addValue(-9.0, "S5", "C4");
dataset.addValue(9.0, "S6", "C1");
dataset.addValue(8.0, "S6", "C2");
dataset.addValue(null, "S6", "C3");
dataset.addValue(6.0, "S6", "C4");
dataset.addValue(-10.0, "S7", "C1");
dataset.addValue(9.0, "S7", "C2");
dataset.addValue(7.0, "S7", "C3");
dataset.addValue(7.0, "S7", "C4");
dataset.addValue(11.0, "S8", "C1");
dataset.addValue(13.0, "S8", "C2");
dataset.addValue(9.0, "S8", "C3");
dataset.addValue(9.0, "S8", "C4"); 字串3
dataset.addValue(-3.0, "S9", "C1");
dataset.addValue(7.0, "S9", "C2");
dataset.addValue(11.0, "S9", "C3");
dataset.addValue(-10.0, "S9", "C4");
JFreeChart chart = ChartFactory.createBarChart(
"Bar Chart",
"Category",
"Value",
dataset,
PlotOrientation.VERTICAL,
true, true, false
);
response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 400, 300);
}
catch (Exception e) {
System.err.println(e.toString());
}
finally {
out.close();
}
}
}

字串5


字串1

  6.新建ServletDemo2 .java 并用JDK编译 字串2

  package com.jrefinery.chart.demo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo2 extends HttpServlet {
public ServletDemo2() {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = new PrintWriter(response.getWriter());
try {
String param = request.getParameter("chart");
response.setContentType("text/html");
out.println("");
out.println("");
out.println("JFreeChart Servlet Demo 2");
out.println("");
out.println("");
out.println("

JFreeChart Servlet Demo

");
out.println("

");
out.println("Please choose a chart type:");
out.println("

");
String pieChecked = (param.equals("pie") ? " CHECKED" : ""); 字串5
String barChecked = (param.equals("bar") ? " CHECKED" : "");
String timeChecked = (param.equals("time") ? " CHECKED" : "");
out.println(" Pie Chart");
out.println(" Bar Chart");
out.println(" Time Series Chart");
out.println("

");
out.println("");
out.println("

");
out.println("

");
out.println("");
out.println("");
out.println("");
out.flush();
out.close();
}
catch (Exception e) {
System.err.println(e.toString());
}
finally {
out.close();
}
}
}

字串7


字串9

  7.新建ServletDemo2ChartGenerator .java 并用JDK编译.

字串2

  package com.jrefinery.chart.demo;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.*;
import org.jfree.data.general.*;
import org.jfree.data.time.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class ServletDemo2ChartGenerator extends HttpServlet {
public ServletDemo2ChartGenerator() {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream out = response.getOutputStream();
try {
String type = request.getParameter("type");
JFreeChart chart = null;
if (type.equals("pie")) {
chart = createPieChart(); 字串2
}
else if (type.equals("bar")) {
chart = createBarChart();
}
else if (type.equals("time")) {
chart = createTimeSeriesChart();
}
if (chart != null) {
response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 800, 600);
}
}
catch (Exception e) {
System.err.println(e.toString());
}
finally {
out.close();
}
}
private JFreeChart createPieChart() {
// create a dataset...
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("One", new Double(43.2));
data.setValue("Two", new Double(10.0));
data.setValue("Three", new Double(27.5));
data.setValue("Four", new Double(17.5));
data.setValue("Five", new Double(11.0));
data.setValue("Six", new Double(19.4));
JFreeChart chart = ChartFactory.createPieChart(
"Pie Chart",
data,
true, true, false
);
return chart;
}
private JFreeChart createBarChart() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10.0, "S1", "C1");

字串6


dataset.addValue(4.0, "S1", "C2");
dataset.addValue(15.0, "S1", "C3");
dataset.addValue(14.0, "S1", "C4");
dataset.addValue(-5.0, "S2", "C1");
dataset.addValue(-7.0, "S2", "C2");
dataset.addValue(14.0, "S2", "C3");
dataset.addValue(-3.0, "S2", "C4");
dataset.addValue(6.0, "S3", "C1");
dataset.addValue(17.0, "S3", "C2");
dataset.addValue(-12.0, "S3", "C3");
dataset.addValue( 7.0, "S3", "C4");
dataset.addValue(7.0, "S4", "C1");
dataset.addValue(15.0, "S4", "C2");
dataset.addValue(11.0, "S4", "C3");
dataset.addValue(0.0, "S4", "C4");
dataset.addValue(-8.0, "S5", "C1");
dataset.addValue(-6.0, "S5", "C2");
dataset.addValue(10.0, "S5", "C3");
dataset.addValue(-9.0, "S5", "C4");
dataset.addValue(9.0, "S6", "C1");
dataset.addValue(8.0, "S6", "C2");
dataset.addValue(null, "S6", "C3");
dataset.addValue(6.0, "S6", "C4");
dataset.addValue(-10.0, "S7", "C1");
dataset.addValue(9.0, "S7", "C2");
dataset.addValue(7.0, "S7", "C3");
dataset.addValue(7.0, "S7", "C4");
字串4

dataset.addValue(11.0, "S8", "C1");
dataset.addValue(13.0, "S8", "C2");
dataset.addValue(9.0, "S8", "C3");
dataset.addValue(9.0, "S8", "C4");
dataset.addValue(-3.0, "S9", "C1");
dataset.addValue(7.0, "S9", "C2");
dataset.addValue(11.0, "S9", "C3");
dataset.addValue(-10.0, "S9", "C4");
JFreeChart chart = ChartFactory.createBarChart3D(
"Bar Chart",
"Category",
"Value",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);
return chart;
}
private JFreeChart createTimeSeriesChart() {
// here we just populate a series with random data...
TimeSeries series = new TimeSeries("Random Data");
Day current = new Day(1, Month.JANUARY, 2001);
for (int i = 0; i < 100; i ) {
series.add(current, Math.random() * 100);
current = (Day) current.next();
}
XYDataset data = new TimeSeriesCollection(series);
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Time Series Chart",
"Date",
"Rate",
data,
true,
true,
false
字串9

);
return chart;
}
}

字串7


字串9

  8,如果顺利,通过5.6.7步,我们手上有会有三个CLASS文件.我们将这三个CLASS文件拷到C:  Tomcat 5.0  webapps  myServlets  WEB-INF  classescom  jrefinery  chart   demo目录下

字串2

  9.新建WEB.XML拷贝到C:  Tomcat 5.0   webapps   myServlets   WEB-INF下 字串5

  
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">



ServletDemo1


com.jrefinery.chart.demo.ServletDemo1




ServletDemo2


com.jrefinery.chart.demo.ServletDemo2




ServletDemo2ChartGenerator


com.jrefinery.chart.demo.ServletDemo2ChartGenerator



ServletDemo1
/servlet/ServletDemo1


ServletDemo2
/servlet/ServletDemo2


ServletDemo2ChartGenerator

字串7

/servlet/ServletDemo2ChartGenerator

字串8

  10.重启TOMCAT http://172.25.49.1:8080/myServlets/  . 字串8

  最后:小心上面拷贝路径,不知道为什么斜杠出不来 字串4

  我参考JFreeChart Developer Guide中例子,我发现生成统计图真很漂亮,由于我是JAVA初学者,其中很多东西我也是直接拷贝过来,不过上面代码应该是没有问题,能正常运行. 字串7

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
相关文章