<%@ page language="java" pageEncoding="UTF-8"%><br /><%@ page import="org.jfree.data.general.DefaultPieDataset,<br /> org.jfree.chart.JFreeChart,<br /> org.jfree.chart.ChartFactory,<br /> org.jfree.chart.servlet.ServletUtilities"%><br /><%<br />DefaultPieDataset dpd = new DefaultPieDataset();<br />dpd.setValue("管理員", 25);<br />dpd.setValue("市場人員", 25);<br />dpd.setValue("開發人員", 45);<br />dpd.setValue("其他人員", 10);<br />JFreeChart chart = ChartFactory.createPieChart("某公司組織圖2D餅圖", dpd, true, false, false);<br />String fileName = ServletUtilities.saveChartAsPNG(chart, 1024, 768, session);<br />String url = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;<br />%><br /><img src="<%=url%>" width="1024" height="768"/><br /><%--<br />=================================================================================================<br />org.jfree.chart.servlet.DisplayChart類繼承了javax.servlet.http.HttpServlet。它的描述如下<br />Servlet used for streaming charts to the client browser from the temporary directory<br />You need to add this servlet and mapping to your deployment descriptorin order to get it to work<br />翻譯:這是一個Servlet,被用來以流的形式從臨時目錄中將圖片發送到用戶端瀏覽器上<br /> 為了讓它能夠工作,你需要在部署描述符(web.xml)增加這個servlet以及它的映射<br />由於我們需要在JSP頁面中顯示圖片,所以就要在web.xml中映射好DisplayChart,如下所示:<br /><servlet><br /><servlet-name>DisplayChart</servlet-name><br /><servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class><br /></servlet><br /><servlet-mapping><br /><servlet-name>DisplayChart</servlet-name><br /><url-pattern>/servlet/DisplayChart</url-pattern><br /></servlet-mapping><br />=================================================================================================<br />ChartUtilities.writeChartAsJPEG()是面向Java Application的<br />ServletUtilities.saveChartAsPNG()是面向Web開發的<br />=================================================================================================<br />saveChartAsPNG()的傳回值是產生的圖片的名字,它所產生的圖片會儲存在伺服器的臨時目錄下<br />Tomcat6的臨時目錄是D:/Program Files/tomcat6/temp目錄<br />這裡我們的Java代碼是寫在JSP頁面中的<br />所以每訪問或重新整理一次頁面時,都會在伺服器臨時目錄中產生一張圖片<br />圖片的命名方式為【jfreechart-62412.png】<br />=================================================================================================<br />當使用在web.xml中配置的名為DisplayChart的Servlet的時候<br />它會根據它的filename到伺服器的臨時目錄中尋找圖片,最後顯示出來<br />所以應為DisplayChart指定filename參數,即【DisplayChart?filename=】部分是固定的<br />=================================================================================================<br />--%>