JSP初級教程之跟我學JSP(六)_JSP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:JSP初級教程之跟我學JSP(五)第五章 jsp 分頁功能的實現 經過上面的學習我漸漸熟悉了對 數據庫 的操作,留言板的功能也不斷的完善,隨著留言的增加信息的目錄越來越長了,現在需要實現一個分頁功能了,我嘗試自己解決這個問題。 1、我應該把它的關鍵部分封裝成一個bean,使它盡可能的能
第六章 jsp實現畫柱狀統計圖這一節的內容是用jsp生成一個統計——統計一年內每個月完成的報修任務量。
Java里和畫圖有關的是java.awt包,由于我構想的圖只是由矩形組成,那么用到的方法也就這么幾個:fillRect,drawRect,setColor,setFont,drawString。我很快發現一個問題:如何在頁面顯示這個圖,這是個大問題,于是找例子。
在一個學過研究生Java課程的同事的幫助下知道可以這樣:寫一個類(Picture.class),這個類只負責畫圖,沒有任何關于如何顯示的語句,然后在一個頁面文件(.htm文件就行)里<body>里寫上這段代碼:<applet code="Picture" height="400" width="400"></applet>,運行這個文件就可以了。但是這個方法有這兩個弊端:1、它是直接從服務器端下載Picture.class,在客戶端生成圖片,所以客戶端必須裝有java環境,比如j2re等;2、現在大部分瀏覽器都或者迫于無奈或者被強行綁架(這里我嚴重鄙視一下3721和一個叫“天下搜索”的)安裝了阻止小窗口、ActiveX控件的插件——就連XP的SP2也集成了這個功能——而這個功能同樣對<applet>有效。
放棄第一種方法后我在網上找到了第二個例子,第二個例子讓我很奇怪,代碼直接寫在一個.jsp文件里,打開文件顯示圖片,一看這個圖片的屬性竟然就是這個.jsp文件的名。看了一陣子代碼發現不是很理解,我開始看第三個例子。
第三個例子符合我的思維:寫一個bean(或者說是一個類),把一個代表路徑的字符串和一些數據傳給它,它根據數據畫圖但是不返回(從這一點來說它不能叫做bean),而是生成一個如.jpg文件并按照傳進來的路徑名進行保存。然后顯頁面通過<img src="……">顯示圖片。我通過這種方式實現了工作,下面是這個類的代碼:
----------------------------------Picture.java------------------------------------
//該bean用于畫柱狀統計圖
package ringz.javabeans;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
public class PictureBean
{
BufferedImage image;
private String fileLocation;
public void setFileLocation(String fileLocation)//fileLocation是圖片的路徑,如:“D:\\a\\b\\c.jpg”
{
this.fileLocation=fileLocation;
}
public void createImage(String fileLocation)
{
try
{
FileOutputStream fos = new FileOutputStream(fileLocation);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(image);
bos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void outGraphic(String titles,String sstr,String str[],int datas[])
{
String Title=titles;
String SStr=sstr;
int imageWidth = 400;//圖片的寬度 Line
int imageHeight;//不定長
int frameFirstWidth=imageWidth-10;
int frameFirstHeight=25;
int frameSecondWidth=imageWidth-10;
int frameSecondHeight;//不定長
int frameSpace=10;//兩框間隔
int columnHeight=18;//柱的粗
int columnMaxWidth=frameSecondWidth-20;//柱的最大長度,也是代表數值最大的那個柱的長度
int sp=30;//柱的間隔
int num=datas.length;//數組的長度
int Datas[]=new int[num];//得到數組的數值
String name[]=new String[num];
for (int i=0;i<num;i++)
{
Datas[i]=datas[i];
name[i]=str[i];
}
//得此數組中的最大值
int max=Datas[0];
for (int j=0;j<num;j++)
{
if(Datas[j]>max)
max=Datas[j];
}
分享:JSP初級教程之跟我學JSP(四)第四章我的第一個 Javabean 程序 一、先看看如何取當前時間并顯示的代碼: ------------------------------------------------ % java.text.SimpleDateFormatformatter=newjava.text.SimpleDateFormat(yyyy-MM-ddHH:mm:ss); java.util.DatecurrentTime=ne
相關JSP教程:
- jsp response.sendRedirect不跳轉的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復習整理
- JSP腳本元素和注釋復習總結示例
- JSP FusionCharts Free顯示圖表 具體實現
- 網頁模板:關于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數據庫的配置方法
- JDBC連接Access數據庫的幾種方式介紹
- 網站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關鏈接:
- 教程說明:
JSP教程-JSP初級教程之跟我學JSP(六)。