国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JFreeChart 在 webwork 中的應用

2019-11-18 12:53:11
字體:
來源:轉載
供稿:網友

  前言:
  webwork是當今流行的J2EE幾大架構之一,在實際的項目中,我們往往要在webwork的輸出流中調用一個圖表chart,代替直接用response.out輸出。那么我們應該怎么樣去實現(xiàn)呢?本文將具體闡述JFreeChart在webwork中的應用。本文調試環(huán)境為windows2000+tomcat5.0。共分三個部分:
  1,JFreeChart 簡介
  2,webwork簡介及webwork,JFreeChart應用環(huán)境的配置
  3,JFreeChart在webwork中的應用的具體例子
  
  <B>一: JFreeChart 簡介:</B>
  JFreeChart是開放源代碼項目,它主要用來各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區(qū)域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。
  一.JFreeChart創(chuàng)建WEB圖表的基本知識
  JFreeChart主要是由三個類構成:
  org.jfree.chart.servlet.ChartDeleter
  org.jfree.chart.servlet.DisplayChart
  org.jfree.chart.servlet.ServletUtilities
  在下面做一下簡單的介紹:
  ChartDeleter 繼續(xù)自HttpsessionBindingListener,用于實現(xiàn)當Session 關閉時,刪除
  臨時目中的圖象文件。
  ServletUtilities有一系列方法:
  saveChartAs*;saveChartAs*是把圖表按照不同的形式存儲為圖象;
  sendTempFile方法被重載了很多次,用于把文件流發(fā)送response;
  DisplayChart繼續(xù)自Httpservlet 用于處理顯示圖象;
  
  <B>二:webwork簡介及webwork,JFreeChart應用環(huán)境的配置</B>
  WebWork是一個源代碼開放的Web應用框架,用于簡化基于Web的應用開發(fā)。
  WebWork的最大優(yōu)點是它的簡單性和靈活性。WebWork有一個很小的API,它使開發(fā)者可以迅速進行開發(fā)工作。
  WebWork是許多特性和適用性的組合,包括使用variour view技術,
  例如javaServer Pages(jsp),Velocity,Extensible Stylesheet Language Transformations
  Specification(XSLT)和JasperReporters。還有,webwork對JFreechart有非常好的支持。
  從這里下載webwork-2.0-beta2.zip
  (https://webwork.dev.java.net/servlets/PRojectDocumentList)
  解壓縮文件,你可以在webwork-2.0/lib/optional目錄下找到jfreechart-0.9.13.jar。
  你也可以從這里下載最新的jfreechart-0.9.15.zip。
  (http://www.jfree.org/jfreechart/index.Html)
  本文使用的是jfreechart-0.9.15.zip。
  web應用的目錄結構圖如下所示:
  /webapp/WEB-INF
  /webapp/WEB-INF/web.xml
  /webapp/WEB-INF/webwork.tld
  /webapp/WEB-INF/classes
  /webapp/WEB-INF/classes/xwork.xml
  /webapp/WEB-INF/lib
  接下來請務必將下面這些包放在/webapp/WEB-INF/lib 目錄下。
  1。commons-logging.jar
  2。ognl-2.5.1.jar
  3。oscore-2.2.1.jar
  4。xwork-1.0-beta.jar
  5。webwork-2.0-beta.jar
  下面是可以選擇的包,具體根據項目需要來決定是否添加:
  cos-multipart.jar
  pell-multipart.jar
  velocity-dep-1.3.jar
  2.1 配置你的xwork.xml
  文件像下面例子一樣,注重一定要包含webwork-default.xml。
  <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
  
  "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
  <xwork>
    <include file="webwork-default.xml"/> 
    <package name="default" extends="webwork-default">
    ...
    </package>
  </xwork>
  
  webwork-default.xml這個文件在webwork-2.0-beta.jar里面。
  2.2 修改web.xml文件
  修改web.xml文件以包含webwork的設置,如何設置的內容,請察看
  $WEBWORK/src/resource/web/WEB-INF/web.xml文件。
  2.3 Taglib部分的選擇
  假如你不打算使用taglib、Velocity、或者XSLT,僅僅只需要在web.xml中不要包含這些內容就可以了。
  2.4 Log的設置
  Webwork使用log4j,假如你的app server沒有安裝log4j,你需要增加log4j,復制log4j.jar文件到合適的lib目錄。假如你使用tomcat,那么安裝目錄是$TOMCAT_HOME/lib,當然也可以安裝到你的web應用的路徑。但需要注重的是假如appserver也適用log4j,你需要小心版本沖突。
  2.5 解壓縮jfreechart-0.9.15.zip
  jfreechart-0.9.15目錄下的jfreechart-0.9.15.jar和lib/jcommon-0.9.0.jar,lib/gnujaXP.jar都是開發(fā)運行需要的文件,把這三個文件放置到/webapp/WEB-INF/lib目錄下。
  
  <B>三 JFreeChart在webwork中的應用的具體例子</B>
  在進行上面的步驟后,我們將要進行具體的開發(fā)過程。
  步驟:首先在xwork.xml -定義result-types
    <result-types>
    <result-type name="chart" class="pawpaw.test.ChartResult"/>
    </result-types>
  
    然后在xwork.xml - 定義action
  <action name="viewModerationChart" class="pawpaw.test.ViewModerationChartAction">
   <result name="sUCcess" type="chart">
    <param name="width">400</param>
    <param name="height">300</param> </result>
  </action>
  
  其中param里面定義的是chart圖表的長寬。
  然后在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>
  
  部分源代碼如下:
  package pawpaw.test;
  
  import com.opensymphony.webwork.ServletActionContext;
  import com.opensymphony.xwork.ActionInvocation;
  import com.opensymphony.xwork.Result;
  import org.jfree.chart.ChartUtilities;
  import org.jfree.chart.JFreeChart;
  import java.io.OutputStream;
  import javax.servlet.http.HttpServletResponse;
  /*
   * <p>Description: 把chart文件流換成是通過HttpServletResponse
   *  對象獲取到的輸出流在瀏覽器中輸出</p>
   * author: pawpaw
   * @version 1.0 12/15/2003
   */
  public class ChartResult implements Result {
    JFreeChart chart;
    boolean chartSet = false;
    private int height;
    private int width;
  
    public void setChart(JFreeChart chart) {
      this.chart = chart;
      chartSet = true;
    }
    //設置圖片的長度
    public void setHeight(int height) {
      this.height = height;
    }
    //設置圖片的寬度
    public void setWidth(int width) {
      this.width = width;
    }
  
    public void execute(ActionInvocation invocation) throws Exception {
      JFreeChart chart = null;
  
      if (chartSet) {
        chart = this.chart;
      } else {
        chart = (JFreeChart) invocation.getStack().findValue("chart");
      }
  
      if (chart == null) {
        throw new NullPointerException("No chart found");
      }
      
      //把文件流換成是通過HttpServletResponse對象獲取到的輸出流
      HttpServletResponse response = ServletActionContext.getResponse();
      OutputStream os = response.getOutputStream();
      ChartUtilities.writeChartAsPNG(os, chart, width, height);
      os.flush();
    }
  }
  創(chuàng)建JFreeChart的action類。
  package pawpaw.test;
  
  import java.awt.Insets;
  import java.awt.Font;
  import java.io.PrintWriter;
  import javax.servlet.http.HttpSession;
  import org.jfree.data.*;
  import org.jfree.chart.*;
  import org.jfree.chart.plot.*;
  import org.jfree.chart.entity.*;
  import org.jfree.chart.urls.*;
  import org.jfree.chart.servlet.*;
  import org.jfree.chart.labels.StandardPieToolTipGenerator;
  import org.jfree.util.Rotation;
  import com.opensymphony.xwork.ActionSupport;
  /*
   *<p>Description: 輸出一條斜線chart</p>
   * author: pawpaw
   * @version 1.0 12/15/2003
   */
  public class ViewModerationChartAction extends ActionSupport { 
    private JFreeChart chart;
    public String execute() throws Exception {
     // 創(chuàng)建chart文件數據集
     XYSeries dataSeries = new XYSeries(null);
     for

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 临高县| 揭阳市| 常德市| 奉化市| 朔州市| 万州区| 定襄县| 白银市| 阳信县| 屏南县| 武夷山市| 甘肃省| 周至县| 澳门| 张家界市| 青浦区| 鄢陵县| 黄山市| 鹤岗市| 贡觉县| 抚顺市| 巫山县| 开平市| 吉林市| 汉川市| 新巴尔虎左旗| 三江| 德江县| 枞阳县| 绥德县| 中牟县| 皮山县| 龙岩市| 咸丰县| 佛山市| 个旧市| 崇文区| 平舆县| 平舆县| 苍山县| 虹口区|