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="<%= graphURL %>" width=800 height=400 border=0 usemap="#<%= filename %>">
<br/>
<img src="<%= piegraphURL %>" width=800 height=400 border=0 usemap="#<%= piefilename %>">
<br/>
<img src="<%= zxtgraphURL %>" width=800 height=400 border=0 usemap="#<%= zxtfilename %>">

  

时间: 2024-10-10 09:17:57

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

在servlet转向jsp页面的路径问题

requestDispatcher 对象可以有两中方式获得1.通过request对象的getRequestDispatcher方法获得2.通过ServletContext的getRequestDispatcher方法获得,但是这个方法获得的requestDispatcher 对象中的path必须以“/”开头,代表应用程序根目录,而第一中方法获得的requestDispatcher 对象则没有这种限制 不管是那种方式获得的,只要以"/"开头就代表应用程序根目录.你的问题出在jsp页面中链

读取本地图片写到jsp页面

//读取本地图片写到jsp页面 File file = new File("D:/parking/A区12号.jpg"); ServletOutputStream out = null; InputStream in = null; try { in = new FileInputStream(file); response().setContentType("multipart/form-data"); int tempbyte; out = response()

如何在jsp页面显示存储在数据库的图片

1.从数据库中查找图片的二进制数据,把查找出来的数据set到会话中 request.getSession().setAttribute("img",图片的二进制数据 ); 2.把数据write到流里 1 package cn.jbit.auction.web.servlet; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.Htt

JSP 页面中用绝对路径显示图片

首先,图片和工程不在一个盘符下.图片也不能放到工程下. 在JSP 文件中 <img src="E:/图片/1.jpg"/>  这样是引不到图片的.因为,JSP页面在引图片的时候是在页面解析的路径是:<img src="http://localhost:8080/Chaomer/images/1.jpg">.也就是说JSP在引图片的时候是先去你的工程目录下找的. 所以如果要在JSP中引入其他盘符的图片,有两种方法可以解决: 使用虚拟路径来配置:

jsp页面图片显示不出来

jsp页面就是MyJsp.jsp <body> This is my JSP page. <br> <img src="img/top.jpg"> </body> 有两种方法: 1. 可以使用绝对路径,无论怎么换位置,图片路径都能找到<img src="/backManager/img/top.jpg">2. 相对路径:如果出现嵌套,会出现找不到路径,正常jsp页面如果要用,推荐你先用dreamweaver

java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)

Java代码: File filePic = new File(path+"1-ab1.png"); if(filePic.exists()){ FileInputStream is = new FileInputStream(filePic); int i = is.available(); // 得到文件大小 byte data[] = new byte[i]; is.read(data); // 读数据 is.close(); response.setContentType(&q

struts2 hibernate 在jsp页面上面显示多个图片

最近需要在一个jsp页面上面遍历出多个图片,平时做的比较多的是string integer等类型的遍历,图片是二进制的与原来常用的类型有很大的不同. BBFSeal.java public class BBFSeal { private Blob content; private String id; private String name; private BBFUseruser; private Blob imageSeal; public BBFSeal() { } public BBFS

servlet和struts2一起使用,实现绝对路径下的图片输出到jsp页面

如果我们在web.xml中配置的struts2的接收请求的路径为: <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 是可以用struts2中使用servlet的,只是必须让struts2的action来转发到servlet的url-pattern中的地址就可以了.我们简单的举例如下:

解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题

通常把jsp页面放在webRoot的/WEB-INF下可以防止访问者直接输入页面. 而webRoot的/WEB-INF下的页面是受保护的,用户无法通过形如http://localhost:8080/test/webRoot/WEB-INF/content/xx.jsp来访问,他们的访问都必须透过struts处理请求才能达到. 然而,当把页面放在/web-inf下面时,JSP页面还是避免不了跟"外部"的js,css,图片"交互",因为需要引入一些webRoot/css