[Java]利用URLConnection檢查網站狀態

java.net.URLConnection是一個Http Connecion物件,可以用來連接網站,並處理回傳的資訊資料,當然也可以使用socket連線來做這些事情,不過會顯的麻煩多了。

利用java.net.URLConnection可以直接取得response的Status來判斷網站是不存在、連線錯誤、無法存取,而如果需要更詳細的回傳資訊可以增加給於的Header。而如果需要取得網址的ip則可使用java.net.Inet4Address.getByName(網址名稱)

有一點要注意的是在JDK1.4以前並有沒有setReadTimeout這個函數,所以需要自己實作一個HttpURLConnectionTimeout來操作TimeOut,可以參考Adding Socket Timeout to java.net.URLConnection這一篇。

這是範例的結果:

char.png

Read More

[Android]Google Maps的申請、設定與使用

行動設備使用Location定位服務越來越火紅,很多人都有很多有趣的想法,像是利用Location查詢所在位置四週的商家資訊、將照片置入所在位置的經緯度方便分享及記錄、還有隨時可以追蹤好友所在位置等等等許多服務。雖然有了定位資訊,可是少了一個展示的平台,Google Map就是一個很好用又免費的元件,可以把經緯資訊展示出地圖資訊,方便閱讀及應用。

在android開發環境上要使用google map這個元件,並無法直接拖拉元件至畫面上,需要申請一組api key,然後設定到Layout資源檔裡,以下範例簡單的說明如何申請一組google map api key及設定Layout檔main.xml。

參考資料Location and Maps | Android Developers

1.如何申請指紋碼

要向Google申請服務的指紋碼,需要先在本機端產生MD5的指紋證書,再利用這個證書產生指文碼。

如何產生指紋證書呢?只需要在jdk的安裝路經bin目錄下,輸入

keytool -genkey - v -keystore 名稱.keystore

其中”名稱.keystore"請自行設定喜好的名稱,再來畫面會要求你輸入一些基本資訊,大概內容如下圖,密碼部份這個範例為test123。名稱姓氏、單位名稱、組織名稱、城市或地區名稱、州及省份名稱、國碼

產生keystore

Read More

[Java]利用迴圈印數字列

這是很多在學習Java都會遇到的作業,常在各大論談都有人提出,不過即然是作業了,應該自己學習來的好,可是老師一成不變的作業也說不過去是吧,這裡就提供了數種老師常會用來當作業的迴圈習題,像是印1 2 3 4 5 ,或是印* 星號等,有遇到就再補上。

印出1到5,5到1的數列,每一行內容為1到該行的數字長

1.png

利用數學式子,運算出1-5及5-1二種不同方向的數,再利用另一個迴圈印出該行的數列長,其中(i+1)/5 是取除5的整數,而(i + 1) %5 是取5的餘數。

程式碼如下:

        for(int i = 0 ; i < 9; i ++)
        {
            int d = java.lang.Math.abs((i +1)/5 *5  - (i +1)%5);
            System.out.print(" ");
            for(int j = 0 ; j < d ; j ++)
            {
                System.out.print(j+1);
            }
            System.out.println();
        }

Read More

[Java]簡單的Socket Client Server

這是一個超簡單的Client Server範例,Server部份利用Thread來常駐執行,而Client利用Socket去連接指定的port,送出一個字元組給OutputStream,而Server接收到請求後,使用InputStream來取得資料。

這裡有篇介紹Socket Server的原理Thread應用-Java SocketServer,還有一篇傳送物件Serializable序列化Socket傳送範例,這篇算是比較進階。

程式碼包裝在jar裡,利用二個command視窗,一個執行Server一個執行Client,結果如下:

Java Socket Client Server

原始碼及jar下載:


點我下載

Read More

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

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

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

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

JMagick-Java open source free影像壓縮

範例的結果:

jmagick1.png
Read More