0 0

关于JFreeChart 生成图片 10


web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>
org.jfree.chart.servlet.DisplayChart
</servlet-class>
</servlet>
  <servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>

  <servlet>
    <servlet-name>JFreeChart</servlet-name>
    <servlet-class>test.JFreeChartServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>JFreeChart</servlet-name>
    <url-pattern>/JFreeChart</url-pattern>
  </servlet-mapping>
</web-app>
------------------------------------------------
JFreeChartServlet

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("初级程序员", 10000);
dataset.setValue("中级程序员", 23000);
dataset.setValue("高级程序员", 10000);
dataset.setValue("项目经理", 6000);
dataset.setValue("系统分析师", 6000);
dataset.setValue("软件架构师", 3000);
dataset.setValue("其他", 10000);
JFreeChart chart = ChartFactory.createPieChart3D("IT行业职业分布图",dataset, true, false, false);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
plot.setStartAngle(150D);
plot.setDirection(Rotation.CLOCKWISE);
plot.setForegroundAlpha(0.5F);
plot.setNoDataMessage("无数据显示");
plot.setCircular(true);
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}={2}"));

//第一种 session方式
//String fileName = ServletUtilities.saveChartAsPNG(chart, 700, 400,
// null, request.getSession());
//String graphURL = request.getContextPath() + "/DisplayChart?filename=" + fileName;
//request.setAttribute("url", graphURL);
//request.getRequestDispatcher("index.jsp").forward(request, response);

//第二种 流输出方式
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);
}

-----------------------------------------------------------
jsp

//第一种 session方式
<%@ page contentType="text/html;"%>
<img src="<%=request.getAttribute("url")%>">

/第二种 流输出方式
<%@ page contentType="image/jpeg;"%>
<img src="<%=request.getContextPath()%>/JFreeChart">





流输出方式怎么不显示?
大家来看看

问题补充:第二种方式的img路径: <br />http://localhost:8080/JFreeChart/JFreeChart <br /> <br />你们答的都不行,我都试过了。

问题补充:<div class="quote_title">xiaolongfeixiang 写道</div><div class="quote_div"><span style="color: blue"><strong> <br />你总共有2个错误: <br /> <br />1、与流方式对应的servlet采用的是POST的方法</strong></span> <br /> <br /><pre name="code" class="java">&lt;img src="&lt;%=request.getContextPath()%&gt;/JFreeChart"&gt; </pre> <br /> <br />使用直接访问Servlet的方法,实际上访问的是Get方法。所以得不到图片。 <br /> <br /><strong><span style="color: blue">2、采用流方式的页面的MIME类型,错误。</span></strong> <br /> <br /><pre name="code" class="xml">
&lt;%@ page contentType="text/html;"%&gt;
This is Text&lt;br&gt;
This is picture.&lt;br&gt;
&lt;img src="&lt;%=request.getContextPath()%&gt;/JFreeChart"&gt;
</pre> <br /> <br /><strong>这样就清楚了!!</strong></div> <br />public void doGet(HttpServletRequest request, HttpServletResponse response) <br /> throws ServletException, IOException { <br /> <br /> this.doPost(request, response); <br /> }

问题补充:便以大家分析问题,我把整个工程放上来. <br />访问路径: <br />http://localhost:8080/JFreeChart/index.jsp

问题补充:<div class="quote_title">xiaolongfeixiang 写道</div><div class="quote_div">我在Firefox中测试,你的项目不用修改,即可运行。 <br /> <br />但是在IE下有问题。 <br /> <br />更新下JfreeChart的jar包,更新到1.0.13,就没有问题了。 <br /> <br /> <br /> <br />PS:你的代码中,明显MIME有误,虽然不影响显示,但是还是用注意。 <br /> <br /><pre name="code" class="java"> response.setContentType("image/png");

//第二种 流输出方式
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);</pre> <br /> <br />改为: <br /><pre name="code" class="java"> response.setContentType("image/jpeg");

//第二种 流输出方式
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);</pre></div> <br /> <br />火狐下还是有问题,如下图 <br />
2010年2月11日 13:38
  • 大小: 556 Bytes
  • 大小: 1.7 KB

10个答案 按时间排序 按投票排序

