首页 > 代码库 > jfc在jsp页面画图,不将图片存在服务器端,只存入会话session(可用)

jfc在jsp页面画图,不将图片存在服务器端,只存入会话session(可用)

jfc在jsp页面画图,不将图片存在服务器端,只存入会话session。其中主要用到jfc的一个servlet类。

<%@ page contentType="text/html;charset=gb2312" errorPage="../common/error.jsp" %><%@ page import="dqz.jsp.*" %><%@ page import="java.sql.*" %><%@ page import="javax.sql.*" %><%@ page import="javax.naming.*" %><%@ include file="../common/config.jsp"%><%@ include file="reporter_session.jsp"%><%@ page import="	        org.jfree.chart.servlet.ServletUtilities,    	        java.awt.Font,	        java.awt.Color, 					org.jfree.chart.ChartFactory,  					org.jfree.chart.ChartFrame,  					org.jfree.chart.JFreeChart,  					org.jfree.chart.StandardChartTheme,  				  org.jfree.chart.plot.CategoryPlot,  					org.jfree.chart.plot.PlotOrientation,  					org.jfree.data.category.CategoryDataset,  					org.jfree.data.category.DefaultCategoryDataset,					org.jfree.chart.ChartUtilities,					org.jfree.chart.axis.CategoryAxis,					org.jfree.chart.axis.NumberAxis,					org.jfree.chart.axis.ValueAxis,					org.jfree.chart.labels.StandardCategoryItemLabelGenerator,					org.jfree.chart.renderer.category.BarRenderer,					org.jfree.chart.title.TextTitle, java.io.FileOutputStream,					java.io.IOException, java.io.PrintWriter,						java.util.ArrayList, java.util.HashMap, java.util.List,						java.util.Map,						java.text.DecimalFormat,  			              						java.text.NumberFormat,						java.io.FileOutputStream,						java.io.IOException,						java.io.PrintWriter,						java.sql.Connection,						java.sql.DriverManager,						java.sql.PreparedStatement,						java.sql.ResultSet,						java.sql.SQLException,						java.util.ArrayList,						java.util.List,						org.jfree.chart.servlet.ServletUtilities,  						java.util.Map,						org.jfree.chart.labels.StandardPieSectionLabelGenerator,						org.jfree.chart.labels.StandardPieToolTipGenerator,						org.jfree.chart.plot.PiePlot3D,						org.jfree.data.general.DefaultPieDataset,						org.jfree.data.general.PieDataset,            org.jfree.chart.title.LegendTitle "%>//===========================直方图测试开始===================================================					DefaultCategoryDataset dataset = new DefaultCategoryDataset();					dataset.addValue(610, "广州", "猪肉");					dataset.addValue(220, "广州", "牛肉");					dataset.addValue(530, "广州", "鸡肉");					dataset.addValue(340, "广州", "鱼肉");										JFreeChart mBarChart = ChartFactory.createBarChart3D("肉类销量统计图",					"肉类",					"销量",					dataset,					PlotOrientation.VERTICAL,					false,					false,					false);				        //图表标题设置  	        TextTitle mTextTitle = mBarChart.getTitle();  	        mTextTitle.setFont(new Font("黑体", Font.BOLD, 20));  	        //mBarChart.setTitle(new TextTitle("学校人员分布图",new Font("黑体", Font.BOLD, 20)));  	        //图表图例设置  	        LegendTitle mLegend = mBarChart.getLegend();  	        if(mLegend != null)  	            mLegend.setItemFont(new Font("宋体", Font.CENTER_BASELINE, 15));  	        //mBarChart.getLegend().setItemFont(new Font("宋体", Font.CENTER_BASELINE, 15));  	        //设置柱状图轴  	        CategoryPlot mPlot = (CategoryPlot)mBarChart.getPlot();  	          	        //x轴  	        CategoryAxis mDomainAxis = mPlot.getDomainAxis();  	        //设置x轴标题的字体  	        mDomainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));  	        //设置x轴坐标字体  	        mDomainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));  	        //y轴  	        ValueAxis mValueAxis = mPlot.getRangeAxis();  	        //设置y轴标题字体  	        mValueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));  	        //设置y轴坐标字体  	        mValueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));  	        //柱体显示数值  	        BarRenderer mRenderer= new BarRenderer();  	        mRenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());  	        mRenderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 10));  	        mRenderer.setItemLabelsVisible(true);  	        mPlot.setRenderer(mRenderer);  				String filename = ServletUtilities.saveChartAsPNG(mBarChart, 800, 400, null, session);			String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;			//===========================直方图测试结束===================================================//===========================饼图测试开始===================================================			 //设置数据源          DefaultPieDataset mpieDataset = new DefaultPieDataset();                 mpieDataset.setValue(" 市场前期", new Double(10));           mpieDataset.setValue(" 立项", new Double(15));           mpieDataset.setValue(" 计划", new Double(20));           mpieDataset.setValue(" 需求与设计", new Double(10));           mpieDataset.setValue(" 执行控制", new Double(25));           mpieDataset.setValue(" 收尾", new Double(10));           mpieDataset.setValue(" 运维",new Double(10));                 //建立图表          JFreeChart mpieChart = ChartFactory.createPieChart3D("项目进度分布", mpieDataset, true, true, false);          //设置图表标题          mpieChart.setTitle(new TextTitle("项目状态分布", new Font("黑体",Font.CENTER_BASELINE, 20)));          //设置Legend字体          mpieChart.getLegend().setItemFont(new Font("宋体", Font.ROMAN_BASELINE, 15));                    PiePlot3D mPiePlot = (PiePlot3D)mpieChart.getPlot();          //以默认方式显示百分比          //mPiePlot.setLabelGenerator(new StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));          // 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位          mPiePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));          // 底部图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例           mPiePlot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));          //设置饼图标签字体          mPiePlot.setLabelFont(new Font("宋体", Font.PLAIN, 15));                  String piefilename = ServletUtilities.saveChartAsPNG(mpieChart, 800, 400, null, session);		    String piegraphURL = request.getContextPath() + "/DisplayChart?filename=" + piefilename;//===========================饼图测试结束===================================================//===========================折线图测试开始===================================================						  	StandardChartTheme mChartThemezxt = new StandardChartTheme("CN");  	        mChartThemezxt.setLargeFont(new Font("黑体", Font.BOLD, 20));  	        mChartThemezxt.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15));  	        mChartThemezxt.setRegularFont(new Font("宋体", Font.PLAIN, 15));  	        ChartFactory.setChartTheme(mChartThemezxt); 	         	   // row keys...        String series1 = "First";        String series2 = "Second";        String series3 = "Third";        // column keys...        String type1 = "Type 1";        String type2 = "Type 2";        String type3 = "Type 3";        String type4 = "Type 4";        String type5 = "Type 5";        String type6 = "Type 6";        String type7 = "Type 7";        String type8 = "Type 8";        // create the dataset...        DefaultCategoryDataset dataset_zxt = new DefaultCategoryDataset();        dataset_zxt.addValue(1.0, series1, type1);        dataset_zxt.addValue(4.0, series1, type2);        dataset_zxt.addValue(3.0, series1, type3);        dataset_zxt.addValue(5.0, series1, type4);        dataset_zxt.addValue(5.0, series1, type5);        dataset_zxt.addValue(7.0, series1, type6);        dataset_zxt.addValue(7.0, series1, type7);        dataset_zxt.addValue(0.0, series1, type8);        dataset_zxt.addValue(5.0, series2, type1);        dataset_zxt.addValue(7.0, series2, type2);        dataset_zxt.addValue(6.0, series2, type3);        dataset_zxt.addValue(8.0, series2, type4);        dataset_zxt.addValue(4.0, series2, type5);        dataset_zxt.addValue(4.0, series2, type6);        dataset_zxt.addValue(2.0, series2, type7);        dataset_zxt.addValue(1.0, series2, type8);        dataset_zxt.addValue(4.0, series3, type1);        dataset_zxt.addValue(3.0, series3, type2);        dataset_zxt.addValue(2.0, series3, type3);        dataset_zxt.addValue(3.0, series3, type4);        dataset_zxt.addValue(6.0, series3, type5);        dataset_zxt.addValue(3.0, series3, type6);        dataset_zxt.addValue(4.0, series3, type7);        dataset_zxt.addValue(3.0, series3, type8);    	       	        	         JFreeChart mzxtChart = ChartFactory.createLineChart(  	                "折线图",  	                "时间",  	                "数量",  	                dataset_zxt,  	                PlotOrientation.VERTICAL,  	                true,   	                true,   	                false);  	          	        CategoryPlot mzxtPlot = (CategoryPlot)mzxtChart.getPlot();  	        mzxtPlot.setBackgroundPaint(Color.LIGHT_GRAY);  	        mzxtPlot.setRangeGridlinePaint(Color.BLUE);//背景底部横虚线  	        mzxtPlot.setOutlinePaint(Color.RED);//边界线            mzxtChart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));//图列                  CategoryAxis mzxtdomainAxis = mzxtPlot.getDomainAxis(); //X坐标 		     mzxtdomainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  //X		     mzxtdomainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));          	    	ValueAxis mzxtValueAxis = mzxtPlot.getRangeAxis(); 	    	mzxtValueAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));  //Y	    	mzxtValueAxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));  		   		  TextTitle zxttextTitle = mzxtChart.getTitle();//坐标标题设置   		  zxttextTitle.setFont(new Font("黑体", Font.PLAIN, 20));                      String zxtfilename = ServletUtilities.saveChartAsPNG(mzxtChart, 800, 400, null, session);		    String zxtgraphURL = request.getContextPath() + "/DisplayChart?filename=" + zxtfilename;//===========================折线图测试结束===================================================			                 %><img src="http://www.mamicode.com/" width=800 height=400 border=0 usemap="#<%= filename %>"><br/><img src="http://www.mamicode.com/" width=800 height=400 border=0 usemap="#<%= piefilename %>"><br/><img src="http://www.mamicode.com/" width=800 height=400 border=0 usemap="#<%= zxtfilename %>">

  

 

jfc在jsp页面画图,不将图片存在服务器端,只存入会话session(可用)