﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java领域-随笔分类-常用组件</title><link>http://www.blogjava.net/javafield/category/28681.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 20 Jan 2008 06:12:05 GMT</lastBuildDate><pubDate>Sun, 20 Jan 2008 06:12:05 GMT</pubDate><ttl>60</ttl><item><title>jspsmart 上传附件到服务器</title><link>http://www.blogjava.net/javafield/archive/2008/01/19/176509.html</link><dc:creator>石业海</dc:creator><author>石业海</author><pubDate>Sat, 19 Jan 2008 10:45:00 GMT</pubDate><guid>http://www.blogjava.net/javafield/archive/2008/01/19/176509.html</guid><wfw:comment>http://www.blogjava.net/javafield/comments/176509.html</wfw:comment><comments>http://www.blogjava.net/javafield/archive/2008/01/19/176509.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javafield/comments/commentRss/176509.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javafield/services/trackbacks/176509.html</trackback:ping><description><![CDATA[<p>index.jsp</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">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;charset=gb2312</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">测试上传附件</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">metahttp</span><span style="color: #000000">-</span><span style="color: #000000">equiv&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Content-Type</span><span style="color: #000000">"</span><span style="color: #000000">content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;charset=GB2312</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">h2</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;测试上传附件<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">h2</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">form&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Form1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;enctype</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">multipart/form-data</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">post</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;action</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Jspsmart.jsp</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">p</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上传文件1：<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">file</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">File1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;size</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;maxlength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">p</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">p</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上传文件2：<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">file</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">File2</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;size</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;maxlength</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">p</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">submit</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">上传</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">reset</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">清除</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">form</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span></div>
<br />
Jspsmart.jsp<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"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.jspsmart.upload.*</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;charset=GB2312</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">CH9&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;Jspsmart2.jsp</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">h2</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;文件上传范例&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;jspSmart<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">h2</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">jsp:useBean&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">mySmartUpload</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;scope</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">page</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.jspsmart.upload.SmartUpload</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
</span><span style="color: #008080">17</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;count&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img id="Codehighlighter1_334_1866_Open_Image" onclick="this.style.display='none'; Codehighlighter1_334_1866_Open_Text.style.display='none'; Codehighlighter1_334_1866_Closed_Image.style.display='inline'; Codehighlighter1_334_1866_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_334_1866_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_334_1866_Closed_Text.style.display='none'; Codehighlighter1_334_1866_Open_Image.style.display='inline'; Codehighlighter1_334_1866_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_334_1866_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"  alt="" /></span><span id="Codehighlighter1_334_1866_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">SmartUpload的初始化，使用这个jspsmart一定要在一开始就这样声明</span><span style="color: #008000"><br />
</span><span style="color: #008080">20</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mySmartUpload.initialize(pageContext);<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">限制每个上传附件的最大长度。&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">23</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mySmartUpload.setMaxFileSize(</span><span style="color: #000000">5000000</span><span style="color: #000000">);<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">限制总上传数据的长度。&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">26</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mySmartUpload.setTotalMaxFileSize(</span><span style="color: #000000">10000000</span><span style="color: #000000">);<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设定允许上传的附件（通过扩展名限制）。&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">29</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mySmartUpload.setAllowedFilesList(</span><span style="color: #000000">"</span><span style="color: #000000">jpg,gif,GIF,JPG</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">依据form的内容上传</span><span style="color: #008000"><br />
</span><span style="color: #008080">32</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mySmartUpload.upload();<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&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 />
</span><span style="color: #008080">35</span><span style="color: #008000"><img id="Codehighlighter1_783_1678_Open_Image" onclick="this.style.display='none'; Codehighlighter1_783_1678_Open_Text.style.display='none'; Codehighlighter1_783_1678_Closed_Image.style.display='inline'; Codehighlighter1_783_1678_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_783_1678_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_783_1678_Closed_Text.style.display='none'; Codehighlighter1_783_1678_Open_Image.style.display='inline'; Codehighlighter1_783_1678_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;mySmartUpload.getFiles().getCount();&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_783_1678_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"  alt="" /></span><span id="Codehighlighter1_783_1678_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />
</span><span style="color: #008080">37</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.jspsmart.upload.File&nbsp;myFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;mySmartUpload.getFiles().getFile(i);<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 />
</span><span style="color: #008080">40</span><span style="color: #008000"><img id="Codehighlighter1_927_1672_Open_Image" onclick="this.style.display='none'; Codehighlighter1_927_1672_Open_Text.style.display='none'; Codehighlighter1_927_1672_Closed_Image.style.display='inline'; Codehighlighter1_927_1672_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_927_1672_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_927_1672_Closed_Text.style.display='none'; Codehighlighter1_927_1672_Open_Image.style.display='inline'; Codehighlighter1_927_1672_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&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">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">myFile.isMissing())&nbsp;</span><span id="Codehighlighter1_927_1672_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"  alt="" /></span><span id="Codehighlighter1_927_1672_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&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 />
</span><span style="color: #008080">43</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myFile.saveAs(</span><span style="color: #000000">"</span><span style="color: #000000">C:\\upload\\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getFileName(),mySmartUpload.SAVE_PHYSICAL);<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&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 />
</span><span style="color: #008080">46</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">FieldName&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getFieldName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Size&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getSize()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">FileName&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getFileName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">FileExt&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getFileExt()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">50</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">FilePathName&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getFilePathName()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">51</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">ContentType&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getContentType()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">52</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">ContentDisp&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getContentDisp()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">53</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">TypeMIME&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getTypeMIME()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">54</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">SubTypeMIME&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;myFile.getSubTypeMIME()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">55</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
</span><span style="color: #008080">56</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">57</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">58</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">59</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;显示应该上传的文件数目</span><span style="color: #008000"><br />
</span><span style="color: #008080">60</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;mySmartUpload.getFiles().getCount()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;files&nbsp;could&nbsp;be&nbsp;uploaded.&lt;BR&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">61</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">62</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;显示成功上传的文件数目</span><span style="color: #008000"><br />
</span><span style="color: #008080">63</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(count&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">file(s)&nbsp;uploaded.</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">64</span><span style="color: #000000"><img id="Codehighlighter1_1899_1958_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1899_1958_Open_Text.style.display='none'; Codehighlighter1_1899_1958_Closed_Image.style.display='inline'; Codehighlighter1_1899_1958_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1899_1958_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1899_1958_Closed_Text.style.display='none'; Codehighlighter1_1899_1958_Open_Image.style.display='inline'; Codehighlighter1_1899_1958_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(SmartUploadException&nbsp;e)&nbsp;</span><span id="Codehighlighter1_1899_1958_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"  alt="" /></span><span id="Codehighlighter1_1899_1958_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">65</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">上传文件出错</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">66</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.getMessage();<br />
</span><span style="color: #008080">67</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">68</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">69</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">70</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span></div>
<img src ="http://www.blogjava.net/javafield/aggbug/176509.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javafield/" target="_blank">石业海</a> 2008-01-19 18:45 <a href="http://www.blogjava.net/javafield/archive/2008/01/19/176509.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ScriptX.cab与Smsx.cab打印代码</title><link>http://www.blogjava.net/javafield/archive/2008/01/05/173033.html</link><dc:creator>石业海</dc:creator><author>石业海</author><pubDate>Sat, 05 Jan 2008 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/javafield/archive/2008/01/05/173033.html</guid><wfw:comment>http://www.blogjava.net/javafield/comments/173033.html</wfw:comment><comments>http://www.blogjava.net/javafield/archive/2008/01/05/173033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javafield/comments/commentRss/173033.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javafield/services/trackbacks/173033.html</trackback:ping><description><![CDATA[<p><strong>ScriptX.cab打印代码(有弹出页面设置窗口)</strong></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"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;!--</span><span style="color: #000000">前提为必须设置了打印机,即为有默认的打印机,否则此页的弹出窗口不会显示</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!--</span><span style="color: #000000">media</span><span style="color: #000000">=</span><span style="color: #000000">print&nbsp;这个属性可以在打印时有效,设置打印时,打印按钮不显示的样式</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">style&nbsp;media</span><span style="color: #000000">=</span><span style="color: #000000">print</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_121_135_Open_Image" onclick="this.style.display='none'; Codehighlighter1_121_135_Open_Text.style.display='none'; Codehighlighter1_121_135_Closed_Image.style.display='inline'; Codehighlighter1_121_135_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_121_135_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_121_135_Closed_Text.style.display='none'; Codehighlighter1_121_135_Open_Image.style.display='inline'; Codehighlighter1_121_135_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />.Noprint</span><span id="Codehighlighter1_121_135_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"  alt="" /></span><span id="Codehighlighter1_121_135_Open_Text"><span style="color: #000000">{display:none;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_146_172_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_172_Open_Text.style.display='none'; Codehighlighter1_146_172_Closed_Image.style.display='inline'; Codehighlighter1_146_172_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_146_172_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_172_Closed_Text.style.display='none'; Codehighlighter1_146_172_Open_Image.style.display='inline'; Codehighlighter1_146_172_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />.PageNext</span><span id="Codehighlighter1_146_172_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"  alt="" /></span><span id="Codehighlighter1_146_172_Open_Text"><span style="color: #000000">{page</span><span style="color: #000000">-</span><span style="color: #0000ff">break</span><span style="color: #000000">-</span><span style="color: #000000">after:&nbsp;always;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">style</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!--</span><span style="color: #000000">添加打印组件,注意设置codebase路径</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">object&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">factory</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">display:none</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;viewastext&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />classid</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">clsid:1663ed61-23eb-11d2-b92f-008048fdd814</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />codebase</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ScriptX.cab#Version=6,2,433,14</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">object</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!--</span><span style="color: #000000">calss</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">noprint</span><span style="color: #000000">"</span><span style="color: #000000">设置打印时不显示打印按钮</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">td&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">noprint</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;align</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">right</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">img&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;align</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">right</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">cursor:hand</span><span style="color: #000000">"</span><span style="color: #000000">onClick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">set_print()</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!--</span><span style="color: #000000">此方法为载入页面时,即弹出页面设置窗口</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!--</span><span style="color: #000000">以下为常用打印设置</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;defer</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">defer</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img id="Codehighlighter1_621_1186_Open_Image" onclick="this.style.display='none'; Codehighlighter1_621_1186_Open_Text.style.display='none'; Codehighlighter1_621_1186_Closed_Image.style.display='inline'; Codehighlighter1_621_1186_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_621_1186_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_621_1186_Closed_Text.style.display='none'; Codehighlighter1_621_1186_Open_Image.style.display='inline'; Codehighlighter1_621_1186_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />function&nbsp;window.onload()&nbsp;</span><span id="Codehighlighter1_621_1186_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"  alt="" /></span><span id="Codehighlighter1_621_1186_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.printer&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">HP&nbsp;&nbsp;&nbsp;DeskJet&nbsp;&nbsp;&nbsp;870C</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.paperSize&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">B%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />actory.printing.paperSource&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Manual&nbsp;&nbsp;&nbsp;feed</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.header&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">居左显示&amp;b居中显示&amp;b居右显示页码，第&amp;p页/共&amp;P页</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.footer&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">（自定义页脚）</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.portrait&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.leftMargin&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">11</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.topMargin&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">1.5</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.rightMargin&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">0.75</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.bottomMargin&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">1.5</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.PageSetup()&nbsp;;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">打印设置</span><span style="color: #008000"><br />
</span><span style="color: #008080">33</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">factory.printing.Preview()&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 />
</span><span style="color: #008080">34</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>smsx.cab打印页代码(没有弹出页面设置窗口)</strong></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">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">object&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">factory</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;viewastext&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">display:none</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />classid</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">clsid:1663ed61-23eb-11d2-b92f-008048fdd814</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />codebase</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&lt;%=path%&gt;/erpxtbg/tjfx/smsx.cab#Version=6,3,434,26</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">object</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">style</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_199_225_Open_Image" onclick="this.style.display='none'; Codehighlighter1_199_225_Open_Text.style.display='none'; Codehighlighter1_199_225_Closed_Image.style.display='inline'; Codehighlighter1_199_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_199_225_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_199_225_Closed_Text.style.display='none'; Codehighlighter1_199_225_Open_Image.style.display='inline'; Codehighlighter1_199_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />@media&nbsp;print&nbsp;</span><span id="Codehighlighter1_199_225_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"  alt="" /></span><span id="Codehighlighter1_199_225_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_210_223_Open_Image" onclick="this.style.display='none'; Codehighlighter1_210_223_Open_Text.style.display='none'; Codehighlighter1_210_223_Closed_Image.style.display='inline'; Codehighlighter1_210_223_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_210_223_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_210_223_Closed_Text.style.display='none'; Codehighlighter1_210_223_Open_Image.style.display='inline'; Codehighlighter1_210_223_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />.noprint&nbsp;</span><span id="Codehighlighter1_210_223_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"  alt="" /></span><span id="Codehighlighter1_210_223_Open_Text"><span style="color: #000000">{display:none}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img id="Codehighlighter1_235_273_Open_Image" onclick="this.style.display='none'; Codehighlighter1_235_273_Open_Text.style.display='none'; Codehighlighter1_235_273_Closed_Image.style.display='inline'; Codehighlighter1_235_273_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_235_273_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_235_273_Closed_Text.style.display='none'; Codehighlighter1_235_273_Open_Image.style.display='inline'; Codehighlighter1_235_273_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />.STYLE2&nbsp;</span><span id="Codehighlighter1_235_273_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"  alt="" /></span><span id="Codehighlighter1_235_273_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />font</span><span style="color: #000000">-</span><span style="color: #000000">size:&nbsp;18px;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />font</span><span style="color: #000000">-</span><span style="color: #000000">weight:&nbsp;bold;<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">style</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">td&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">noprint</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;align</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">right</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">img&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;align</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">right</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">cursor:hand</span><span style="color: #000000">"</span><span style="color: #000000">onClick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">set_print()</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">td</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />function&nbsp;set_print()<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img id="Codehighlighter1_444_667_Open_Image" onclick="this.style.display='none'; Codehighlighter1_444_667_Open_Text.style.display='none'; Codehighlighter1_444_667_Closed_Image.style.display='inline'; Codehighlighter1_444_667_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_444_667_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_444_667_Closed_Text.style.display='none'; Codehighlighter1_444_667_Open_Image.style.display='inline'; Codehighlighter1_444_667_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_444_667_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"  alt="" /></span><span id="Codehighlighter1_444_667_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.header&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.footer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />factory.printing.portrait&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">1为纵向打,0为横向打</span><span style="color: #008000"><br />
</span><span style="color: #008080">21</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">factory.printing.leftMargin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">13</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">左边距</span><span style="color: #008000"><br />
</span><span style="color: #008080">22</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">factory.printing.topMargin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">右边距</span><span style="color: #008000"><br />
</span><span style="color: #008080">23</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">factory.printing.Print(</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<img src ="http://www.blogjava.net/javafield/aggbug/173033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javafield/" target="_blank">石业海</a> 2008-01-05 21:18 <a href="http://www.blogjava.net/javafield/archive/2008/01/05/173033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FCKeditor使用说明</title><link>http://www.blogjava.net/javafield/archive/2008/01/05/173030.html</link><dc:creator>石业海</dc:creator><author>石业海</author><pubDate>Sat, 05 Jan 2008 13:12:00 GMT</pubDate><guid>http://www.blogjava.net/javafield/archive/2008/01/05/173030.html</guid><wfw:comment>http://www.blogjava.net/javafield/comments/173030.html</wfw:comment><comments>http://www.blogjava.net/javafield/archive/2008/01/05/173030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javafield/comments/commentRss/173030.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javafield/services/trackbacks/173030.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;开发环境： Tomcat6.0 MyEclipse 5.1.1FCKeditor 版本 FCKeditor_2.5 FCKeditor.Java 2.3下载地址： http://www.fckeditor.net/download/default.html开始： 新建工程，名称为 FCKeditor解压 FCKeditor_2.5 包中的 edit 文件夹到...&nbsp;&nbsp;<a href='http://www.blogjava.net/javafield/archive/2008/01/05/173030.html'>阅读全文</a><img src ="http://www.blogjava.net/javafield/aggbug/173030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javafield/" target="_blank">石业海</a> 2008-01-05 21:12 <a href="http://www.blogjava.net/javafield/archive/2008/01/05/173030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j 配置</title><link>http://www.blogjava.net/javafield/archive/2008/01/05/172957.html</link><dc:creator>石业海</dc:creator><author>石业海</author><pubDate>Sat, 05 Jan 2008 06:01:00 GMT</pubDate><guid>http://www.blogjava.net/javafield/archive/2008/01/05/172957.html</guid><wfw:comment>http://www.blogjava.net/javafield/comments/172957.html</wfw:comment><comments>http://www.blogjava.net/javafield/archive/2008/01/05/172957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javafield/comments/commentRss/172957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javafield/services/trackbacks/172957.html</trackback:ping><description><![CDATA[一、前言：<br />
&nbsp;&nbsp;&nbsp;&nbsp; log4j 是一个开放源码项目，是广泛使用的以Java编写的日志记录包。由于log4j出色的表现，&nbsp;&nbsp;&nbsp;&nbsp; 当时在log4j完成时，log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类，但当时jdk1.4已接近完成，所以sun拒绝使用log4j，当在java开发中实际使用最多的还是log4j，&nbsp;&nbsp;&nbsp;&nbsp; 人们遗忘了sun的日志工具类。&nbsp;&nbsp;&nbsp;&nbsp; 它的一个独有特性包括在类别中继承的概念。通过使用类别层次结构，这样就减少了日志记录输出量，并将日志记录的开销降到最低。<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; 它允许开发者控制以任意间隔输出哪些日志语句。通过使用外部配置文件，完全可以在运行时进行配置。几乎每个大的应用程序都包括其自己的日志记录或跟踪 API。经验表明日志记录是开发周期中的重要组成部分。同样，日志记录提供一些优点。首先，它可以提供运行应用程序的确切 上下文。一旦插入到代码中，生成日志记录输出就不需要人为干涉。其次，日志输出可以保存到永久媒体中以便以后研究。最后，除了在开发阶段中使用，十分丰富 的日志记录包还可以用作审计工具。
<p>&nbsp;&nbsp;&nbsp; 依照该规则，在 1996 年初，EU SEMPER（欧洲安全电子市场）项目就决定编写自己的跟踪 API。 在无数次改进、几次具体化和许多工作之后，该 API 已经演变成 log4j，一种流行的 Java 日志记录包。&nbsp; 这个包按 IBM 公共许可证分发，由开放源码权威机构认证。</p>
<p>&nbsp;&nbsp;&nbsp; 日志记录有其自己的缺点。它会降低应用程序的速度。如果太详细，它可能会使屏幕滚动变得看不见。&nbsp; 为了减低这些影响，log4j 被设计成快速且灵活的。由于应用程序很少将日志记录当作是主要功能，&nbsp; log4j API 力争易于了解和使用。<br />
&nbsp;&nbsp;&nbsp;&nbsp; log4j，它可以控制以任意间隔输出哪些日志语句。</p>
<p>二、主要组件</p>
<p>1、根类别（在类别层次结构的顶部，即全局性的日志级别）<br />
&nbsp;<br />
配置根Logger，其语法为：</p>
<p>log4j.rootLogger = [ level ] , appenderName, appenderName, ...</p>
<p>level 是日志记录的类别<br />
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 </p>
<p>类别level 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定义的优先级。<br />
og4j常用的优先级FATAL&gt;ERROR&gt;WARN&gt;INFO&gt;DEBUG<br />
配置根Logger，其语法为：<br />
log4j.rootLogger = [ level ] , appenderName, appenderName, &#8230;<br />
如果为log4j.rootLogger=WARN，则意味着只有WARN,ERROR,FATAL被输出，DEBUG,INFO将被屏蔽掉。</p>
<p>举例：log4j.rootCategory=INFO,stdout,Runlog,Errorlog<br />
根日志类别为INFO，DEBUG将被屏蔽，其他的将被输出。 stdout,Runlog,Errorlog分别为3个输出目的地。</p>
<p>&nbsp;2、常用输出格式</p>
<p>&nbsp;-X号:X信息输出时左对齐；<br />
&nbsp;%p:日志信息级别<br />
&nbsp;%d{}:日志信息产生时间<br />
&nbsp;%c:日志信息所在地（类名）<br />
&nbsp;%m:产生的日志具体信息<br />
&nbsp;%n:输出日志信息换行<br />
&nbsp;举例：<br />
log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n<br />
log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n<br />
log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n</p>
<p>3、布局<br />
使用的输出布局，其中log4j提供4种布局：<br />
org.apache.log4j.HTMLLayout（以HTML表格形式布局）<br />
org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />
org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />
org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） </p>
<p>举例：<br />
输出格式为HTML表格<br />
log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout</p>
<p>输出格式为可以灵活地指定布局模式<br />
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout</p>
<p>输出格式为包含日志信息的级别和信息字符串<br />
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout</p>
<p>输出格式为包含日志产生的时间、线程、类别等等信息<br />
log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout</p>
<p><br />
4、目的地</p>
<p>配置日志信息输出目的地Appender，其语法为</p>
<p><br />
log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />
log4j.appender.appenderName.option1 = value1<br />
...<br />
log4j.appender.appenderName.option = valueN<br />
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 </p>
<p>log4j支持的输出目的地：<br />
org.apache.log4j.ConsoleAppender 控制台<br />
org.apache.log4j.FileAppender 文件<br />
org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件<br />
org.apache.log4j.RollingFileAppender （文件大小到达指定尺寸的时候产生一个新的文件），<br />
org.apache.log4j.WriterAppender （将日志信息以流格式发送到任意指定的地方） <br />
org.apache.log4j.net.SMTPAppender 邮件<br />
org.apache.log4j.jdbc.JDBCAppender 数据库<br />
其他如：GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等</p>
<p>举例：</p>
<p><br />
输出到控制台<br />
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender（指定输出到控制台）<br />
log4j.appender.Threshold=DEBUG（指定输出类别）<br />
log4j.appender.CONSOLE.Target=System.out<br />
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout（指定输出布局）<br />
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n（指定输出格式）</p>
<p>输出到文件</p>
<p>&nbsp;&nbsp; log4j.appender.FILE=org.apache.log4j.FileAppender（指定输出到文件）<br />
&nbsp;&nbsp; log4j.appender.FILE.File=file.log（指定输出的路径及文件名）<br />
&nbsp;&nbsp; log4j.appender.FILE.Append=false<br />
&nbsp;&nbsp; log4j.appender.FILE.layout=org.apache.log4j.PatternLayout（指定输出的布局）<br />
&nbsp;&nbsp; log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n（指定输出的格式）</p>
<p>输出到文件（轮换"日志文件",当日志文件达到指定大小时，该文件就被关闭并备份，然后创建一个新的日志文件）</p>
<p>&nbsp; log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender（指定输出到文件）<br />
&nbsp; log4j.appender.ROLLING_FILE.Threshold=ERROR（指定输出类别）<br />
&nbsp; log4j.appender.ROLLING_FILE.File=rolling.log（指定输出的路径及文件名）<br />
&nbsp; log4j.appender.ROLLING_FILE.Append=true<br />
&nbsp; log4j.appender.ROLLING_FILE.MaxFileSize=10KB（指定输出到文件的大小）<br />
&nbsp; log4j.appender.ROLLING_FILE.MaxBackupIndex=1<br />
&nbsp; log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout（指定采用输出布局）<br />
&nbsp; log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n（指定采用输出格式）</p>
<p>输出到Socket<br />
&nbsp;log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender（指定输出到Socket）<br />
&nbsp;log4j.appender.SOCKET.RemoteHost=localhost（远程主机）<br />
&nbsp;log4j.appender.SOCKET.Port=5001（远程主机端口）<br />
&nbsp;log4j.appender.SOCKET.LocationInfo=true<br />
&nbsp;log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout（布局）<br />
&nbsp;log4j.appender.SOCET.layout.ConversionPattern =[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n %m[MESSAGE]%n%n（输出格式）</p>
<p>输出到邮件<br />
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender（指定输出到邮件）<br />
&nbsp;log4j.appender.MAIL.Threshold=FATAL<br />
&nbsp;log4j.appender.MAIL.BufferSize=10<br />
&nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#108;&#111;&#103;&#52;&#106;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#101;&#114;&#46;&#77;&#65;&#73;&#76;&#46;&#70;&#114;&#111;&#109;&#61;&#99;&#104;&#101;&#110;&#121;&#108;&#64;&#104;&#111;&#108;&#108;&#121;&#99;&#114;&#109;&#46;&#99;&#111;&#109;"><font color="#1d58d1">log4j.appender.MAIL.From=chenyl@hollycrm.com</font></a>（发件人）<br />
&nbsp;log4j.appender.MAIL.SMTPHost=mail.hollycrm.com（SMTP服务器）<br />
&nbsp;log4j.appender.MAIL.Subject=Log4J Message<br />
&nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#108;&#111;&#103;&#52;&#106;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#101;&#114;&#46;&#77;&#65;&#73;&#76;&#46;&#84;&#111;&#61;&#99;&#104;&#101;&#110;&#121;&#108;&#64;&#104;&#111;&#108;&#108;&#121;&#99;&#114;&#109;&#46;&#99;&#111;&#109;"><font color="#1d58d1">log4j.appender.MAIL.To=chenyl@hollycrm.com</font></a>（收件人）<br />
&nbsp;log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout（布局）<br />
&nbsp;log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n（格式）</p>
<p>&nbsp;</p>
<p>输出到数据库<br />
&nbsp;log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender（指定输出到数据库）<br />
&nbsp;log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test（指定数据库URL）<br />
&nbsp;log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver（指定数据库driver）<br />
&nbsp;log4j.appender.DATABASE.user=root（指定数据库用户）<br />
&nbsp;log4j.appender.DATABASE.password=root（指定数据库用户密码）<br />
&nbsp;log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')（组织SQL语句）<br />
&nbsp;log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout（布局）<br />
&nbsp;log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n（格式）</p>
<p>5、日志类别补充<br />
有时我们需要对某个特定的部分指定有别于根类别的日志类别，可以指定某个包的优先级<br />
如：<br />
&nbsp; log4j.category.com.neusoft.mbip.dm.util=ERROR ，其中com.neusoft.mbip.dm.util为我们需要特别指定日志类别的部分。<br />
&nbsp; <br />
&nbsp; 或者可以指定输出文件的优先级<br />
&nbsp; log4j.appender.Errorlog.Threshold=ERROR<br />
&nbsp; <br />
&nbsp;<br />
&nbsp;三、 常用log4j配置&nbsp; </p>
<p>常用log4j配置，一般可以采用两种方式，.properties和.xml,下面举两个简单的例子：</p>
<p>1、log4j.properties</p>
<p>### 设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1，A2 ##<br />
log4j.category.org.zblog=ERROR,A1 <br />
log4j.category.org.zblog=INFO,A2 </p>
<p>log4j.appender.A1=org.apache.log4j.ConsoleAppender <br />
### 设置输出地A1，为ConsoleAppender(控制台) ##<br />
log4j.appender.A1.layout=org.apache.log4j.PatternLayout <br />
### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式）##<br />
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n <br />
### 配置日志输出的格式##</p>
<p>log4j.appender.A2=org.apache.log4j.RollingFileAppender <br />
### 设置输出地A2到文件（文件大小到达指定尺寸的时候产生一个新的文件）##<br />
log4j.appender.A2.File=E:/study/log4j/zhuwei.html <br />
### 文件位置##<br />
log4j.appender.A2.MaxFileSize=500KB <br />
### 文件大小##<br />
log4j.appender.A2.MaxBackupIndex=1 <br />
log4j.appender.A2.layout=org.apache.log4j.HTMLLayout <br />
##指定采用html方式输出</p>
<p>2、log4j.xml</p>
<p>&lt;?xml version="1.0" encoding="GB2312" ?&gt;<br />
&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;</p>
<p>&lt;log4j:configuration xmlns:log4j="<a href="http://jakarta.apache.org/log4j/"><font color="#1d58d1">http://jakarta.apache.org/log4j/</font></a>"&gt;</p>
<p>&lt;appender name="org.zblog.all" class="org.apache.log4j.RollingFileAppender"&gt;<br />
&lt;!-- 设置通道ID:org.zblog.all和输出方式：org.apache.log4j.RollingFileAppender --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="File" value="E:/study/log4j/all.output.log" /&gt;&lt;!-- 设置File参数：日志输出文件名 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="Append" value="false" /&gt;&lt;!-- 设置是否在重新启动服务时，在原有日志的基础添加新日志 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;layout class="org.apache.log4j.PatternLayout"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="ConversionPattern" value="%p (%c:%L)- %m%n" /&gt;&lt;!-- 设置输出文件项目和格式 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/layout&gt;<br />
&lt;/appender&gt;</p>
<p>&lt;appender name="org.zblog.zcw" class="org.apache.log4j.RollingFileAppender"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="File" value="E:/study/log4j/zhuwei.output.log" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="Append" value="true" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="MaxFileSize" value="10240" /&gt; &lt;!-- 设置文件大小 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;layout class="org.apache.log4j.PatternLayout"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="ConversionPattern" value="%p (%c:%L)- %m%n" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/layout&gt;<br />
&lt;/appender&gt;</p>
<p>&lt;logger name="zcw.log"&gt; &lt;!-- 设置域名限制，即zcw.log域及以下的日志均输出到下面对应的通道中 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;level value="debug" /&gt;&lt;!-- 设置级别 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;appender-ref ref="org.zblog.zcw" /&gt;&lt;!-- 与前面的通道id相对应 --&gt;<br />
&lt;/logger&gt;</p>
<p>&lt;root&gt; &lt;!-- 设置接收所有输出的通道 --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;appender-ref ref="org.zblog.all" /&gt;&lt;!-- 与前面的通道id相对应 --&gt;<br />
&lt;/root&gt;</p>
<p>&lt;/log4j:configuration&gt;</p>
<p><br />
3、配置文件加载方法：</p>
<p>import org.apache.log4j.Logger;<br />
import org.apache.log4j.PropertyConfigurator;<br />
import org.apache.log4j.xml.DOMConfigurator;</p>
<p>public class Log4jApp {<br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加载.xml文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加载.properties文件</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger log=Logger.getLogger("org.zblog.test");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("测试");<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>4、项目使用log4j<br />
在web应用中，可以将配置文件的加载放在一个单独的servlet中，并在web.xml中配置该servlet在应用启动时候加载。<br />
对于在多人项目中，可以给每一个人设置一个输出通道，这样在每个人在构建Logger时，用自己的域名称，让调试信<br />
息输出到自己的log文件中。</p>
<p>四、log4j配置举例（properties）</p>
<p>#log4j.rootLogger = [ level ] , appenderName, appenderName, <br />
#类别level 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定义的优先级<br />
#Log4j常用的优先级FATAL&gt;ERROR&gt;WARN&gt;INFO&gt;DEBUG</p>
<p>#stdout为控制台 ，Errorlog为错误记录日志 ，<br />
log4j.rootCategory=INFO,stdout,Runlog,Errorlog</p>
<p><br />
#输出的appender的格式为<br />
#log4j.appender.appenderName = fully.qualified.name.of.appender.class <br />
#log4j.appender.appenderName.option1 = value1 <br />
#log4j.appender.appenderName.option = valueN <br />
#Log4j中appender支持的输出<br />
#org.apache.log4j.ConsoleAppender 控制台<br />
#org.apache.log4j.FileAppender 文件<br />
#org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件<br />
#org.apache.log4j.RollingFileAppender （文件大小到达指定尺寸的时候产生一个新的文件），<br />
#org.apache.log4j.WriterAppender （将日志信息以流格式发送到任意指定的地方） <br />
#org.apache.log4j.net.SMTPAppender 邮件<br />
#org.apache.log4j.jdbc.JDBCAppender 数据库</p>
<p>＃定义输出的形式<br />
log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
log4j.appender.Runlog=org.apache.log4j.DailyRollingFileAppender<br />
log4j.appender.Errorlog=org.apache.log4j.DailyRollingFileAppender</p>
<p><br />
#可以指定输出文件的优先级<br />
log4j.appender.Errorlog.Threshold=ERROR</p>
<p>#指定输出的文件<br />
log4j.appender.Runlog.File=D:\\UserInfoSyn\\WebRoot\\WEB-INF\\runlog\\runlog.log <br />
log4j.appender.Errorlog.File=D:\\UserInfoSyn\\WebRoot\\WEB-INF\\errorlog\\errorlog.log </p>
<p><br />
#Log4j的layout布局<br />
#org.apache.log4j.HTMLLayout 以HTML表格形式布局<br />
#org.apache.log4j.PatternLayout 可以灵活地指定布局模式<br />
#org.apache.log4j.SimpleLayout&nbsp; 包含日志信息的级别和信息字符串<br />
#org.apache.log4j.TTCCLayout&nbsp;&nbsp;&nbsp; 包含日志产生的时间、线程、类别等等信息</p>
<p>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.Runlog.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.Errorlog.layout=org.apache.log4j.PatternLayout</p>
<p>#输出格式,log4j javadoc org.apache.log4j.PatternLayout <br />
#-X号:X信息输出时左对齐；<br />
#%p:日志信息级别<br />
# %d{}:日志信息产生时间<br />
# %c:日志信息所在地（类名）<br />
# %m:产生的日志具体信息<br />
# %n:%n:输出日志信息换行<br />
log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n<br />
log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n<br />
log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n</p>
<p>#指定某个包的优先级 <br />
log4j.category.com.neusoft.mbip.dm.util=ERROR</p>
<p><br />
#示例<br />
###################<br />
# Console Appender<br />
###################<br />
#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender<br />
#log4j.appender.Threshold=DEBUG<br />
#log4j.appender.CONSOLE.Target=System.out<br />
#log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n</p>
<p><br />
#####################<br />
# File Appender<br />
#####################<br />
#log4j.appender.FILE=org.apache.log4j.FileAppender<br />
#log4j.appender.FILE.File=file.log<br />
#log4j.appender.FILE.Append=false<br />
#log4j.appender.FILE.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
# Use this layout for LogFactor 5 analysis</p>
<p>########################<br />
# Rolling File????? RollingFileAppender??????????????????<br />
########################<br />
#log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender<br />
#log4j.appender.ROLLING_FILE.Threshold=ERROR<br />
# 文件位置<br />
#log4j.appender.ROLLING_FILE.File=rolling.log<br />
#log4j.appender.ROLLING_FILE.Append=true<br />
#文件大小<br />
#log4j.appender.ROLLING_FILE.MaxFileSize=10KB<br />
#指定采用输出布局和输出格式<br />
#log4j.appender.ROLLING_FILE.MaxBackupIndex=1<br />
#log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n</p>
<p>####################<br />
# Socket Appender<br />
####################<br />
#log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender<br />
#log4j.appender.SOCKET.RemoteHost=localhost<br />
#log4j.appender.SOCKET.Port=5001<br />
#log4j.appender.SOCKET.LocationInfo=true<br />
# Set up for Log Facter 5<br />
#log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n</p>
<p>########################<br />
# SMTP Appender<br />
#######################<br />
#log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender<br />
#log4j.appender.MAIL.Threshold=FATAL<br />
#log4j.appender.MAIL.BufferSize=10<br />
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#35;&#108;&#111;&#103;&#52;&#106;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#101;&#114;&#46;&#77;&#65;&#73;&#76;&#46;&#70;&#114;&#111;&#109;&#61;&#99;&#104;&#101;&#110;&#121;&#108;&#64;&#104;&#111;&#108;&#108;&#121;&#99;&#114;&#109;&#46;&#99;&#111;&#109;"><font color="#1d58d1">#log4j.appender.MAIL.From=chenyl@hollycrm.com</font></a><br />
#log4j.appender.MAIL.SMTPHost=mail.hollycrm.com<br />
#log4j.appender.MAIL.Subject=Log4J Message<br />
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#35;&#108;&#111;&#103;&#52;&#106;&#46;&#97;&#112;&#112;&#101;&#110;&#100;&#101;&#114;&#46;&#77;&#65;&#73;&#76;&#46;&#84;&#111;&#61;&#99;&#104;&#101;&#110;&#121;&#108;&#64;&#104;&#111;&#108;&#108;&#121;&#99;&#114;&#109;&#46;&#99;&#111;&#109;"><font color="#1d58d1">#log4j.appender.MAIL.To=chenyl@hollycrm.com</font></a><br />
#log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n</p>
<p>########################<br />
# JDBC Appender<br />
#######################<br />
#log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender<br />
#log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test<br />
#log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver<br />
#log4j.appender.DATABASE.user=root<br />
#log4j.appender.DATABASE.password=<br />
#log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')<br />
#log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n</p>
<p>########################<br />
# Log Factor 5 Appender<br />
########################<br />
#log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender<br />
#log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000</p>
<p>###################<br />
#自定义Appender<br />
###################<br />
#log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender<br />
#log4j.appender.im.host = mail.cybercorlin.net<br />
#log4j.appender.im.username = username<br />
#log4j.appender.im.password = password<br />
#log4j.appender.im.recipient = <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#111;&#114;&#108;&#105;&#110;&#64;&#99;&#121;&#98;&#101;&#114;&#99;&#111;&#114;&#108;&#105;&#110;&#46;&#110;&#101;&#116;"><font color="#1d58d1">corlin@cybercorlin.net</font></a><br />
#log4j.appender.im.layout=org.apache.log4j.PatternLayout<br />
#log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n</p>
<img src ="http://www.blogjava.net/javafield/aggbug/172957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javafield/" target="_blank">石业海</a> 2008-01-05 14:01 <a href="http://www.blogjava.net/javafield/archive/2008/01/05/172957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache FileUpload文件上传组件API解析</title><link>http://www.blogjava.net/javafield/archive/2008/01/05/172937.html</link><dc:creator>石业海</dc:creator><author>石业海</author><pubDate>Sat, 05 Jan 2008 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/javafield/archive/2008/01/05/172937.html</guid><wfw:comment>http://www.blogjava.net/javafield/comments/172937.html</wfw:comment><comments>http://www.blogjava.net/javafield/archive/2008/01/05/172937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/javafield/comments/commentRss/172937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/javafield/services/trackbacks/172937.html</trackback:ping><description><![CDATA[Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件，该组件由多个类共同组成，但是，对于使用该组件来编写文件上传功能的Java Web开发人员来说，只需要了解和使用其中的三个类：DiskFileUpload、FileItem和FileUploadException。这三个类全部位于org.apache.commons.fileupload包中。
<p align="left">&nbsp;</p>
<p><font face="宋体">&nbsp;&nbsp;查看API文档<br />
&nbsp;在准备实验环境时获得的commons-fileupload-1.0.zip文件的解压缩目录中可以看到一个docs的子目录，其中包含了Apache文件上传组件中的各个API类的帮助文档，从这个文档中可以了解到各个API类的使用帮助信息。打开文件上传组件API帮助文档中的index.html页面，在左侧分栏窗口页面中列出了文件上传组件中的各个API类的名称，在右侧分栏窗口页面的底部列出了一段示例代码，如图1.2所示。<br />
图1.2<br />
&nbsp;读者不需要逐个去阅读图1.2中列出的各个API类的帮助文档，而应该以图1.2中的示例代码为线索，以其中所使用到的类为入口点，按图索骥地进行阅读，对于示例代码中调用到的各个API类的方法则应重点掌握。</font></p>
<p><font face="宋体">1. DiskFileUpload类<br />
&nbsp;DiskFileUpload类是Apache文件上传组件的核心类，应用程序开发人员通过这个类来与Apache文件上传组件进行交互。但现在Apache建议使用ServletFileUpload类，两个类的方法类似。下面介绍DiskFileUpload类中的几个常用的重要方法。<br />
1.1．setSizeMax方法<br />
&nbsp;setSizeMax方法用于设置请求消息实体内容的最大允许大小，以防止客户端故意通过上传特大的文件来塞满服务器端的存储空间，单位为字节。其完整语法定义如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp; public void setSizeMax（long&nbsp;sizeMax）<br />
&nbsp;如果请求消息中的实体内容的大小超过了setSizeMax方法的设置值，该方法将会抛出FileUploadException异常。<br />
1.2．setSizeThreshold方法<br />
&nbsp;Apache文件上传组件在解析和处理上传数据中的每个字段内容时，需要临时保存解析出的数据。因为Java虚拟机默认可以使用的内存空间是有限的（笔者测试不大于100M），超出限制时将会发生&#8220;java.lang.OutOfMemoryError&#8221;错误，如果上传的文件很大，例如上传800M的文件，在内存中将无法保存该文件内容，Apache文件上传组件将用临时文件来保存这些数据；但如果上传的文件很小，例如上传600个字节的文件，显然将其直接保存在内存中更加有效。setSizeThreshold方法用于设置是否使用临时文件保存解析出的数据的那个临界值，该方法传入的参数的单位是字节。其完整语法定义如下：<br />
&nbsp;public void setSizeThreshold(int&nbsp;sizeThreshold)<br />
1.3. setRepositoryPath方法<br />
&nbsp;setRepositoryPath方法用于设置setSizeThreshold方法中提到的临时文件的存放目录，这里要求使用绝对路径。其完整语法定义如下：<br />
&nbsp;public void setRepositoryPath(String&nbsp;repositoryPath)<br />
&nbsp;如果不设置存放路径，那么临时文件将被储存在"java.io.tmpdir"这个JVM环境属性所指定的目录中，tomcat 5.5.9将这个属性设置为了&#8220;&lt;tomcat安装目录&gt;/temp/&#8221;目录。<br />
1.4. parseRequest方法<br />
&nbsp;parseRequest 方法是DiskFileUpload类的重要方法，它是对HTTP请求消息进行解析的入口方法，如果请求消息中的实体内容的类型不是&#8220;multipart/form-data&#8221;，该方法将抛出FileUploadException异常。parseRequest 方法解析出FORM表单中的每个字段的数据，并将它们分别包装成独立的FileItem对象，然后将这些FileItem对象加入进一个List类型的集合对象中返回。parseRequest 方法的完整语法定义如下：<br />
&nbsp;public List parseRequest(HttpServletRequest&nbsp;req)<br />
&nbsp;parseRequest 方法还有一个重载方法，该方法集中处理上述所有方法的功能，其完整语法定义如下：<br />
&nbsp;parseRequest(HttpServletRequest&nbsp;req,int&nbsp;sizeThreshold,long&nbsp;sizeMax,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;path)<br />
&nbsp;这两个parseRequest方法都会抛出FileUploadException异常。<br />
1.5. isMultipartContent方法<br />
&nbsp;isMultipartContent方法方法用于判断请求消息中的内容是否是&#8220;multipart/form-data&#8221;类型，是则返回true，否则返回false。isMultipartContent方法是一个静态方法，不用创建DiskFileUpload类的实例对象即可被调用，其完整语法定义如下：<br />
&nbsp;public static final boolean isMultipartContent(HttpServletRequest&nbsp;req)<br />
1.6. setHeaderEncoding方法<br />
&nbsp;由于浏览器在提交FORM表单时，会将普通表单中填写的文本内容传递给服务器，对于文件上传字段，除了传递原始的文件内容外，还要传递其文件路径名等信息，如后面的图1.3所示。不管FORM表单采用的是&#8220;application/x-www-form-urlencoded&#8221;编码，还是&#8220;multipart/form-data&#8221;编码，它们仅仅是将各个FORM表单字段元素内容组织到一起的一种格式，而这些内容又是由某种字符集编码来表示的。关于浏览器采用何种字符集来编码FORM表单字段中的内容，请参看笔者编著的《深入体验java Web开发内幕——核心基础》一书中的第6.9.2的讲解，&#8220;multipart/form-data&#8221;类型的表单为表单字段内容选择字符集编码的原理和方式与&#8220;application/x-www-form-urlencoded&#8221;类型的表单是相同的。FORM表单中填写的文本内容和文件上传字段中的文件路径名在内存中就是它们的某种字符集编码的字节数组形式，Apache文件上传组件在读取这些内容时，必须知道它们所采用的字符集编码，才能将它们转换成正确的字符文本返回。<br />
&nbsp;对于浏览器上传给WEB服务器的各个表单字段的描述头内容，Apache文件上传组件都需要将它们转换成字符串形式返回，setHeaderEncoding 方法用于设置转换时所使用的字符集编码，其原理与笔者编著的《深入体验java Web开发内幕——核心基础》一书中的第6.9.4节讲解的ServletRequest.setCharacterEncoding方法相同。setHeaderEncoding 方法的完整语法定义如下：<br />
&nbsp;public void setHeaderEncoding(String&nbsp;encoding)<br />
&nbsp;其中，encoding参数用于指定将各个表单字段的描述头内容转换成字符串时所使用的字符集编码。<br />
&nbsp;注意：如果读者在使用Apache文件上传组件时遇到了中文字符的乱码问题，一般都是没有正确调用setHeaderEncoding方法的原因。</font></p>
<p><font face="宋体">2.&nbsp; FileItem类<br />
&nbsp;FileItem类用来封装单个表单字段元素的数据，一个表单字段元素对应一个FileItem对象，通过调用FileItem对象的方法可以获得相关表单字段元素的数据。FileItem是一个接口，在应用程序中使用的实际上是该接口一个实现类，该实现类的名称并不重要，程序可以采用FileItem接口类型来对它进行引用和访问，为了便于讲解，这里将FileItem实现类称之为FileItem类。FileItem类还实现了Serializable接口，以支持序列化操作。<br />
&nbsp;对于&#8220;multipart/form-data&#8221;类型的FORM表单，浏览器上传的实体内容中的每个表单字段元素的数据之间用字段分隔界线进行分割，两个分隔界线间的内容称为一个分区，每个分区中的内容可以被看作两部分，一部分是对表单字段元素进行描述的描述头，另外一部是表单字段元素的主体内容，如图1.3所示。<br />
&nbsp;图 1.3<br />
&nbsp;主体部分有两种可能性，要么是用户填写的表单内容，要么是文件内容。FileItem类对象实际上就是对图1.3中的一个分区的数据进行封装的对象，它内部用了两个成员变量来分别存储描述头和主体内容，其中保存主体内容的变量是一个输出流类型的对象。当主体内容的大小小于DiskFileUpload.setSizeThreshold方法设置的临界值大小时，这个流对象关联到一片内存，主体内容将会被保存在内存中。当主体内容的数据超过DiskFileUpload.setSizeThreshold方法设置的临界值大小时，这个流对象关联到硬盘上的一个临时文件，主体内容将被保存到该临时文件中。临时文件的存储目录由DiskFileUpload.setRepositoryPath方法设置，临时文件名的格式为&#8220;upload_00000005（八位或八位以上的数字）.tmp&#8221;这种形式，FileItem类内部提供了维护临时文件名中的数值不重复的机制，以保证了临时文件名的唯一性。当应用程序将主体内容保存到一个指定的文件中时，或者在FileItem对象被垃圾回收器回收时，或者Java虚拟机结束时，Apache文件上传组件都会尝试删除临时文件，以尽量保证临时文件能被及时清除。<br />
&nbsp;下面介绍FileItem类中的几个常用的方法：<br />
2.1. isFormField方法<br />
&nbsp;isFormField方法用于判断FileItem类对象封装的数据是否属于一个普通表单字段，还是属于一个文件表单字段，如果是普通表单字段则返回true，否则返回false。该方法的完整语法定义如下：<br />
&nbsp;public boolean isFormField()<br />
2.2. getName方法<br />
&nbsp;getName方法用于获得文件上传字段中的文件名，对于图1.3中的第三个分区所示的描述头，getName方法返回的结果为字符串&#8220;C:\bg.gif&#8221;。如果FileItem类对象对应的是普通表单字段，getName方法将返回null。即使用户没有通过网页表单中的文件字段传递任何文件，但只要设置了文件表单字段的name属性，浏览器也会将文件字段的信息传递给服务器，只是文件名和文件内容部分都为空，但这个表单字段仍然对应一个FileItem对象，此时，getName方法返回结果为空字符串""，读者在调用Apache文件上传组件时要注意考虑这个情况。getName方法的完整语法定义如下：<br />
&nbsp;public String getName()<br />
&nbsp;注意：如果用户使用Windows系统上传文件，浏览器将传递该文件的完整路径，如果用户使用Linux或者Unix系统上传文件，浏览器将只传递该文件的名称部分。<br />
2.3．getFieldName方法<br />
&nbsp;getFieldName方法用于返回表单字段元素的name属性值，也就是返回图1.3中的各个描述头部分中的name属性值，例如&#8220;name=p1&#8221;中的&#8220;p1&#8221;。getFieldName方法的完整语法定义如下：<br />
&nbsp;public String getFieldName()<br />
2.4. write方法<br />
&nbsp;write方法用于将FileItem对象中保存的主体内容保存到某个指定的文件中。如果FileItem对象中的主体内容是保存在某个临时文件中，该方法顺利完成后，临时文件有可能会被清除。该方法也可将普通表单字段内容写入到一个文件中，但它主要用途是将上传的文件内容保存在本地文件系统中。其完整语法定义如下：<br />
&nbsp;public void write(File&nbsp;file)<br />
2.5．getString方法<br />
&nbsp;&nbsp;&nbsp; getString方法用于将FileItem对象中保存的主体内容作为一个字符串返回，它有两个重载的定义形式：<br />
&nbsp;public java.lang.String getString()<br />
&nbsp;public java.lang.String getString(java.lang.String&nbsp;encoding)<br />
&nbsp;&nbsp;&nbsp;&nbsp; throws java.io.UnsupportedEncodingException<br />
&nbsp;前者使用缺省的字符集编码将主体内容转换成字符串，后者使用参数指定的字符集编码将主体内容转换成字符串。如果在读取普通表单字段元素的内容时出现了中文乱码现象，请调用第二个getString方法，并为之传递正确的字符集编码名称。<br />
2.6. getContentType方法<br />
&nbsp;getContentType 方法用于获得上传文件的类型，对于图1.3中的第三个分区所示的描述头，getContentType方法返回的结果为字符串&#8220;image/gif&#8221;，即&#8220;Content-Type&#8221;字段的值部分。如果FileItem类对象对应的是普通表单字段，该方法将返回null。getContentType 方法的完整语法定义如下：<br />
&nbsp;public String getContentType()<br />
2.7. isInMemory方法<br />
&nbsp;isInMemory方法用来判断FileItem类对象封装的主体内容是存储在内存中，还是存储在临时文件中，如果存储在内存中则返回true，否则返回false。其完整语法定义如下：<br />
&nbsp;public boolean isInMemory()<br />
2.8. delete方法<br />
&nbsp;delete方法用来清空FileItem类对象中存放的主体内容，如果主体内容被保存在临时文件中，delete方法将删除该临时文件。尽管Apache组件使用了多种方式来尽量及时清理临时文件，但系统出现异常时，仍有可能造成有的临时文件被永久保存在了硬盘中。在有些情况下，可以调用这个方法来及时删除临时文件。其完整语法定义如下：<br />
&nbsp;public void delete()</font></p>
<p><font face="宋体">3. FileUploadException类<br />
&nbsp;在文件上传过程中，可能发生各种各样的异常，例如网络中断、数据丢失等等。为了对不同异常进行合适的处理，Apache文件上传组件还开发了四个异常类，其中FileUploadException是其他异常类的父类，其他几个类只是被间接调用的底层类，对于Apache组件调用人员来说，只需对FileUploadException异常类进行捕获和处理即可。<br />
&nbsp;<br />
4. ServletRequestContext<br />
&nbsp;ServletRequestContext类提供访问request的方法。实现RequestContext接口。<br />
&nbsp;</font></p>
<img src ="http://www.blogjava.net/javafield/aggbug/172937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/javafield/" target="_blank">石业海</a> 2008-01-05 13:02 <a href="http://www.blogjava.net/javafield/archive/2008/01/05/172937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>