• About Me
  • Java基礎教學
  • 部落格聯播

[jsp小技巧]利用Throw Exception來完成Ajax

一般在寫Ajax時,最直覺的使用方法就是利用Ajax Object來要求Server給與回應,

再依回應的內容解西倒底是完成動作?還是有錯誤產生,如必填欄位未填。

這裡介紹一個小技巧,在編譯式的網頁伺服器語言可能比較合適使用。

大概的原理是利用程式在執行有錯誤時Throw Exception來當做錯誤訊息,

回傳給client,而client只要接收到503的錯誤,則就可以知道動作並未完成,

反之則是完成。

範例使用prototype來使用Ajax,傳送及回應,有需要可以參考:

Ajax 使用prototype.js 1

以下是載行結果,當有填值時,則回應填寫的值,

沒填值的時候就回傳錯誤訊息。(Exception)

1

2

詳細文章

Java利用Imagick來ReSize圖片檔-使用JMagick

程式很簡單 ,只需要在利用command在程式目錄下執行

java -jar ReSizeImage.jar

就可以啦!

預設是縮成以寬為500px基準,如果要改變寬可以利用

java -jar ReSizeImage.jar 數字

縮完的圖會放到程式目錄的resize目錄裡

我Blog都是以500寬為基準,我想應該夠用了吧^^

程式目錄結構

ReSizeImage.jar

jmagick.dll

lib/Jmagick.jar

記得要先下載Imagick來安裝才能使用喔

按裝方法如下:

JMagick-Java open source free影像壓縮

範例圖檔可以按圖下載,放置於程式目錄

DSCN3599.JPG

原始碼如下:

詳細文章

[JAVA]利用Jmagick(ImageMagick)來取得圖片的長寬

一般Java要取得圖片的長寬size大部份的人,也是最簡單的方法,

就是使用java.awt.image.BufferedImage來取得,不過有時JVM在釋放記憶體來不及時,很容易會出Exception

這時候可以利用Jmagick來取得,它會呼叫外部的ImageMagick 的dll來取得長寬,

以下就是原始碼:

import magick.ImageInfo;
import magick.MagickException;
import magick.MagickImage;
import java.awt.Dimension;

詳細文章

[程式分享]使用Eclipse的Virtual Editor撰寫的時鐘 、倒數、計時器

想法
用一個JFrame裡面放三個Tab panel分別為
時間、計時、倒數
利用三個Thread控制以上三件事
1時間
取得一個Calendar.getInstance() 得到 時、分、秒
然後在Thread的Run裡每一秒加一
2計時
”開始”利用一個Runnable從0時0分0秒一直累加
”結束”把Runnable解除掉(run直接結束)
”清除”設時、分、秒為0
3倒數
需三個TextField控制設定初始之時、分、秒
”開始”利用一個Runnable初始值一直減少到0
”結束”把Runnable解除掉(run直接結束)
會有的問題
1.    利用Sleep控制會因為電腦的處理其它判斷快慢而影響其正確性
2.    倒數之設定初始值可用除制只輸入數字及判斷輸入值之正確性來避免Exception
3.    計時及倒數,初始時並沒有顯示於畫面上

以下是程式碼及包裝好的jar檔,有興趣的可以下載看看

詳細文章

[java]利用poi寫入(產生)Excel檔案

前一篇已經介紹過如何讀取檔案了,那再來看寫入Excel xls檔應該就容易多了,

如何讀取Excel xls檔做處理可以參考[java]利用poi讀取Excel檔

寫入(產生)Excel的範例程式碼如下:

概今大概是把Excel看成一個大的table表,先指定要在那一行那一列,

再把資料寫到這個cell裡。

 
public void writeExcel()  { 
      FileOutputStream fos ; 
        POIFSFileSystem fs ; 
        HSSFWorkbook wb ; 
 
        try 
        { 
          this.filePath = "c:/abc.xls"; 
          java.io.File f = new java.io.File(filePath); 
          //if(!f.exists()) 
            //f.createNewFile(); 
          fos = new FileOutputStream(f); 
 
          fs = new POIFSFileSystem(); 
 
          wb = new HSSFWorkbook(); 
          HSSFSheet sheet = wb.createSheet(); 
          HSSFCell cell; 
      int count = 3; 
 
            HSSFRow row = sheet.createRow(rs.getRow()); 
            for(int i = 1 ; i <= count ; i ++) 
            { 
              cell = row.createCell(i); 
              org.apache.poi.hssf.usermodel.HSSFRichTextString str = 
                new org.apache.poi.hssf.usermodel.HSSFRichTextString(i); 
              cell.setCellValue(str); 
            } 
 
          } 
 
          fs.writeFilesystem(fos); 
          fos.flush(); 
          fos.close(); 
 
        }catch(java.io.IOException e) 
        { 
          e.printStackTrace(); 
        } 
        catch(java.sql.SQLException e) 
        { 
          e.printStackTrace(); 
        } 
        finally 
        { 
 
        } 
}