首页>代码>java JFreechart开发报表的实例demo下载>/JFreeChart图表/jfree/src/com/gaojingmin/CurveChartServlet.java
package com.gaojingmin;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedHashMap;
import java.util.Map;

import javax.servlet.RequestDispatcher;
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.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.TimeSeriesDataItem;

public class CurveChartServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public CurveChartServlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");

        // 曲线图标题
        String title = "趋势分析";
        // 曲线图X轴提示
        String domain = "年份";
        // 曲线图Y轴提示
        String range = "GDP";

        // 创建时间数据源,每一个TimeSeries在图上是一条曲线
        TimeSeries chinaTs = new TimeSeries("中国");
        Map<Integer, Integer> chinaht = new LinkedHashMap<Integer, Integer>();
        chinaht.put(2002, 22100);
        chinaht.put(2003, 14100);
        chinaht.put(2004, 27100);
        chinaht.put(2005, 38100);
        chinaht.put(2006, 29000);
        chinaht.put(2007, 90100);
        
        for (Integer i:chinaht.keySet()) {
            chinaTs.add(new TimeSeriesDataItem(new Day(1, 1, i),new Double(chinaht.get(i))));            
        }

        // 创建时间数据源,每一个TimeSeries在图上是一条曲线
        TimeSeries japanTs = new TimeSeries("日本");
        Map<Integer, Integer> japanht = new LinkedHashMap<Integer, Integer>();
        japanht.put(2000, 43900);
        japanht.put(2003, 63500);
        japanht.put(2004, 43400);
        japanht.put(2005, 63200);
        japanht.put(2006, 53100);
        japanht.put(2007, 32900);
        
        for (Integer i:japanht.keySet()) {
            japanTs.add(new TimeSeriesDataItem(new Day(1, 1, i),new Double(japanht.get(i))));            
        }

        // 创建时间数据源,每一个TimeSeries在图上是一条曲线
        TimeSeries usaTs = new TimeSeries("美国");
        Map<Integer, Integer> usaht = new LinkedHashMap<Integer, Integer>();
        usaht.put(2001, 100000);
        usaht.put(2003, 159800);
        usaht.put(2004, 109700);
        usaht.put(2005, 129600);
        usaht.put(2006, 9800);
        usaht.put(2007, 149800);
        
        for (Integer i:usaht.keySet()) {
            usaTs.add(new TimeSeriesDataItem(new Day(1, 1, i),new Double(usaht.get(i))));            
        }
        
        // 时间曲线数据集合
        TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.addSeries(chinaTs);
        dataset.addSeries(japanTs);
        dataset.addSeries(usaTs);

        // 时间曲线元素
        JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,
                range, dataset, true, true, false);

        // 创建文件并将图片地址传递到页面
        String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300,
                null, request.getSession());
        String graphURL = request.getContextPath() + "/displayChart?filename="
                + filename;
        request.setAttribute("graphURL", graphURL);

        // 标识
        request.setAttribute("msg", "折线图效果");

        // 页面转向
        RequestDispatcher dispatcher = request
                .getRequestDispatcher("CurveChart.jsp");
        dispatcher.forward(request, response);
        return;


	}

	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occurs
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}
最近下载更多
1358849392  LV21 2023年7月5日
ok1821  LV1 2022年5月10日
shmtuec9  LV1 2021年12月28日
ericxu1116  LV24 2021年6月5日
fangzhicheng  LV1 2021年4月21日
infoboy  LV1 2021年3月5日
zjjhzjb  LV14 2019年12月7日
Yann12138  LV1 2019年12月5日
空心菜4  LV9 2019年5月30日
听雨楼  LV9 2019年5月22日
最近浏览更多
fesfefe  LV13 2023年11月1日
qq1357574774  LV2 2023年8月14日
微信网友_5992582549164032  LV6 2023年2月21日
1358849392  LV21 2022年11月23日
ok1821  LV1 2022年5月10日
huzxiong 2022年2月24日
暂无贡献等级
shmtuec9  LV1 2021年12月28日
James_hong  LV1 2021年10月14日
17558420274  LV16 2021年7月27日
heshiyang  LV1 2021年7月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友