0 0

采纳的答案

那就是:

response.setContentType("image/jpeg");   

2010年2月20日 16:33
0 0


更新jar包后,会产生中文乱码,这个要通过 设置字体 来解决

2010年2月20日 15:33
0 0

我在Firefox中测试,你的项目不用修改,即可运行。

但是在IE下有问题。

更新下JfreeChart的jar包,更新到1.0.13,就没有问题了。



PS:你的代码中,明显MIME有误,虽然不影响显示,但是还是用注意。

		response.setContentType("image/png"); 

		//第二种 流输出方式
		ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);


改为:
		response.setContentType("image/jpeg"); 

		//第二种 流输出方式
		ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);

2010年2月20日 15:30
0 0


更改建议,和你的错误相应:

1、test.JFreeChartServlet的Servelt方法提供一个GET的入口。


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}


2、更改JSP的MIME设置:


<%@ page contentType="text/html;"%> 
<img src="<%=request.getContextPath()%>/JFreeChart"> 



至于图片的中文乱码,不属于本问题的讨论范围!!


2010年2月20日 14:48
0 0


你总共有2个错误:

1、与流方式对应的servlet采用的是POST的方法


<img src="<%=request.getContextPath()%>/JFreeChart"> 


使用直接访问Servlet的方法,实际上访问的是Get方法。所以得不到图片。

2、采用流方式的页面的MIME类型,错误。

<%@ page contentType="text/html;"%> 
This is Text<br>
This is picture.<br>
<img src="<%=request.getContextPath()%>/JFreeChart"> 


这样就清楚了!!

2010年2月20日 14:41
0 0


应该是这样的:

<%@ page contentType="text/html;"%> 
<img src="<%=request.getContextPath()%>/JFreeChart"> 

2010年2月11日 22:00
0 0


明显是 第二种方式的 ContentType设置有误!!

这是错误的!

引用

<%@ page contentType="image/jpeg;"%>
<img src="<%=request.getContextPath()%>/JFreeChart">


看看这样:


<%@ page contentType="text/html;"%>
<img src="<%=request.getContextPath()%>/JFreeChart">
/code]

2010年2月11日 21:59
0 0

<img>路径拿出来看看对不对。

2010年2月11日 13:38
0 0

response.setContentType("image/png");
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);

2010年2月11日 13:38
0 0

//获得OutputStream对象
OutputStream os = response.getOutputStream();
//以PNG格式向客户端输出
ChartUtilities.writeChartAsPNG(os, chart, width, height);

您试试看分开写怎么样。

2010年2月11日 13:38

