﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-林临的地盘-随笔分类-java</title><link>http://www.blogjava.net/linlin2005/category/21555.html</link><description>java学习博客</description><language>zh-cn</language><lastBuildDate>Mon, 18 Jun 2012 09:23:36 GMT</lastBuildDate><pubDate>Mon, 18 Jun 2012 09:23:36 GMT</pubDate><ttl>60</ttl><item><title>struts2的s：iterator 标签 详解</title><link>http://www.blogjava.net/linlin2005/archive/2012/06/18/381018.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Mon, 18 Jun 2012 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2012/06/18/381018.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/381018.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2012/06/18/381018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/381018.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/381018.html</trackback:ping><description><![CDATA[<div id="blog_text" class="cnt">
<div>struts2的s：iterator 可以遍历 数据栈里面的任何数组，集合等等 以下几个简单的demo：<br /><span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> 标签有3个属性：<br />&nbsp;&nbsp;&nbsp; value：被迭代的集合<br />&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp; ：指定集合里面的元素的id<br />&nbsp;&nbsp;&nbsp; status 迭代元素的索引</div>
<div>1:jsp页面定义元素写法 数组或list</div>
<div><br />&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="{'1','2','3','4','5'}" id='number'&gt; <br />&nbsp;&nbsp;&nbsp; &lt;s:property value='number'/&gt;A <br />&lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />打印结果为: 1A2A3A4A5A</div>
<div>2:索引的用法<br />如果指定了status，每次的迭代数据都有IteratorStatus的实例，它有以下几个方法<br />int getCount()返回当前迭代了几个元素<br />int getIndex()返回当前元素索引<br />boolean isEven()当然的索引是否偶数<br />boolean isFirst()当前是否第一个元素<br />boolean isLast()<br />boolean isOdd()当前元素索引是否奇数</div>
<div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="{'a','b','c'}" id='char' status='st'&gt; <br />&nbsp;&nbsp;&nbsp; &lt;s:if test="#st.Even"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在的索引是奇数为:&lt;s:property value='#st.index'/&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/s:if&gt; <br />&nbsp;&nbsp;&nbsp; 当前元素值：&lt;s:property value='char'/&gt; <br />&lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />3：遍历map<br />value可以直接定义为：</div>
<div>value="#{"1":"a","2":"b"}" <br />每个元素以都好隔开。元素之间的key和value 冒号隔开<br />value也可以是数据栈里面的java.util.Map对象<br />遍历写法如下：</div>
<div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="map" id="id" status="st"&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp; key : &lt;s:property value='key'/&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp; value:&lt;s:property vlaue='value'/&gt; <br />&lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />当然key 和value 都可以使java 的 Object</div>
<div>3：遍历数据栈.简单的List类，<br />List&lt;Attr&gt; <br />class Attr{String attrName;String getAttrName(){return "123";}}</div>
<div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="label" id="id"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;s:property value="#id.attrName" /&gt; <br />&lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />当然value 还可以写成 value="%{label}" label可以有.操作<br />label的属性List 可以写成value="%{label.list}" 相当于：getLabel().getList();</div>
<div>4：遍历2个list；<br />List&lt;AttrName&gt; attrN {color,size,style}<br />List&lt;AttrValue&gt; attrV {red,20,gay}<br />这2个list的元素是一一对应的，一个attrN对应一个attrV</div>
<div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="%{attrN }" id="id"&nbsp;&nbsp; status="status"&gt; <br />index&nbsp;&nbsp;&nbsp; is : &lt;s:property value='status.index'/&gt; <br />attrName is : &lt;s:property value='id'/&gt; or &lt;s:property value='%{id}'/&gt; <br />attrName is : &lt;s:property value='%{attrV[#status.index]}'/&gt; <br />&lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt;&nbsp;&nbsp;<br />转自：<a href="http://www.blogjava.net/Reg/archive/2009/11/20/303085.html">http://www.blogjava.net/Reg/archive/2009/11/20/303085.html</a></div></div><img src ="http://www.blogjava.net/linlin2005/aggbug/381018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2012-06-18 17:11 <a href="http://www.blogjava.net/linlin2005/archive/2012/06/18/381018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用jzip做打包下载</title><link>http://www.blogjava.net/linlin2005/archive/2009/10/22/299360.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Thu, 22 Oct 2009 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2009/10/22/299360.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/299360.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2009/10/22/299360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/299360.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/299360.html</trackback:ping><description><![CDATA[<p>import java.io.File;<br />
import java.io.FileInputStream;<br />
import java.io.IOException;<br />
import java.util.Date;</p>
<p>import javax.servlet.ServletException;<br />
import javax.servlet.http.HttpServlet;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</p>
<p>import net.sf.jazzlib.ZipEntry;<br />
import net.sf.jazzlib.ZipOutputStream;</p>
<p>public class BatchDownload extends HttpServlet {</p>
&nbsp;public BatchDownload() {<br />
&nbsp;&nbsp;super();<br />
&nbsp;}<br />
<p>&nbsp;public void doGet(HttpServletRequest request, HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />
&nbsp;&nbsp;response.setContentType("APPLICATION/OCTET-STREAM");<br />
&nbsp;&nbsp;response.setHeader("Content-Disposition","attachment; filename="+this.getZipFilename());<br />
&nbsp;&nbsp;System.out.println("in BatchDownload................"); <br />
&nbsp;&nbsp;ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; File[] files = new File[2];<br />
&nbsp;&nbsp;&nbsp;&nbsp; files[0]=new File("c:/zip/文件A.doc");<br />
&nbsp;&nbsp;&nbsp;&nbsp; files[1]=new File("c:/zip/文件B.doc");<br />
&nbsp;&nbsp;&nbsp;&nbsp; zipFile(files, "", zos);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; zos.flush();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; zos.close();&nbsp;&nbsp; </p>
<p>&nbsp;}<br />
&nbsp;private void zipFile(File[] subs, String baseName, ZipOutputStream zos) throws IOException {&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i=0;i&lt;subs.length;i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;File f=subs[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zos.putNextEntry(new ZipEntry(baseName + f.getName()));&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream fis = new FileInputStream(f);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] buffer = new byte[1024];&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int r = 0;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((r = fis.read(buffer)) != -1) {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zos.write(buffer, 0, r);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fis.close(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
&nbsp;private String getZipFilename(){<br />
&nbsp;&nbsp;Date date=new Date();<br />
&nbsp;&nbsp;String s=date.getTime()+".zip";<br />
&nbsp;&nbsp;return s;<br />
&nbsp;}</p>
&nbsp;public void doPost(HttpServletRequest request, HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />
&nbsp;&nbsp;this.doGet(request, response);<br />
&nbsp;}<br />
}
<img src ="http://www.blogjava.net/linlin2005/aggbug/299360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2009-10-22 14:30 <a href="http://www.blogjava.net/linlin2005/archive/2009/10/22/299360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SSH-ERROR:org.hibernate.LazyInitializationException: failed to lazily initialize</title><link>http://www.blogjava.net/linlin2005/archive/2009/07/03/285366.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Fri, 03 Jul 2009 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2009/07/03/285366.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/285366.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2009/07/03/285366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/285366.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/285366.html</trackback:ping><description><![CDATA[<p>struts2+spring2.x+hibernate3.x 懒加载异常：org.hibernate.LazyInitializationException: failed to lazily initialize</p>
<p>Hibernate的Lazy初始化1:n关系时，必须保证是在同一个Session内部使用这个关系集合，不然Hiernate将抛出异常：org.hibernate.LazyInitializationException: failed to lazily initialize of.... <br />
两种处理方法：<br />
一、设置lazy=false，此方法不再累述。<br />
二、用OpenSessionInViewFilter过滤器，注意hibernateFilter过滤器和struts2过滤器在映射时的先后顺序。同时要配置事物处理，否则会导致session处于只读状态而不能做修改、删除的动作。<br />
即在web.xml文件中如下配置：<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Spring ApplicationContext配置文件的加载目录。 --&gt;&nbsp;&nbsp; <br />
&nbsp;&lt;context-param&gt;<br />
&nbsp; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;classpath*:spring/applicationContext.xml&lt;/param-value&gt;<br />
&nbsp;&lt;/context-param&gt;</p>
<p>&nbsp;&lt;!-- 解决延迟加载的问题 --&gt;<br />
&nbsp;&lt;filter&gt;<br />
&nbsp; &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;<br />
&nbsp; &lt;filter-class&gt;<br />
&nbsp;&nbsp; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter<br />
&nbsp; &lt;/filter-class&gt;<br />
&nbsp;&lt;/filter&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- 继承Struts2的FilterDispatcher类，具备GBK等编码设定功能与struts2的action过滤功能。 --&gt;<br />
&nbsp;&lt;filter&gt;<br />
&nbsp; &lt;filter-name&gt;struts2&lt;/filter-name&gt;<br />
&nbsp; &lt;filter-class&gt;<br />
&nbsp;&nbsp; com.iman.nrms.opm.web.common.FilterDispatcher<br />
&nbsp; &lt;/filter-class&gt;<br />
&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp; &lt;param-name&gt;encoding&lt;/param-name&gt;<br />
&nbsp;&nbsp; &lt;param-value&gt;GBK&lt;/param-value&gt;<br />
&nbsp; &lt;/init-param&gt;<br />
&nbsp;&lt;/filter&gt;<br />
&nbsp;&lt;filter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.apache.struts2.dispatcher.ActionContextCleanUp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/filter-class&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/filter&gt;<br />
&nbsp;<br />
&nbsp;&lt;filter-mapping&gt;<br />
&nbsp; &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
&nbsp;<br />
&nbsp;&lt;filter-mapping&gt;<br />
&nbsp; &lt;filter-name&gt;struts2&lt;/filter-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
&nbsp;<br />
&nbsp;&lt;filter-mapping&gt;<br />
&nbsp; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;</p>
<p>Hibernate 允许对关联对象、属性进行延迟加载，但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层，当 Web 层访问到那些需要延迟加载的数据时，由于加载领域对象的 Hibernate Session 已经关闭，这些导致延迟加载数据的访问异常。而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。OpenSessionInViewFilter的主要功能是使每个请求过程绑定一个 Hibernate Session，即使最初的事务已经完成了，也可以在 Web 层进行延迟加载的操作。OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中，它将自动被 Spring 的事务管理器探测到。所以 OpenSessionInViewFilter 适用于 Service 层使用HibernateTransactionManager 或 JtaTransactionManager 进行事务管理的环境，也可以用于非事务只读的数据操作中。 <br />
request--&gt;open session--&gt;打开连接、开始事务--&gt;持久操作--&gt;渲染（关闭连接、session）--&gt;response 其中一些过程省略了，不是很关心。</p>
<p>&nbsp;</p>
<p>引自：<a href="http://blog.csdn.net/fhwbj/archive/2009/03/25/4022805.aspx">http://blog.csdn.net/fhwbj/archive/2009/03/25/4022805.aspx</a></p>
<img src ="http://www.blogjava.net/linlin2005/aggbug/285366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2009-07-03 16:19 <a href="http://www.blogjava.net/linlin2005/archive/2009/07/03/285366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring的jar包</title><link>http://www.blogjava.net/linlin2005/archive/2007/08/13/136262.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Sun, 12 Aug 2007 18:39:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/08/13/136262.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/136262.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/08/13/136262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/136262.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/136262.html</trackback:ping><description><![CDATA[<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=1>
    <thead>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 431.95pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=576 colSpan=3>
            <div><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">的依赖关系</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">依赖关系分组</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">JAR</span><span style="FONT-SIZE: 9pt">文件</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">说 明</span></div>
            </td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">ant</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">ant.jar, ant-junit.jar, ant-launcher.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">采用Apache Ant作为其构建工具，还用来完成大量其它任务如文档生成和测试执行等。运行时Ant根本不起作用，因此发布应用时无需包含该JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">aopalliance</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">aopalliance.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">AOP Alliance(<a href="http://aopalliance.sourceforge.net/" target=_top><u><font color=#2f2f2f>http://aopalliance.sourceforge.net/</font></u></a>)</span><span style="FONT-SIZE: 9pt">是个联合的开源协作组织，在多个项目间进行协作以期提供一套标准的AOP Java接口（interface）。 Spring AOP就是基于AOP Alliance标准API实现的。如果你打算使用Spring的AOP或基于AOP的任何特性，只需这个JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">axis</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">axis.jar, saaj.jar, wsdl4j.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt; TEXT-AUTOSPACE: ideograph-numeric"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">采用Apache Axis项目来支持Spring远程调用里的JAXRPC功能。如果使用JAXRPC Remoting，那么只需要这些文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">caucho</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">burlap-2.1.12.jar, hessian-2.1.12.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">远程调用（remoting）对大量不同种类的协议包括Caucho的Burlap和Hessian提供了支持。要用哪个协议就包含这个分组里相应的JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">cglib</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">cglib-full-2.0.2.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">CGLIB</span><span style="FONT-SIZE: 9pt">用来生成动态代理类（dynamic proxy classes），供核心DI和AOP实现之用。由于大量Spring功能的实现都要用到CGLIB，因此你的应用几乎总需包含CGLIB。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">cos</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">cos.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">COS</span><span style="FONT-SIZE: 9pt">代表com.oreilly.servlet，是个实用类的集合，对Servlets和基于web的应用很有用。Spring在两个地方要用到COS：文件上传处理和e-mail发送。不过在这两种情形中，COS都只是实现选择之一，因此只有选用COS而非其它实现方法时，才需包含cos.jar。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">dom4j</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">dom4j.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">使用Hibernate时dom4j不可或缺，因此如果你的应用打算采用Hibernate实现ORM，就需要包含这个JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">easymock</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">easymock.jar, easymockclassextension.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">的测试套件用到了EasyMock，因此只有构建和运行测试套件时才用到这个JAR，无需随你的应用一起发布。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">freemarker</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">freemaker.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">提供了FreeMarker模板引擎的包装类，还为把FreeMarker模板用作web应用的视图提供了支持。只要使用FreeMarker，就需要这个JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">hibernate</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">ehcache.jar, hibernate2.jar, odmg.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">如果采用Spring的Hibernate集成和支持类，这些JAR文件不可或缺。如果使用其它ORM工具如iBATIS，则不需要这些JAR文件。如果使用Hibernate，则你的应用还要包含CGLIB JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">hsqldb</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">hsqldb.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">的示例应用使用了hsqldb.jar文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">ibatis</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">ibatis-common.jar , ibatis-sqlmap.jar, ibatis-sqlmap-2.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">使用Spring的iBATIS集成类时，这些文件不可或缺；如果使用JDBC或其它ORM工具如Hibernate或JDO，则你的应用不需要这些文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">itext</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">itext-1.02b.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">使用iText提供web层的PDF支持。只有你的web应用需要生成PDF输出时才需包含这个JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">j2ee</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">activation.jar, connector-api.jar, ejb.jar, jaxrpc.jar, jdbc2_0-stdext.jar, jms.jar, jstl.jar, jta.jar, mail.jar, servlet.jar, xml-apis.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">如左侧所示，J2EE相关的各种不同JAR文件数量相当可观。如果你想要使用Spring邮件支持的JavaMail实现，则需要activation.jar和mail.jar文件。要让Hibernate使用JCA Connector则需connector-api.jar，使用Spring的EJB支持则需要ejb.jar，jms.jar用于Spring的JMS支持。对于web应用，如果想要使用Spring JSTL支持则需要servlet.jar和jstl.jar。Spring远程调用里的JAXRPC支持需要jaxrpc.jar文件，jta.jar用于JTA事务支持。剩下两个JAR文件jdbc2_0-stdext.jar和xml-apis.jar分别用于JDBC和XML配置支持，不过只有你使用1.3版本的JVM时才需要它们。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jakarta</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jakarta-commons commons-attributes-api.jar, commons-attributes-compiler.jar, commons-beanutils.jar, commons-collections.jar, commons-dbcp.jar, commons-digester.jar, commons-discovery.jar, commons-fileupload.jar, commons-lang.jar, commons-logging.jar, commons-pool.jar, commons- validator.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">使用了来自Jakarta Commons项目的大量组件。如果你想在应用中使用源码级元数据（metadata），就需要commons-attributes-api.jar，此外还需要commons-attributes-compiler.jar，以便将attributes编译到应用里。Struts要用到BeanUtils、Collections、Digester、Discovery,和Validator JAR文件，其中的Collections，Hibernate也会用到。使用DBCP连接池时，Spring JDBC支持要用到DBCP，Pooling则对有些示例应用不可或缺。如果想使用相应的Spring包装类来处理web应用的文件上传，则需要FileUpload。最后，Spring处处用到了Logging，因此需在所有基于Spring的应用里包含这个JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jakarta-taglibs</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">standard.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">这是Jakarta的JSTL实现，一些Spring示例应用使用了这个实现。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jboss</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jboss-common-jdbc-wrapper.jar </span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">运行在JBoss应用服务器上的应用使用Spring的JDBC类时，这个JAR文件不可或缺。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jdo</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jdo.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">提供Spring的JDO支持。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jdom</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jdom.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">在Spring里使用iBATIS 1.3时，JDOM不可或缺。本章介绍的iBATIS版本为2.0。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jotm</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">jotm.jar, xapool.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">如果你打算配合Spring事务抽象层一起使用JOTM，jotm.jar文件不可或缺。如果打算在自己的应用里将XAPool用于连接池（connection pooling），则只需xapool.jar。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">junit</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">junit.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">运行时根本不需要JUnit；它只用来构建和运行测试套件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">log4j</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">log4j-1.2.8.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">如果想要使用Spring配置log4j日志记录，这个文件不可或缺。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">poi</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">poi-2.5.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">这个JAR可令Spring MVC框架支持Microsoft Excel输出。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">quartz</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">quartz.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">基于Quartz的调度支持需要该JAR。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">regexp</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Jakarta-oro-2.0.7.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">使用正则表达式来指定AOP的切入点（pointcut）时需要这个JAR。第六章有更详细的介绍。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">struts</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">struts.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">欲配合Spring使用Struts构建web应用，Struts JAR必不可少。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">velocity</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">velocity-1.4.jar, velocity-tools-generic-1.1.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Spring</span><span style="FONT-SIZE: 9pt">提供了Velocity的包装类使其支持DI，同时当你在应用中使用Velocity时，还可减少需要编写的代码量。除此之外，Spring还提供了一些类，支持将Velocity用作web层里的视图提供者（view provider）。只要使用了上述任意特性，都需在发布里包含Velocity JAR文件。</span></div>
            </td>
        </tr>
        <tr>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 76.3pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=102>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">xdoclet</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 127.8pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=170>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">xjavadoc-1.0.jar</span></div>
            </td>
            <td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0cm; WIDTH: 227.85pt; BORDER-TOP-COLOR: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=304>
            <div style="LAYOUT-GRID-MODE: char; LINE-HEIGHT: 12pt"><span style="FONT-SIZE: 9pt">Commons Attributes</span><span style="FONT-SIZE: 9pt">用这个JAR解析源代码文件，然后提取属性信息。如果使用了Spring Commons Attributes支持，须包含该JAR文件。</span></div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/linlin2005/aggbug/136262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-08-13 02:39 <a href="http://www.blogjava.net/linlin2005/archive/2007/08/13/136262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在java程序中如何知道数据库表的主键</title><link>http://www.blogjava.net/linlin2005/archive/2007/08/01/133836.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Wed, 01 Aug 2007 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/08/01/133836.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/133836.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/08/01/133836.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/133836.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/133836.html</trackback:ping><description><![CDATA[<span>有同事问到在程序中怎样知道数据库表中那些字段是主键。当时不知道，晚上回来看了看</span><span>JDK</span><span>的文档。</span>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>在使用</span><span>JDBC</span><span>来查询数据库的时候，通常的步骤是：</span></p>
<p><span><span>1．&nbsp;</span></span><span>注册驱动程序</span></p>
<p><span><span>2．&nbsp;</span></span><span>获取数据库连接</span></p>
<p><span><span>3．&nbsp;</span></span><span>执行查询语句</span></p>
<p><span><span>4．&nbsp;</span></span><span>关闭连接。</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>在获得数据库连接后，就可以通过</span><span>getMetaData</span><span>（）方法来获取</span><span>DatabaseMetaData;</span><span>然后通过</span><span>DatabaseMetaData</span><span>的</span><span>getPrimaryKeys ()</span><span>方法来获取主键的信息。</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>下面是我做的示例程序，该程序在</span><span>JBuilder2005</span><span>＋</span><span>oracle8i</span><span>下通过：</span><span><br>import java.sql.*;</span></p>
<p><span>import javax.sql.*;</span></p>
<p><span>public class TestJDBC {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>public TestJDBC() {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>public static void main(String[] args) throws SQLException {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Connection con = null;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Statement st = null;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ResultSet rst = null;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>try{</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</span><span>注册数据库驱动程序</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Class.forName("oracle.jdbc.driver.OracleDriver");</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</span><span>获取数据库连接</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>con = DriverManager.getConnection("jdbc:oracle:thin:@10.60.203.80:1521:TestDB","123","123");</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</span><span>获取主键信息</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>rst = con.getMetaData().getPrimaryKeys(null,null,"USER");</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</span><span>打印主键信息</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if (!rst.isAfterLast()) {</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>rst.next();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>System.out.println(rst.getString("TABLE_NAME") + "&nbsp;" +</span></p>
<p><span>&nbsp;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>rst.getString("COLUMN_NAME"));</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>catch (Exception e){</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>System.out.println(e.getLocalizedMessage());</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>finally{</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>try{</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</span><span>关闭连接</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if (rst != null)</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>rst.close();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if (con != null)</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>con.close();</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>catch (SQLException e){</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>throw e;</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p>&nbsp;</p>
<p><span><span>&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p><span>}</span></p>
<p>&nbsp;</p>
<p><span>上面的程序中</span><span>,</span><span>在获取主键信息的时候</span><span>,</span><span>语句</span></p>
<p><span>rst = con.getMetaData().getPrimaryKeys(null,null,"USER");</span></p>
<p><span>用来获取主键信息。关于该函数的详细信息，请参阅</span><span>JDK</span><span>的文档。这里要说的是，在测试中发现第三个参数（数据库表名）是大小写敏感的，如果写成</span><span>user</span><span>是查不到结果的。<br><br>&nbsp;引自：<a href="http://www.blogjava.net/afrag/">http://www.blogjava.net/afrag/</a></span></p>
<img src ="http://www.blogjava.net/linlin2005/aggbug/133836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-08-01 17:19 <a href="http://www.blogjava.net/linlin2005/archive/2007/08/01/133836.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java在应用程序中添加声音</title><link>http://www.blogjava.net/linlin2005/archive/2007/07/18/131115.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Wed, 18 Jul 2007 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/07/18/131115.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/131115.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/07/18/131115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/131115.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/131115.html</trackback:ping><description><![CDATA[工作中需要在程序中弹出窗口，并且声音报警。查了资料，发现很多都是在网页中用的，在应用程序中应用的很少，解决问题之后，记录下来。 <br>private void play(String path){<br>&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream sound_file=new FileInputStream(path);//获得声音文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AudioStream AudioStream_sound=new AudioStream(sound_file);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AudioData sound_data = AudioStream_sound.getData();//转化的wav文件这句会报错<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ContinuousAudioDataStream sound_continue= new ContinuousAudioDataStream (sound_data);//循环播放<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AudioPlayer.player.start(sound_continue);// Play audio.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println("Play music success!");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AudioPlayer.player.stop(sound_continue);// Stop audio.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException e1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Play music fail!");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e1.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (FileNotFoundException e1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e1.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;<br>注：1.这个程序段是应用在应用程序中，网页中的声音调用不适用。<br>&nbsp;&nbsp;&nbsp; 2.声音片段可以为au格式和wav格式，但是注意的是，如果是别的格式如mp3格式转化过来的，则在AudioData sound_data = AudioStream_sound.getData();系统会报错。<br>&nbsp;&nbsp;&nbsp; 3.调用的时候，尽量用线程，这样可以避免冲突。<br><br>引自：<a href="http://blog.sina.com.cn/u/53f7b6e401000a9w">http://blog.sina.com.cn/u/53f7b6e401000a9w</a>
<img src ="http://www.blogjava.net/linlin2005/aggbug/131115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-07-18 17:19 <a href="http://www.blogjava.net/linlin2005/archive/2007/07/18/131115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flash与jsp的交互</title><link>http://www.blogjava.net/linlin2005/archive/2007/03/28/106844.html</link><dc:creator>lubaolin</dc:creator><author>lubaolin</author><pubDate>Wed, 28 Mar 2007 01:08:00 GMT</pubDate><guid>http://www.blogjava.net/linlin2005/archive/2007/03/28/106844.html</guid><wfw:comment>http://www.blogjava.net/linlin2005/comments/106844.html</wfw:comment><comments>http://www.blogjava.net/linlin2005/archive/2007/03/28/106844.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/linlin2005/comments/commentRss/106844.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlin2005/services/trackbacks/106844.html</trackback:ping><description><![CDATA[<div><font color=blue>1)swf从jsp读数据</font> <br><strong>a)</strong> 在flash中建一个动态文本框，一个button;文本框名字叫str,button上写<br><br><font color=red><br>on (release) {<br>loadVariable("http://localhost:8080/demo/sentVar.jsp", "","get");<br>}//url相对，绝对路径好像都可以</font><br><br><strong>b)</strong> 在sentVar.jsp中写如下代码： <br>&lt;%@ page contentType="text/html;charset=gb2312"%&gt;<br>&lt;%<br>String tmp="wowowo";<br>out.println("&amp;str="+tmp);//这里一定要写成"&amp;str="的形式，&amp;一定不能少，str的名字要与你a中建的相同，&#8220;= &#8221;号也不能少;<br>%&gt;<br><strong>c)</strong>测试。click button ...yeah~(failed?its none of my business)<img class=inlineimg title="Big Grin" alt="" src="http://www.flashempire.net/images/smilies/biggrin.gif" border=0> try again~~<br><br>-------------------------------------------------------------------<br><br><font color=blue>2)swf向jsp写数据</font><br>这个简单点。<br><br>c建一input textfield,起个名字str吧。一个button,上面写：<br><font color=red>on (release) {<br>getURL("showrs.jsp", "","get");<br>}</font><br><br><strong>b)</strong>showrs.jsp中写：<br><font color=red><br>&lt;%@ page contentType="text/html;charset=gb2312"%&gt;<br>&lt;%<br>String tem=request.getParameter("str");<br>out.println("str="+tem);<br>%&gt;</font><br>everything is ok~enjoy...<br><br>引自：<a href="http://www.flashempire.net/showpost.php?p=892409">http://www.flashempire.net/showpost.php?p=892409</a></div>
<!-- / message -->
<img src ="http://www.blogjava.net/linlin2005/aggbug/106844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlin2005/" target="_blank">lubaolin</a> 2007-03-28 09:08 <a href="http://www.blogjava.net/linlin2005/archive/2007/03/28/106844.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>