這個模組的主要步驟就是:
前台通過struts呼叫後台,通過jfreechart產生格式的圖表,儲存在某個位置,然後前台jsp再去呼叫。
來開工。
jfreechart的簡介大家請百度。
首先需要兩個包,jcommon-1.0.16.jar和jfreechart-1.0.13.jar。
jfreechart(下面就簡稱jfc),有可能會出現中午亂碼問題,我建議大家就找上面那兩個包,至少不會出那些需要換包的問題。
先看看效果
生成的:
前台的顯示效果:
後台的方法
public string statistic()
/*** 生成柱狀圖
*/public void getbarchart() catch (ioexception e)
}/**
* 得到生成柱狀圖的資料結果集,將方法tongji()所得到的結果集中的資料依次新增到dataset中
** @return dataset 返回柱狀圖所需要的資料結果集
*/public categorydataset getdataset()
return dataset;
}/**
* 生成餅狀圖
*/public void getpiechart() 表示選項, 表示數值,
// 表示所佔比例 ,小數點後兩位
plot.setlabelgenerator(new standardpiesectionlabelgenerator(
=(), numberformat.getnumberinstance(),
new decimalformat(0.00%)));
// 圖例顯示百分比:自定義方式, 表示選項, 表示數值, 表示所佔比例
plot.setlegendlabelgenerator(new standardpiesectionlabelgenerator());
// 指定的透明度(0.0-1.0)
plot.setforegroundalpha(1.0f);
// 指定顯示的餅圖上圓形(true)還橢圓形(false)
plot.setcircular(true);
// 設定圖上分類標籤label的字型,解決中文亂碼
plot.setlabelfont(new font(黑體, font.plain, 12));
// 設定圖上分類標籤label的最大寬度,相對與plot的百分比
plot.setmaximumlabelwidth(0.2);
// 設定3d餅圖的z軸高度(0.0~1.0)
plot.setdepthfactor(0.07);
// 設定起始角度,預設值為90,當為0時,起始值在3點鐘方向
plot.setstartangle(45);
// 設定圖標題的字型,解決中文亂碼
texttitle texttitle = chart.gettitle();
texttitle.setfont(new font(黑體, font.plain, 20));
// 設定背景色為白色
chart.setbackgroundpaint(color.white);
// 設定legend部分字型,解決中文亂碼
chart.getlegend().setitemfont(new font(宋體, font.plain, 12));
date date = new date();
charttimetag = long.tostring(date.gettime());// 獲取當前的時間戳
string path = servletactioncontext.getservletcontext().getrealpath(/)
+ resources/chart/ + charttimetag + .png;// 的儲存路徑
// 輸出到檔案
//+resources/chart/abc.png;
system.out.println(path);
fileoutputstream fos_png = null;
try catch (ioexception e)
}/**
* 得到生成餅狀圖的資料結果集:將方法tongji()所得到的結果集中的資料依次新增到dataset中
** @return dataset 返回餅狀圖所需要的資料結果集
*/public piedataset getpiedataset()
return dataset;
}返回的jsp頁面部分**如下:
.png / width=500px>
《基於WEB程式設計》
三 選擇題ii 每題5分,共20分 1.下述 在使用者改變下拉列表框選擇時,會呼叫 方法 asp listitem第1項 asp listitem第2項 asp listitem第3項 a.listitem b.dropdownlist1 selectedindexchanged c.server ...
基於HttpListener的web伺服器
前面兩篇文章分別介紹了基於原始socket的web伺服器和基於tcplistener的web伺服器,本篇文章將繼續介紹另外一種基於httplistener的。httplistener進一步的簡化了http協議的監聽,僅需通過字串的方法提供監聽的位址和埠號以及虛擬路徑,就可以開始監聽工作了。設定字首,...
基於tornado的WEB服務
搭建乙個微型的web服務,監聽8000埠,如有接收到客戶端的網頁請求,根據請求的路徑 返回 對應的資訊。監聽埠設定 命令列或是python指令碼內?如何設定 web.py程式執行時,必須監聽伺服器端口,以便向客戶提供服務。如果我們將埠,定義在指令碼 內部,那麼,如果想要改動監聽的埠,我們必須要修改指...