[Servlet]利用JMagick即時產生縮圖

剛好有個網友提到如何利用Servlet來產生縮圖,利用Servlet來產生而不存放成檔案,這種及時取得圖像的方法,比較不建議使用在需要大量輸出圖的狀況下,這樣子在記憶體的使用上會很重。

而為什麼使用ImageMagick來做縮圖呢?其實Java本身也可來製做縮圖,可是因為本身浮點運算的問題,效果並沒有很好,雖然麻煩了點,還是外掛dll來使用ImagicMagick會來的好。

JMagick ImageMagick等介紹及下載請參考:

JMagick-Java open source free影像壓縮

範例的結果:

jmagick1.png
Read More

[Java]字串String

String是一個比較特別的資料型態,它是一個物件類別( Object ),基本型態所對應的物件類別,可直接給於相同類型的值,而不需使用new來產生物件,而String資料型態跟基本型態一樣可以直接給於值,不過String沒有相對應的基本型態。

String在使用上十分普遍,大部份的資料型能都可以變成String存放。String本身是字串是使用utf8格式存放的,所以在計算字元時,一個中文字跟一個英文字都是算1,這點是跟其它程式語言不太一樣的。

基本型能及其對應物件名稱
Read More

[Java]try catch finally 例外資訊處理

try catch是專門在處理錯誤事件的,很多程式語言都有這樣子的例外處理方法,Java也不例外,對於新入門的可能會比較少遇到這類型的問題,不過是十分重要的一環。

當程式功能越來越多、越來越大時,try catch的使用可以增加除錯(bug)的速度,try catch也可以使用其特性來製做一些技巧性的功能或判斷,而當使用者在操作期間發現了例外或錯誤,如果丟出一堆程式碼大概會讓使用者不知所為,擷取這些例外或錯誤而丟出使用者容易理解的字串,也是try catch的功能之一。

try catch 用法

try裡的敍述句有可能會丟出例外資訊 ( Exception ) ,而丟出的例外資訊 ( Exception ) 型態就可以由catch來取得,做適當的處理。finally則是在try catch完成後會執行的動作,一般都是使用在關閉或則除物件等。

ps.catch取得例外需由小範圍而後大範圍,例如java.lang.NullPointException則需寫在Exception前面,因為NullPointException所能處理的範圍比Exception還小。

3.png
Read More

[Jsp技巧]看到錯誤碼?找到Exception位置呢?

剛開始學習jsp時,看到了Exception就一個頭二個大,因為好像跟一般Java出現錯誤的表示方式不一樣,Exception的訊息寫的錯誤行數,總跟jsp裡的行數不太一樣?這樣子就不好判斷Exception產生在那裡,進而修改了!

其實不然,在執行jsp網頁時web-server會把jsp檔先轉換成java檔,再由java檔編譯成class檔,所以要找出錯誤的地方就只需要找到java檔的所在,就可以了。

範例使用的環境是tomcat,Exception直接向網頁丟出,會看大概如下的畫面

errorcheck4.png
Read More

[Java]迴圈中斷及繼續

在上一章節裡提到了迴圈,這章節講要來講述如何中斷或者繼續下一步。

在一般的狀況下,只要跑完迴圈就可以結束這個迴圈的動作了,例如:1 到 50累加,只要到達結束點50就可以結束了,但如果想中突結束呢?是有幾個方法可以這麼做其中有二個是中斷,另一個是叫"繼續",還有另一個是中突出現錯誤Exception而跳出。以下一一來解釋這些方法:

1.迴圈中斷break

當執行迴圈時,合乎結束條件時,迴圈就算完成任務了,但如果中突有需要跳離時呢?這時候可以使用break這個關鍵字。

只需要在想要做中斷的地方輸入break ; 就會直接結束迴圈,並向下執行迴圈外的敘述句

例子:

        //迴圈裡會印出0,1,2,3,4,5,
        for(int i = 0 ; i < 10;i++)
        {
            System.out.print(i+",");
            if(i==5)//當i==5時就先中斷這個迴圈了
                break;
        }
        System.out.println("xxxxx");

答案:

0,1,2,3,4,5,xxxxx

Read More