JSP初級教程之跟我學JSP(六)_JSP教程

      編輯Tag賺U幣
      教程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

      共4頁上一頁1234下一頁
      來源:模板無憂//所屬分類:JSP教程/更新時間:2010-03-10
      相關JSP教程