相关推荐

    JFreeChart生成图片并显示

    《JFreeChart生成图片并显示》 在Java开发中,我们常常需要生成各种图表来直观地展示数据,比如折线图、柱状图、饼图等。JFreeChart是一个强大的开源Java库,它提供了丰富的图表生成功能,可以满足开发者在各种应用...

    jfreechart生成图片及导出pdf 、excel

    在这个“jfreechart生成图片及导出pdf、excel”的主题中,我们将深入探讨如何利用JFreeChart来生成这些图表,并将其导出为PDF和Excel格式。 1. **JFreeChart基本使用** JFreeChart库提供了多种图表类型,包括...

    jfreechart部署linux服务器生成图片乱码解决方案

    标题 "jfreechart部署在Linux服务器上生成图片乱码的解决方案" 涉及到的主要知识点是关于Java图形库JFreeChart在Linux环境中的使用,特别是解决中文字符乱码的问题。JFreeChart是一个广泛使用的开源Java库,它允许...

    jFreeChart生成报表图片

    在"jFreeChart生成报表图片"的项目中,我们可以看到一个已经准备好的示例,包含了多种图表类型的实现,帮助开发者快速理解和应用jFreeChart。项目中的柱状图用于比较不同类别的数量或值,饼图则用于显示各部分占整体...

    jfreechart生成报表图片.zip

    这个“jfreechart生成报表图片.zip”压缩包包含了一组资源,可以帮助你快速创建各种类型的图表,如柱状图、饼图、折线图等,非常适合用于数据可视化。 1. **JFreeChart库介绍**: JFreeChart是开源的Java库,它...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    标题中提到的“jfreechart生成折线图、饼图、柱状图、堆栈柱状图”是指使用Java的一个开源图形库JFreeChart来创建不同类型的统计图表。JFreeChart是一个功能全面、成熟的Java图表库,广泛应用于各种应用程序中进行...

    java生成报表JFreeChart

    在`效果图.png`中,可能展示了JFreeChart生成的各种图表实例,这些实例可以帮助初学者理解如何配置颜色、标签、图例和数据范围等。 除了基本的图表类型,JFreeChart还提供了许多高级功能,如自定义颜色、图例样式、...

    纯Java动态生成SVG饼图与JFreeChart超强功能生成SVG图表

    纯Java动态生成 SVG 饼图与 JFreeChart 超强功能生成 SVG 图表 在本文中,我们将探讨如何使用 Java 生成 SVG 饼图,并使用 JFreeChart 生成 SVG 图表。我们还将讨论 JFreeChart 的一些缺陷和解决方案。 一、Java ...

    又见乱码——CentOS下JFreeChart生成图片的中文乱码

    标题"又见乱码——CentOS下JFreeChart生成图片的中文乱码"所指出的问题,是开发者在使用JFreeChart库在CentOS操作系统上生成包含中文字符的图表时遇到的典型问题。JFreeChart是一个强大的Java库,用于生成高质量的...

    JFreeChart生成饼图

    ### JFreeChart生成饼图知识点详解 #### 一、引言 在Web开发中,图表是一种非常有效的数据可视化工具,能够帮助用户更直观地理解数据。`JFreeChart`是Java平台上的一个开源图表库,提供了丰富的图表类型,包括柱状...

    jfreechart在B/S生成图片过程(临时图片处理)-----参考自网络资源

    **JFreeChart在B/S架构下生成图片的流程与临时图片处理** JFreeChart是一款流行的Java图表库,它提供了一套完整的API,用于创建各种复杂的2D图表,如饼图、柱状图、线图、散点图等。在B/S(浏览器/服务器)架构中,...

    JfreeChart-雷达图与导出

    本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用** 雷达图是一种多维数据可视化工具,特别适合于比较多个变量在同一标准下的表现。在JFreeChart中,创建雷达图主要分为以下几...

    JFreeChart详细中文教程|案例|中文API|乱码解决方法|等集合

    1、JFreeChart生成图片路径教程 2、JFreeChart使用教程(含下载安装,超详细) 3、JFreeChart使用详细教程 4、JFreeChart学习--jsp柱状图教程 5、JFreeChart乱码解决方法 等等 包括csdn上得优秀案例 ------20+M的...

    JFreeChart生成报表Demo案例

    在使用JFreeChart生成3D效果报表时,你需要: 1. **导入依赖**:在项目中引入JFreeChart相关的JAR包,这些包包含了所有生成图表所需的功能和组件。 2. **创建数据模型**:定义你需要展示的数据,这可能是一个二维...

    JFreeChart生成饼图最简单demo.

    本文将详细介绍如何使用JFreeChart生成饼图,包括所需环境、基本代码实现及关键步骤。 ### 一、环境准备 要使用JFreeChart生成饼图,首先需要确保项目环境中包含了JFreeChart的依赖。通常,这涉及到添加JFreeChart...

    在 JavaFx 中使用 JFreeChart 生成图表

    以上就是在JavaFX中使用JFreeChart生成图表的基本流程。为了使图表更具交互性,还可以添加事件监听器,如点击图表元素时触发特定操作。此外,JFreeChart提供了丰富的配置选项,可以调整图表的外观,如颜色、线条样式...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...

    Freemarker导出word示例,包括jfreechart图表

    4. 使用JFreeChart生成图表并保存为图片文件。 5. 在生成的Word文档中,确保图表图像正确显示。 最后,压缩包中的"FreemarkerWord"可能包含了以下文件: - 一个或多个Freemarker模板文件(.ftl),定义了Word文档的...

    JSP利用JFreeChart生成折线图

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而JFreeChart则是一个强大的Java图表库,能够帮助开发者生成各种复杂的图表,包括折线图。本教程将详细介绍如何在JSP中利用JFreeChart库来...

Global site tag (gtag.js) - Google Analytics