1,在Web程序中加入jcommon-1.0.0.jar和jfreechart-1.0.1.jar
2,在web.xml中加入jfreeChart的配置:
<!-- JFreeChart访问出成的图片的Serlvet -->
<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>/DisplayChart</url-pattern>
</servlet-mapping>
3,新建一个我们自己的访问业务逻辑的Servlet如下:
package com.mengya.servlet;
import java.io.IOException;
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.JFreeChart;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.general.DefaultPieDataset;
/**
* 由JFreeChart生成图片在Web中访问
* 对于Web程序可以由org.jfree.chart.servlet.ServletUtilities类完成图片的生成
* @author 张明学
*
*/
@SuppressWarnings("serial")
public class MyjfreeChartServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DefaultPieDataset dpd = new DefaultPieDataset();
dpd.setValue("管理人员", 25);
dpd.setValue("市场人员", 10);
dpd.setValue("开发人员", 50);
dpd.setValue("其它人员", 15);
JFreeChart chart = ChartFactory.createPieChart("某公司组织结构图",
dpd, true, false, false);
/**
* 图片放在服务临时目录中,对tomcat是在X\Apache Software Foundation\Tomcat 6.0\temp
*/
String fileName=ServletUtilities.saveChartAsJPEG(chart,800,600,request.getSession());
/**
* 出生成web页面访问图片的url,该url由org.jfree.chart.servlet.DisplayChart负责
* org.jfree.chart.servlet.DisplayChart是一个Serlvet已经配置在web.xml中了
* 所以在这个就可以直接引用该Serlvet配置的路径
* 即“/DisplayChart?fileName=”是固定的除非你把org.jfree.chart.servlet.DisplayChart这个Serlvet的访问路径改成别的了
* org.jfree.chart.servlet.DisplayChart中的部分代码如下:
* HttpSession session = request.getSession();
* String filename = request.getParameter("filename");
*
* if (filename == null) {
* throw new ServletException("Parameter 'filename' must be supplied");
* }
*
* // Replace ".." with ""
* // This is to prevent access to the rest of the file system
* filename = ServletUtilities.searchReplace(filename, "..", "");
*
* // Check the file exists
* File file = new File(System.getProperty("java.io.tmpdir"), filename);
* if (!file.exists()) {
* throw new ServletException(
* "File '" + file.getAbsolutePath() + "' does not exist"
* );
* }
*/
String url=request.getContextPath()+"/DisplayChart?filename="+fileName;
request.setAttribute("jfreeChartUrl", url);
request.getRequestDispatcher("jfreeChart.jsp").forward(request, response);
}
}
4,在web.xml中配置我们自己的Serlvet如下:
<!-- 自己的serlvet -->
<servlet>
<servlet-name>MyjfreeChartServlet</servlet-name>
<servlet-class>
com.mengya.servlet.MyjfreeChartServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyjfreeChartServlet</servlet-name>
<url-pattern>/MyjfreeChartServlet</url-pattern>
</servlet-mapping>
5,在我们的jsp中访问我们的Serlvet如下:
index.jsp <h3 align="center"><a href="./MyjfreeChartServlet">出成图片</a></h3>
jfreeChart.jsp
<div align="center">
<img src="${jfreeChartUrl }">
</div>
分享到:
相关推荐
JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或Web应用中创建各种复杂的图表,如柱状图、饼图、线形图、散点图等。本实战开发资源主要关注饼图的实现,这对于数据可视化来说至关重要,尤其是在...
怎么为java elipse 工程添加第三方包,附加jfreeechart-1.5.jar类库。这里省略50字
功能说明: 系统主要包括首页,个人中心,医护人员管理,操作员管理,体温数据管理,隔离治疗管理,轮班调度管理,支援信息管理等功能模块。 环境说明: 开发语言:python Python版本:3.6.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:pycharm
基于springboot的学院教学工作量统计系统源码数据库文档.zip
SciPy-1.11.1-cp311-cp311-linux_armv7l.whl
解压之后在elasticsearch的jdk\conf\security\java.policy文件下新增这段,然后重启es就可以使用了 permission java.net.SocketPermission "*", "connect,resolve"; permission java.lang.RuntimePermission "setContextClassLoader"; permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.RuntimePermission "createClassLoader"; permission java.security.SecurityPermission "putProviderProperty.MySQLScramSha1Sasl"; permission java.security.SecurityPermission "insertProvider";
scipy-1.7.0-cp37-cp37m-linux_armv7l.whl
基于springboot的流浪动物管理系统源码数据库文档.zip
bimdata_api_client-4.0.2-py3-none-any.whl
206847144042651【第3版】第1章-信息化发展.pdf
文件快速搜索 Everything。包含安装包及语言包
环境说明: 开发软件:VS 2017 (版本2017以上即可,不能低于2017) 数据库:SqlServer2008r2(数据库版本无限制,都可以导入) 开发模式:mvc
科兴中维医药现代物流中心方案1(拆零货架+地推).dwg
基于springboot高校大学生竞赛项目管理系统源码数据库文档.zip
matplotlib-3.8.1-cp311-cp311-linux_armv7l.whl
2023-04-06-项目笔记-第三百二十一阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.319局变量的作用域_319- 2024-11-18
方便大家学习扫雷游戏,设计扫雷游戏的实现,涉及多方面的知识
ta_lib-0.5.1-cp39-cp39-win_amd64.whl
matplotlib-3.5.0-cp39-cp39-linux_armv7l.whl