通过WebWork实现HelloWorld

在具体开发使用介绍之前,搭建好运行环境是必备的。假设Tomcat的安装和部署已搞定,打开eclipse新建一个Tomcat工程HelloWorld:

企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,成都创新互联面向各种领域:成都玻璃钢坐凳成都网站设计公司营销型网站建设解决方案、网站设计等建站排名服务。


1.在网上下载到***的WebWork压缩包,并将其解压开来。打开解压目录,你将看到以下的文件和目录:

webwork-2.x.jar当然就是WebWrok***发布的Jar包

webwork-example.war是WebWrok自带的很有代表性的功能演示例子,掌握它是提高你的WebWork技术水平的捷径

webwork-migration.jar提供快速将1.x版本移植到2.x版本所用的类文件

docs目录 WebWrok的使用文档,包括api文档、clover文档、单元测试(Junit)文档等

lib目录 WebWork在运行或编译时所用到的所有.jar包

src目录 源程序目录

2.使用WebWork需要将它运行时的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中,这些都是运行WebWork必需要用到的jar包。

3.Webwork框架是通过一个JavaServlet控制器提供统一的请求入口,解析请求的url,再去调用相应的Action进行业务处理。要求在web.xml文件里配置一个派遣器ServletDispatcher,它初始化WebWrok的一些配置信息,解析XWork的Action配置信息,根据请求去组装和调用执行相应的拦截器(Interceptor)、Action、Action Result(Action执行结果的输出)等,具体配置如下:

 
 
 
  1. ……  
  2.  
  3. webwork servlet-name> 
  4. com.opensymphony.webwork.dispatcher.ServletDispatcher servlet-class> 
  5. servlet> 
  6. ……  
  7.  
  8. webwork servlet-name> 
  9. *.action url-pattern> 
  10. servlet-mapping> 
  11. …… 

这样,.action结尾的所有url请求将直接有ServletDispatcher去调度。

下面我们用一个经典的HelloWorld实例来验证运行环境是否可用,并感受一下简单、功能强大的WebWork的开发。

4.把刚才WebWork的jar包都导进来,项目右键Build Path—Configure Build Path…在弹出的对话框中选择Java Build Path,对应选择右边的Libraries标签页,选择Add JARs…按钮,在弹出的窗口中选择刚建立的工程的HelloWorld—WEB-INF—lib 下面的全部jar包,点OK退出。这时会看到在工程HelloWorld下面多了一些瓶子似的jar,这表明已经成功导入。

