通過WebWork實(shí)現(xiàn)HelloWorld
在具體開發(fā)使用介紹之前,搭建好運(yùn)行環(huán)境是必備的。假設(shè)Tomcat的安裝和部署已搞定,打開eclipse新建一個Tomcat工程HelloWorld:
1.在網(wǎng)上下載到***的WebWork壓縮包,并將其解壓開來。打開解壓目錄,你將看到以下的文件和目錄:
webwork-2.x.jar當(dāng)然就是WebWrok***發(fā)布的Jar包
webwork-example.war是WebWrok自帶的很有代表性的功能演示例子,掌握它是提高你的WebWork技術(shù)水平的捷徑
webwork-migration.jar提供快速將1.x版本移植到2.x版本所用的類文件
docs目錄 WebWrok的使用文檔,包括api文檔、clover文檔、單元測試(Junit)文檔等
lib目錄 WebWork在運(yùn)行或編譯時所用到的所有.jar包
src目錄 源程序目錄
2.使用WebWork需要將它運(yùn)行時的Jar包入到Web容器可以找到的ClassPath中:
將步驟1中介紹的webwork-2.x.jar放到Tomcat工程下的WEB-INF\lib目錄中,同時也要將..\ webwork-2.2.6\lib\default中的所有jar文件和..\webwork-2.2.6\lib\spring中以spring開頭的jar文件也一起放到WEB-INF\lib中,這些都是運(yùn)行WebWork必需要用到的jar包。
3.Webwork框架是通過一個JavaServlet控制器提供統(tǒng)一的請求入口,解析請求的url,再去調(diào)用相應(yīng)的Action進(jìn)行業(yè)務(wù)處理。要求在web.xml文件里配置一個派遣器ServletDispatcher,它初始化WebWrok的一些配置信息,解析XWork的Action配置信息,根據(jù)請求去組裝和調(diào)用執(zhí)行相應(yīng)的攔截器(Interceptor)、Action、Action Result(Action執(zhí)行結(jié)果的輸出)等,具體配置如下:
- ……
- <servlet>
- <servlet-name>webwork< SPAN>servlet-name>
- <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher< SPAN>servlet-class>
- < SPAN>servlet>
- ……
- <servlet-mapping>
- <servlet-name>webwork< SPAN>servlet-name>
- <url-pattern>*.action< SPAN>url-pattern>
- < SPAN>servlet-mapping>
- ……
這樣,.action結(jié)尾的所有url請求將直接有ServletDispatcher去調(diào)度。
下面我們用一個經(jīng)典的HelloWorld實(shí)例來驗(yàn)證運(yùn)行環(huán)境是否可用,并感受一下簡單、功能強(qiáng)大的WebWork的開發(fā)。
4.把剛才WebWork的jar包都導(dǎo)進(jìn)來,項(xiàng)目右鍵Build Path—Configure Build Path…在彈出的對話框中選擇Java Build Path,對應(yīng)選擇右邊的Libraries標(biāo)簽頁,選擇Add JARs…按鈕,在彈出的窗口中選擇剛建立的工程的HelloWorld—WEB-INF—lib 下面的全部jar包,點(diǎn)OK退出。這時會看到在工程HelloWorld下面多了一些瓶子似的jar,這表明已經(jīng)成功導(dǎo)入。
5.在WEB-INF/src下建一個Package名字為helloWorld,再建一個class名字為HelloWorldAction,添加代碼如下:
- package helloWorld;
- import com.opensymphony.xwork.*;
- public class HelloWorldAction implements Action{
- private String hello;
- public String execute() throws Exception{
- hello = "Hello World";
- return SUCCESS;
- }
- public String getHello() {
- return hello;
- }
- public void setHello(String hello) {
- this.hello = hello;
- }
- }
HelloWorldAction是一個普通的Java類,它實(shí)現(xiàn)了Action這個接口。Action是一個非常簡單的接口,只有一個方法:public String execute() throws Exception; ,Action類介紹見下一節(jié)。HelloWorldAction有一個String類型字段greeting,在execute()方法中,greeting被賦值“Hello World!”,并返回String型常量SUCCESS,SUCCESS的定義詳見Action接口,這個常量代表了execute()方法執(zhí)行成功,將返回成功頁面。
6.右鍵工程名字新建一個.jsp文件--hello.jsp代碼如下:
- <%@ taglib prefix="ww" uri="/webwork" %>
- <%@ page language="java" contentType="text/html; charset=GBK"%>
- >
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GBK">
- <title>First WebWork Example< SPAN>title>
- < SPAN>head>
- <body>
- 0000000010100001000010000100000011000010001110000000010000測試數(shù)據(jù)
- <p><ww:property value = "hello"/>< SPAN>p>
- < SPAN>body>
7.配置web.xml文件:在WEB-INF下面建立web.xml文件,代碼如下:
- <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
- version="2.4">
- <servlet>
- <servlet-name>webwork< SPAN>servlet-name>
- <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher< SPAN>servlet-class>
- < SPAN>servlet>
- <servlet-mapping>
- <servlet-name>webwork< SPAN>servlet-name>
- <url-pattern>*.action< SPAN>url-pattern>
- < SPAN>servlet-mapping>
- <filter>
- <filter-name>webwork< SPAN>filter-name>
- <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher< SPAN>filter-class>
- < SPAN>filter>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener< SPAN>listener-class>
- < SPAN>listener>
- < SPAN>web-app>
8.配置xwork.xml文件:在WEB-INF/src下面建立xwork.xml文件,代碼如下:
- "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">
- <xwork>
- <include file="webwork-default.xml"/>
- <package name="helloWorld" extends="webwork-default">
- <action name="hello" class="helloWorld.HelloWorldAction">
- <result name="success">hello.jsp< SPAN>result>
- < SPAN>action>
- < SPAN>package>
- < SPAN>xwork>
xwork.xml的作用通過使用XWork的命令模式框架和攔截器框架,提供了一個支持Web功能、能快速構(gòu)建Web應(yīng)用的命令模式框架。(這是一個標(biāo)準(zhǔn)說法)。
說白了就是聯(lián)系剛才的幾個文件,傳值用的。
9.在Tomcat安裝目錄下..\Tomcat 5.5\conf打開sever.xml文件,添加如下代碼:
- <Host name="test" debug="0" appBase="" unpackWARs="true" autoDeploy="true">
- <Context path="" reloadable="true" docBase="E:\eclipse\HelloWorld" >
- <Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"
- maxActiveSessions="1" minIdleSwap="20" maxIdleSwap="60" maxIdleBackup="10" >
- <Store className="org.apache.catalina.session.FileStore" directory="session"/>
- < SPAN>Manager>
- < SPAN>Context>
- < SPAN>Host>
修改系統(tǒng)的host文件,添加如下代碼:
- 127.0.0.1 test
10.打開瀏覽器,輸入網(wǎng)址:http://test/hello.action即可看到如下顯示:
- 0000000010100001000010000100000011000010001110000000010000測試數(shù)據(jù)
- Hello World
表明通過WebWork實(shí)現(xiàn)HelloWorld成功!
【編輯推薦】