<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8"><meta name="generator" content="pdf2htmlEX"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/base.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/fancy.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/619520/raw.css"><script src="https://csdnimg.cn/release/download_crawler_static/js/compatibility.min.js"></script><script src="https://csdnimg.cn/release/download_crawler_static/js/pdf2htmlEX.min.js"></script><script>try{pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});}catch(e){}</script><title></title></head><body><div id="sidebar" style="display: none"><div id="outline"></div></div><div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/619520/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Spring<span class="_ _0"></span> 快速入门教程</div><div class="t m0 x1 h3 y2 ff1 fs1 fc0 sc0 ls0 ws0">──开发你的第一个<span class="_ _1"> </span>Spring<span class="_ _2"> </span>程序</div><div class="t m0 x1 h3 y3 ff1 fs1 fc0 sc0 ls0 ws0">翻译整理:Hantsy<span class="_ _0"></span> Bai<hants<span class="_ _0"></span>y@tom.com<span class="_ _0"></span>></div><div class="t m0 x1 h4 y4 ff1 fs2 fc0 sc0 ls0 ws0">本章<span class="_ _0"></span>学习<span class="_ _0"></span>用<span class="_ _3"> </span>struts MVC<span class="_ _3"> </span>框<span class="_ _0"></span>架作<span class="_ _0"></span>前端<span class="_ _0"></span>,Spring<span class="_ _3"> </span>做<span class="_ _0"></span>中间<span class="_ _0"></span>层,<span class="_ _0"></span>Hibernate<span class="_ _3"> </span>作后<span class="_ _0"></span>端来<span class="_ _0"></span>开发<span class="_ _0"></span>一个</div><div class="t m0 x2 h4 y5 ff1 fs2 fc0 sc0 ls0 ws0">简单的<span class="_ _4"> </span>Spring<span class="_ _4"> </span>应用程序。在第<span class="_ _4"> </span>4<span class="_ _4"> </span>章将使用<span class="_ _4"> </span>Spring MVC<span class="_ _4"> </span>框架对它进行重构。</div><div class="t m0 x1 h4 y6 ff1 fs2 fc0 sc0 ls0 ws0">本章包含以下内容:</div><div class="t m0 x3 h4 y7 ff1 fs2 fc0 sc0 ls0 ws0">编写功能性测试。</div><div class="t m0 x3 h4 y8 ff1 fs2 fc0 sc0 ls0 ws0">配置<span class="_ _4"> </span>Hibernate<span class="_ _4"> </span>和<span class="_ _4"> </span>Transaction。</div><div class="t m0 x3 h4 y9 ff1 fs2 fc0 sc0 ls0 ws0">载入<span class="_ _4"> </span>Spring<span class="_ _4"> </span>的<span class="_ _4"> </span>applicationContext.xml<span class="_ _4"> </span>文件。</div><div class="t m0 x3 h4 ya ff1 fs2 fc0 sc0 ls0 ws0">设置业务代理(business delegates)和<span class="_ _4"> </span>DAO<span class="_ _4"> </span>的依赖性。</div><div class="t m0 x3 h4 yb ff1 fs2 fc0 sc0 ls0 ws0">把<span class="_ _4"> </span>spring<span class="_ _4"> </span>写入<span class="_ _4"> </span>Struts 程序。</div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div></body></html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/619520/bg2.jpg"><div class="t m0 x2 h5 yc ff2 fs3 fc0 sc0 ls0 ws0">概述</div><div class="t m0 x1 h4 yd ff1 fs2 fc0 sc0 ls0 ws0">你将会创建一个简单的程序完成最基本的<span class="_ _4"> </span>CRUD(Create, Retrieve, Update<span class="_ _4"> </span>和 Delete)</div><div class="t m0 x2 h4 ye ff1 fs2 fc0 sc0 ls0 ws0">操<span class="_ _0"></span>作<span class="_ _0"></span>。<span class="_ _0"></span>这<span class="_ _0"></span>个<span class="_ _0"></span>程<span class="_ _5"></span>序<span class="_ _0"></span>叫<span class="_ _1"> </span>MyUsers<span class="_ _0"></span>,<span class="_ _0"></span>作<span class="_ _0"></span>为<span class="_ _0"></span>本<span class="_ _0"></span>书<span class="_ _5"></span>的<span class="_ _0"></span>样<span class="_ _0"></span>例<span class="_ _0"></span>。<span class="_ _0"></span>这<span class="_ _0"></span>是<span class="_ _5"></span>一<span class="_ _0"></span>个<span class="_ _1"> </span>3<span class="_ _3"> </span>层<span class="_ _5"></span>架<span class="_ _0"></span>构<span class="_ _0"></span>的<span class="_ _1"> </span>web<span class="_ _1"> </span>程<span class="_ _0"></span>序<span class="_ _0"></span>,<span class="_ _0"></span>通<span class="_ _0"></span>过<span class="_ _5"></span>一<span class="_ _0"></span>个</div><div class="t m0 x2 h4 yf ff1 fs2 fc0 sc0 ls0 ws0">Action <span class="_ _0"></span>来调用<span class="_ _0"></span>业务代理<span class="_ _0"></span>,再通<span class="_ _0"></span>过它来<span class="_ _0"></span>回调 DAO<span class="_ _3"> </span>类。<span class="_ _0"></span>下面的流<span class="_ _0"></span>程图表<span class="_ _0"></span>示了<span class="_ _4"> </span>MyUsers<span class="_ _3"> </span>是如<span class="_ _0"></span>何工</div><div class="t m0 x2 h4 y10 ff1 fs2 fc0 sc0 ls0 ws0">作<span class="_ _0"></span>的。<span class="_ _0"></span>数字<span class="_ _0"></span>表<span class="_ _0"></span>明了<span class="_ _0"></span>流程<span class="_ _0"></span>的<span class="_ _0"></span>先后<span class="_ _0"></span>顺序<span class="_ _0"></span>,<span class="_ _0"></span>从<span class="_ _4"> </span>web<span class="_ _3"> </span>层<span class="_ _0"></span>(UserAction)到<span class="_ _0"></span>中<span class="_ _0"></span>间层<span class="_ _0"></span>(UserManager),<span class="_ _0"></span>再<span class="_ _0"></span>到</div><div class="t m0 x2 h4 y11 ff1 fs2 fc0 sc0 ls0 ws0">数据层(UserDAO),然后返回。</div><div class="t m0 x1 h4 y12 ff1 fs2 fc0 sc0 ls0 ws0">鉴于大<span class="_ _0"></span>多数读者都<span class="_ _0"></span>比较熟悉<span class="_ _4"> </span>struts<span class="_ _0"></span>,本程序采<span class="_ _0"></span>用它作为<span class="_ _4"> </span>MVC<span class="_ _0"></span> 框架。Spring<span class="_ _3"> </span>的魅<span class="_ _0"></span>力在于</div><div class="t m0 x2 h4 y13 ff1 fs2 fc0 sc0 ls0 ws0">它宣称式的事<span class="_ _0"></span>务处理,依懒性的绑<span class="_ _0"></span>定和持久性的支持。第<span class="_ _4"> </span>4<span class="_ _0"></span> 章中将用 Spring<span class="_ _4"> </span>框架对它<span class="_ _0"></span>进行</div><div class="t m0 x2 h4 y14 ff1 fs2 fc0 sc0 ls0 ws0">重构。</div><div class="t m0 x1 h4 y15 ff1 fs2 fc0 sc0 ls0 ws0">接下来你会进行以下几个步骤:</div><div class="t m0 x4 h4 y16 ff1 fs2 fc0 sc0 ls0 ws0">1.<span class="_ _4"> </span>下载<span class="_ _4"> </span>Struts<span class="_ _4"> </span>和<span class="_ _4"> </span>Spring。</div><div class="t m0 x4 h4 y17 ff1 fs2 fc0 sc0 ls0 ws0">2.<span class="_ _4"> </span>创建项目目录和<span class="_ _4"> </span>ant Build<span class="_ _4"> </span>文件。</div><div class="t m0 x4 h4 y18 ff1 fs2 fc0 sc0 ls0 ws0">3.<span class="_ _4"> </span>为持久层创建一个单元测试(unit tests)。</div><div class="t m0 x4 h4 y19 ff1 fs2 fc0 sc0 ls0 ws0">4.<span class="_ _4"> </span>配置<span class="_ _4"> </span>Hibernate<span class="_ _4"> </span>和<span class="_ _4"> </span>Spring。</div><div class="t m0 x4 h4 y1a ff1 fs2 fc0 sc0 ls0 ws0">5.<span class="_ _4"> </span>编写<span class="_ _4"> </span>HIbernate DAO<span class="_ _4"> </span>的实现。</div><div class="t m0 x4 h4 y1b ff1 fs2 fc0 sc0 ls0 ws0">6.<span class="_ _4"> </span>进行单元测试,通过<span class="_ _4"> </span>DAO<span class="_ _4"> </span>验证<span class="_ _4"> </span>CRUD。</div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/619520/bg3.jpg"><div class="t m0 x4 h4 y1c ff1 fs2 fc0 sc0 ls0 ws0">7.<span class="_ _4"> </span>创建一个<span class="_ _4"> </span>Manager<span class="_ _4"> </span>来声明事务处理。</div><div class="t m0 x4 h4 y1d ff1 fs2 fc0 sc0 ls0 ws0">8.<span class="_ _4"> </span>为<span class="_ _4"> </span>struts Action 编写测试程序。</div><div class="t m0 x4 h4 y1e ff1 fs2 fc0 sc0 ls0 ws0">9.<span class="_ _4"> </span>为<span class="_ _4"> </span>web<span class="_ _4"> </span>层创建一个<span class="_ _4"> </span>Action 和<span class="_ _4"> </span>model(DynaActionForm)。</div><div class="t m0 x4 h4 y1f ff1 fs2 fc0 sc0 ls0 ws0">10.进行单元测试,通过<span class="_ _4"> </span>Action<span class="_ _4"> </span>验证<span class="_ _4"> </span>CRUD。</div><div class="t m0 x4 h4 y20 ff1 fs2 fc0 sc0 ls0 ws0">11.创建<span class="_ _4"> </span>JSP<span class="_ _4"> </span>页面,以通过浏览器来进行<span class="_ _4"> </span>CRUD<span class="_ _4"> </span>操作。</div><div class="t m0 x4 h4 y21 ff1 fs2 fc0 sc0 ls0 ws0">12.通过浏览器来验证<span class="_ _4"> </span>JSP<span class="_ _4"> </span>页面的功能。</div><div class="t m0 x4 h4 y22 ff1 fs2 fc0 sc0 ls0 ws0">13.用<span class="_ _4"> </span>velocity<span class="_ _4"> </span>模板替换<span class="_ _4"> </span>JSP<span class="_ _4"> </span>页面。</div><div class="t m0 x4 h4 y23 ff1 fs2 fc0 sc0 ls0 ws0">14.使用<span class="_ _4"> </span>Commons Validator<span class="_ _4"> </span>添加验证。</div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/619520/bg4.jpg"><div class="t m0 x2 h5 yc ff2 fs3 fc0 sc0 ls0 ws0">下载<span class="_ _6"> </span>Str<span class="_ _0"></span>uts<span class="_ _7"> </span>和<span class="_ _6"> </span>Spri<span class="_ _0"></span>ng</div><div class="t m0 x1 h4 y24 ff1 fs2 fc0 sc0 ls0 ws0">1.下载安装以下组件:</div><div class="t m0 x4 h4 y25 ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">JDK1.4.2(或以上)</span></div><div class="t m0 x4 h4 y26 ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">Tomcat5.0+</span></div><div class="t m0 x4 h4 y27 ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">Ant 1.6.1+</span></div><div class="t m0 x1 h4 y28 ff1 fs2 fc0 sc0 ls0 ws0">2.设置以下环境变量:</div><div class="t m0 x4 h4 y29 ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">JAVA_HOME</span></div><div class="t m0 x4 h4 y2a ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">ANT_HOME</span></div><div class="t m0 x4 h4 y2b ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">CATALINA_HOME</span></div><div class="t m0 x1 h4 y2c ff1 fs2 fc0 sc0 ls0 ws0">3.把以下路径添加到<span class="_ _4"> </span>PATH<span class="_ _4"> </span>中:</div><div class="t m0 x4 h4 y2d ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">JAVA_HOME/bin</span></div><div class="t m0 x4 h4 y2e ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">ANT_HOME/bin</span></div><div class="t m0 x4 h4 y2f ff3 fs4 fc0 sc0 ls0 ws0">•<span class="_ _8"> </span><span class="ff1 fs2">CATALINA_HOME/bin</span></div><div class="t m0 x1 h4 y30 ff1 fs2 fc0 sc0 ls0 ws0">为了开发基于<span class="_ _4"> </span>java<span class="_ _4"> </span>的<span class="_ _4"> </span>web<span class="_ _4"> </span>项目,开发人员必须事先下载必需的<span class="_ _4"> </span>jars,建好开发目录结</div><div class="t m0 x2 h4 y31 ff1 fs2 fc0 sc0 ls0 ws0">构和<span class="_ _4"> </span>ant build<span class="_ _4"> </span>文件。对于单一的<span class="_ _4"> </span>struts<span class="_ _4"> </span>项目,可以利用<span class="_ _4"> </span>struts<span class="_ _4"> </span>中现成的<span class="_ _4"> </span>struts-</div><div class="t m0 x2 h4 y32 ff1 fs2 fc0 sc0 ls0 ws0">blank.war。对于基于<span class="_ _4"> </span>Spring MVC 框架的项目,可以用<span class="_ _4"> </span>Spring<span class="_ _4"> </span>中的<span class="_ _4"> </span>webapp-minimal.war。</div><div class="t m0 x2 h6 y33 ff1 fs2 fc0 sc0 ls0 ws0">这只为开发作准备,两者都没有进行<span class="_ _4"> </span>struts-spring<span class="_ _4"> </span><span class="ff4">集</span>成,<span class="ff4">也</span>没有<span class="ff4">考虑</span>单元测试。为<span class="ff4">此</span>,<span class="ff4">我</span></div><div class="t m0 x2 h6 y34 ff4 fs2 fc0 sc0 ls0 ws0">们<span class="ff1">为读者准备了<span class="_ _4"> </span>E</span>q<span class="ff1">uinox。</span></div><div class="t m0 x1 h6 y35 ff1 fs2 fc0 sc0 ls0 ws0">E<span class="ff4">q</span>uinox<span class="_ _4"> </span>为开发<span class="_ _4"> </span>Struts-spring<span class="_ _4"> </span>式的程序<span class="ff4">提供</span>一个基本框架。它<span class="ff4">已经</span>定<span class="ff4">义</span>好了目录结构,</div><div class="t m0 x2 h6 y36 ff1 fs2 fc0 sc0 ls0 ws0">和<span class="_ _4"> </span>ant build<span class="_ _4"> </span>文件(<span class="ff4">针</span>对<span class="_ _4"> </span>compiling,deploying,testing),<span class="ff4">并且提供</span>了<span class="_ _4"> </span>struts, spring,</div><div class="t m0 x2 h6 y37 ff1 fs2 fc0 sc0 ls0 ws0">Hibernate<span class="_ _4"> </span>开发<span class="ff4">要</span>用到的<span class="_ _4"> </span>jars<span class="_ _4"> </span>文件。E<span class="ff4">q</span>uinox<span class="_ _4"> </span>中大<span class="ff4">部分</span>目录结构和<span class="_ _4"> </span>ant build<span class="_ _4"> </span>文件来<span class="ff4">自我</span>的</div><div class="t m0 x2 h6 y38 ff1 fs2 fc0 sc0 ls0 ws0">开<span class="ff4">源</span>项目──AppFuse。可以<span class="ff4">说</span>,E<span class="ff4">q</span>uinox<span class="_ _4"> </span>是一个简<span class="ff4">化</span>的<span class="_ _4"> </span>AppFuse,它在最<span class="ff4">小</span>配置<span class="ff4">情况</span>下,为</div><div class="t m0 x2 h6 y39 ff1 fs2 fc0 sc0 ls0 ws0">快速<span class="_ _4"> </span>web<span class="_ _4"> </span>开发<span class="ff4">提供</span>了<span class="ff4">便</span>利。<span class="ff4">由</span>于<span class="_ _4"> </span>E<span class="ff4">q</span>uinox<span class="_ _4"> </span><span class="ff4">源</span>于<span class="_ _4"> </span>AppFuse,<span class="ff4">所</span>以在包<span class="ff4">名</span>,数据<span class="ff4">库名</span>,<span class="ff4">及其</span>它<span class="ff4">地方</span></div><div class="t m0 x2 h6 y3a ff1 fs2 fc0 sc0 ls0 ws0">都<span class="ff4">找</span>到它的<span class="ff4">影子</span>。这是为<span class="ff4">让</span>你从基于<span class="_ _4"> </span>E<span class="ff4">q</span>uinox<span class="_ _4"> </span>的程序过<span class="ff4">渡</span>到<span class="ff4">更</span>为<span class="ff4">复杂</span>的<span class="_ _4"> </span>AppFuse。</div><div class="t m0 x1 h6 y3b ff1 fs2 fc0 sc0 ls0 ws0">从<span class="_ _4"> </span>http<span class="ff4">:</span>//sourcebeat.com/downloads<span class="_ _4"> </span>上下载<span class="_ _4"> </span>E<span class="ff4">q</span>uinox,<span class="ff4">解压</span>到一个<span class="ff4">合适</span>的<span class="ff4">位</span>置,开<span class="ff4">始</span></div><div class="t m0 x2 h4 y3c ff1 fs2 fc0 sc0 ls0 ws0">准备<span class="_ _4"> </span>MyUsers<span class="_ _4"> </span>的开发。</div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/619520/bg5.jpg"><div class="t m0 x2 h5 yc ff2 fs3 fc0 sc0 ls0 ws0">创建项<span class="_ _0"></span>目目录<span class="_ _0"></span>和<span class="_ _6"> </span>ant<span class="_ _0"></span> bu<span class="_ _0"></span>ild<span class="_ _7"> </span>文件</div><div class="t m0 x4 h6 y24 ff1 fs2 fc0 sc0 ls0 ws0">为了设置<span class="ff4">初始</span>的目录结构,把下载的<span class="_ _4"> </span>E<span class="ff4">q</span>uinox<span class="_ _4"> </span><span class="ff4">解压</span>到<span class="ff4">硬盘</span>。建<span class="ff4">议<span class="_ _4"> </span></span>windows<span class="_ _4"> </span>用<span class="ff4">户</span>把项目<span class="ff4">放</span></div><div class="t m0 x2 h6 y25 ff1 fs2 fc0 sc0 ls0 ws0">在<span class="_ _4"> </span>C<span class="ff4">:\</span>Source,Unix/Linux<span class="_ _4"> </span>用<span class="ff4">户放</span>在<span class="ff4">~</span>/dev(译<span class="ff4">注</span>:在<span class="ff4">当</span>前用<span class="ff4">户</span>目录建一个<span class="_ _4"> </span>dev<span class="_ _4"> </span>目录)中。</div><div class="t m0 x2 h6 y3d ff1 fs2 fc0 sc0 ls0 ws0">windows<span class="_ _4"> </span>用<span class="ff4">户</span>可以设置一个<span class="_ _4"> </span>HOME<span class="_ _4"> </span>环境变量,<span class="ff4">值</span>为<span class="_ _4"> </span>C<span class="ff4">:\</span>Source。最简单的<span class="ff4">方法</span>是把<span class="_ _4"> </span>E<span class="ff4">q</span>uinox<span class="_ _4"> </span><span class="ff4">解</span></div><div class="t m0 x2 h6 y3e ff4 fs2 fc0 sc0 ls0 ws0">压<span class="ff1">到你的</span>喜欢<span class="ff1">的</span>地方<span class="ff1">,进入<span class="_ _4"> </span>e</span>q<span class="ff1">uinox<span class="_ _4"> </span>目录,</span>运<span class="ff1">行<span class="_ _4"> </span>ant new -Dapp.anme</span>=<span class="ff1">myusers。</span></div><div class="t m0 x4 h6 y3f ff1 fs2 fc0 sc0 ls0 ws0">tips<span class="ff4">:</span>在<span class="_ _4"> </span>windows<span class="_ _4"> </span>使用<span class="_ _4"> </span>cygwin(www.cygwin.org)<span class="ff4">就</span>可以<span class="ff4">像<span class="_ _4"> </span></span>Unix/Linux<span class="_ _4"> </span><span class="ff4">系统</span>一样使用<span class="ff4">正</span></div><div class="t m0 x2 h6 y40 ff4 fs2 fc0 sc0 ls0 ws0">斜杠<span class="ff1">,本书</span>所<span class="ff1">有路径</span>均<span class="ff1">采用</span>正斜杠<span class="ff1">。</span>其<span class="ff1">它使用</span>反斜杠系统<span class="ff1">(如<span class="_ _4"> </span>windows<span class="_ _4"> </span>中</span>命令<span class="ff1">行</span>窗口<span class="ff1">)的用</span>户</div><div class="t m0 x2 h6 y41 ff4 fs2 fc0 sc0 ls0 ws0">请<span class="ff1">作</span>相<span class="ff1">应的调整。</span></div><div class="t m0 x4 h6 y42 ff1 fs2 fc0 sc0 ls0 ws0">现在<span class="_ _4"> </span>MyUsers<span class="_ _4"> </span>程序<span class="ff4">已经</span>有如下的目录结构:</div><div class="t m0 x4 h6 y43 ff1 fs2 fc0 sc0 ls0 ws0">E<span class="ff4">q</span>uinox<span class="_ _4"> </span>包含一个简单<span class="ff4">而</span>功能<span class="ff4">强</span>大的<span class="_ _4"> </span>build.xml,它可以用<span class="_ _4"> </span>ant<span class="_ _4"> </span>来进行编译,<span class="ff4">布署</span>,和测</div><div class="t m0 x2 h6 y44 ff1 fs2 fc0 sc0 ls0 ws0">试。ant<span class="_ _4"> </span>中<span class="ff4">已经</span>定<span class="ff4">义</span>好<span class="_ _4"> </span>targets,在<span class="_ _4"> </span>e<span class="ff4">q</span>uinox<span class="_ _4"> </span><span class="ff4">运</span>行<span class="_ _4"> </span>ant,将<span class="ff4">看</span>到如下内容:</div><div class="t m0 x4 h6 y45 ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> Available targets are</span>:<span class="ff1"> </span></div><div class="t m0 x4 h6 y46 ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> compile --> Compile all Java </span>f<span class="ff1">iles </span></div><div class="t m0 x4 h6 y47 ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> war --> Package as </span>W<span class="ff1">AR </span>f<span class="ff1">ile </span></div><div class="t m0 x4 h6 y48 ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> deploy --> Deploy application as directory</span></div><div class="t m0 x4 h6 y49 ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> deploywar --> Deploy application as a </span>W<span class="ff1">AR </span>f<span class="ff1">ile </span></div><div class="t m0 x4 h6 y4a ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> install --> Install application in Tomcat </span></div><div class="t m0 x4 h6 y4b ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> remove --> Remove application </span>f<span class="ff1">rom Tomcat </span></div><div class="t m0 x4 h6 y4c ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> reload --> Reload application in Tomcat </span></div><div class="t m0 x4 h6 y4d ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> start --> Start Tomcat application </span></div><div class="t m0 x4 h6 y4e ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> stop --> Stop Tomcat application </span></div><div class="t m0 x4 h6 y4f ff4 fs2 fc0 sc0 ls0 ws0">[<span class="ff1">echo</span>]<span class="ff1"> list --> List Tomcat applications </span></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>