jsp JFreeChart使用心得与例子

JSP JFreeChart使用心得与例子

简介

JFreeChart是一个Java开源的图表库,可以创建各种类型的图表,包括折线图、散点图、柱状图等等。JFreeChart的使用非常灵活,可以通过Java代码生成图表,也可以使用JSP等Web技术生成图表。

这篇文章主要介绍使用JSP结合JFreeChart生成图表的方法,并给出两个示例。

实现

引入JFreeChart

在使用JFreeChart前,需要先将JFreeChart的jar包引入项目中。可以从JFreeChart官网下载最新版本的jar包,也可以从Maven仓库中下载。将下载好的jar包放置到项目的classpath中。

生成折线图

首先,我们需要生成数据,并将数据传递给JFreeChart。下面是一个生成随机数据的方法。

private static XYDataset createDataset() {
    XYSeries series = new XYSeries("Random Data");
    Random r = new Random();
    for (int i = 0; i < 10; i++) {
        series.add(i, r.nextDouble() * 100);
    }
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series);
    return dataset;
}

然后,我们需要将数据传递给JFreeChart,并生成图像。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // create dataset
    XYDataset dataset = createDataset();

    // create chart
    JFreeChart chart = ChartFactory.createXYLineChart(
            "Random Data",
            "X",
            "Y",
            dataset,
            PlotOrientation.VERTICAL,
            true,
            true,
            false
    );

    // set response content type
    response.setContentType("image/png");

    // create output stream
    OutputStream out = response.getOutputStream();

    // write chart to output stream
    ChartUtilities.writeChartAsPNG(out, chart, 400, 300);

    // close output stream
    out.close();
}

最后,我们可以在JSP页面中使用<img>标签将生成的图像嵌入到页面中。

<img src="chart" />

生成饼状图

生成饼状图的方法与生成折线图的方法类似。

首先,我们需要生成数据,并将数据传递给JFreeChart。下面是一个生成随机数据的方法。

private static PieDataset createDataset() {
    DefaultPieDataset dataset = new DefaultPieDataset();
    Random r = new Random();
    for (int i = 1; i <= 5; i++) {
        dataset.setValue("Category " + i, r.nextInt(100));
    }
    return dataset;
}

然后,我们需要将数据传递给JFreeChart,并生成图像。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // create dataset
    PieDataset dataset = createDataset();

    // create chart
    JFreeChart chart = ChartFactory.createPieChart(
            "Random Data",
            dataset,
            true,
            true,
            false
    );

    // set response content type
    response.setContentType("image/png");

    // create output stream
    OutputStream out = response.getOutputStream();

    // write chart to output stream
    ChartUtilities.writeChartAsPNG(out, chart, 400, 300);

    // close output stream
    out.close();
}

最后,我们可以在JSP页面中使用<img>标签将生成的图像嵌入到页面中。

<img src="chart" />

总结

通过以上两个示例,我们可以看到JSP结合JFreeChart生成图表非常简单。只需要将数据传递给JFreeChart,并将生成的图表写入输出流即可。有了这个基础,我们可以更加灵活地生成各种类型的图表,并将其嵌入到网页中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jsp JFreeChart使用心得与例子 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • c#实现根据网络IP显示地理位置功能示例

    C#实现根据网络IP显示地理位置功能攻略 什么是IP地址 IP地址是Internet Protocol Address(英语,直译为“网际协议地址”)的缩写,是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 IP地址在Internet中用作唯一标识因特网上的设备。 根据IP地址显示地理位置 …

    Java 2023年5月19日
    00
  • Java语言中的文件数据流示例详解

    Java语言中的文件数据流是用于读写文件的常用方法之一,主要用于在Java程序中读取文件内容或将程序中生成的数据写入文件中。下面就对Java语言中的文件数据流进行详细讲解,包含过程中的两条示例。 一、文件数据流的概述 1.1 数据流的概念 数据流是指一种按照一定规则流动的数据,就像水流一样。在Java中,数据流是一种用于读写数据的对象,通常用于读写文件或网络…

    Java 2023年5月20日
    00
  • 浅谈JDK8中的Duration Period和ChronoUnit

    下面我将详细讲解一下关于“浅谈JDK8中的Duration Period和ChronoUnit”的攻略。 什么是Duration和Period? 在Java8中,Duration和Period是两个时间间隔的类。它们可以用于各种时间操作,比如计算两个日期之间的差异,计算一个操作的持续时间等。 Duration类 Duration类表示时间上的持续时间,它可以…

    Java 2023年5月20日
    00
  • JavaWeb登陆功能实现代码

    下面是“JavaWeb登录功能实现代码”的完整攻略: 1.准备工作 要实现登录功能,需要如下准备工作: 开发工具:建议使用Eclipse或IDEA等JavaWeb开发工具 数据库:建议使用MySQL等关系型数据库 服务器:Tomcat等JavaWeb服务器 2.创建用户表 登录需要依赖用户表,因此需要创建用户表。可以使用如下SQL语句创建一个简单的用户表: …

    Java 2023年5月19日
    00
  • Mybatis实战教程之入门到精通(经典)

    “Mybatis实战教程之入门到精通(经典)”是一篇非常详细的教程,在Mybatis的学习过程中非常有参考意义。下面我将为您介绍这篇教程的完整攻略。 目录 Mybatis实战教程之入门到精通(经典)教程包含以下内容: Mybatis入门介绍 Mybatis快速开发基础 Mybatis动态SQL开发 Mybatis中的一级缓存和二级缓存 Mybatis整合Sp…

    Java 2023年5月20日
    00
  • Java的Lambda表达式和Stream流的作用以及示例

    现在就为你讲解Java的Lambda表达式和Stream流的作用。 Lambda表达式的作用 Lambda表达式是Java 8引入的新特性,它可以简化代码冗长的写法,同时也可以将函数作为参数传递进去。常见的用法包括在集合中对元素进行过滤、映射、排序等操作,从而避免了繁琐的循环语句。 Lambda表达式的语法可以简单概括为: (parameter1, para…

    Java 2023年5月26日
    00
  • 基于html5+java实现大文件上传实例代码

    让我详细为您介绍一下“基于html5+java实现大文件上传实例代码”的完整攻略和代码实现。 简介 为了解决传统文件上传方式在处理大文件上传时所面临的性能瓶颈和功能缺失,我们需要使用一些新的技术手段。html5提供了File API来处理客户端文件读取,而java的高性能能力则可以处理并发上传和分片上传等复杂操作,两者结合起来,就能够实现一套优秀的大文件上传…

    Java 2023年5月19日
    00
  • Java实现删除排序数组中重复元素的方法小结【三种方法比较】

    当我们需要删除有序数组中的重复元素时,有多种实现方法。这篇文章将比较三种不同的Java实现方法,并讲解其优缺点。三种方法分别是: 1.利用Java自带的ArrayList类2.使用Java的双指针方法3.使用一个计数器来记录重复元素 使用Java自带的ArrayList类 使用Java自带的ArrayList类来实现删除有序数组中重复元素的方法非常简单。具体…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部