5.在WEB-INF/src下建一个Package名字为helloWorld,再建一个class名字为HelloWorldAction,添加代码如下:

 
 
 
  1. package helloWorld;  
  2. import com.opensymphony.xwork.*;  
  3.  
  4. public class HelloWorldAction implements Action{  
  5.   private String hello;  
  6.   public String execute() throws Exception{  
  7.             hello = "Hello World";  
  8.             return SUCCESS;  
  9.   }         
  10.   public String getHello() {  
  11.             return hello;  
  12.   }  
  13.   public void setHello(String hello) {  
  14.             this.hello = hello;  
  15.   }  

HelloWorldAction是一个普通的Java类,它实现了Action这个接口。Action是一个非常简单的接口,只有一个方法:public String execute() throws Exception; ,Action类介绍见下一节。HelloWorldAction有一个String类型字段greeting,在execute()方法中,greeting被赋值“Hello World!”,并返回String型常量SUCCESS,SUCCESS的定义详见Action接口,这个常量代表了execute()方法执行成功,将返回成功页面。

6.右键工程名字新建一个.jsp文件--hello.jsp代码如下:

 
 
 
  1. <%@ taglib prefix="ww" uri="/webwork" %> 
  2. <%@ page language="java" contentType="text/html; charset=GBK"%> 
  3. > 
  4.  
  5.  
  6.  http-equiv="Content-Type" content="text/html; charset=GBK"> 
  7. </strong>First WebWork Example<strong> title></strong> </li> <li><strong> head></strong> </li> <li><strong><body></strong> </li> <li>0000000010100001000010000100000011000010001110000000010000测试数据  </li> <li><strong><p><ww:property</strong> value = "hello"<strong>/> p></strong> </li> <li><strong> body></strong> </li> </ol></pre><p>7.配置web.xml文件:在WEB-INF下面建立web.xml文件,代码如下:</p><pre> <ol> <li><strong><web-app</strong> xmlns="http://java.sun.com/xml/ns/j2ee" </li> <li>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" </li> <li>    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" </li> <li>    version="2.4"<strong>></strong> </li> <li><strong><servlet></strong> </li> <li><strong><servlet-name></strong>webwork<strong> servlet-name></strong> </li> <li><strong><servlet-class></strong>com.opensymphony.webwork.dispatcher.ServletDispatcher<strong> servlet-class></strong> </li> <li><strong> servlet></strong> </li> <li> </li> <li><strong><servlet-mapping></strong> </li> <li><strong><servlet-name></strong>webwork<strong> servlet-name></strong> </li> <li><strong><url-pattern></strong>*.action<strong> url-pattern></strong> </li> <li><strong> servlet-mapping></strong> </li> <li><strong><filter></strong> </li> <li>    <strong><filter-name></strong>webwork<strong> filter-name></strong> </li> <li>    <strong><filter-class></strong>com.opensymphony.webwork.dispatcher.FilterDispatcher<strong> filter-class></strong> </li> <li><strong> filter></strong> </li> <li><strong><listener></strong> </li> <li>          <strong><listener-class></strong>org.springframework.web.context.ContextLoaderListener<strong> listener-class></strong> </li> <li><strong> listener></strong> </li> <li><strong> web-app></strong> </li> </ol></pre><p>8.配置xwork.xml文件:在WEB-INF/src下面建立xwork.xml文件,代码如下:</p><pre> <ol> <li></li> <li>"http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"<strong>></strong> </li> <li><strong><xwork></strong> </li> <li><strong><include</strong> file="webwork-default.xml"<strong>/></strong> </li> <li>  <strong><package</strong> name="helloWorld" extends="webwork-default"<strong>></strong>         </li> <li>      <strong><action</strong> name="hello" class="helloWorld.HelloWorldAction"<strong>></strong> </li> <li>      <strong><result</strong> name="success"<strong>></strong>hello.jsp<strong> result></strong> </li> <li>                 </li> <li>            <strong> action></strong>         </li> <li>  <strong> package></strong> </li> <li><strong> xwork></strong> </li> </ol></pre><p>xwork.xml的作用通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。(这是一个标准说法)。</p><p>说白了就是联系刚才的几个文件,传值用的。</p><p>9.在Tomcat安装目录下..\Tomcat 5.5\conf打开sever.xml文件,添加如下代码:</p><pre> <ol> <li><strong><Host</strong> name="test" debug="0" appBase="" unpackWARs="true" autoDeploy="true"<strong>></strong> </li> <li>                     <strong><Context</strong> path="" reloadable="true" docBase="E:\eclipse\HelloWorld" <strong>></strong> </li> <li>                              <strong><Manager</strong> className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"   </li> <li>                          maxActiveSessions="1" minIdleSwap="20" maxIdleSwap="60" maxIdleBackup="10" <strong>></strong> </li> <li>                                        <strong><Store</strong> className="org.apache.catalina.session.FileStore" directory="session"<strong>/></strong> </li> <li>                              <strong> Manager></strong> </li> <li>                     <strong> Context></strong> </li> <li><strong> Host></strong> </li> </ol></pre><p>修改系统的host文件,添加如下代码:</p><pre> <ol> <li>127.0.0.1      test </li> </ol></pre><p>10.打开浏览器,输入网址:http://test/hello.action即可看到如下显示:</p><pre> <ol> <li>0000000010100001000010000100000011000010001110000000010000测试数据   </li> <li>Hello World </li> </ol></pre><p>表明通过WebWork实现HelloWorld成功!</p> <p> 文章题目:<a href="http://www.mswzjz.cn/qtweb/news40/288440.html">通过WebWork实现HelloWorld</a> <br> URL网址:<a href="http://www.mswzjz.cn/qtweb/news40/288440.html">http://www.mswzjz.cn/qtweb/news40/288440.html</a> </p> <p> 攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等 </p> <p class="adpic"> <a href="https://www.cdcxhl.com/service/ad.html" target="_blank" class="ad">广告</a> <a href="" target="_blank" class="adimg"><img src=""></a> </p> <p class="copy"> 声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: <a href="http://www.mswzjz.cn/" target="_blank">贝锐智能</a> </p> </div> <div class="newsmorelb"> <p>贝锐智能技术为您推荐以下文章</p> <ul> <li> <a href="/qtweb/news39/288439.html">html如何做左侧菜单栏</a> </li><li> <a href="/qtweb/news38/288438.html">如何在Linux中下载本地文件?(linux下载本地文件)</a> </li><li> <a href="/qtweb/news37/288437.html">IIS入门:为游戏改造审批服务设置IIS</a> </li><li> <a href="/qtweb/news36/288436.html">edge怎么自动刷新网页edge浏览器更新不了了</a> </li><li> <a href="/qtweb/news35/288435.html">轻松找到文件末尾必备Linux命令 (linux命令 到达文件末尾)</a> </li><li> <a href="/qtweb/news34/288434.html">ps如何制作金属按钮,ps金属按钮怎么做</a> </li><li> <a href="/qtweb/news33/288433.html">如何进行wap手机网站建设,掌握wap手机网站建设的基本流程</a> </li><li> <a href="/qtweb/news32/288432.html">如何查找域名对应的ip?(如何查看域名指向)</a> </li><li> <a href="/qtweb/news31/288431.html">如何查看服务器机器是否关闭</a> </li> </ul> </div> </div> <div class="col-lg-3 noneb"> <div class="bkright" style="margin-top: 0"> <p><a href="https://www.cdcxhl.com/news/mbxdh/">面包屑导航知识</a></p> <ul> <li> <a class="text_overflow" href="/qtweb/news29/410579.html">关于steal的短语</a> </li><li> <a class="text_overflow" href="/qtweb/news44/267144.html">山西服务器租用价格及业务解析</a> </li><li> <a class="text_overflow" href="/qtweb/news13/94963.html">深入解读Ruby自动化测试作用</a> </li><li> <a class="text_overflow" href="/qtweb/news47/509597.html">镇江小程序开发</a> </li><li> <a class="text_overflow" href="/qtweb/news13/417063.html">怎么把WindowsXP英文版改成中文版?windowsxp中文版镜像</a> </li><li> <a class="text_overflow" href="/qtweb/news3/465903.html">Linux命令:查询文件个数(linux查询文件个数)</a> </li><li> <a class="text_overflow" href="/qtweb/news16/406916.html">【推荐】优秀的Linux漏洞扫描工具,保障系统安全。 (linux漏洞扫描工具)</a> </li><li> <a class="text_overflow" href="/qtweb/news23/539323.html">VPS服务器怎么收费的,能买断么?(租用服务器搭建vps)</a> </li><li> <a class="text_overflow" href="/qtweb/news2/350102.html">释放Redis连接池资源,收获无限可能(redis连接池资源归还)</a> </li><li> <a class="text_overflow" href="/qtweb/news25/370725.html">香港服务器和韩国服务器哪个快</a> </li><li> <a class="text_overflow" href="/qtweb/news15/290365.html">云服务器ftp设置的方法是什么</a> </li><li> <a class="text_overflow" href="/qtweb/news36/413936.html">vps建站步骤?(购买美国免备案vps怎么使用)</a> </li><li> <a class="text_overflow" href="/qtweb/news21/345421.html">域名解析:探究主机记录星号神秘含义(域名解析主机记录星号是什么意思)</a> </li><li> <a class="text_overflow" href="/qtweb/news8/88958.html">LinuxIO性能测试:读写速度如何?(linuxio读写测试)</a> </li><li> <a class="text_overflow" href="/qtweb/news9/33259.html">如何解决win10提示数据在国外处理?服务器被海外攻击</a> </li> </ul> </div> <div class="bkright tag"> <p><a href="https://www.cdcxhl.com/hangye/" target="_blank">行业网站建设</a></p> <ul> <li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/renzaowu/" target="_blank">人造雾</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/bxgds/" target="_blank">不锈钢雕塑</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/bengche/" target="_blank">混凝土泵车</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/fwjd/" target="_blank">房屋鉴定</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/tadiaozulin/" target="_blank">塔吊租赁</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/hdbf/" target="_blank">活动板房</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/ggsj/" target="_blank">广告设计</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/huisuosj/" target="_blank">会所设计</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/blgds/" target="_blank">玻璃钢雕塑</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/zkj/" target="_blank">公路钻孔机</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/sdjbc/" target="_blank">隧道混凝土搅拌车</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/geshan/" target="_blank">格栅板</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/sqwhq/" target="_blank">社区文化墙</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/yupeng/" target="_blank">雨棚定制</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/shipenji/" target="_blank">湿喷机</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/xiangsu/" target="_blank">橡塑保温</a> </li> </ul> </div> </div> </div> <div class="carousel-inner linkbg" style="background: #fff"> <div class="container"> <a href="http://www.cxhljz.cn/" target="_blank">成都网站设计</a>    <a href="http://www.xzjierui.cn/" target="_blank">眉山网站建设</a>    <a href="http://m.cdcxhl.cn/wechat/ " target="_blank">微信开发</a>    <a href="http://www.cdxwcx.cn/tuoguan/xibuxinxi.html" target="_blank">中国电信西部信息中心机房</a>    <a href="https://www.cdxwcx.com/city/qionglai/" target="_blank">邛崃做网站</a>    <a href="http://www.weixiufdj.cn/" target="_blank">成都发电机维修</a>    <a href="http://www.gzjierui.cn/" target="_blank">成都广告招牌</a>    <a href="http://www.cqcxhl.com/" target="_blank">重庆做网站</a>    <a href="http://www.cqjike.cn/" target="_blank">混凝土搅拌罐车</a>    <a href="http://www.pzhyuzhou.com/" target="_blank">成都包装设计公司</a>    <a href="http://www.cdxwcx.cn/tuoguan/zigong.html" target="_blank">自贡电信机房</a>    <a href="http://www.cxhljz.cn/app/" target="_blank">ios开发</a>    <a href="http://www.cxjianzhan.com/" target="_blank">网站制作公司</a>    <a href="http://www.zcwyxf.cn/" target="_blank">成都众诚伟业</a>    <a href="http://www.weyuju.cn/" target="_blank">成都未宇聚</a>    <a href="http://www.cxjianzhan.cn/fwxm/pinpai.html" target="_blank">成都品牌网站设计</a>    <a href="http://www.cdweb.net/solve/" target="_blank">网站建设方案</a>    <a href="http://www.cdkjz.cn/wangzhan/" target="_blank">网站推广</a>    <a href="http://www.cxhlcq.com/seo/" target="_blank">重庆网站营销</a>    <a href="http://www.scghjhjc.cn/" target="_blank">四川锦华橡塑</a>     </div> </div> <footer> <div class="carousel-inner footjz"> <div class="container"> <i class="icon iconfont zbw"></i> 品质网站制作 <i class="icon iconfont"></i> 自适应网站 <i class="icon iconfont"></i> 开发成本低 <i class="icon iconfont"></i> 响应速度快 <i class="icon iconfont"></i> 多人服务好 <button type="button" class="btn btn-default btn-lg" onClick="window.location.href='tencent://message/?uin=631063699&Site=&Menu=yes'"> 立即开始600网站建设</button> <button type="button" class="btn btn-default btn-xs" onClick="window.location.href='tencent://message/?uin=631063699&Site=&Menu=yes'"> 600网站制作</button> </div> </div> <div class="carousel-inner bqsy"> <div class="container"> <div class="lxfs"> <h4 class="yutelnone">028-86922220 13518219792</h4> <h4 class="yutelblock"><a href="tel:02886922220">028-86922220</a> <a href="tel:13518219792">13518219792</a></h4> <a class="btn btn-default" href="tencent://message/?uin=532337155&Site=&Menu=yes" role="button">网站建设<span>QQ</span>:532337155</a> <a class="btn btn-default" href="tencent://message/?uin=631063699&Site=&Menu=yes" role="button">营销推广<span>QQ</span>:631063699</a> <a class="btn btn1 btn-default" href="mqqwpa://im/chat?chat_type=wpa&uin=532337155&version=1&src_type=web&web_src=oicqzone.com" role="button">网站制作<span>QQ</span>:532337155</a> <a class="btn btn1 btn-default" href="mqqwpa://im/chat?chat_type=wpa&uin=631063699&version=1&src_type=web&web_src=oicqzone.com" role="button">营销推广<span>QQ</span>:631063699</a> <a class="btn btn-default nonea" href="tencent://message/?uin=1683211881&Site=&Menu=yes" role="button">售后QQ:1683211881</a> <div class="dz">创新互联建站专注: <a href="http://www.mswzjz.cn/" target="_blank">攀枝花网站设计</a> <a href="http://www.mswzjz.cn/" target="_blank">攀枝花网站制作</a> <a href="http://www.mswzjz.cn/" target="_blank">攀枝花网站建设</a> <address>地址:成都太升南路288号锦天国际A幢10楼</address> </div> </div> <div class="bzdh dz"><img src="https://www.cdcxhl.com/imges/bottom_logo.png" alt="创新互联"> <p><a href="https://www.cdcxhl.com/menu.html" target="_blank">成都创新互联科技有限公司</a><br> Tel:028-86922220(7x24h)</p></div> </div> </div> </footer> </body> </html> <script> $.getJSON ("../../qtwebpic.txt", function (data) { var jsonContent = { "featured":data } var random = jsonContent.featured[Math.floor(Math.random() * jsonContent.featured.length)]; $(".adpic .adimg").attr("href",random.link) $(".adpic img").attr("src",random.pic); }) </script>