亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chartservlet.java

?? JWebChart is a simple package to allow anyone to render complex charts using a Java Servlet. The pro
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * ChartServlet.java
 * 
 * Created on 08-Feb-2006
 *
 * JWebChart
 * Copyright (C) 2006 by Luke Trevorrow (www.axioma.org.uk)
 */

package uk.org.axioma.servlet;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ChartDeleter;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.xml.DatasetReader;
import org.jfree.data.xy.XYSeries;

import uk.org.axioma.chart.CategoryChart;
import uk.org.axioma.chart.MeterChart;
import uk.org.axioma.chart.PieChart;
import uk.org.axioma.chart.XYChart;

/**
 * <p>
 * The ChartServlet object 
 * </p>
 * @author <a href="mailto:luke.trevorrow@gmail.com">Luke Trevorrow</a>
 * @version 0.3
 * 
 */
public class ChartServlet extends HttpServlet {

	/**
	 * autogenerated serialVersionUID
	 */
	private static final long serialVersionUID = 6748895383151504466L;


	/**
	 * 
	 */
	public ChartServlet() {
		super();
	}
	
    /**
     * Init method.
     *
     * @throws ServletException never.
     */
    public void init() throws ServletException {
        return;
    }

    /**
     * Service method.
     *
     * @param request  the request.
     * @param response  the response.
     *
     * @throws ServletException ??.
     * @throws IOException ??.
     */
    public void service(HttpServletRequest request, 
                        HttpServletResponse response)
            throws ServletException, IOException {

        HttpSession session = request.getSession();
        Enumeration en = request.getParameterNames();
        Map<String,String[]> map = new HashMap<String,String[]>(request.getParameterMap());
        JFreeChart jfc = null;
        
        String series = null;
        int width = 300, height = 200;
        
        /*PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        out.println("<H4>");*/
        
        // go through the hash map and extract the core values.
        // extract the rest in the createChart methods
        if (map.containsKey("Series")) {
        	// use the getParameter method rather than the map to get the string array as I am sure this will be faster
        	series = request.getParameter("Series");
        	map.remove("Series");
        	//out.println("<br>Graph : " + series);
        }
        
        if (map.containsKey("Width")) {
        	width = Integer.valueOf(request.getParameter("Width")).intValue();
        	map.remove("Width");
        	//out.println("<br>Width : " + width);
        }
        
        if (map.containsKey("Height")) {
        	height = Integer.valueOf(request.getParameter("Height")).intValue();
        	map.remove("Height");
        	//out.println("<br>Height : " + height);
        }
        
        // create the chart
        if (series.equalsIgnoreCase("Pie")) {
        	jfc = createPie(map, request); 	
        } else if (series.equalsIgnoreCase("Category")) {
        	jfc = createCategory(map, request);
        } else if (series.equalsIgnoreCase("XY")) {
        	jfc = createXY(map, request);
        } else if (series.equalsIgnoreCase("Meter")) {
        	jfc = createMeter(map, request);
        }
                
        // save the image for display
        String filename = ServletUtilities.saveChartAsPNG(jfc,width,height,null);
        //out.println(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"
            );
        }

        //  Check that the graph being served was created by the current user
        //  or that it begins with "public"
        boolean isChartInUserList = false;
        ChartDeleter chartDeleter = (ChartDeleter) session.getAttribute(
            "JFreeChart_Deleter"
        );
        if (chartDeleter != null) {
            isChartInUserList = chartDeleter.isChartAvailable(filename);
        }

        boolean isChartPublic = false;
        if (filename.length() >= 6) {
            if (filename.substring(0, 6).equals("public")) {
                isChartPublic = true;
            }
        }
        
        boolean isOneTimeChart = false;
        if (filename.startsWith(ServletUtilities.getTempOneTimeFilePrefix())) {
            isOneTimeChart = true;   
        }

        if (isChartInUserList || isChartPublic || isOneTimeChart) {
            //  Serve it up
            ServletUtilities.sendTempFile(file, response);
            if (isOneTimeChart) {
                file.delete();
            }
        } else {
            throw new ServletException("Chart image not found");
        }
        
        // For keys of a map
        //for (Iterator<String> it=map.keySet().iterator(); it.hasNext(); ) {
            //Object key = it.next();
            //out.println("Key : " + key);
        //}
        // just return the filename to the browser for now
        //out.println("</H4>");
        //out.println("<TR>");
        //out.println("<TH CLASS=\"data\">");
        //out.println("filename");
        //out.println("</TH>");
        //out.println("</TR>");
        //out.print("<TD CLASS=\"data\">");
        //out.println(filename);
        //out.println("</TD>");
    }
    
    /**
     * Create meter chart method.
     * @param data which can consist of elements such as:
     * <ul>
     * <li> Type - the type of chart: either Chord, Pie, Circle, RAGChord, RAGPie, or RAGCircle.</li>
     * <li> Title - the title of the chart.</li>
     * <li> Value - the value range for the meter.</li>
     * <li> Units - the unit of measure for the meter.</li>
     * <li> Range - the range for the meter.</li>
     * <li> Interval - the interval ranges for the legend. Format is name=startval,endval, eg: Low=0,70</li>
     * </ul>
     * @param req which is the Http Servlet Request
     * 
     * @return JFreeChart
     * @throws ServletException
     * 
     */
    private JFreeChart createMeter(Map<String, String[]> data, HttpServletRequest req)
    		throws ServletException {
    	MeterChart mc = new MeterChart();

    	// what type?
    	if (data.containsKey("Type")) {
    		String type = req.getParameter("Type");
    		if (type.equalsIgnoreCase("Chord")) {
            	mc.type = MeterChart.TYPECHORD;
            } else if (type.equalsIgnoreCase("Circle")) {
            	mc.type = MeterChart.TYPECIRCLE;
            } else if (type.equalsIgnoreCase("Pie")) {
            	mc.type = MeterChart.TYPEPIE;
            } else if (type.equalsIgnoreCase("RAGChord")) {
            	mc.type = MeterChart.TYPERAGCHORD;
            } else if (type.equalsIgnoreCase("RAGCircle")) {
            	mc.type = MeterChart.TYPERAGCIRCLE;
            } else if (type.equalsIgnoreCase("RAGPie")) {
            	mc.type = MeterChart.TYPERAGPIE;
            }
    		data.remove("Type");
    	}
    	
    	// set the title for the Pie Chart
    	if (data.containsKey("Title")) {
    		mc.title = req.getParameter("Title");
    		data.remove("Title");
    	}
    	// set the units of measure
    	if (data.containsKey("Units")) {
    		mc.units = req.getParameter("Units");
    		data.remove("Units");
    	}
    	// set the range
    	if (data.containsKey("Range")) {
    		mc.range = req.getParameter("Range");
    		data.remove("Range");
    	}
    	// set the value
    	if (data.containsKey("Value")) {
    		mc.dataset.setValue(Double.valueOf(req.getParameter("Value")));
    		data.remove("Value");
    	}
    	
    	mc.interval = data;
    	//MeterChart.out = out;
    	
    	// create the chart
    	JFreeChart chart = mc.getChart();
    	return chart;
    }
    
    /**
     * Create pie chart method.
     * 
     * @param data which can consist of elements such as:
     * <ul>
     * <li> Type - the type of chart: either 2D, 3D, or Ring.</li>
     * <li> Title - the title of the chart.</li>
     * <li> XMLFile - the XML file name if applicable.</li>
     * <li> data - the data to plot. Format is name=value&name=value, eg: Fish=70&Chips=66.</li>
     * </ul>
     * @param req which is the Http Servlet Request	
     *
     * @return JFreeChart
     * @throws ServletException
     * 
     */
    private JFreeChart createPie(Map<String, String[]> data, HttpServletRequest req) 
    		throws ServletException {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品你懂的在线欣赏| 亚洲欧洲一区二区在线播放| 亚洲国产欧美在线人成| 97久久久精品综合88久久| 国产日韩欧美综合在线| 成人午夜av在线| 亚洲欧美精品午睡沙发| 欧美丝袜自拍制服另类| 人人精品人人爱| 国产网站一区二区| 色悠悠亚洲一区二区| 天天综合日日夜夜精品| 欧美v日韩v国产v| 高清不卡一区二区| 亚洲乱码国产乱码精品精98午夜 | 国产制服丝袜一区| 欧美精品一区二区三区一线天视频| 激情成人综合网| 亚洲视频香蕉人妖| 91精品午夜视频| 国内精品在线播放| 国产精品国产三级国产| 欧美日韩成人在线一区| 国产激情一区二区三区| 亚洲精品国产高清久久伦理二区| 制服丝袜亚洲色图| 国产高清在线精品| 亚洲一区在线视频| 久久久久久久久伊人| 在线影院国内精品| 欧美日韩精品福利| 久久久久久久性| 欧亚洲嫩模精品一区三区| 日韩电影一二三区| 国产精品免费久久久久| 51精品国自产在线| 99精品视频在线免费观看| 日本aⅴ免费视频一区二区三区| 久久久久久免费网| 欧美亚洲动漫精品| 白白色 亚洲乱淫| 美女视频第一区二区三区免费观看网站 | 亚洲欧美日韩在线播放| 91精品国模一区二区三区| aaa欧美日韩| 国产在线精品一区二区夜色 | 五月婷婷综合在线| 亚洲欧洲美洲综合色网| 精品国产青草久久久久福利| 欧美系列一区二区| 成人高清免费在线播放| 极品少妇xxxx精品少妇| 三级一区在线视频先锋| 亚洲图片激情小说| 欧美韩国一区二区| 精品国产乱码久久久久久牛牛 | 久久se精品一区精品二区| 亚洲精品成人在线| 国产精品沙发午睡系列990531| 在线不卡中文字幕| 日本韩国欧美国产| 9色porny自拍视频一区二区| 国产综合久久久久久鬼色 | 国产在线精品一区二区不卡了| 亚洲国产精品嫩草影院| 亚洲另类色综合网站| 中文字幕中文乱码欧美一区二区 | 中文字幕一区二区三区乱码在线| 26uuu久久天堂性欧美| 欧美草草影院在线视频| 欧美一级艳片视频免费观看| 在线精品观看国产| 91麻豆高清视频| 国模一区二区三区白浆| 欧美日韩一级二级三级| 色婷婷av一区二区三区软件 | 久久精品国产99久久6| 首页国产丝袜综合| 午夜视频一区二区三区| 天天色 色综合| 日韩精品一二区| 美女国产一区二区| 久久99精品久久久久久国产越南| 免费精品视频在线| 蜜臀久久99精品久久久久宅男| 日本怡春院一区二区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲一区二区3| 日本亚洲最大的色成网站www| 日韩国产欧美视频| 国内精品久久久久影院薰衣草| 日本美女视频一区二区| 美国毛片一区二区三区| 国产呦萝稀缺另类资源| 国产成+人+日韩+欧美+亚洲| 不卡免费追剧大全电视剧网站| 91丨porny丨最新| 欧美三电影在线| 日韩视频国产视频| 精品毛片乱码1区2区3区| 亚洲国产精品麻豆| 蜜臀久久久99精品久久久久久| 国产一区二区剧情av在线| 成人免费不卡视频| 91色九色蝌蚪| 91超碰这里只有精品国产| 日韩精品专区在线影院重磅| 久久精品日韩一区二区三区| 亚洲欧洲av色图| 亚洲午夜精品网| 激情文学综合插| 91视频你懂的| 日韩三级视频在线看| 国产日韩三级在线| 午夜精品国产更新| 国产精品自拍在线| 色婷婷香蕉在线一区二区| 欧美一级欧美三级在线观看| 国产日韩欧美精品在线| 亚洲日本在线a| 精久久久久久久久久久| 色视频一区二区| 久久婷婷国产综合精品青草| 国产精品久久久久久户外露出| 亚洲国产cao| 成人国产一区二区三区精品| 欧美日韩美女一区二区| 亚洲国产精品成人综合色在线婷婷| 亚洲一区二区在线免费看| 国产乱码精品一区二区三区忘忧草| 色悠悠久久综合| 中文在线免费一区三区高中清不卡| 性做久久久久久免费观看欧美| 国产成人综合在线| 91精品国产乱码| 一区二区三区加勒比av| 国产91色综合久久免费分享| 欧美精品1区2区| 亚洲人妖av一区二区| 国内精品自线一区二区三区视频| 欧美日韩国产首页| 国产精品国产三级国产有无不卡 | 欧美精品vⅰdeose4hd| 国产精品久久久久影院亚瑟| 久久99国产精品尤物| 欧美日韩国产123区| 亚洲三级免费观看| 99久精品国产| 欧美国产精品一区| 国产在线精品一区二区夜色 | 91久久精品一区二区二区| 日本一区二区不卡视频| 精品在线视频一区| 欧美日本乱大交xxxxx| 亚洲精品久久7777| 97久久精品人人做人人爽| 欧美激情综合五月色丁香小说| 日韩精品一二三区| 欧美日韩国产乱码电影| 一级特黄大欧美久久久| 91在线视频免费观看| 国产精品久久久久aaaa樱花| 国产精品一区一区| 国产欧美一区二区三区网站| 国产在线视视频有精品| 精品美女一区二区| 精品一区二区三区在线播放 | 91麻豆精品国产自产在线| 一区二区三区国产精华| 在线视频一区二区三区| 一二三区精品视频| 色菇凉天天综合网| 一区二区三区中文字幕| 在线日韩一区二区| 亚洲午夜电影网| 91精品中文字幕一区二区三区 | 久草精品在线观看| 精品国产免费视频| 国产成人av一区二区三区在线 | 国产欧美视频在线观看| 国产一区二区在线观看免费| 久久青草国产手机看片福利盒子| 日韩视频在线你懂得| 国产精品毛片久久久久久| 粉嫩av一区二区三区在线播放| 中文字幕乱码亚洲精品一区| 成人动漫视频在线| 一区二区三区国产豹纹内裤在线| 欧美亚洲高清一区| 免费的成人av| 国产欧美日韩视频一区二区| 成人中文字幕在线| 亚洲一区二区在线播放相泽| 欧美一区二区视频观看视频| 久久99国内精品| 国产精品久久久久久久久搜平片| 91在线一区二区三区| 五月综合激情网| 国产欧美综合在线观看第十页| 97se狠狠狠综合亚洲狠狠|