我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          JFreeChart在Web中的 應用

          把圖表數據顯示的jsp中.

          首先我們建一個Servlet:

          package com;

          import java.awt.Color;
          import java.io.File;
          import java.io.IOException;

          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.jfree.chart.ChartUtilities;
          import org.jfree.chart.JFreeChart;
          import org.jfree.chart.labels.StandardPieToolTipGenerator;
          import org.jfree.chart.plot.PiePlot3D;
          import org.jfree.chart.urls.StandardPieURLGenerator;
          import org.jfree.data.general.DefaultPieDataset;

          /**
           * 
           * 
          @author zdw
           * 
           
          */

          @SuppressWarnings(
          "serial")
          public class ChartServlet extends HttpServlet
          {
              
          public ChartServlet()
              
          {
                  
          super();
              }


              
          public void init() throws ServletException
              
          {
              }


              
          private void createPieChart(String path) throws IOException
              
          {
                  
          // 餅圖數據源
                  DefaultPieDataset dataset = new DefaultPieDataset();
                  dataset.setValue(
          "中國"44.4);
                  dataset.setValue(
          "美國"25.5);
                  dataset.setValue(
          "日本"18.5);
                  dataset.setValue(
          "剛果"4.6);
                  dataset.setValue(
          "英國"5.5);
                  dataset.setValue(
          "其他"0.5);
                  
          // 生成3D餅圖
                  PiePlot3D plot = new PiePlot3D(dataset);
                  plot.setToolTipGenerator(
          new StandardPieToolTipGenerator());
                  
          // 設置圖片鏈接
                  plot.setURLGenerator(new StandardPieURLGenerator(
                          
          "http://www.aygfsteel.com/supercrsky"));

                  JFreeChart chart 
          = new JFreeChart("人口統計表",
                          JFreeChart.DEFAULT_TITLE_FONT, plot, 
          true);
                  chart.setBackgroundPaint(Color.gray);
                  ChartUtilities.saveChartAsJPEG(
          new File(path), chart, 800600);
              }


              
          public void doGet(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException
              
          {
                  System.out.println(
          "get begin");
                  
          // 得到當前網站在服務上的絕對路徑
                  String path = request.getSession().getServletContext().getRealPath("/");
                  
          // 保存到根目錄
                  createPieChart(path + "/chart.jpg");
                  request.getRequestDispatcher(
          "/index.jsp").forward(request, response);
              }


              
          public void doPost(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException
              
          {
                  System.out.println(
          "post begin");
                  
          this.doGet(request, response);
              }


              
          public void destroy()
              
          {
                  
          super.destroy();
              }


          }


          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>ChartServlet</servlet-name>
              
          <servlet-class>com.ChartServlet</servlet-class>
            
          </servlet>

            
          <servlet-mapping>
              
          <servlet-name>ChartServlet</servlet-name>
              
          <url-pattern>/servlet/ChartServlet</url-pattern>
            
          </servlet-mapping>
            
          <welcome-file-list>
              
          <welcome-file>index.jsp</welcome-file>
            
          </welcome-file-list>
          </web-app>

          index.jsp:
          <%@ page language="java" pageEncoding="gbk"%>
          <html>
              
          <head>
                  
          <title>人口統計表</title>
              
          </head>
              
          <body>
                  
          <hr />
                  
          <img src="/jfreechart/chart.jpg" />
              
          </body>
          </html>
          在瀏覽器中輸入:
          http://localhost:8888/jfreechart/servlet/ChartServlet
          就可以看生成的餅圖效果了.

          源碼可以點此下載

          posted on 2008-05-09 16:45 々上善若水々 閱讀(3317) 評論(0)  編輯  收藏 所屬分類: opensource

          主站蜘蛛池模板: 丘北县| 甘洛县| 库伦旗| 贺州市| 巨鹿县| 阿拉尔市| 清徐县| 秦安县| 德阳市| 海南省| 宁波市| 江北区| 荃湾区| 安新县| 南汇区| 东兴市| 荥经县| 永兴县| 比如县| 迭部县| 黄平县| 阿拉善盟| 巨鹿县| 乃东县| 浦城县| 崇明县| 新平| 鄂尔多斯市| 神木县| 淳安县| 广安市| 阜阳市| 潼关县| 黄梅县| 吐鲁番市| 长泰县| 安岳县| 天峻县| 凤阳县| 巩义市| 天水市|