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 %>">

  

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

  1. JSP 页面跳转中的参数传递

    1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...

  2. JSP页面中文乱码问题

    $.get()方法到服务器端中文乱码 在jsp页面使用encodeURI(“中文”),在服务器端进行解码 String name = req.getParameter("name" ...

  3. JSP页面+请求转发+EL表达式

    1) JSP全称Java Server Pages,顾名思义就是运行在java服务器中的页面,也就是在我们JavaWeb中的动态页面,其本质就是一个Servlet.2) 其本身是一个动态网页技术标准, ...

  4. 将jsp页面转化为图片或pdf(一)

    在项目中遇见了将jsp页面转化为pdf的问题,试过itext,但是itext需要标准的html代码,我的页面中的一些属性是itext所不识别的,所以努力了一段时间后就放弃了,后来发现htmlutil抓 ...

  5. JSP 页面中插入图片

    第一步 在 JSP 页面中插入图片 EL 表达式 ${pageContext.request.contextPath } 的值为当前的项目名称 <html> ... <body> ...

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

    首先,图片和工程不在一个盘符下.图片也不能放到工程下.  在JSP 文件中 <img src="E:/图片/1.jpg"/>  这样是引不到图片的.因为,JSP页面在引 ...

  7. jsp页面图片显示不出来

    jsp页面就是MyJsp.jsp <body> This is my JSP page. <br> <img src="img/top.jpg"> ...

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

    Java代码: File filePic = new File(path+"1-ab1.png"); if(filePic.exists()){ FileInputStream i ...

  9. 将jsp页面转化为图片或pdf升级版(二)(qq:1324981084)

    java高级架构师全套vip教学视频,需要的加我qq1324981084 上面我们已经将jsp页面转化成html页面了,那么接下来我们的目标是利用这个html页面形成pdf或图片格式.这里我用到的是w ...

随机推荐

  1. Web前端开发学习笔记(一)

    最近在复习Web前端的开发知识,于是就把大二上学期曾经学过的东西拿出来复习一遍,把自己在做曾经的作业时遇到有意义的点都记下来吧. Homework1:http://my.ss.sysu.edu.cn/ ...

  2. Linq to SQL - 撤销所有未提交的改动

    在某些情况下我们需要撤销/丢弃所有未提交的改动,包括Update, Delete和Insert.context中GetChangeSet()方法可以返回当前所有未提交的改动,而我们的目标是清空Chan ...

  3. String被设计成不可变和不能被继承的原因

    String是所有语言中最常用的一个类.我们知道在Java中,String是不可变的.final的.Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类 ...

  4. mysql字符编码的设置以及mysql中文乱码的解决方法

    查看字符编码 首先,将中文插入到数据库乱码是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,应该设置为utf8查看自己的数据库编码是否已设置好,进入数据库,输 ...

  5. session判断重复提交

    import javax.servlet.http.HttpServletRequest; /** * @author: jiang * @Date: 2019/2/19 09:37 * @Descr ...

  6. 'webpack' 不是内部或外部命令解决办法以及npm配置

    昨天在笔记本上安装webpack,按照教程下来,使用webpack命令行,报错:'webpack' 不是内部或外部命令,也不是可运行的程序 或批处理文件.网上有大量的配置方法与解决办法,找了好久才成功 ...

  7. Android 数据库 ObjectBox 源码解析

    一.ObjectBox 是什么? greenrobot 团队(现有 EventBus.greenDAO 等开源产品)推出的又一数据库开源产品,主打移动设备.支持跨平台,最大的优点是速度快.操作简洁,目 ...

  8. mysql数据库优化课程---15、mysql优化步骤

    mysql数据库优化课程---15.mysql优化步骤 一.总结 一句话总结:索引优化最立竿见影 1.mysql中最常用最立竿见影的优化是什么? 索引优化 索引优化,不然有多少行要扫描多少次,1亿行大 ...

  9. java poi分批次导入Excel

    最近换了新工作,公司要求导入Excel要分批次导入,并且是多线程的情况下执行导入,查了很多资料,没看到比较复合的,就打算自己写一个吧,可能有不足,希望指出. 上面说到多线程,这边就不贴出代码了,具体思 ...

  10. 设计模式--访问者模式C++实现

    访问者模式C++实现 1定义Visitor Pattern 封装一些作用于某种数据结构中各元素的操作,他可以在不改变数据结构的前提下定义作用于这些元素新的操作 2类图 角色分析 Visitor抽象访问 ...