** 以下是個人對於JavaBeans的心得與認知,定義的部份是根據書本上來的,某些用法是自己心得補充,沒有驗證的部份會採用灰色字體來表示,若你看到了我這篇文章,那麼請你針對灰色字體的部份存疑,若你找到了任何更加正確的資料,提供讓我知道我會非常感激你,但是請提供相關網址或參考來源。 **

JavaBeans最早是為了提供IDE開發環境的元件而定義出來的標準規範。JavaBeans在維護資料屬性的部分有其限制,符合這些限制的Class,搭配Reflection機制,可以進行自動化編譯、取用。

為了達到這樣的目的,JavaBeans有著一些定義和規範,滿足這三種規範的Class才能稱其為JavaBeans:

  • 必須實作 java.io.Serializable 和 java.io.Externalizable 兩個介面
  • 提供一個沒有引數的建構子
  • private屬性必須有相對應的 set/get 方法,並使用規定的命名方式

若是設計IDE開發環境內的元件,還必須繼承java.awt.Component。

java.io.Serializable 和 java.io.Externalizable 兩個介面只需實作其中之一,說實作也並非恰當,因為這兩者並無包含任何該實作的method,只要在class宣告之初加上implements Serializable 或是 implements Extrernalizable 即可,之後 JVM 自然會進行相關的處理,像是透過儲存機制在執行時將已初始化的beans從硬碟(或網路)中儲存和載入以保持永續性(persistence)。

永續性的意思是,任何重要的狀態可以用一致性的方式來儲存並取回,無論何時取用都能確保取回的reference是正確的狀態。

永續性對某些需要負載平衡或是failover的環境下非常重要,因為在這些環境中,運行於某個server上的reference,可能會被transfer到另外一台server上去執行,transfer過去的reference,必須讓接手的server知道本身的狀態,否則會造成資料的錯亂。

加上Serializable屬性的Class就是表示能夠將目前狀態儲存於檔案或是網路串流中,並可透過相同的機制來重建(反連續性,deserialization)。

並非所有屬性都需要正確的重建,不需要重建的屬性或method,則會加上 transient 來表示,所有有修飾字 transient 的屬性或method,都會在 deserialization 的過程中被重新建立,所以他們的值有可能與先前所建構的值不同。

在設計 JavaBeans 的屬性時,最好能先思考一下每一個變數在進行 transfer 的的各種狀況,若是該變數無法被正確的重建,最好能加上 transient 修飾。

在JSP檔案中使用beans時,透過<jsp:useBean>標籤來實現,id屬性是initial的名稱,在預設的生命週期(page)
內,可以透過id設定的名稱來存取,如下面範例

<jsp:useBean id="today" class="java.util.Date" />
<%= today.getTime() %>

 

give 發表在 痞客邦 留言(1) 人氣()

give 發表在 痞客邦 留言(0) 人氣()

Step0. 安裝Python
首先, 要先安裝Python(當然....)


Step1. 安裝easy_install
下載ez_setup.py, 並安裝, 參考
http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install


Step2. 下載TurboGears並安裝
C:easy_install TurboGears
(參考: http://www.ibm.com/developerworks/cn/linux/l-turbogears/index.html )

若無法執行easy_install, 檢查一下系統PATH變數
On Windows, an easy_install.exe launcher will also be installed, so that you can just type easy_install as long as it's on your PATH. If typing easy_install at the command prompt doesn't work, check to make sure your PATH includes the appropriate C:\Python2X\Scripts directory.


Step3: 執行tg-admin
C:>tg-admin

TurboGears 1.0.5 command line interface

Usage: C:Python25Scriptstg-admin-script.py [options]

Options:
-c CONFIG --config=CONFIG Config file to use
-e EGG_SPEC --egg=EGG_SPEC Run command on given Egg

Commands:
i18n Manage i18n data
info Show version info
quickstart Create a new TurboGears project
shell Start a Python prompt with your database available
sql Run the database provider manager
toolbox Launch the TurboGears Toolbox
update Update an existing turbogears project

give 發表在 痞客邦 留言(0) 人氣()

文章取自Eclipse上的wiki
http://wiki.eclipse.org/index.php/Connecting_to_SQLite

節錄如下

1) Download the SQLite drivers from: [1]. The actual zip file with the driver is at [2]. Expand the zip somewhere locally and note the location.


2) Put the sqlite_jni.dll from the zip into your JRE's bin directory. The driver requires this file to be in the java library path.


3) In Eclipse with DTP 1.0 installed (preferably the final build or a nightly build dated 110806 or later), go to the Preferences (Window->Preferences) and select the Connectivity->Driver Definitions page.


4) Select the "Generic JDBC" category in the Available Driver Definitions tree and click "Add...".


