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 >
其中有一些方法你可以覆寫它,這部份之後再多做說明。
2010年9月23日 星期四
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)