通过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.kswsj.com/qtweb/news40/288440.html">通过WebWork实现HelloWorld</a> <br> 转载来于:<a href="http://www.kswsj.com/qtweb/news40/288440.html">http://www.kswsj.com/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.kswsj.com/" 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/waimaojianshe/">外贸网站建设知识</a></p> <ul> <li> <a class="text_overflow" href="/qtweb/news12/7962.html">如何申请Godaddy主机退款?详细教程!(godaddy主机怎么退款)</a> </li><li> <a class="text_overflow" href="/qtweb/news26/423826.html">快速学习!如何在Linux上创建sh文件?(linux创建sh)</a> </li><li> <a class="text_overflow" href="/qtweb/news13/264863.html">云服务器怎么用详细步骤</a> </li><li> <a class="text_overflow" href="/qtweb/news5/7105.html">创新互联百度小程序教程:form表单</a> </li><li> <a class="text_overflow" href="/qtweb/news12/126662.html">如何开启mongodb的http服务</a> </li><li> <a class="text_overflow" href="/qtweb/news7/460907.html">灵活快速Redis用于IP段查询(redis查询ip段库)</a> </li><li> <a class="text_overflow" href="/qtweb/news27/387477.html">ASP.NET中性能和扩展性的秘密</a> </li><li> <a class="text_overflow" href="/qtweb/news27/205077.html">创业公司该如何高效的招人?</a> </li><li> <a class="text_overflow" href="/qtweb/news28/403578.html">国内分别有哪些小众云服务厂商?(兆维机房怎么样好用吗)</a> </li><li> <a class="text_overflow" href="/qtweb/news18/479018.html">阿里P8跪在了这道题上。。。</a> </li><li> <a class="text_overflow" href="/qtweb/news41/550391.html">乐视电视定时设置方法,乐视电视怎么设置时间</a> </li><li> <a class="text_overflow" href="/qtweb/news32/47832.html">log用户什么意思?(linux阿帕奇日志文件,Linux查找日志文件中的内容)</a> </li><li> <a class="text_overflow" href="/qtweb/news36/108686.html">在WindowsAzure中托管和调试Silverlight应用程序(下)</a> </li><li> <a class="text_overflow" href="/qtweb/news9/381309.html">Linux系统:一份详细清单(linux操作系统有那些)</a> </li><li> <a class="text_overflow" href="/qtweb/news46/496346.html">干货分享!做好这几点,网站优化一定会更好</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/kafeitingsj/" 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/tongdiaosu/" 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/lajitong/" 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/gsdb/" 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/zdfhw/" 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><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/hntjbz/" 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/hangkongxiang/" 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/yangtaihulan/" 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/vr/" target="_blank">VR全景</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/ggtg/" 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/hntjbg/" 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/menlian/" 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/bolixiufu/" 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/menchuang/" target="_blank">门窗定制</a> </li> </ul> </div> </div> </div> <div class="carousel-inner linkbg" style="background: #fff"> <div class="container"> <a href="http://www.cdhuace.com/biaoshi.html" target="_blank">成都标识标牌设计制作</a>    <a href="http://www.lhwzsj.com/" target="_blank">传美奇电器</a>    <a href="http://chengdu.cdcxhl.cn/dingzhi/ " target="_blank">成都定制网站</a>    <a href="http://www.cdfuwuqi.com/cloud/" target="_blank">云服务器</a>    <a href="http://www.amm4.com/" target="_blank">成都圣月窗帘</a>    <a href="https://www.cdxwcx.com/wangzhan/mbshangcheng.html" target="_blank">商城网站</a>    <a href="http://chengdu.xwcx.net/mobile/" target="_blank">成都手机网站报价</a>    <a href="http://www.bzwzjz.com/" target="_blank">专业网站设计</a>    <a href="http://www.cqfuwuqi.com/" target="_blank">重庆机房托管</a>    <a href="http://www.dmvi.cn/ser/baozhuang/" target="_blank">成都包装盒设计</a>    <a href="http://www.tjxishu.com/" target="_blank">成都柴油发电机租用</a>    <a href="https://www.xwcx.net/" target="_blank">机柜租用</a>    <a href="http://www.abwzjs.com/" target="_blank">阿坝网站建设</a>    <a href="https://www.cdxwcx.com/city/pengzhou/" target="_blank">彭州网站建设</a>    <a href="http://www.cxhljz.cn/solution/" target="_blank">培训网站方案</a>    <a href="https://www.cdcxhl.com/mianfei/jianzhan/chengdu.html" target="_blank">成都免费自助建站</a>    <a href="https://www.cdxwcx.com/tuiguang/zhenghe.html" target="_blank">整合营销</a>    <a href="http://chengdu.cdcxhl.cn/weihu/ " target="_blank">成都网站维护</a>    <a href="http://www.cdkjz.cn/wangzhan/weihu/" target="_blank">成都网站运营维护</a>    <a href="http://www.4006tel.net/yingxiao/" 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> 600元建站 <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.kswsj.com/" target="_blank">成都网站制作</a> <a href="http://www.kswsj.com/" target="_blank">网站设计</a> <a href="http://www.kswsj.com/" 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>