鐢╦freechat缂栧啓鍥惧舰鍖栫粺璁℃暟鎹▼搴?瀵绘壘ireport鍥惧舰棰滆壊瑙e喅鏂规鏃舵壘鍒扮殑鍏充簬jfeechart鍥惧舰鍖栫▼搴忥紝瑙夊緱涓嶉敊锛岀壒鎰忕暀涓嬫潵銆?jfreechart锛屽埌http://www.jfree.org/涓嬭浇鏈€鏂扮殑銆?涓€銆佸湪web.xml鏂囦欢涓坊鍔狅細
<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>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
浜屻€佽В鍘嬩笅杞界殑jfreechar宸ュ叿鍖咃紝灏嗚В鍘嬪悗鐨刯freechar涓媗ib鐩綍涓殑浜斾釜鏂囦欢澶嶅埗鍒颁綘鐨勯」鐩殑WEB-INF/lib涓嬨€?濡備笅杞?jfreechart-1.0.0-rc1.zip
涓夈€佸垱寤烘暟鎹簱涓殑琛?test
鍥涖€丣SP婧愮▼搴忥細
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.awt.*" %>
<%@ page import="org.jfree.chart.*" %>
<%@ page import="org.jfree.chart.plot.*" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection" %>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>
<%@ page import="org.jfree.data.general.DefaultPieDataset" %>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>
<html>
<head><title>Jfree鍥捐〃</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<body>
<div align="cente"><P><font size="4" ><strong><font color="#0099ff">鎷涚敓缁熻淇℃伅</font></strong></font></p>
</div>
<%
聽//璁剧疆鐢熸垚楗肩姸鍥?聽聽聽 int i=0;
聽聽聽 String[] area={"鍗椾含甯?,"闀囨睙甯?,"甯稿窞甯?,"鏃犻敗甯?,"鑻忓窞甯?,"鍗楅€氬競"};
聽聽聽 try{
聽聽聽聽聽聽聽 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
聽聽聽聽聽聽聽 Connection con=DriverManager.getConnection("jdbc:odbc:aaa");
聽聽聽聽聽聽聽 Statement sql=con.createStatement();
聽聽聽聽聽聽聽 ResultSet rs=sql.executeQuery("select * from test");
聽聽聽聽聽聽
聽聽聽聽聽聽聽 //鎸夊湴鍖鸿繘琛岀粺璁?聽聽聽聽聽聽聽 PrintWriter pw=null;
聽聽聽聽聽聽聽 DefaultPieDataset dataset=new DefaultPieDataset();
聽聽聽聽聽聽聽 //璁剧疆鏁版嵁婧?聽聽聽聽聽聽聽 while(rs.next()){
聽聽聽聽聽聽聽聽聽 String dq=rs.getString("dq");
聽聽聽聽聽聽聽聽聽聽 dataset.setValue(area[i],Integer.parseInt(dq));
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽 //娣诲姞鏁版嵁锛屽弬鏁板寘鎷悕绉板拰鏁板€?聽聽聽聽聽聽聽聽聽聽 i++;
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 rs.close();
聽聽聽聽聽聽聽 sql.close();
聽聽聽聽聽聽聽 con.close();
聽聽聽聽聽聽
聽聽聽聽聽聽聽 JFreeChart chart=ChartFactory.createPieChart("楗煎瀷鍥?,dataset,true,true,true);
聽聽聽聽聽聽聽 chart.setTitle("缁熻鍥?);//璁剧疆鍥剧墖鏍囬
聽聽聽聽聽聽聽 ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
聽聽聽聽聽聽聽 String filename=ServletUtilities.saveChartAsJPEG(chart,300,200,info,session);
聽聽聽聽聽聽聽 //璁剧疆鐢熸垚鍥剧墖锛屽寘鎷浘鐗囩殑澶у皬锛岄暱搴︽槸300锛屽鏄?00
聽聽聽聽聽聽聽 //out.println(filename);
聽聽聽聽聽聽 session.setAttribute("file_name1",filename);
聽聽聽聽聽聽聽 String URL= request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
聽聽聽聽聽聽聽 session.setAttribute("file_url1",URL);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch(SQLException e){
聽聽聽聽聽聽聽聽聽 out.println(e);
聽聽聽聽聽聽 }
聽聽聽聽聽聽聽
聽聽聽聽聽 %><%
聽//鐢熸垚鏌辩姸鍥?聽聽聽聽聽聽聽 try{
聽聽聽聽聽聽聽聽 int j=0;
聽聽聽聽聽聽聽聽 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
聽聽聽聽聽聽聽聽 Connection con=DriverManager.getConnection("jdbc:odbc:aaa");
聽聽聽聽聽聽聽聽 Statement sql=con.createStatement();
聽聽聽聽聽聽聽聽 ResultSet rs=sql.executeQuery("select * from test");
聽聽聽聽聽聽聽聽 DefaultCategoryDataset dataset=new DefaultCategoryDataset();//璁剧疆鏁版嵁婧?
聽聽聽聽聽聽聽聽 while(rs.next()){
聽聽聽聽聽聽聽聽 dataset.addValue(Integer.parseInt(rs.getString("dq")),"瀛︽牎",area[j]);
聽聽聽聽聽聽聽聽 //娣诲姞鏁版嵁锛屽弬鏁板寘鎷悕绉板拰鏁板€?聽聽聽聽聽聽聽聽 j++;
聽聽聽聽聽聽聽聽 }
聽
聽聽聽聽聽聽聽聽 JFreeChart chart1=ChartFactory.createBarChart3D("缁熻鍥?,"鎷涚敓鍦板尯","鎷涚敓浜烘暟",聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dataset,PlotOrientation.VERTICAL,false,false,false);
聽聽聽聽聽聽聽聽 CategoryPlot plot=chart1.getCategoryPlot();
聽聽聽聽聽聽
聽聽聽聽聽聽聽聽 BarRenderer3D renderer1=new BarRenderer3D();
聽聽聽聽聽聽
聽聽聽聽聽聽聽聽 renderer1.setItemLabelsVisible(true);//鏄剧ず姣忎釜鏌卞瓙涓婄殑鏁版嵁
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽 renderer1.setItemMargin(0.1);//璁剧疆姣忎釜鏌卞瓙涔嬮棿鐨勮窛绂?聽聽聽聽聽聽聽聽 plot.setRenderer(renderer1);//璁╀笂闈㈠鏌卞瓙鐨勮缃敓鏁?聽聽聽聽聽聽聽 String filename=ServletUtilities.saveChartAsJPEG(chart1,300,200,session);
聽聽聽聽聽聽聽聽 //鐢熸垚鍥剧墖锛屽寘鎷浘鐗囩殑澶у皬
聽聽聽聽聽聽聽聽 session.setAttribute("file_name2",filename);
聽聽聽聽聽聽聽聽 String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+filename;
聽聽聽聽聽聽聽聽 session.setAttribute("file_url2",URL);
聽聽聽聽聽聽聽聽 }catch(SQLException e){}
聽
%>
<center><img src="<%=session.getAttribute("file_url1")%>" width=300 height=200 #<%=session.getAttribute("file_name1") %>">
<img src="<%=session.getAttribute("file_url2") %>" width=300 height=200 #<%=session.getAttribute("file_name2")%>"></center>
</html>
聽