错误 404,是找不到路径吧,可是我应该都配置好了,为什么还找不到路径呢?
我也把jfreechart-1.0.10-demo.jar等这些包放到项目的lib下了啊。我还在配置环境那加了jfreechart-1.0.10.jar、jcommon-1.0.13.jar、gnujaxp.jar这三个呢,反正加不加都不行…
之前用的是jfreechart1.0.13 可以运行那些示例,但是中文显示不出来只显示正方框,现在换用jfreechart 1.0.10,想连接SQL数据库弄个各个专业的就业率的图出来,我现在有个人家的小例子,
test1.jsp文件:<%@ page contentType= "text/html;charset=GBK"%>
<%@ page import="java.io.PrintWriter"%>
<%@ page import = "com.jsp.util.PieDemo"%>
<%@ page import = "java.sql.*"%>
<%!int sa1=0;%>
<%!int sa2=1;%>
<%!int sa3=1;%>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=music","sa","35");
Statement stmt = conn.createStatement(); String sql6 = "select salary from student where name= 'li' ";
String sql7 = "select salary from student where name= 'liukai' ";
String sql8 = "select salary from student where name= 'zhangchi' ";
ResultSet rs6 = stmt.executeQuery(sql6);
while(rs6.next()){
sa1 = rs6.getInt( "salary");
}
ResultSet rs7 = stmt.executeQuery(sql7);
while(rs7.next()){
sa2 = rs7.getInt( "salary");
}
ResultSet rs8 = stmt.executeQuery(sql8);
while(rs8.next()){
sa3 = rs8.getInt( "salary");
}
out.println(sa1);
out.println(sa2);
out.println(sa3);
PieDemo chart = new PieDemo();
chart.setValue( "六月 ",sa1);
chart.setValue( "七月 ",sa2);
chart.setValue( "八月 ",sa3);
String filename =chart.generatePieDemo( "PieChartDemo1",session,new PrintWriter(out));
String graphURL = request.getContextPath()+ "/servlet/DisplayChart?filename= " + filename;
%>
<html>
<head>
<title>
</title>
</head>
<body >
<p align=center><img src=" <%=graphURL%> "width=500 height=300 border=0 usemap="# <%=filename%> ">
</p>
</body>
</html>PieDemo.java文件:package com.jsp.util;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.NumberFormat; import javax.servlet.http.HttpSession; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.PieToolTipGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.urls.StandardPieURLGenerator;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.RectangleInsets; public class PieDemo { private DefaultPieDataset dataset=new DefaultPieDataset();
public void setValue(String key,double value){
dataset.setValue(key,value);
}
@SuppressWarnings("deprecation")
public String generatePieDemo(String title,HttpSession session,PrintWriter pw){
String filename=null;
try{ JFreeChart chart=ChartFactory.createPieChart( "饼形图 ",
dataset,
true,
false,
false);
chart.setBackgroundPaint(Color.red);
Font font=new Font( "黑体 ",Font.CENTER_BASELINE,16);
TextTitle _title=new TextTitle(title);
_title.setFont(font);
chart.setTitle(_title); PiePlot plot=(PiePlot) chart.getPlot();
plot.setBackgroundPaint(Color.blue);
RectangleInsets insets=new RectangleInsets(5,5,5,5);
plot.setInsets(insets); plot.setURLGenerator(new StandardPieURLGenerator( "link.jsp ", "section"));
plot.setSectionPaint(PiePlot.DEFAULT_LABEL_BACKGROUND_PAINT);
//指定section轮廓线的颜色
// plot.setDefaultOutlinePaint(Color.green);
//
plot.setExplodePercent(2,0.1);
plot.setStartAngle(270);
plot.setToolTipGenerator(new StandardPieToolTipGenerator());
/*
JFreeChart chart = ChartFactory.createPieChart(
"Pie Chart Demo 1 ", // 图表标题
dataset, // 数据集
true, // 是否为一个图例
true, //是否使用工具条,工具条就是将鼠标移动到图表不同部分后,出现的一个小提示框
false //图片是否有URL连接
);
//生成PiePlot
PiePlot plot = (PiePlot) chart.getPlot();
plot.setSectionOutlinesVisible(false); //是否显示分界线
plot.setLabelFont(new Font( "SansSerif ", Font.PLAIN, 12)); //Label的字体
plot.setNoDataMessage( "No data available "); //如果没有数据该如何显示
plot.setCircular(false); //是否为正圆
plot.setLabelGap(0.02); //这个不太清楚,应该是设置椭圆内部的间距,如果改的很大的话图形会变得很奇怪。。
plot.setForegroundAlpha(Float.parseFloat( "0.4 ")); //图片前景的透明度,图片的前景就是这里的饼状图,透明度为0.0~1.0
plot.setLabelGenerator(new StandardPieSectionLabelGenerator( "{0}: ({1}M, {2}) ",
NumberFormat.getNumberInstance(),
new DecimalFormat( "0.00% "))); //设置图片是否显示出百分比,0是数据,1是数值,2是百分比,
//后面两个参数是设置百分比取值到小数点几位,这里取到小数点后两位,如果百分比要设置为整数,就将这两个参数去掉即可
plot.setToolTipGenerator((PieToolTipGenerator) new StandardPieSectionLabelGenerator( "{0}: ({1}M, {2}) ",
NumberFormat.getNumberInstance(),
new DecimalFormat( "0.00% "))); //设置工具条是否显示出百分比,其它同上,其它同上
*/
//吧生成的图片放到指定目录
ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
filename=ServletUtilities.saveChartAsPNG(chart,500,300,info,session);
ChartUtilities.writeImageMap(pw,filename,info,true);
pw.flush();
}catch(Exception e){
System.out.println( "Exception "+e.toString());
} return filename;
}
}
表结构如下:
id name address salary
1 li beijing 3000
2 zhangchi beijing 4000
3 liukai beijing 2500
运行jsp页面,就显示那三个人的工资2000 2500 4000 。那个要出来的图出不来啊!就一个长方形框,框里左上角一个平时图片显示不出来的时候显示的大X。这到底是为什么呢?代码哪里出错了?还是因为我的例子运行不成功,所以,jsp页面那句String filename =chart.generatePieDemo( "PieChartDemo1",session,new PrintWriter(out)); 就没有用了就显示不了?还是因为<img src=" <%=graphURL%> "width=500 height=300 border=0 usemap="# <%=filename%> ">
这个路径什么的没有 就错了?求高手解答!如果还有成功连接数据库并动态显示数据库信息的小例子就更好了!
我也把jfreechart-1.0.10-demo.jar等这些包放到项目的lib下了啊。我还在配置环境那加了jfreechart-1.0.10.jar、jcommon-1.0.13.jar、gnujaxp.jar这三个呢,反正加不加都不行…
之前用的是jfreechart1.0.13 可以运行那些示例,但是中文显示不出来只显示正方框,现在换用jfreechart 1.0.10,想连接SQL数据库弄个各个专业的就业率的图出来,我现在有个人家的小例子,
test1.jsp文件:<%@ page contentType= "text/html;charset=GBK"%>
<%@ page import="java.io.PrintWriter"%>
<%@ page import = "com.jsp.util.PieDemo"%>
<%@ page import = "java.sql.*"%>
<%!int sa1=0;%>
<%!int sa2=1;%>
<%!int sa3=1;%>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=music","sa","35");
Statement stmt = conn.createStatement(); String sql6 = "select salary from student where name= 'li' ";
String sql7 = "select salary from student where name= 'liukai' ";
String sql8 = "select salary from student where name= 'zhangchi' ";
ResultSet rs6 = stmt.executeQuery(sql6);
while(rs6.next()){
sa1 = rs6.getInt( "salary");
}
ResultSet rs7 = stmt.executeQuery(sql7);
while(rs7.next()){
sa2 = rs7.getInt( "salary");
}
ResultSet rs8 = stmt.executeQuery(sql8);
while(rs8.next()){
sa3 = rs8.getInt( "salary");
}
out.println(sa1);
out.println(sa2);
out.println(sa3);
PieDemo chart = new PieDemo();
chart.setValue( "六月 ",sa1);
chart.setValue( "七月 ",sa2);
chart.setValue( "八月 ",sa3);
String filename =chart.generatePieDemo( "PieChartDemo1",session,new PrintWriter(out));
String graphURL = request.getContextPath()+ "/servlet/DisplayChart?filename= " + filename;
%>
<html>
<head>
<title>
</title>
</head>
<body >
<p align=center><img src=" <%=graphURL%> "width=500 height=300 border=0 usemap="# <%=filename%> ">
</p>
</body>
</html>PieDemo.java文件:package com.jsp.util;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.NumberFormat; import javax.servlet.http.HttpSession; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.PieToolTipGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.urls.StandardPieURLGenerator;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.RectangleInsets; public class PieDemo { private DefaultPieDataset dataset=new DefaultPieDataset();
public void setValue(String key,double value){
dataset.setValue(key,value);
}
@SuppressWarnings("deprecation")
public String generatePieDemo(String title,HttpSession session,PrintWriter pw){
String filename=null;
try{ JFreeChart chart=ChartFactory.createPieChart( "饼形图 ",
dataset,
true,
false,
false);
chart.setBackgroundPaint(Color.red);
Font font=new Font( "黑体 ",Font.CENTER_BASELINE,16);
TextTitle _title=new TextTitle(title);
_title.setFont(font);
chart.setTitle(_title); PiePlot plot=(PiePlot) chart.getPlot();
plot.setBackgroundPaint(Color.blue);
RectangleInsets insets=new RectangleInsets(5,5,5,5);
plot.setInsets(insets); plot.setURLGenerator(new StandardPieURLGenerator( "link.jsp ", "section"));
plot.setSectionPaint(PiePlot.DEFAULT_LABEL_BACKGROUND_PAINT);
//指定section轮廓线的颜色
// plot.setDefaultOutlinePaint(Color.green);
//
plot.setExplodePercent(2,0.1);
plot.setStartAngle(270);
plot.setToolTipGenerator(new StandardPieToolTipGenerator());
/*
JFreeChart chart = ChartFactory.createPieChart(
"Pie Chart Demo 1 ", // 图表标题
dataset, // 数据集
true, // 是否为一个图例
true, //是否使用工具条,工具条就是将鼠标移动到图表不同部分后,出现的一个小提示框
false //图片是否有URL连接
);
//生成PiePlot
PiePlot plot = (PiePlot) chart.getPlot();
plot.setSectionOutlinesVisible(false); //是否显示分界线
plot.setLabelFont(new Font( "SansSerif ", Font.PLAIN, 12)); //Label的字体
plot.setNoDataMessage( "No data available "); //如果没有数据该如何显示
plot.setCircular(false); //是否为正圆
plot.setLabelGap(0.02); //这个不太清楚,应该是设置椭圆内部的间距,如果改的很大的话图形会变得很奇怪。。
plot.setForegroundAlpha(Float.parseFloat( "0.4 ")); //图片前景的透明度,图片的前景就是这里的饼状图,透明度为0.0~1.0
plot.setLabelGenerator(new StandardPieSectionLabelGenerator( "{0}: ({1}M, {2}) ",
NumberFormat.getNumberInstance(),
new DecimalFormat( "0.00% "))); //设置图片是否显示出百分比,0是数据,1是数值,2是百分比,
//后面两个参数是设置百分比取值到小数点几位,这里取到小数点后两位,如果百分比要设置为整数,就将这两个参数去掉即可
plot.setToolTipGenerator((PieToolTipGenerator) new StandardPieSectionLabelGenerator( "{0}: ({1}M, {2}) ",
NumberFormat.getNumberInstance(),
new DecimalFormat( "0.00% "))); //设置工具条是否显示出百分比,其它同上,其它同上
*/
//吧生成的图片放到指定目录
ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
filename=ServletUtilities.saveChartAsPNG(chart,500,300,info,session);
ChartUtilities.writeImageMap(pw,filename,info,true);
pw.flush();
}catch(Exception e){
System.out.println( "Exception "+e.toString());
} return filename;
}
}
表结构如下:
id name address salary
1 li beijing 3000
2 zhangchi beijing 4000
3 liukai beijing 2500
运行jsp页面,就显示那三个人的工资2000 2500 4000 。那个要出来的图出不来啊!就一个长方形框,框里左上角一个平时图片显示不出来的时候显示的大X。这到底是为什么呢?代码哪里出错了?还是因为我的例子运行不成功,所以,jsp页面那句String filename =chart.generatePieDemo( "PieChartDemo1",session,new PrintWriter(out)); 就没有用了就显示不了?还是因为<img src=" <%=graphURL%> "width=500 height=300 border=0 usemap="# <%=filename%> ">
这个路径什么的没有 就错了?求高手解答!如果还有成功连接数据库并动态显示数据库信息的小例子就更好了!
解决方案 »
- struts dispatchaction跳转问题
- 超奇怪的问题,日了鬼了!jsp的bug?orSQLSERVER的bug?
- 用户列表问题
- 询问
- 大虾们!MapXtreme问题!显示地图在JSP中,急,在线等!
- asp.net与jsp问题
- <JSP高级编程>下载地址 第一个兄弟100分,要完整版的,不是几章!!
- 帮帮菜鸟的两个问题:1:关于JBuilder5 2:resin设置
- 关于Servlet的一个问题
- 关于使用Springmv,WEB-INF下的JSP页面加载静态资源问题
- SSH 实体类中重载的方法失效 可能是什么原因
- 关于proxool里的 maximum-connection-lifetime 这个属性
双引号和尖括弧之间的两个空格删之。
String filename = chart.generatePieDemo("PieDemo1",session,new PrintWriter(out));可是饼图里面的颜色,都是同一种颜色,而且,那三个数字它都不在图里面…不过有影响着那个饼图的划分。可是这样就不太明确了,我要怎样才能使那三个工资数和六、七、八月份紧凑一点 显示得明显一点,让人一看就懂哦?
我不会插图片进来啊,不然你们就明了一点了我上面提到的代码 有没有哪一段是设置这个饼图划分的区域颜色的?可是我没见有什么color啊,只有个背景的,我要怎么设置饼图的颜色呢