java HttpURLConnection來實作get及post動作

這個範例可以利用java.net.HttpURLconnection或HttpsURLconnection來摸擬瀏覽網頁

做form submit動作

public boolean doPost(String sURL,String data,String cookie,String referer,String charset)

post部份需要傳入

  • sURL:Action的url
  • data :要傳送的的資料也就是像id=123&test=456之類的
  • cookie:是否要傳送cookie資料,可為null,像 __utma=114386561.1334910113.1250671126.1251247266.1251279995.24;
  • referer:傳那裡來的,是一個網址,可為null
  • charset:傳送及取回的資料編碼為何
public boolean doGet(String sURL,String cookie,String referer,String charset)

跟post唯一不同的地方為

  • sURL:Action的url 再加上?data ,像http://www.aaa.com/123.jsp?id=123&test=456
Read More

在現有圖片中加亂數碼(文字)

構想:

在現有的圖片裡,列如樣版票圖,再加入亂數碼,以區別每個票圖的唯一性。

想法:

取得亂數碼,打開樣版票圖,取得畫筆(Graphics2D),把亂數碼設定到TextLayout圖層上,

計算放置TextLayout圖層的x及y坐標,把圖層draw到樣版圖上,輸出到以亂數碼為名稱之圖檔。

以下是範例程式:

程式大樣分成二大部份,一是圖形的加註文字,二是取得亂數編號的方式。

Read More

java.sql.ResultSet absolute造成out of memory

java.sql.ResultSet 使用absolute方法可以移動ResultSet的指標到想要的筆數,

當 JDBC跟資料庫要資料時,會回傳一個ResultSet,但不是把所有查詢的結果均回傳至Web Server端,

而是只給前面幾筆資料,可以利用ResultSet的方法setFetchSize來設定一次回傳的筆數,

(一次傳的多,等待的時間就比較長,傳的太少,要一直跟資料庫要ResultSet.next()也會比較慢)

當ResultSet向下移動碰觸或是快要碰觸到目前回傳的筆數時,會自動再跟資料庫要設定好的筆數,

而把目前筆數以上的資料全都暫存在記憶體裡。

以上是ResulSet的基本原理,當一次查詢的量夠大時,而利用absolute來移動到想要的Row時,

就有可能發生out of memory的問題,

舉個列子:

Read More

好用的封裝軟體CreateInstall Free

如果使用VisualStudio Express 2008開發軟體的話,想要發佈給其它人使用,這倒是個麻煩,

可以利用內建的OneClick方式封裝,或是利用功能強大的InstallShield Express來做,不過InstallShield並非免費,

CreateInstall Free是一套免費的封裝Install的軟體,沒有註冊的狀況下,在安裝時下方有會提示CreateInstall Free字樣,

它不但可以把程式整個封裝進入一個setup.exe的執行檔,還可以對內容進行壓縮、放入startup目錄,

對付一些簡單的程式的封裝是個很好的選擇,不過它也不是完全沒有缺點,

像是沒法子自動檢查是否存在Framework .net 等。