﻿<?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-DANCE WITH JAVA-随笔分类-利器</title><link>http://www.blogjava.net/dreamstone/category/15444.html</link><description>开发出高质量的系统</description><language>zh-cn</language><lastBuildDate>Sat, 26 Jan 2008 15:33:38 GMT</lastBuildDate><pubDate>Sat, 26 Jan 2008 15:33:38 GMT</pubDate><ttl>60</ttl><item><title>apache Ant中文手册 2.0版 (教程)</title><link>http://www.blogjava.net/dreamstone/archive/2008/01/25/177827.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 25 Jan 2008 10:36:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2008/01/25/177827.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/177827.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2008/01/25/177827.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/177827.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/177827.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ant 中文手册 教程&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2008/01/25/177827.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/177827.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2008-01-25 18:36 <a href="http://www.blogjava.net/dreamstone/archive/2008/01/25/177827.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdom 或 dom4j读取xml文件时如何让dtd验证使用本地dtd文件或者不生效</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/29/140993.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Wed, 29 Aug 2007 09:05:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/29/140993.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/140993.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/29/140993.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/140993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/140993.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、写在所有之前：因为dom4j和jdom在这个问题上处理的方法是一模一样的，只是一个是SAXBuilder 一个SAXReader，这里以jdom距离，至于dom4j只需要同理替换一下就可以了。二、问题发生的情况当你用jdom读取一个有dtd验证的xml文件,同时你的网络是不通的情况下。会出现以下错误：1，代码如下package&nbsp;dom;import&nbsp;java.io.Fi...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/29/140993.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/140993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-29 17:05 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/29/140993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse3.3的一些新的特性</title><link>http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 27 Jul 2007 10:08:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/132865.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/132865.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/132865.html</trackback:ping><description><![CDATA[eclipse3.3相对3.2有很大改动，不过以一个使用者的身份罗列一些新的特性。<br>1,ctrl + shift+ o 在代码中有错误的时候也能执行了<br>2,显示个数&nbsp;&nbsp; 显示tab数变多了<br>3,最大最小化效果好了，而且多了直接能点开一些窗口的按钮。注意边上<br>4,执行速度变快了，启动速度，关闭速度都快了很多<br>5,导入工程的时候选定一个文件夹，自动寻找子文件夹中的所有工程，并且过滤掉已经导入的工程。<br>6,新建工程的时候自动建处src和bin，虽然3.2的时候也可以自己手动配置实现，但3.3时默认实现，更人性化一<br>些。<br>7,据说占用内存少了<br>用了一天看到就这些，欢迎补充. 
<img src ="http://www.blogjava.net/dreamstone/aggbug/132865.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-07-27 18:08 <a href="http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过httpClient连接 tomcat https  (ssl)</title><link>http://www.blogjava.net/dreamstone/archive/2007/07/27/132861.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 27 Jul 2007 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/07/27/132861.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/132861.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/07/27/132861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/132861.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/132861.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>HttpClient</span><span>连接</span><span>tomcat https</span><span>（使用私有证书）</span></p>
<p><span>步骤一：</span></p>
<p><span>在</span><span>www.apache.org</span><span>下载所需的类包</span></p>
<p><span>commons-codec-1.3.jar</span></p>
<p><span>commons-httpclient-3.1-rc1.jar</span></p>
<p><span>commons-logging.jar</span></p>
<p><span>步骤二：</span></p>
<p><span>制作证书：</span></p>
<p><span>keytool -genkey -alias tomcat -keyalg RSA</span></p>
<p><span>任意输入，最后一个提示输入回车（保证两个密码相等）否则</span><span>tomcat</span><span>不能启动</span><span>.</span></p>
<p><span>默认生成的文件在用户目录下</span><span>.keystore</span></p>
<p><span>步骤三：</span></p>
<p><span>配置</span><span>tomcat</span></p>
<p><span>更改</span><span>tomcat</span><span>配置文件</span><span>server.xml</span></p>
<p><span>加入</span></p>
<p><span>&lt;Connector port="8443" maxHttpHeaderSize="8192"</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>maxThreads="150" minSpareThreads="25" maxSpareThreads="75"</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>enableLookups="false" disableUploadTimeout="true"</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>acceptCount="100" scheme="https" secure="true"</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>clientAuth="false" sslProtocol="TLS" </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>&nbsp;&nbsp; </span>keystoreFile="C:\.keystore"<span>&nbsp;&nbsp; </span>keystorePass="123456"</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>&nbsp;&nbsp; </span>/&gt;</span></p>
<p><span>其中</span><span>keystoreFile</span><span>是刚生成文件的带全路径的名字</span></p>
<p><span>keystorePass</span><span>是刚才建立证书时候的名字</span></p>
<p><span>启动</span><span>tomcat</span><span>，访问</span><span>https:\\localhost:8443/</span><span>如果能正常看到，说明</span><span>tomcat</span><span>的</span><span>https</span><span>配置成功</span><span>.</span></p>
<p><span>步骤四：</span></p>
<p><span>生成</span><span>jdk</span><span>能使用的证书<br></span>&nbsp;1,用ie导出证书(导出方法：<a href="http://www.ibm.com/developerworks/cn/opensource/os-httpclient/#N10114">http://www.ibm.com/developerworks/cn/opensource/os-httpclient/#N10114</a>)</p>
<p><span>2,假设上边导出文件的名字叫</span><span>tt.cer</span></p>
<p><span>执行</span><span>(</span><span>确保配置了</span><span>java &nbsp;home)</span></p>
<p><span>keytool -import -noprompt -keystore <span>D:\Java\jdk<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">1.5.0</st1:chsdate>_06\jre\lib\security\carcert</span> -alias tomcat -file<span> tt.cer </span>&#8211;trustcacerts</span></p>
<p><span>其中红色的部分替换成自己</span><span>jre</span><span>的路径</span><span>,alias</span><span>同建立证书时的名字，</span><span>file</span><span>时刚才导出的证书的名字</span></p>
<p>&nbsp;</p>
<p><span>会提示输入密码，输入刚才建立证书时输入的密码</span></p>
<p>&nbsp;</p>
<p><span>步骤五：</span></p>
<p><span>编写代码</span></p>
<p align=left>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.commons.httpclient.HttpClient;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.commons.httpclient.HttpStatus;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.commons.httpclient.methods.GetMethod;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.commons.httpclient.params.HttpMethodParams;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_304_1224_Open_Image onclick="this.style.display='none'; Codehighlighter1_304_1224_Open_Text.style.display='none'; Codehighlighter1_304_1224_Closed_Image.style.display='inline'; Codehighlighter1_304_1224_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_304_1224_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_304_1224_Closed_Text.style.display='none'; Codehighlighter1_304_1224_Open_Image.style.display='inline'; Codehighlighter1_304_1224_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Test&nbsp;</span><span id=Codehighlighter1_304_1224_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_304_1224_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_362_389_Open_Image onclick="this.style.display='none'; Codehighlighter1_362_389_Open_Text.style.display='none'; Codehighlighter1_362_389_Closed_Image.style.display='inline'; Codehighlighter1_362_389_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_362_389_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_362_389_Closed_Text.style.display='none'; Codehighlighter1_362_389_Open_Image.style.display='inline'; Codehighlighter1_362_389_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_362_389_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_362_389_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;normal();</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ssl();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_432_492_Open_Image onclick="this.style.display='none'; Codehighlighter1_432_492_Open_Text.style.display='none'; Codehighlighter1_432_492_Closed_Image.style.display='inline'; Codehighlighter1_432_492_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_432_492_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_432_492_Closed_Text.style.display='none'; Codehighlighter1_432_492_Open_Image.style.display='inline'; Codehighlighter1_432_492_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;ssl()</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_432_492_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_432_492_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">https://127.0.0.1:8443/ts/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get(url);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_538_597_Open_Image onclick="this.style.display='none'; Codehighlighter1_538_597_Open_Text.style.display='none'; Codehighlighter1_538_597_Closed_Image.style.display='inline'; Codehighlighter1_538_597_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_538_597_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_538_597_Closed_Text.style.display='none'; Codehighlighter1_538_597_Open_Image.style.display='inline'; Codehighlighter1_538_597_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;normal()</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_538_597_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_538_597_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http://127.0.0.1:8080/ts/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get(url);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_651_1222_Open_Image onclick="this.style.display='none'; Codehighlighter1_651_1222_Open_Text.style.display='none'; Codehighlighter1_651_1222_Closed_Image.style.display='inline'; Codehighlighter1_651_1222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_651_1222_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_651_1222_Closed_Text.style.display='none'; Codehighlighter1_651_1222_Open_Image.style.display='inline'; Codehighlighter1_651_1222_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;get(String&nbsp;url)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_651_1222_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_651_1222_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpClient&nbsp;client&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;HttpClient();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetMethod&nbsp;getMethod&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;GetMethod(url);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置成了默认的恢复策略，在发生异常时候将自动重试3次，在这里你也可以设置成自定义的恢复策略</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DefaultHttpMethodRetryHandler());&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">执行getMethod</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;statusCode&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;client.executeMethod(getMethod);<br><img id=Codehighlighter1_1010_1085_Open_Image onclick="this.style.display='none'; Codehighlighter1_1010_1085_Open_Text.style.display='none'; Codehighlighter1_1010_1085_Closed_Image.style.display='inline'; Codehighlighter1_1010_1085_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1010_1085_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1010_1085_Closed_Text.style.display='none'; Codehighlighter1_1010_1085_Open_Image.style.display='inline'; Codehighlighter1_1010_1085_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(statusCode&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;HttpStatus.SC_OK)&nbsp;</span><span id=Codehighlighter1_1010_1085_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1010_1085_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Method&nbsp;failed:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;getMethod.getStatusLine());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">byte</span><span style="COLOR: #000000">[]&nbsp;responseBody&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getMethod.getResponseBody();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;String(responseBody));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getMethod.releaseConnection();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p align=left>&nbsp;</p>
<p><span>普通连接和</span><span>ssl</span><span>连接只有一个差距就是</span><span>url</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/132861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-07-27 18:01 <a href="http://www.blogjava.net/dreamstone/archive/2007/07/27/132861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache mina (异步连接框架)介绍</title><link>http://www.blogjava.net/dreamstone/archive/2007/07/09/129004.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 09 Jul 2007 03:26:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/07/09/129004.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/129004.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/07/09/129004.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/129004.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/129004.html</trackback:ping><description><![CDATA[<font size=2>一、介绍<br>mina(Multipurpose Infrastructure for Network Applications) 是apache的顶级项目之一，用于构造异步连接的各种网络应用<br>二、最简单的使用实例<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000">&nbsp;aicu.mina;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.io.IOException;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.net.InetSocketAddress;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.nio.charset.Charset;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.ByteBuffer;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.IoAcceptor;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.SimpleByteBufferAllocator;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.filter.LoggingFilter;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.filter.codec.ProtocolCodecFilter;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.filter.codec.textline.TextLineCodecFactory;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.transport.socket.nio.SocketAcceptor;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.transport.socket.nio.SocketAcceptorConfig;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_581_1434_Open_Image onclick="this.style.display='none'; Codehighlighter1_581_1434_Open_Text.style.display='none'; Codehighlighter1_581_1434_Closed_Image.style.display='inline'; Codehighlighter1_581_1434_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_581_1434_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_581_1434_Closed_Text.style.display='none'; Codehighlighter1_581_1434_Open_Image.style.display='inline'; Codehighlighter1_581_1434_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MinaTimeServer&nbsp;</span><span id=Codehighlighter1_581_1434_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_581_1434_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;PORT&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">9123</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_689_1432_Open_Image onclick="this.style.display='none'; Codehighlighter1_689_1432_Open_Text.style.display='none'; Codehighlighter1_689_1432_Closed_Image.style.display='inline'; Codehighlighter1_689_1432_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_689_1432_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_689_1432_Closed_Text.style.display='none'; Codehighlighter1_689_1432_Open_Image.style.display='inline'; Codehighlighter1_689_1432_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;IOException&nbsp;</span><span id=Codehighlighter1_689_1432_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_689_1432_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置buffer</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteBuffer.setUseDirectBuffers(</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteBuffer.setAllocator(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;SimpleByteBufferAllocator());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义acceptor</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IoAcceptor&nbsp;acceptor&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;SocketAcceptor();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义config</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SocketAcceptorConfig&nbsp;cfg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;SocketAcceptorConfig();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置config,加入filter</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cfg.getSessionConfig().setReuseAddress(&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cfg.getFilterChain().addLast(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">logger</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;LoggingFilter()&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cfg.getFilterChain().addLast(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">codec</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ProtocolCodecFilter(&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TextLineCodecFactory(&nbsp;Charset.forName(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">UTF-8</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;))));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">加入port&nbsp;handler&nbsp;cfg</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acceptor.bind(&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;InetSocketAddress(PORT),&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TimeServerHandler(),&nbsp;cfg);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MINA&nbsp;Time&nbsp;server&nbsp;started.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>对应的handler ,handler的作用是在对应的网事件的处理代码<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000">&nbsp;aicu.mina;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.util.Date;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.IdleStatus;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.IoHandlerAdapter;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.IoSession;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.common.TransportType;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.apache.mina.transport.socket.nio.SocketSessionConfig;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_341_1116_Open_Image onclick="this.style.display='none'; Codehighlighter1_341_1116_Open_Text.style.display='none'; Codehighlighter1_341_1116_Closed_Image.style.display='inline'; Codehighlighter1_341_1116_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_341_1116_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_341_1116_Closed_Text.style.display='none'; Codehighlighter1_341_1116_Open_Image.style.display='inline'; Codehighlighter1_341_1116_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TimeServerHandler&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;IoHandlerAdapter&nbsp;</span><span id=Codehighlighter1_341_1116_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_341_1116_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_421_466_Open_Image onclick="this.style.display='none'; Codehighlighter1_421_466_Open_Text.style.display='none'; Codehighlighter1_421_466_Closed_Image.style.display='inline'; Codehighlighter1_421_466_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_421_466_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_421_466_Closed_Text.style.display='none'; Codehighlighter1_421_466_Open_Image.style.display='inline'; Codehighlighter1_421_466_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;exceptionCaught(IoSession&nbsp;session,&nbsp;Throwable&nbsp;t)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception&nbsp;</span><span id=Codehighlighter1_421_466_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_421_466_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.close();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_546_804_Open_Image onclick="this.style.display='none'; Codehighlighter1_546_804_Open_Text.style.display='none'; Codehighlighter1_546_804_Closed_Image.style.display='inline'; Codehighlighter1_546_804_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_546_804_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_546_804_Closed_Text.style.display='none'; Codehighlighter1_546_804_Open_Image.style.display='inline'; Codehighlighter1_546_804_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;messageReceived(IoSession&nbsp;session,&nbsp;Object&nbsp;msg)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception&nbsp;</span><span id=Codehighlighter1_546_804_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_546_804_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;msg.toString();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">如果是quit就关闭session退出</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_647_682_Open_Image onclick="this.style.display='none'; Codehighlighter1_647_682_Open_Text.style.display='none'; Codehighlighter1_647_682_Closed_Image.style.display='inline'; Codehighlighter1_647_682_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_647_682_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_647_682_Closed_Text.style.display='none'; Codehighlighter1_647_682_Open_Image.style.display='inline'; Codehighlighter1_647_682_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;str.trim().equalsIgnoreCase(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">quit</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)&nbsp;)&nbsp;</span><span id=Codehighlighter1_647_682_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_647_682_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.close();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">否则打印当前日期</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;date&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Date();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.write(&nbsp;date.toString()&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Message&nbsp;written<img src="http://www.blogjava.net/Images/dot.gif"></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_871_1114_Open_Image onclick="this.style.display='none'; Codehighlighter1_871_1114_Open_Text.style.display='none'; Codehighlighter1_871_1114_Closed_Image.style.display='inline'; Codehighlighter1_871_1114_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_871_1114_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_871_1114_Closed_Text.style.display='none'; Codehighlighter1_871_1114_Open_Image.style.display='inline'; Codehighlighter1_871_1114_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;sessionCreated(IoSession&nbsp;session)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception&nbsp;</span><span id=Codehighlighter1_871_1114_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_871_1114_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Session&nbsp;created<img src="http://www.blogjava.net/Images/dot.gif"></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;session.getTransportType()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;TransportType.SOCKET&nbsp;)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((SocketSessionConfig)&nbsp;session.getConfig()&nbsp;).setReceiveBufferSize(&nbsp;</span><span style="COLOR: #000000">2048</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setIdleTime(&nbsp;IdleStatus.BOTH_IDLE,&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
三、使用方法：<br>编译上边两个类（需要加入mina的jar文件)，然后运行terminalServer<br>开始-&gt;运行-&gt;cmd进入控制台<br>telnet 127.0.0.1 9123<br>输入hello<br>得到当前日期<br>输入quit关闭session。<br></font>
<img src ="http://www.blogjava.net/dreamstone/aggbug/129004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-07-09 11:26 <a href="http://www.blogjava.net/dreamstone/archive/2007/07/09/129004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SLF4J 教程（自由在各种log中切换)</title><link>http://www.blogjava.net/dreamstone/archive/2007/07/09/128993.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 09 Jul 2007 02:47:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/07/09/128993.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/128993.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/07/09/128993.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/128993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/128993.html</trackback:ping><description><![CDATA[<p>一、介绍：<br>简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的<br>接口，从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以<br>选择直接实现SLF4J接的loging APIs如： NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现<br>来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。在SLF4J发行版本中包含了几个<br>jar包，如slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-log4j13.jar, <br>slf4j-jdk14.jar and slf4j-jcl.jar通过这些jar文件可以使编译期与具体的实现脱离。或者说可以<br>灵活的切换<br>二、官方站点<br>官方的网站：<a href="http://www.slf4j.org/manual.html">http://www.slf4j.org/manual.html</a><br>三、为何使用slf4j?<br>我们在开发过程中可能使用各种log，每个Log有不同的风格、布局，如果想灵活的切换那么slf4j是比较好的<br>选择。<br>四、如何使用slf4j<br>下边一段程序是经典的使用slf4j的方法.</p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.slf4j.Logger;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.slf4j.LoggerFactory;<br><img id=Codehighlighter1_77_562_Open_Image onclick="this.style.display='none'; Codehighlighter1_77_562_Open_Text.style.display='none'; Codehighlighter1_77_562_Closed_Image.style.display='inline'; Codehighlighter1_77_562_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_77_562_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_77_562_Closed_Text.style.display='none'; Codehighlighter1_77_562_Open_Image.style.display='inline'; Codehighlighter1_77_562_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Wombat&nbsp;</span><span id=Codehighlighter1_77_562_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_77_562_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;LoggerFactory.getLogger(Wombat.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;t;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;oldT;<br><img id=Codehighlighter1_217_426_Open_Image onclick="this.style.display='none'; Codehighlighter1_217_426_Open_Text.style.display='none'; Codehighlighter1_217_426_Closed_Image.style.display='inline'; Codehighlighter1_217_426_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_217_426_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_217_426_Closed_Text.style.display='none'; Codehighlighter1_217_426_Open_Image.style.display='inline'; Codehighlighter1_217_426_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setTemperature(Integer&nbsp;temperature)&nbsp;</span><span id=Codehighlighter1_217_426_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_217_426_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oldT&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;t;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;temperature;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Temperature&nbsp;set&nbsp;to&nbsp;{}.&nbsp;Old&nbsp;temperature&nbsp;was&nbsp;{}.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;t,&nbsp;oldT);<br><img id=Codehighlighter1_360_423_Open_Image onclick="this.style.display='none'; Codehighlighter1_360_423_Open_Text.style.display='none'; Codehighlighter1_360_423_Closed_Image.style.display='inline'; Codehighlighter1_360_423_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_360_423_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_360_423_Closed_Text.style.display='none'; Codehighlighter1_360_423_Open_Image.style.display='inline'; Codehighlighter1_360_423_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(temperature.intValue()&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">)&nbsp;</span><span id=Codehighlighter1_360_423_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_360_423_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Temperature&nbsp;has&nbsp;risen&nbsp;above&nbsp;50&nbsp;degrees.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_468_560_Open_Image onclick="this.style.display='none'; Codehighlighter1_468_560_Open_Text.style.display='none'; Codehighlighter1_468_560_Closed_Image.style.display='inline'; Codehighlighter1_468_560_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_468_560_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_468_560_Closed_Text.style.display='none'; Codehighlighter1_468_560_Open_Image.style.display='inline'; Codehighlighter1_468_560_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id=Codehighlighter1_468_560_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_468_560_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wombat&nbsp;wombat&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Wombat();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wombat.setTemperature(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wombat.setTemperature(</span><span style="COLOR: #000000">55</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p><br>下边介绍一下运行上边程序的过程。<br>1,编译上边的程序，需要classpath中加入slf4j-api-1.4.1.jar文件<br>2,运行时，需要classpath中加上slf4j-simple-1.4.1.jar<br>运行得到结果:<br>----------------------------<br>0 [main] ERROR Wombat - Temperature set to 1. Old temperature was null.<br>0 [main] ERROR Wombat - Temperature set to 55. Old temperature was 1.<br>0 [main] INFO Wombat - Temperature has risen above 50 degrees.<br>这个是simple log风格，</p>
<p>3,切换：如果想切换到jdk14的log的风格，只需要把slf4j-simple-1.4.1.jar<br>从classpath中移除，同时classpath中加入slj4j-jdk14-1.4.1.jar<br>这时的运行结果:<br>---------------------------------------------------<br>2007-7-9 10:40:15 Wombat setTemperature<br>严重: Temperature set to 1. Old temperature was null.<br>2007-7-9 10:40:16 Wombat setTemperature<br>严重: Temperature set to 55. Old temperature was 1.<br>2007-7-9 10:40:16 Wombat setTemperature<br>信息: Temperature has risen above 50 degrees.<br>已经变成jdk14的log风格了。<br>4,再次切换到log4j<br>同样移除slj4j-jdk14-1.4.1.jar，加入slf4j-log4j12-1.4.1.jar，同时加入log4j-1.2.x.jar<br>加入log4j.properties。得到显示结果:<br>---------------------------------------<br>10:42:27,328 ERROR Wombat: Temperature set to 1. Old temperature was null.<br>10:42:27,328 ERROR Wombat: Temperature set to 55. Old temperature was 1.<br>10:42:27,328&nbsp; INFO Wombat: Temperature has risen above 50 degrees.<br>在不同的风格中切换只需要在部署期切换类库就可以了，和开发时无关。<br></p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/128993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-07-09 10:47 <a href="http://www.blogjava.net/dreamstone/archive/2007/07/09/128993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让linux开机自动启动oracle</title><link>http://www.blogjava.net/dreamstone/archive/2007/05/25/119887.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 25 May 2007 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/05/25/119887.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/119887.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/05/25/119887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/119887.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/119887.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: linux 开机 自动启动 oracle&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/05/25/119887.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/119887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-05-25 09:29 <a href="http://www.blogjava.net/dreamstone/archive/2007/05/25/119887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse3.3  m7</title><link>http://www.blogjava.net/dreamstone/archive/2007/05/18/118358.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 18 May 2007 06:39:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/05/18/118358.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/118358.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/05/18/118358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/118358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/118358.html</trackback:ping><description><![CDATA[<p>&nbsp; 下了eclipse3.3 m7看了一下,发现3.3在界面方面比3.2有很大改进,最小化问题,解决了,最大化和最小化之间的效果也做的更漂亮了.建立java工程默认有src和 bin了.更人性化了一些.</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/118358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-05-18 14:39 <a href="http://www.blogjava.net/dreamstone/archive/2007/05/18/118358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>配置tomcat5.5  jndi  各种配置方式 分析总结（mysql）</title><link>http://www.blogjava.net/dreamstone/archive/2007/05/07/115766.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 07 May 2007 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/05/07/115766.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/115766.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/05/07/115766.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/115766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/115766.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: tomcat5.5 jndi 各种配置方式 分析总结&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/05/07/115766.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/115766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-05-07 22:27 <a href="http://www.blogjava.net/dreamstone/archive/2007/05/07/115766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ant 中文教程 1.1版本</title><link>http://www.blogjava.net/dreamstone/archive/2007/04/30/114824.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 30 Apr 2007 09:13:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/04/30/114824.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/114824.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/04/30/114824.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/114824.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/114824.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ant  中文  教程 手册&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/04/30/114824.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/114824.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-04-30 17:13 <a href="http://www.blogjava.net/dreamstone/archive/2007/04/30/114824.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐, 源码搜索</title><link>http://www.blogjava.net/dreamstone/archive/2007/02/22/100364.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 22 Feb 2007 11:00:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/02/22/100364.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/100364.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/02/22/100364.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/100364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/100364.html</trackback:ping><description><![CDATA[一个挺有意思的网站，能搜索源代码，类似google的收录网页进行搜索，这个是收录源代码进行搜索，另外还有eclipse插件，可以试试挺好玩。<a href="http://www.koders.com/">http://www.koders.com/</a><br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/100364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-02-22 19:00 <a href="http://www.blogjava.net/dreamstone/archive/2007/02/22/100364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过Eclipse插件Bytecode Outline方便了解Java字节码</title><link>http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 22 Feb 2007 10:44:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/100358.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/100358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/100358.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse, 编译, 反编译, 字节码, 插件 ,Bytecode Outline,asm&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/100358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-02-22 18:44 <a href="http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse中最常用的热键</title><link>http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 08 Feb 2007 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/98706.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/98706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/98706.html</trackback:ping><description><![CDATA[<p>Eclipse中最常用的热键:</p>
<p>1,Ctrl+D &nbsp;&nbsp;&nbsp;&nbsp;删除选中的几行<br>2,Alt+上下箭头 &nbsp;&nbsp;&nbsp;移动选中的代码块<br>3,Alt+左右箭头&nbsp;&nbsp;&nbsp;回退 前进<br>4,Alt+Shift+上下箭头 &nbsp;&nbsp;复制选中的代码块<br>5,sysout+Ctrl space&nbsp;&nbsp;&nbsp;&nbsp; 生成System.out.println();<br>6,main + Ctrl space&nbsp;&nbsp;&nbsp;&nbsp; 生成最简单的main函数<br>7,Ctrl+Shift+X&nbsp;&nbsp;&nbsp;切换成大写<br>8,Ctrl+Shift+Y&nbsp;&nbsp;&nbsp;切换成小写<br>9,Ctrl+Z&nbsp;&nbsp;&nbsp;&nbsp;取消undo<br>10,Ctrl+Y&nbsp;&nbsp;&nbsp;&nbsp;redo<br>11,Ctrl+S&nbsp;&nbsp;&nbsp;&nbsp;保存<br>12,Tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;块缩进<br>13,Shift+Tab&nbsp;&nbsp;&nbsp;反向块缩进<br>14,Ctrl+Shif+F&nbsp;&nbsp;&nbsp;格式化代码<br>15,Ctrl+O&nbsp;&nbsp;&nbsp;&nbsp;显示成员方法 ,成员对象<br>16,Ctrl+Shift+I &nbsp;&nbsp;调试的时候显示对象的值<br>17,Ctrl+M&nbsp;&nbsp;&nbsp;&nbsp;全屏<br>18,Ctrl+N&nbsp;&nbsp;&nbsp;&nbsp;新建<br>19,Ctrl+L&nbsp;&nbsp;&nbsp;&nbsp;进入到第N行<br>20,Ctrl+/&nbsp;&nbsp;&nbsp;&nbsp;注释打开代码<br>21,Ctrl+Shift+/&nbsp;&nbsp;&nbsp;块注释<br>22,Ctrl+Shift+\&nbsp;&nbsp;&nbsp;块注释取消<br>23,Ctrl+1&nbsp;&nbsp;&nbsp;&nbsp;纠正代码<br>24,F3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;显示继承树<br>25,Ctrl+F&nbsp;&nbsp;&nbsp;&nbsp;查找替换<br>26,Ctrl+H&nbsp;&nbsp;&nbsp;&nbsp;更大范围的查找替换<br>27,F5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step into<br>28,F6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step over<br>29,F7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step return<br>30,F8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resume</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/98706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-02-08 11:41 <a href="http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用IText打印PDF</title><link>http://www.blogjava.net/dreamstone/archive/2007/01/29/96468.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 29 Jan 2007 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/01/29/96468.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/96468.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/01/29/96468.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/96468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/96468.html</trackback:ping><description><![CDATA[IText是开源的，对与打印PDF做的还不错，下边一个例子关于IText的，列出了大部份常用的功能。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.io.FileOutputStream;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.Cell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.Document;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.Font;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.PageSize;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.Paragraph;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.Table;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.pdf.BaseFont;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;com.lowagie.text.pdf.PdfWriter;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_328_2692_Open_Image onclick="this.style.display='none'; Codehighlighter1_328_2692_Open_Text.style.display='none'; Codehighlighter1_328_2692_Closed_Image.style.display='inline'; Codehighlighter1_328_2692_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_328_2692_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_328_2692_Closed_Text.style.display='none'; Codehighlighter1_328_2692_Open_Image.style.display='inline'; Codehighlighter1_328_2692_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Example&nbsp;</span><span id=Codehighlighter1_328_2692_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_328_2692_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;Font&nbsp;FONT_11;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;BaseFont&nbsp;msgothic;<br><img id=Codehighlighter1_451_1183_Open_Image onclick="this.style.display='none'; Codehighlighter1_451_1183_Open_Text.style.display='none'; Codehighlighter1_451_1183_Closed_Image.style.display='inline'; Codehighlighter1_451_1183_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_451_1183_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_451_1183_Closed_Text.style.display='none'; Codehighlighter1_451_1183_Open_Image.style.display='inline'; Codehighlighter1_451_1183_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_451_1183_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_451_1183_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_458_649_Open_Image onclick="this.style.display='none'; Codehighlighter1_458_649_Open_Text.style.display='none'; Codehighlighter1_458_649_Closed_Image.style.display='inline'; Codehighlighter1_458_649_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_458_649_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_458_649_Closed_Text.style.display='none'; Codehighlighter1_458_649_Open_Image.style.display='inline'; Codehighlighter1_458_649_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span id=Codehighlighter1_458_649_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_458_649_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义字体</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msgothic&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;BaseFont.createFont(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:\\workspace\\UseIText\\MSMINCHO.TTC,0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,BaseFont.IDENTITY_H,BaseFont.EMBEDDED);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FONT_11</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Font(msgothic);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FONT_11.setSize(</span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_668_696_Open_Image onclick="this.style.display='none'; Codehighlighter1_668_696_Open_Text.style.display='none'; Codehighlighter1_668_696_Closed_Image.style.display='inline'; Codehighlighter1_668_696_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_668_696_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_668_696_Closed_Text.style.display='none'; Codehighlighter1_668_696_Open_Image.style.display='inline'; Codehighlighter1_668_696_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(Exception&nbsp;e)</span><span id=Codehighlighter1_668_696_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_668_696_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">为了测试方便，加入自动关闭打开acrord32</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runtime.getRuntime().exec(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">tskill&nbsp;acrord32</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).waitFor();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Document&nbsp;document</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Document(PageSize.A4.rotate());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">写文件</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PdfWriter&nbsp;writer</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">PdfWriter.getInstance(document,&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FileOutputStream(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">d:/temp.pdf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;makeDocument(document);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.close();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">为了测试方便，加入自动关闭打开acrord32</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runtime.getRuntime().exec(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c:\\Program&nbsp;Files\\Adobe\\Acrobat&nbsp;</span><span style="COLOR: #000000">7.0</span><span style="COLOR: #000000">\\Reader\\acrord32.exe\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;d:/temp.pdf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">).waitFor();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1252_1845_Open_Image onclick="this.style.display='none'; Codehighlighter1_1252_1845_Open_Text.style.display='none'; Codehighlighter1_1252_1845_Closed_Image.style.display='inline'; Codehighlighter1_1252_1845_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1252_1845_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1252_1845_Closed_Text.style.display='none'; Codehighlighter1_1252_1845_Open_Image.style.display='inline'; Codehighlighter1_1252_1845_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;makeDocument(Document&nbsp;document)</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_1252_1845_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1252_1845_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">table大部份操做类似与html,下边是一些常用的参数<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">3是总的列数，也可以同时指定行数和列数new&nbsp;Table(3,4)</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Table&nbsp;table</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Table(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">table的宽度</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setWidth(</span><span style="COLOR: #000000">98</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">类似html的cellSpaceing</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setSpacing(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">每一列的宽度，是比例不是固定宽度</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_1483_1492_Open_Image onclick="this.style.display='none'; Codehighlighter1_1483_1492_Open_Text.style.display='none'; Codehighlighter1_1483_1492_Closed_Image.style.display='inline'; Codehighlighter1_1483_1492_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1483_1492_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1483_1492_Closed_Text.style.display='none'; Codehighlighter1_1483_1492_Open_Image.style.display='inline'; Codehighlighter1_1483_1492_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setWidths(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">[]</span><span id=Codehighlighter1_1483_1492_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1483_1492_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">60</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对齐方式</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setAlignment(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">CENTER</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">table是否有边框</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setBorder(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">cell默认是否有边框</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setDefaultCellBorder(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">自动填充空白</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setAutoFillEmptyCells(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_1705_1732_Open_Image onclick="this.style.display='none'; Codehighlighter1_1705_1732_Open_Text.style.display='none'; Codehighlighter1_1705_1732_Closed_Image.style.display='inline'; Codehighlighter1_1705_1732_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1705_1732_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1705_1732_Closed_Text.style.display='none'; Codehighlighter1_1705_1732_Open_Image.style.display='inline'; Codehighlighter1_1705_1732_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_1705_1732_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1705_1732_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;makeContent(table);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">新的一页要加上这句</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.newPage();<br><img id=Codehighlighter1_1792_1819_Open_Image onclick="this.style.display='none'; Codehighlighter1_1792_1819_Open_Text.style.display='none'; Codehighlighter1_1792_1819_Closed_Image.style.display='inline'; Codehighlighter1_1792_1819_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1792_1819_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1792_1819_Closed_Text.style.display='none'; Codehighlighter1_1792_1819_Open_Image.style.display='inline'; Codehighlighter1_1792_1819_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_1792_1819_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1792_1819_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;makeContent(table);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.add(table);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1909_2149_Open_Image onclick="this.style.display='none'; Codehighlighter1_1909_2149_Open_Text.style.display='none'; Codehighlighter1_1909_2149_Closed_Image.style.display='inline'; Codehighlighter1_1909_2149_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1909_2149_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1909_2149_Closed_Text.style.display='none'; Codehighlighter1_1909_2149_Open_Image.style.display='inline'; Codehighlighter1_1909_2149_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;&nbsp;makeContent(Table&nbsp;table)</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception&nbsp;</span><span id=Codehighlighter1_1909_2149_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1909_2149_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;table.columns();<br><img id=Codehighlighter1_1964_2146_Open_Image onclick="this.style.display='none'; Codehighlighter1_1964_2146_Open_Text.style.display='none'; Codehighlighter1_1964_2146_Closed_Image.style.display='inline'; Codehighlighter1_1964_2146_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1964_2146_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1964_2146_Closed_Text.style.display='none'; Codehighlighter1_1964_2146_Open_Image.style.display='inline'; Codehighlighter1_1964_2146_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">len;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_1964_2146_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1964_2146_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;testStr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">xxxxxxxxxxxxxxxxxxxxxx</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cell&nbsp;cell</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Cell(testStr);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">max&nbsp;lines&nbsp;，设置成1防止换行，配合cell宽度，可以实现自动截取</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setMaxLines(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.addCell(cell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">构造一个自定义的cell</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_2244_2690_Open_Image onclick="this.style.display='none'; Codehighlighter1_2244_2690_Open_Text.style.display='none'; Codehighlighter1_2244_2690_Closed_Image.style.display='inline'; Codehighlighter1_2244_2690_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2244_2690_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2244_2690_Closed_Text.style.display='none'; Codehighlighter1_2244_2690_Open_Image.style.display='inline'; Codehighlighter1_2244_2690_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;Cell&nbsp;makeCell(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;colspan,String&nbsp;align,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;maxLines,Font&nbsp;font)</span><span id=Codehighlighter1_2244_2690_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2244_2690_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cell&nbsp;cell&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paragraph&nbsp;paragraph&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_2300_2625_Open_Image onclick="this.style.display='none'; Codehighlighter1_2300_2625_Open_Text.style.display='none'; Codehighlighter1_2300_2625_Closed_Image.style.display='inline'; Codehighlighter1_2300_2625_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2300_2625_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2300_2625_Closed_Text.style.display='none'; Codehighlighter1_2300_2625_Open_Image.style.display='inline'; Codehighlighter1_2300_2625_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span id=Codehighlighter1_2300_2625_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2300_2625_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">使用自定义字体</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paragraph</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Paragraph(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">testxxx</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,font);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Cell(paragraph);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置colspan,同样的方法可以设置rowspan</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_2437_2472_Open_Image onclick="this.style.display='none'; Codehighlighter1_2437_2472_Open_Text.style.display='none'; Codehighlighter1_2437_2472_Closed_Image.style.display='inline'; Codehighlighter1_2437_2472_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2437_2472_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2437_2472_Closed_Text.style.display='none'; Codehighlighter1_2437_2472_Open_Image.style.display='inline'; Codehighlighter1_2437_2472_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(colspan&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_2437_2472_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2437_2472_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setColspan(colspan);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置对齐</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_2529_2574_Open_Image onclick="this.style.display='none'; Codehighlighter1_2529_2574_Open_Text.style.display='none'; Codehighlighter1_2529_2574_Closed_Image.style.display='inline'; Codehighlighter1_2529_2574_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2529_2574_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2529_2574_Closed_Text.style.display='none'; Codehighlighter1_2529_2574_Open_Image.style.display='inline'; Codehighlighter1_2529_2574_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">((align&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">align.equals(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">)))</span><span id=Codehighlighter1_2529_2574_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2529_2574_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setHorizontalAlignment(align);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置maxlines</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setMaxLines(maxLines);<br><img id=Codehighlighter1_2644_2672_Open_Image onclick="this.style.display='none'; Codehighlighter1_2644_2672_Open_Text.style.display='none'; Codehighlighter1_2644_2672_Closed_Image.style.display='inline'; Codehighlighter1_2644_2672_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2644_2672_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2644_2672_Closed_Text.style.display='none'; Codehighlighter1_2644_2672_Open_Image.style.display='inline'; Codehighlighter1_2644_2672_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(Exception&nbsp;e)</span><span id=Codehighlighter1_2644_2672_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2644_2672_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;cell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.blogjava.net/dreamstone/aggbug/96468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-01-29 11:55 <a href="http://www.blogjava.net/dreamstone/archive/2007/01/29/96468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Log4J的一些小技巧和使用中一些须要注意的问题。</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/29/84391.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Wed, 29 Nov 2006 09:33:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/29/84391.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/84391.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/29/84391.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/84391.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/84391.html</trackback:ping><description><![CDATA[<p><br>一、为多个项目指定使用哪个log4j文件<br>情况一：多个小项目合成一个大项目，多个小项目有自己不同的入口，这个时候如果使用同一个log4j文件，各个项目的输<br>出会混乱在一起，如果拆分成多个小项目，看起来又比较散不太好管理。<br>情况二：一个项目实施在linux上，编写在windows上,log4j的输出目录/opt/xxx/web.log<br>这个时候开发者被迫必须在本机的workspace所在的目录加入一个opt/xxx/web.log的目录和文件<br>同时，大多数情况下linux上的服务是不须要输出log到Console，只要输出到文件<br>而windows大部份是只须要输出到console，不须要输出到文件<br>本地调试的时候log4j的级别多是debug ,而实际实施的时候多是之上的级别<br>造成须要不停的修改log4j的属性文件,cvs同步的时候不停的提示<br>也许你说可以整个项目完成再来写log4j的属性文件，但有的时候这个效果并不好。<br>因为还有这种时候，项目完成（包括log），反复测试的这段时间。</p>
<p>解决：解决办法很简单，建立一个log4j的配制文件的目录，在这个目录下为每个小项目建立一个目录，<br>每个目录下放着自己的log4j配制,然後把这些目录作为每个小工程的classpath的第一个，ok上边的问题就<br>解决了。这个时候可以写一个log4j放在src下，用来开发时候调试用，而真正服务器上使用的都在各自的文件夹下</p>
<p>二,为默写包，某些类定义不同的log4j级别<br>是否想过这中需求呢，一个项目调试的时候，希望其中默写包不打出log信息。<br>比如struts的包，spring的包，还有你引用的别人已经开发好包，或者你自己写的类，但是你不想看到这个<br>类的log信息.但是你须要调试当前的一些class，log级别必须设置在debug级别<br>这个时候可以在log4j的属性文件中加入如下内容:<br>log4j.logger.包名or类名=高的级别<br>例如:<br>log4j.logger.org.springframework=error</p>
<p>三、注意事项<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <img id=Codehighlighter1_21_63_Open_Image onclick="this.style.display='none'; Codehighlighter1_21_63_Open_Text.style.display='none'; Codehighlighter1_21_63_Closed_Image.style.display='inline'; Codehighlighter1_21_63_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top> <img id=Codehighlighter1_21_63_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_63_Closed_Text.style.display='none'; Codehighlighter1_21_63_Open_Image.style.display='inline'; Codehighlighter1_21_63_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top> <span style="COLOR: #0000ff">public</span> <span style="COLOR: #000000">&nbsp;</span> <span style="COLOR: #0000ff">void</span> <span style="COLOR: #000000">&nbsp;execute()</span> <span id=Codehighlighter1_21_63_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"> </span><span id=Codehighlighter1_21_63_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">2</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000"><img src="http://www.blogjava.net/Images/dot.gif">..</span> <span style="COLOR: #008000"><br></span><span style="COLOR: #008080">3</span> <span style="COLOR: #008000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top> </span><span style="COLOR: #000000">&nbsp;logger.debug(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">aa</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">bb</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">+</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">cc</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">4</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span> </span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">5</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> </span></div>
<p><br>是否这么写过呢？这样写是有些问题的。当你把log级别调整到info或者更高的时候，log信息是不输出了<br>但是字符串的拼接一样进行了，使你的程序效率降低，实验一下<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span> <img id=Codehighlighter1_21_61_Open_Image onclick="this.style.display='none'; Codehighlighter1_21_61_Open_Text.style.display='none'; Codehighlighter1_21_61_Closed_Image.style.display='inline'; Codehighlighter1_21_61_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top> <img id=Codehighlighter1_21_61_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_61_Closed_Text.style.display='none'; Codehighlighter1_21_61_Open_Image.style.di