5) Select "Generic JDBC Driver->Generic JDBC Driver" in the Available Driver Templates tree. Give the new generic JDBC driver a name like "javasqlite JDBC driver". Click OK.


6) Click "Add Jar/Zip" and select the sqlite.jar from the driver zip you expanded in step 1. Click Open.


7) In the Properties table, select the Driver Class property and click the "..." button. If the jar is accessible, you will see a dialog appear with at lease one class in the list. Select "SQLite.JDBCDriver". Click OK.


8) Also in the Properties table, select the Driver URL property and type the following: jdbc:sqlite:/DRIVE:/dirA/dirB/dbfile


9) Click OK on the Edit Driver Definition dialog. You should see your new driver appear in the driver list on the Driver Definitions preference page.


10) Click OK to close the Preferences dialog.


11) If the Data Source Explorer is not open, open the Connectivity->Data Source Explorer view from the Window->Show View menu or open the Database Development perspective from the Window->Open Perspective.


12) In the Data Source Explorer, right-click on the Databases category and select New...


13) In the New Connection Profile wizard's Wizard Selection Page, choose the SQL Model-JDBC Connection entry in the list and click Next.


14) Give your new profile a name like "SQLiteTestDB". Click Next.


15) In the "Select a driver from the drop-down" combo box, select your new SQLite driver definition. Modify the file path in the sample URL to match the path to your local SQLite database.


16) Click "Test Connection" to verify you can connect to your database.


17) Click Finish to create the profile.


18) In the Data Source Explorer, right-click on the new profile and select Connect. You should see content appear in the tree beneath the profile. Browse through your database to view available tables and their columns.


JDBC Driver載點
http://www.ch-werner.de/javasqlite/javasqlite-20080420-win32.zip

Code snippet:
Connection conn = null;
SQLite.Database db = null;
try {
Class.forName("SQLite.JDBCDriver").newInstance();
conn = DriverManager.getConnection("jdbc:sqlite:/blabla");
java.lang.reflect.Method m =
conn.getClass().getMethod("getSQLiteDatabase", null);
db = (SQLite.Database) m.invoke(conn, null);
} catch (Exception e) {

}

在Netbeans中設定Connection
  1. 先在Global Library中建立SQLite的項目
  2. 在Project中引入這個Library
  3. 在Netbeans中移到Services頁籤,建立一個新的JDBC Driver profile
  4. 然後建立一個Connection,選擇剛剛建立的profile,Database URL的設定如下
  5. 完工,驗證一下




give 發表在 痞客邦 留言(0) 人氣()

這個不是完整step-by-step的installation guide, 只是用來紀錄安裝時的一些情況

1. 安裝完Ubuntu 8.04後,也用Lazyubuntu裝了JVM,這樣還不夠,因為Lazyubuntu僅安裝jvm,
但是Netbeans要的是完整的JDK。所以安裝完成後要把不足的部份補上

$ sudo apt-get install sun-java6-jdk

這樣會補上Demo, Source等套件

2. 預設的安裝路徑在 /usr/lib/jvm/java-6-sun,在Netbeans中指定這個路徑即可

補上執行後的畫面


by the way, 新版的Ubuntu 8.04好用阿~~
不過Intel Gigabyte NIC driver有bug....

give 發表在 痞客邦 留言(1) 人氣()

PTT上看到的, 重點在紅線標示處

嗯....



give 發表在 痞客邦 留言(2) 人氣()


 


直接點


give 發表在 痞客邦 留言(2) 人氣()

請看圖


雖然小弟我不用香水,但是看到這東西時,還是小小的震撼了一下!!
在香水界一昧的追求時尚之下,竟然有人大膽地啟用如此....嗯,創新的造型

真的是值得鼓勵阿~~~~

give 發表在 痞客邦 留言(3) 人氣()

Meebo,一個立志成為網頁平台上通訊軟體介面王者的組織,應用他們神奇、強大的ajax魔法,開發出aim/yahoo即時通/google talk/msn等網頁版的登入程式。不過上述四種現今當紅的即時通訊軟體,後三者都有自己開發的網頁介面了,那麼,Meebo還有什麼神奇的地方值得推薦呢?

若是沒看過這篇的,可以先看看小弟我先前的介紹,這次這篇文章,算是上篇文章的進階版:
使用Pidgin + Meebo模組主動和讀者聊天

** 以下文章是假設你看過了上面那篇,且已申請了Meebo的帳號 **

