使用JFreeChart在JSP中绘制折线图教程

需积分: 10 6 下载量 77 浏览量 更新于2024-09-09 收藏 48KB DOC 举报
"这篇文档主要介绍了如何在JSP页面中使用JFreeChart库来创建并显示折线图,包括柱状图的创建过程,并提供了相关的代码示例。" JFreeChart是一个强大的Java图表库,它允许开发者在Java应用程序、Swing组件、Applet或Web应用(如JSP)中生成各种高质量的图表。以下将详细讲解如何利用JFreeChart在JSP页面上实现折线图,特别是一个柱状图的创建步骤。 首先,你需要确保引入了JFreeChart所需的库。这包括三个JAR文件: 1. jcommon-1.0.15.jar:这是JFreeChart的基础库,包含了一些基础的图形和数据处理类。 2. jfreechart-1.0.12.jar:这是JFreeChart的主要库,包含了各种图表的生成和定制功能。 3. jfreechart-1.0.12-experimental.jar:这个库包含了一些实验性的图表类型和特性。 接下来,为了能在Web应用中展示图表,我们需要在`web.xml`配置文件中注册一个名为`DisplayChart`的Servlet。这个Servlet由JFreeChart提供,用于处理图表的显示请求。在`web.xml`中添加以下内容: ```xml <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> ``` 在JSP或Servlet中,你可以创建柱状图并保存为PNG图像,然后通过HTTP请求获取这个图像。以下是一个简单的示例: 1. 创建数据集:`DefaultCategoryDataset`是JFreeChart提供的一种数据集类型,可以用来存储分类数据。你可以根据实际需求填充数据。 ```java DefaultCategoryDataset dataSet = new DefaultCategoryDataset(); // 假设有一个名为list的列表,其中包含Item对象,我们需要将这些数据填入数据集中 for (int i = 0; i < list.size(); i++) { Item item = (Item) list.get(i); dataSet.setValue(item.getRating(), "testName", item.getTime()); } ``` 2. 创建柱状图:`ChartFactory.createBarChart()`方法用于生成柱状图,参数依次是图表标题、类别轴标签、值轴标签、数据集、图例是否垂直排列、工具提示是否开启以及URL链接是否启用。 ```java JFreeChart chart = ChartFactory.createBarChart( "统计图", // 图表标题 "ratings", // 分类轴标签 "time", // 值轴标签 dataSet, // 数据集 PlotOrientation.VERTICAL, // 图形方向(竖直) false, // 是否显示图例 true, // 是否显示工具提示 false // 是否生成URL链接 ); ``` 3. 保存并获取图像URL:`ServletUtilities.saveChartAsPNG()`方法用于将图表保存为PNG图片,返回的字符串是保存的文件名。然后你可以构建一个指向Servlet的URL,用于在JSP页面中显示图表。 ```java try { String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session); String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; request.setAttribute("graphURL", graphURL); } catch (Exception e) { // 处理异常 } ``` 最后,在JSP页面中,通过`<img>`标签引入刚刚创建的图表: ```html <img src="<%=request.getAttribute("graphURL")%>"> ``` 通过以上步骤,你就能在JSP页面上成功显示由JFreeChart生成的柱状图。记得根据实际项目需求调整代码,例如数据源的获取、图表样式和配置等。JFreeChart库提供了丰富的定制选项,可以根据需要进行深入学习和应用。