`

Jfreechart学习笔记6-Servlet创建Jfreechart的方法

阅读更多
数据库的内容
CATEGORY | VALUE
---------+------
London   | 54.3
New York | 43.4
Paris    | 17.9


import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

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.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.data.jdbc.JDBCPieDataset;

public class PieServlet extends HttpServlet {
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			//获得输出流
			OutputStream os = response.getOutputStream();
			//获得相于的数据对象
			DefaultPieDataset dataset = (DefaultPieDataset) this.readData();
			
			JFreeChart chart = ChartFactory.createPieChart("Test", dataset, true, true, false);
				response.setContentType("image/png");
				//写到输出流,并在页面上面显示
				ChartUtilities.writeChartAsPNG(os, chart, 800, 600);
				os.close();
		} catch (RuntimeException e) {
			e.printStackTrace();
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}
	/**
	 *  连结JDBC,并创建JDBCPieDataset对象返回
	 * @return
	 */
	private PieDataset readData() {
		//创建JDBCPieDataset对象
		JDBCPieDataset data = null;
		String url = "jdbc:mysql://127.0.0.1:3306/jfreechartdb";
		Connection con = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			System.err.print("ClassNotFoundException: ");
		}
		try {
			con = DriverManager.getConnection(url, "root", "root");
			//把JDBCPieDataset对象和Connection关联
			data = new JDBCPieDataset(con);
			String sql = "select * from piedata;";
			//获得数据
			data.executeQuery(sql);
			con.close();
		} catch (SQLException e) {
			System.err.print("SQLException: ");
		} catch (Exception e) {
			System.err.print("Exception: ");
		}
		return data;
	}
}


同时还有其它对象JDBCCategoryDataset,JDBCXYDataset,对应的是条状和,坐标,用于封装相应的数据
分享到:
评论

相关推荐

    JfreeChart 学习笔记

    ### JfreeChart 学习笔记:深度解析与应用 #### JFreeChart概览与核心功能 JFreeChart作为一款开源的JAVA项目,专为图表开发而设计,支持丰富的图表类型,包括饼图、柱状图(含普通及堆栈柱状图)、线图、散点图、...

    Struts 学习笔记 Struts 中扩展JfreeChart 笔记

    - **使用ServletResponse**:通过HttpServletResponse的getOutputStream()方法,将图表的BufferedImage对象转换成流并输出,实现图表在浏览器中的显示。 - **使用ChartUtilities类**:JfreeChart提供的...

    JFreeChart学习笔记

    **JFreeChart学习笔记** JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Applet或Web应用中创建各种复杂的图表。这个开源项目提供了多种图表类型,如饼图、柱状图、线图、散点图、甘特图等...

    Struts学习笔记

    总结,本学习笔记涵盖了Struts的基础架构、国际化处理、类型转换的实现以及利用JFreeChart生成图表的方法。通过这些内容的学习,开发者可以更好地理解Struts框架的工作原理,并且能够灵活地应用于实际的Web开发项目...

    Java学习笔记

    总之,"Java学习笔记"涵盖了从基础到进阶的众多Java主题,结合JFreeChart和iText这两个实用库,不仅提供了对Java编程语言的深入理解,还展示了其在数据可视化和文档生成方面的强大能力。对于任何希望提升Java技能的...

    Ajax总结和java框架学习笔记

    ### Ajax技术概述与Java框架学习笔记 #### 一、Ajax技术简介 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,...

    javaweb实训总结.pdf

    实训者在初期可能经历了一个混乱的学习阶段,但随着时间的推移,通过不断的实践和反思,逐步形成有效的学习方法,比如有目的性的复习,而不是盲目地翻看笔记。 总的来说,JavaWeb实训不仅是技术的磨练,更是学习...

Global site tag (gtag.js) - Google Analytics