先連到Meebo首頁,若是首次登入時沒看到中文,可以把瀏覽器往下拉,下方有語言選項,選擇繁體中文後就可以看到中文啦。
再來用你申請的Meebo帳號登入(請用右方的登入視窗),登入後,你的畫面可能跟我的不太一樣,因為我有修改過版型(並加上Iron Man第一代的原型)。
看看上方,有四個連結,點一下中間的偏好設定,會看到下面的圖樣。有音效、表情符號、佈景主題等,修改版型的地方就在佈景主題那,可以挑個好看的佈景主題。我不喜歡傳訊/收訊時有聲音,所以把音效關閉了(也減少一點頻寬的消耗),表情符號可以留著,關掉也可。Visual Notificatoins則是Firefox的Plugin,目前不支援Firefox 3.0 RC1,所以我就沒裝了。聊天紀錄的地方若是勾選,則所有聊天的訊息會存在server上,類似gtalk那樣。
回到主畫面上,看到聯絡人名單的地方。點選右方那個圖示,可以讓聯絡人名單與現行視窗分離,這樣原本的瀏覽器可以繼續瀏覽網頁,保持這個跳出的視窗就好。在聯絡人清單上,會看到meebo聊天室的分類項,下面會列出你開啟的聊天室,這邊,就是我們的重點了。剛登入時,應該只會有一個預設的聊天室,就是以自己名稱開頭的那個。點兩下後,可以看到聊天室的畫面打開了。
以下是聊天室的畫面,右方是管理者會看到的畫面,左方則是一般User看到的畫面。
聊天室上方有個設定的選項,點下去以後可以設定聊天室敘述、標籤、房間圖像、公開或私人等設定,聊天室名稱並非在此設定,等等再說。這邊可以挑個好看的圖示讓聊天室更加明顯喔(所有聊天室在登入主頁面中都可以搜尋的到,所以若是你想讓吸引其他人來你的聊天室,那麼設定一個閃亮亮的名稱和圖像,是必要的啦,鄉親~
到目前為止,我想應該基本的操作應該都沒問題了。接下來就是,該怎麼把這些東西兜進blog裡讓大家都能用了!!

在聊天室管理者畫面的上方,有個植入在你的網頁上的選項,點下去。這邊設置的,是登入聊天室的畫面大小,使用者不必先申請一個meebo帳號就能和你聊天!!管理者也不用24小時掛在聊天室內,即使一個人都沒有,聊天室依然存在,還可以留言~~~~(前提是訊息有留存)。OK!先設定大小,下面設置的地方就是要加進blog的html,拷貝下來吧!!
這邊先跳開一下,補充剛剛沒說的部份 - 怎麼修改聊天室名稱? 基本上,聊天室名稱建立時就以綁定,無法修改,要修改,請重新建立一個新的聊天室。在主畫面的下方,有個create a new room,點下去。點了之後的畫面和聊天室設定的畫面類似,只是多了一個新房間名稱的欄位,下方儲存的地方也變成了開啟新房間,設定好相關資訊,就可以開啟了。
開了以後,看看聯絡人名單的地方,會多了一個剛剛設定的聊天室,以後從這邊點選就好了,很方便。

好,回到剛剛抓取的html。

這邊要先說明開新房間的方式,是因為每個房間有個唯一值,我們把聊天室的連結放到blog上時,需要拷貝這個連結。若你要取個閃亮的聊天室名稱,那麼就得先把房間建立起來,然後再把連結放到blog上。以下有圖說明。
上方value後面接的Link,就是每個聊天室的連結,後方id的部份每個聊天室都不同,所以要把你想要放到blog上的聊天室ID拷貝下來。

有了這ID以後,就可以加到blog上了。

那要怎麼加呢? 若是像上一篇文章的方式,把聊天室介面放在左邊的功能表上,那麼畫面一翻新,使用者也會重新登入一次,這樣不是好方法....這邊有跳出視窗的程式碼,拷貝,貼到pixnet後台的版型設定上就好了,記得把link改成自己的聊天室!!
把這個加到pixnet後,就可以看到類似這樣的按鈕啦

之後點選進入聊天室,就可以開始聊天了!!
參考連結
  • Meebo on Wikipedia [] []

give 發表在 痞客邦 留言(0) 人氣()

那天台北阿喵老大 ,一來就點出我Meebo內嵌式視窗的毛病,為了不讓這功能廢掉,所以我把Meebo Client移到彈出視窗裡面(早該做了阿....),如此一來原本的頁面可以繼續瀏覽,大家也可以繼續聊天啦,哈(為了聊天還真是廢了不少心思阿我....)

請點左方的MeeboMe按鈕,跳出視窗以後就可以開始聊天啦(前提是要登入阿....)

登入畫面如下圖
然後我又嘗試了Meebo聊天室的功能,沒想到聊天室的功能也很好玩,就順便把Button加上去了,至於聊天室要怎麼加,請等下一篇文章



give 發表在 痞客邦 留言(3) 人氣()