1. 所需軟體
1. JDK 1.4.2以上版本
2. Eclipse 3.1.2
3. Tomcat的Eclipse平台外掛程式 com.sysdeo.eclipse.tomcat_3.0.0
4. Tomcat 5.5.16版本
5. 下載Webwork2.2.2, http://www.opensymphony.com/webwork/ 2. JDK 安裝
執行j2sdk的安裝程式,然後按預設設定進行安裝即可。
安裝j2sdk以後,需要配置一下環境變數,在我的電腦->屬性->進階->環境變數->系統變數中添加以下環境變數(假定你的j2sdk安裝在c:/j2sdk1.5.0):
JAVA_HOME=c:/j2sdk1.5.0
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;(.;一定不能少,因為它代表當前路徑)
path=%JAVA_HOME%/bin
接著可以寫一個簡單的java程式來測試J2SDK是否已安裝成功:
public class Test{
public static void main(String args[]){
System.out.println("This is a test program.");
}
}
將上面的這段程式儲存為檔案名稱為Test.java的檔案。
然後開啟命令提示字元視窗,cd到你的Test.java所在目錄,然後鍵入下面的命令
javac Test.java
java Test
此時如果看到列印出來This is a test
program.的話說明安裝成功了,如果沒有列印出這句話,你需要仔細檢查一下你的配置情況。 3. Eclipse 3.1.2 安裝
解壓下載的Eclipse 3.1.2,比如解壓到D:/, 那麼D:/eclipse將是Eclipse的安裝路徑。
預設情況下,Eclipse平台採用預設的JRE。如果需要改變Eclipse啟動時的JRE, 可以選擇 Window > Preferences,開啟 preferences 對話方塊,如下圖所示。
在左側的樹視圖中選擇 Java 選項。展開 Java 元素,並選擇 Installed JRE,如下圖所示。
這樣,就完成了Eclipse SDK的安裝。 4. Sysdeo外掛程式安裝
直接將Sysdeo外掛程式解壓到Eclipse所在目錄的plugins目錄下。比如Eclipse所在的目錄為D:/eclipse, 那麼把Sysdeo外掛程式解壓到D:/eclipse/plugins目錄下即可。
重啟Eclipse平台,我們將會看到tomcat的表徵圖顯示在工具列。 5. Tomcat 安裝
執行j2sdk和tomcat的安裝程式,然後按預設設定進行安裝即可。
安裝Tomcat後,在我的電腦->屬性->進階->環境變數->系統變數中添加以下環境變數(假定你的tomcat安裝在c:/tomcat):
CATALINA_HOME=c:/tomcat
CATALINA_BASE=c:/tomcat
然後修改環境變數中的classpath,把tomat安裝目錄下的common/lib下的(可以根據實際追加)servlet.jar追加到classpath中去,修改後的classpath如下:
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet.jar;
接著可以啟動tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。
接下來進行在Eclipse平台設定Tomcat的preference。
設定Tomcat home, 如下圖:
設定Tomcat base, 如下圖:
6. Webwork 2.2.2 安裝,
1. 建立一個Tomcat Project,其目錄結構示意圖如下:
2. 解壓Webwork壓縮包,將webwork-2.2.2.jar和lib目錄下的一些核心包複製到Web應用的WEB-INF/lib目錄下,其部署結構示意圖如下:
3. 建立設定檔web.xml和xwork.xml。web.xml檔案位於WEB-INF目錄下,xwork.xml位於WEB_INF/src目錄下。示意圖如下:
這樣對於Webwork的部署就可以了 7. helloworld樣本:
1. 編輯設定檔web.xml
在web.xml檔案裡配置一個派遣器ServletDispatcher,它初始化WebWrok的一些配置資訊,解析XWork的Action配置資訊,根據請求去組裝和調用執行相應的攔截器(Interceptor)、Action、Action Result(Action執行結果的輸出)等,具體配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>webwork</servlet-name> <servlet-class> com.opensymphony.webwork.dispatcher.ServletDispatcher </servlet-class> </servlet> <servlet-mapping> <servlet-name>webwork</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> <taglib> <taglib-uri>webwork</taglib-uri> <taglib-location>/WEB-INF/lib/webwork-2.2.2.jar</taglib-location> </taglib> </web-app> |
2. 在WEB-INF/src建立包com.example.hello, 然後在這個包裡建立HelloWorldAction類。HelloWorldAction是一個普通的Java類,它實現了Action這個介面。Action是一個非常簡單的介面,只有一個方法:public String execute() throws Exception; HelloWorldAction有一個String類型欄位greeting,在execute()方法中,greeting被賦值“Hello World!”,並返回String型常量SUCCESS,SUCCESS的定義詳見Action介面,這個常量代表了execute()方法執行成功,將返回成功頁面。
package com.example.hello; import com.opensymphony.xwork.Action; public class HelloWorldAction implements Action{ String greeting; public String getGreeting() { return greeting; } public String execute() throws Exception { greeting = "Hello World!"; return SUCCESS; } } |
3. 建立返回頁面greeting.jsp。greetings.jsp很簡單的jsp頁面,它使用了WebWork內建的標籤庫。它的作用是輸出變數“greeting”的值。這個<ww:property value="greeting"/>語句,相當於調用相應Action(HelloWorldAction)的getGreeting()方法,取得變數“greeting”的值。
<%@ taglib prefix="ww" uri="webwork"%> <html> <head> <title>First WebWork Example</title> </head> <body> <p><ww:property value="greeting" /></p> </body> </html> |
4. 在xwork.xml中添加action和視圖串連的設定檔
xwork.xml檔案結構如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"> <xwork> <include file="webwork-default.xml" /> <package name="default" extends="webwork-default" namespace="/example"> <action name="hello" class="com.example.hello.HelloWorldAction"> <result name="success" type="dispatcher"> <param name="location">/greeting.jsp</param> </result> </action> </package> </xwork> |
package標籤: namespace=”example”,表示調用action命名空間;action標籤:name=”hello”,表示調用這個Action的標識是hello,這樣可以通過下面的url訪問這個Action: …/example/hello.action,
例如:http://localhost:8080/helloworld/example/hello.action;class=" com.example.hello.HelloWorldAction "很好理解,這是真正調用執行的類。
result標籤:name="success",記得前面HelloWorldAction返回的字元常量SUCCESS嗎。它的值其實就是“</