本來專題要用 ActiveX,結果失敗了 不過再這邊分享一下如何建置你的第一個 ActiveX 控制項
首先我是用 Microsoft Visual Basic 6.0
檔案 > 建立新專案 > ActiveX 控制項 > 確定
在右邊的的專案欄可以看到一個 UserControl1 (UserControl.ctl) 應該就是你目前看到的頁面了
接下來再做左邊的工具欄拖選 Command Button 到你的 UserControl1
再拖選一個 TextBox (Text1)即可,一樣直覺的對 Command Button 點兩下 XD
Public Function setText(txt As String)
Text1.Text = txt
End Function
Private Sub Command1_Click()
MsgBox Text1.Text
End Sub
2010年9月30日 星期四
2010年9月29日 星期三
Hibernate 教學 - 雙向一對一 (雙向主鍵)
對於上一篇所提及的一對一當中,我們是以多對一的角度,並限制多的一芳外鍵唯一
即可達到一對一的效果,接下來簡單說明一下另外一個一對一的用法
想法即是讓多對一中,"一"的這一方的主鍵成為外來鍵,這樣多的這方即可不用再有外鍵關連到一的這方
以上一篇的例子來說明,Customer & Address (多對一)
即可以將 Customer 的外鍵 address_id 取消,並以 Address 的主鍵當做外鍵即可
那在這兩個類別的寫法都不變,同樣都是有關連到彼此的雙向關係
唯一不同的救是組態檔的設定,稍微來看一下
Customer.hbm.xml
<class name="MapPOJO.Customer" table="Customer">
即可達到一對一的效果,接下來簡單說明一下另外一個一對一的用法
想法即是讓多對一中,"一"的這一方的主鍵成為外來鍵,這樣多的這方即可不用再有外鍵關連到一的這方
以上一篇的例子來說明,Customer & Address (多對一)
即可以將 Customer 的外鍵 address_id 取消,並以 Address 的主鍵當做外鍵即可
那在這兩個類別的寫法都不變,同樣都是有關連到彼此的雙向關係
唯一不同的救是組態檔的設定,稍微來看一下
Customer.hbm.xml
<class name="MapPOJO.Customer" table="Customer">
2010年9月26日 星期日
Hibernate 教學 - 雙向一對一 (外鍵唯一)
Hibernate 再一對一當中有兩種情況,本篇先介紹 外鍵唯一的情況
在此情況中,我們可以看成 "多對一" 中,每個多的一方限制只能關連到唯一 一個 "一方"
這樣的情況下只要讓多的一方在資料表中的外鍵設定為唯一即可!!
以下舉一個 Customer 和 Address 的雙向例子,讓彼此都可參考到彼此
在此情況中,我們可以看成 "多對一" 中,每個多的一方限制只能關連到唯一 一個 "一方"
這樣的情況下只要讓多的一方在資料表中的外鍵設定為唯一即可!!
以下舉一個 Customer 和 Address 的雙向例子,讓彼此都可參考到彼此
2010年9月23日 星期四
Struts 教學 - ActionForm
ActionForm (org.apache.struts.action.ActionForm) 基本上是個 JavaBean
擁有與 JavaBean 相同的一些規則,譬如對於屬性都須有 get/set method
而一般你建立一個 ActionForm 時都必須繼承 org.apache.struts.action.ActionForm
並且必須在組態檔 struts-config.xml 中的 <form-beans> 標籤裡建立 <form-bean>
<form-beans >
//以下是一個 name 為 Member 並指定 type 為你繼承 ActionForm 的類別
<form-bean name="Member" type="fsc.useActionForm.Member" >
</form-beans >
其中有一些方法你可以覆寫它,這部份之後再多做說明。
擁有與 JavaBean 相同的一些規則,譬如對於屬性都須有 get/set method
而一般你建立一個 ActionForm 時都必須繼承 org.apache.struts.action.ActionForm
並且必須在組態檔 struts-config.xml 中的 <form-beans> 標籤裡建立 <form-bean>
<form-beans >
//以下是一個 name 為 Member 並指定 type 為你繼承 ActionForm 的類別
<form-bean name="Member" type="fsc.useActionForm.Member" >
</form-beans >
其中有一些方法你可以覆寫它,這部份之後再多做說明。
2010年9月18日 星期六
2010年9月15日 星期三
Struts 教學
Struts 目前是 Apache Jakarta 的一個開源軟體,Struts 針對了 JSP, Servlet 改進
簡單說他的目的就是要減少運用 MVC model 開發的 WEB AP 的時間
在學習上這個 Framework 比較容易,比起 Hibernate 和 Spring 來說......
針對
1. Controller,Struts 統一將所有的請求不論是GET 或 POST 一律轉送到 ActionServlet而 ActionServlet 則透過組態檔 Struts-config.xml
來進行各個請求的配置
2. View,Struts 同樣提供了很多的 JSP 標籤庫
3. Model,主要分為 Action Form、JavaBean or EJB、Action
簡單說他的目的就是要減少運用 MVC model 開發的 WEB AP 的時間
在學習上這個 Framework 比較容易,比起 Hibernate 和 Spring 來說......
針對
1. Controller,Struts 統一將所有的請求不論是GET 或 POST 一律轉送到 ActionServlet而 ActionServlet 則透過組態檔 Struts-config.xml
來進行各個請求的配置
2. View,Struts 同樣提供了很多的 JSP 標籤庫
3. Model,主要分為 Action Form、JavaBean or EJB、Action
2010年9月11日 星期六
Java 網路程式 - Socket
java.net.Socket 類別是 Java 拿來進行用戶端 TCP 操作的一個基礎類別
首先來看看兩個比較常見的 Socket 建構式
1. public Socket(String host, int port)
throws UnknownHostException, IOException
參數 host 代表一個主機的名稱,而參數 int 是代表遠端連線的通訊埠
例如:Socket socket = new Socket("tw.yahoo.com", 80);
以上會建立一個TCP socket 並連接到所指定的遠端主機及通訊埠
2.public Socket(InetAddress host, int port)
throws IOException
這邊比較不同的是 host 是一個 InetAddress 物件
例如:
InetAddress host = InetAddress.getByName("tw.yahoo.com");
Socket socket = new Socket(host, 80);
首先來看看兩個比較常見的 Socket 建構式
1. public Socket(String host, int port)
throws UnknownHostException, IOException
參數 host 代表一個主機的名稱,而參數 int 是代表遠端連線的通訊埠
例如:Socket socket = new Socket("tw.yahoo.com", 80);
以上會建立一個TCP socket 並連接到所指定的遠端主機及通訊埠
2.public Socket(InetAddress host, int port)
throws IOException
這邊比較不同的是 host 是一個 InetAddress 物件
例如:
InetAddress host = InetAddress.getByName("tw.yahoo.com");
Socket socket = new Socket(host, 80);
2010年9月9日 星期四
Hibernate 教學 - 多對多
這篇要來介紹一下在 Hibernate 中的多對多關聯
設計模式通常是採用仲介 Table 的方式來聯繫其他兩個個體間的關係
所以通常須設計三個 Table 來實現資料庫的多對多關係
在物件和物件中,盡量避免設計出多對多的關聯
我也有點同感,的確多對多關係是有那嚜一點沒必要
但是既然物件和物件有這樣的關聯那就必須去理解了
接下來說明的是多對多關聯(雙向),雙向就是彼此都認得彼此。
設計模式通常是採用仲介 Table 的方式來聯繫其他兩個個體間的關係
所以通常須設計三個 Table 來實現資料庫的多對多關係
在物件和物件中,盡量避免設計出多對多的關聯
我也有點同感,的確多對多關係是有那嚜一點沒必要
但是既然物件和物件有這樣的關聯那就必須去理解了
接下來說明的是多對多關聯(雙向),雙向就是彼此都認得彼此。
2010年9月6日 星期一
Java 網路程式 - 利用 URLConnection 模擬 HTTP request
以下我是利用 JSP 先撰寫一個請求表單(form),再利用 Java 的 java.net.URLConnection
模擬 form 送出的 HTTP 請求和所代之參數,最後在取得回傳網頁的內容。
先來介紹一下 URLConnection 這個抽象類別,首先
它針對了與伺服器(HTTP伺服器)的互動提供了更多的方法和一些控制
通常都是透過 URL 的 openConnection() 取得 URLConnection,例如以下:
try{
URL url = new URL("http://tw.yahoo.com");
URLConnection conn = url.openConnection();
}
catch(MalformedURLException e){...}
catch(IOException e){...}
模擬 form 送出的 HTTP 請求和所代之參數,最後在取得回傳網頁的內容。
先來介紹一下 URLConnection 這個抽象類別,首先
它針對了與伺服器(HTTP伺服器)的互動提供了更多的方法和一些控制
通常都是透過 URL 的 openConnection() 取得 URLConnection,例如以下:
try{
URL url = new URL("http://tw.yahoo.com");
URLConnection conn = url.openConnection();
}
catch(MalformedURLException e){...}
catch(IOException e){...}
2010年9月4日 星期六
Hibernate 教學 - 雙向關聯
在前兩篇有介紹到 Hibernate 的"一對多"和"多對一"關聯
而本篇的雙向關聯顧名思義就是雙方都認得對方,拿之前的資料為例子
一對多是宿舍(Room)認得好幾位學生(Student)
多對一則是好幾個學生住在同一個房間
所以先來看看的雙向關聯中 Student 和 Room 類別的寫法
基本上 Student 的寫法跟"多對一"的 Student一樣,而 Room 的寫法則同 "一對多" 的 Room
程式如下:
而本篇的雙向關聯顧名思義就是雙方都認得對方,拿之前的資料為例子
一對多是宿舍(Room)認得好幾位學生(Student)
多對一則是好幾個學生住在同一個房間
所以先來看看的雙向關聯中 Student 和 Room 類別的寫法
基本上 Student 的寫法跟"多對一"的 Student一樣,而 Room 的寫法則同 "一對多" 的 Room
程式如下:
Java 網路程式 - InetAddress
Java 對於主機的 IP 定址以及主機名稱的相關訊息主要就是透過 java.net.InetAddress
特別的是 InetAddress 沒有建構子
但是可以透過以下三個類別方法來取得 InetAddress 的實例
1. getLocalHost() 他會回傳目前本地端主機的 InetAddress 實例
範例:InetAddress myHost = InetAddress.getLocalHost();
2. getByName(String) 會回傳指向傳入參數的主機之 InetAddress 實例
範例:InetAddress addr = InetAddress.getByName("192.168.x.yy");
特別的是 InetAddress 沒有建構子
但是可以透過以下三個類別方法來取得 InetAddress 的實例
1. getLocalHost() 他會回傳目前本地端主機的 InetAddress 實例
範例:InetAddress myHost = InetAddress.getLocalHost();
2. getByName(String) 會回傳指向傳入參數的主機之 InetAddress 實例
範例:InetAddress addr = InetAddress.getByName("192.168.x.yy");
2010年9月3日 星期五
Hibernate 教學 - cascade
本篇主要是說明在組態檔中所使用的 cascade 選項
在之前的 "一對多"和"多對一"教學裡面都有出現過
那它主要的用意就是所謂的 "連鎖效應",以之前的程式作為例子
在一對多的 Room.hbm.xml 中
<set name="students" table="student" cascade="all" >....</set>
如果有以上的設定時,在 JSP 中模擬了三筆學生(Student)資料和兩筆宿舍(Room)資料
分別為 student1、student2、student3 和 room1、room2
最後在用 session.save() 將 room1 和 room2 關連到資料庫
在之前的 "一對多"和"多對一"教學裡面都有出現過
那它主要的用意就是所謂的 "連鎖效應",以之前的程式作為例子
在一對多的 Room.hbm.xml 中
<set name="students" table="student" cascade="all" >....</set>
如果有以上的設定時,在 JSP 中模擬了三筆學生(Student)資料和兩筆宿舍(Room)資料
分別為 student1、student2、student3 和 room1、room2
最後在用 session.save() 將 room1 和 room2 關連到資料庫
2010年9月1日 星期三
JSP - package org.apache.taglibs.standard.tag.rt.core does not exist
今天無聊在寫個討論區當練習
結果遇到了一個莫名奇妙的問題
在 compile 的時候出錯的,狀況如下:
Compiling 1 source file to C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\useJSTL\build\generated\classes
C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\useJSTL\build\generated\src\org\apache\jsp\index_jsp.java:93: package org.apache.taglibs.standard.tag.rt.core does not exist
org.apache.taglibs.standard.tag.rt.core.OutTag _jspx_th_c_005fout_005f0 = (org.apache.taglibs.standard.tag.rt.core.OutTag) _005fjspx_005ftagPool_005fc_005fout_0026_005fvalue_005fdefault_005fnobody.get(org.apache.taglibs.standard.tag.rt.core.OutTag.class);
結果遇到了一個莫名奇妙的問題
在 compile 的時候出錯的,狀況如下:
Compiling 1 source file to C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\useJSTL\build\generated\classes
C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\useJSTL\build\generated\src\org\apache\jsp\index_jsp.java:93: package org.apache.taglibs.standard.tag.rt.core does not exist
org.apache.taglibs.standard.tag.rt.core.OutTag _jspx_th_c_005fout_005f0 = (org.apache.taglibs.standard.tag.rt.core.OutTag) _005fjspx_005ftagPool_005fc_005fout_0026_005fvalue_005fdefault_005fnobody.get(org.apache.taglibs.standard.tag.rt.core.OutTag.class);
訂閱:
文章 (Atom)