﻿<?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-Samuel Learning-文章分类-06 J2EE</title><link>http://www.blogjava.net/nobody_am/category/2018.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 29 Mar 2012 20:30:54 GMT</lastBuildDate><pubDate>Thu, 29 Mar 2012 20:30:54 GMT</pubDate><ttl>60</ttl><item><title>intellij idea 打开 maven项目</title><link>http://www.blogjava.net/nobody_am/articles/372429.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 22 Mar 2012 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/372429.html</guid><description><![CDATA[1，直接打开pom文件，就打开了maven项目<br />2，对项目需要设置SDK，指定java路径<br />3，可以对package指定source目录<br />4，编译不通过，有依赖问题的话，使用maven--reimport功能，然后编译<img src ="http://www.blogjava.net/nobody_am/aggbug/372429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2012-03-22 10:38 <a href="http://www.blogjava.net/nobody_am/articles/372429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 打印</title><link>http://www.blogjava.net/nobody_am/articles/366238.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 13 Dec 2011 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/366238.html</guid><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;printJPG()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;FileNotFoundException,&nbsp;PrintException,&nbsp;InterruptedException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">image&nbsp;file</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">abc.jpg</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;PrintRequestAttributeSet实例。<br />&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: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintRequestAttributeSet&nbsp;pras&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashPrintRequestAttributeSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocFlavor&nbsp;flavor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;DocFlavor.INPUT_STREAM.JPEG;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;printService[]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrintServiceLookup.lookupPrintServices(flavor,&nbsp;pras);</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;用户可选用的PrintService实例数组。</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;defaultService&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrintServiceLookup.lookupDefaultPrintService();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;默认的PrintService</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;为用户提供一个选择&nbsp;PrintService（打印机）的对话框。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;gc&nbsp;-&nbsp;用于选择屏幕。null&nbsp;意味着主屏幕或默认屏幕。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;x&nbsp;-&nbsp;对话框在屏幕坐标中的位置，包括边框<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;y&nbsp;-&nbsp;对话框在屏幕坐标中的位置，包括边框<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;services&nbsp;-&nbsp;可浏览的服务，必须不为&nbsp;null。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;defaultService&nbsp;-&nbsp;要显示的初始&nbsp;PrintService。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;flavor&nbsp;-&nbsp;要打印的&nbsp;flavor，或者为&nbsp;null。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;attributes&nbsp;-&nbsp;输入时为应用程序最初提供的首选项。这不能为&nbsp;null，但可以为空。输出时为反映用户所作的更改的属性。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;service&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ServiceUI.printDialog(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">200</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">200</span><span style="color: #000000; ">,&nbsp;printService,&nbsp;defaultService,&nbsp;flavor,&nbsp;pras);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(service&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocPrintJob&nbsp;job&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;service.createPrintJob();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;创建打印任务</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fis&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;FileInputStream(filename);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DocAttributeSet&nbsp;das&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashDocAttributeSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;定义要打印的文档,SimpleDoc(,,)里有三个参数:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#183;Object&nbsp;代表要打印的内容<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#183;DocFlavor的一个实例描述数据类型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#183;可选的DocAttributeSet&nbsp;包含打印时的属性<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doc&nbsp;doc&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;SimpleDoc(fis,&nbsp;flavor,&nbsp;das);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;启动打印&nbsp;job.print(&nbsp;,&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;doc&nbsp;-&nbsp;要打印的文档。如果必须是一个&nbsp;flavor，则此&nbsp;PrintJob&nbsp;必须支持它。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;attributes&nbsp;-&nbsp;应用到此&nbsp;PrintJob&nbsp;的作业属性。如果此参数为&nbsp;null，则使用默认属性。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;job.print(doc,&nbsp;pras);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="color: #000000; ">10000</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;printPDF()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;Exception{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">pdf&nbsp;file</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">abc.pdf</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;PrintRequestAttributeSet实例。<br />&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: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;printService[]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrinterJob.lookupPrintServices();</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;用户可选用的PrintService实例数组。</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;defaultService&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrintServiceLookup.lookupDefaultPrintService();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;默认的PrintService</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintRequestAttributeSet&nbsp;pras&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashPrintRequestAttributeSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;为用户提供一个选择&nbsp;PrintService（打印机）的对话框。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;gc&nbsp;-&nbsp;用于选择屏幕。null&nbsp;意味着主屏幕或默认屏幕。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;x&nbsp;-&nbsp;对话框在屏幕坐标中的位置，包括边框<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;y&nbsp;-&nbsp;对话框在屏幕坐标中的位置，包括边框<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;services&nbsp;-&nbsp;可浏览的服务，必须不为&nbsp;null。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;defaultService&nbsp;-&nbsp;要显示的初始&nbsp;PrintService。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;flavor&nbsp;-&nbsp;要打印的&nbsp;flavor，或者为&nbsp;null。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;attributes&nbsp;-&nbsp;输入时为应用程序最初提供的首选项。这不能为&nbsp;null，但可以为空。输出时为反映用户所作的更改的属性。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;service&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ServiceUI.printDialog(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">200</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">200</span><span style="color: #000000; ">,&nbsp;printService,&nbsp;defaultService,&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">,&nbsp;pras);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(service&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">创建PDFDocument</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PDDocument&nbsp;document&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PDDocument.load(&nbsp;filename&nbsp;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">创建打印Job</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrinterJob&nbsp;printJob&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrinterJob.getPrinterJob();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printJob.setJobName(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;File(filename).getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printJob.setPrintService(service);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&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: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.silentPrint(&nbsp;printJob&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="color: #000000; ">10000</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;printPDF()&nbsp;</span><span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;Exception{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;pdf&nbsp;file</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">abc.pdf</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;PrintRequestAttributeSet实例。<br />&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: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;printService[]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrinterJob.lookupPrintServices();</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;用户可选用的PrintService实例数组。</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;defaultService&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrintServiceLookup.lookupDefaultPrintService();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;默认的PrintService</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintRequestAttributeSet&nbsp;pras&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashPrintRequestAttributeSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;为用户提供一个选择&nbsp;PrintService（打印机）的对话框。&nbsp;gc&nbsp;-&nbsp;用于选择屏幕。null&nbsp;意味着主屏幕或默认屏幕。&nbsp;x&nbsp;-<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;对话框在屏幕坐标中的位置，包括边框&nbsp;y&nbsp;-&nbsp;对话框在屏幕坐标中的位置，包括边框&nbsp;services&nbsp;-&nbsp;可浏览的服务，必须不为&nbsp;null。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;defaultService&nbsp;-&nbsp;要显示的初始&nbsp;PrintService。&nbsp;flavor&nbsp;-&nbsp;要打印的&nbsp;flavor，或者为&nbsp;null。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;attributes&nbsp;-&nbsp;输入时为应用程序最初提供的首选项。这不能为&nbsp;null，但可以为空。输出时为反映用户所作的更改的属性。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintService&nbsp;service&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ServiceUI.printDialog(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">200</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">200</span><span style="color: #000000; ">,&nbsp;printService,&nbsp;defaultService,&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">,&nbsp;pras);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(service&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PdfDecoder&nbsp;pdfDecoder&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;PdfDecoder(</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Set&nbsp;to&nbsp;true&nbsp;as&nbsp;I&nbsp;don't&nbsp;want&nbsp;to&nbsp;render&nbsp;it&nbsp;to&nbsp;screen</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pdfDecoder.openPdfFile(filename);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pdfDecoder.setPageParameters(</span><span style="color: #000000; ">1</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; ">values&nbsp;scaling&nbsp;(1=100%).&nbsp;page&nbsp;number<br /><br />&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; ">setup&nbsp;print&nbsp;job&nbsp;and&nbsp;objects</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrinterJob&nbsp;printerJob&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;PrinterJob.getPrinterJob();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PageFormat&nbsp;pf&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;printerJob.defaultPage();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printerJob.setPrintService(service);<br /><br />&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; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;default&nbsp;page&nbsp;size<br />&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: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Paper&nbsp;paper&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Paper();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paper.setSize(</span><span style="color: #000000; ">595</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">842</span><span style="color: #000000; ">);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;in&nbsp;pixels.&nbsp;For&nbsp;A4&nbsp;paper&nbsp;(21&nbsp;cm&nbsp;x&nbsp;29.7&nbsp;cm)&nbsp;at&nbsp;72&nbsp;dpi&nbsp;(java&nbsp;default)&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paper.setImageableArea(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">595</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">842</span><span style="color: #000000; ">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pf.setPaper(paper);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printerJob.setPageable(pdfDecoder);<br /><br />&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; ">setup&nbsp;default&nbsp;values&nbsp;to&nbsp;padd&nbsp;into&nbsp;JPS</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PageRanges&nbsp;fullPageRange&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;PageRanges(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;pdfDecoder.getPageCount());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintRequestAttributeSet&nbsp;aset&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashPrintRequestAttributeSet();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aset.add(fullPageRange);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pdfDecoder.setPageFormat(pf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pdfDecoder.setPagePrintRange(fullPageRange);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printerJob.setCopies(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printerJob.print();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">finally</span><span style="color: #000000; ">&nbsp;{<br />&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;cleanup&nbsp;temporary&nbsp;files&nbsp;(%TMP%/jpedal)</span><span style="color: #008000; "><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pdfDecoder.closePdfFile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span></div><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/nobody_am/aggbug/366238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2011-12-13 14:50 <a href="http://www.blogjava.net/nobody_am/articles/366238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 调优</title><link>http://www.blogjava.net/nobody_am/articles/353492.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Fri, 01 Jul 2011 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/353492.html</guid><description><![CDATA[<div><h2>General</h2> <ul><li><a href="http://www.javaworld.com/channel_content/jw-performance-index.shtml" rel="nofollow">javaworld<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://www.javaperformancetuning.com/" rel="nofollow">javaperformancetuning<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://wiki.eclipse.org/index.php/Performance_Bloopers" rel="nofollow">Eclipse performance bloopers<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://www.precisejava.com/" rel="nofollow">precisejava<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://www.oracle.com/technetwork/java/performance-138178.html" rel="nofollow">Overview page on Performance at Oracle<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://www.oracle.com/technetwork/java/tuning-139912.html" rel="nofollow">Java Tuning Whitepaper<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a>  - good introduction to the special issues in benchmarking HotspotVM  applications. Note the section on "Making Decisions from Data": "Beware  of Microbenchmarks!", "Use Statistics".</li><li><a href="http://java.sun.com/docs/books/performance/1st_edition/html/JPTOC.fm.html" rel="nofollow">Book by Sun on Java performance tuning<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a> - all available online, not sure how old it is</li><li><a href="http://www.ibm.com/developerworks/java/library/j-benchmark1.html" rel="nofollow">Detailed and interesting article from IBM Developerworks 2008<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li></ul>     <h2><a name="References-JBoss"></a>JBoss</h2> <ul><li><a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossASTuningSliming" rel="nofollow">JBoss Tuning Sliming<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://www.onjava.com/pub/a/onjava/2003/05/28/jboss_optimization.html?page=1" rel="nofollow">JBoss optimization<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li><li><a href="http://www.jboss.org/index.html?module=bb&amp;op=viewtopic&amp;t=84540&amp;postdays=0&amp;postorder=asc&amp;start=0" rel="nofollow">interesting thread on JBoss ng<sup><img src="http://wikihealthcare.agfa.net/images/icons/linkext7.gif" alt="" height="7" width="7" align="absmiddle" border="0" /></sup></a></li></ul></div><br /><br /><img src ="http://www.blogjava.net/nobody_am/aggbug/353492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2011-07-01 11:17 <a href="http://www.blogjava.net/nobody_am/articles/353492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBoss5.1 webservice 与 jdk1.6冲突</title><link>http://www.blogjava.net/nobody_am/articles/349334.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 30 Apr 2011 18:16:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/349334.html</guid><description><![CDATA[java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage<br />
<br />
复制下列jar包到&lt;JBOSS_HOME&gt;\lib\endorsed<br />
<p><br />
jbossws-native-jaxws-ext.jar<br />
jbossws-native-jaxws.jar<br />
jbossws-native-saaj.jar<br />
jbossws-native-jaxrpc.jar&nbsp;</p>
 <img src ="http://www.blogjava.net/nobody_am/aggbug/349334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2011-05-01 02:16 <a href="http://www.blogjava.net/nobody_am/articles/349334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dbcp文章</title><link>http://www.blogjava.net/nobody_am/articles/304423.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 01 Dec 2009 12:04:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/304423.html</guid><description><![CDATA[http://xiuye1987.360doc.com/content/060324/17/73_85637.html
<img src ="http://www.blogjava.net/nobody_am/aggbug/304423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2009-12-01 20:04 <a href="http://www.blogjava.net/nobody_am/articles/304423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用SpringAOP结合MemCached做缓存的设想</title><link>http://www.blogjava.net/nobody_am/articles/292427.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 24 Aug 2009 10:24:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/292427.html</guid><description><![CDATA[1, 给DAO的方法上加SpringAOP的Around通知，决定数据从数据库获得还是从缓存获得。<br />
2,自定义两个Annotation，@Cache和@Flush，分别加在DAO的查询和修改的方法上。<br />
3,Around通知函数内用反射获取上述的@cache和@Flush，代表是记录缓存，还是删除缓存。<br />
4,记录缓存时用&#8220;类名+方法名+参数的hashcode&#8221;作为Key，删除缓存时，删除所有的同类名开头的key对应的缓存。<br />
5,Memcached不支持遍历key，所以采用数据库表记录key，假设：tbl_memcached(key,exp_date)。<br />
6,定义一个时钟，定期删除tbl_memcached的过期记录(删除数据库记录前，删除缓存)。<br />
7,记录缓存时，同时存入一条记录到tbl_memcached表。<br />
8,删除缓存是依据tbl_memcache表的key来进行，并且要删除tbl_memcached表的相关记录。 
<img src ="http://www.blogjava.net/nobody_am/aggbug/292427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2009-08-24 18:24 <a href="http://www.blogjava.net/nobody_am/articles/292427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>下载文件且文件名为中文的处理方法</title><link>http://www.blogjava.net/nobody_am/articles/231815.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 29 Sep 2008 11:27:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/231815.html</guid><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Content-disposition</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">attachment;filename=</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;java.net.URLEncoder.encode(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(displayName.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">8859_1</span><span style="color: #000000">"</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">));</span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/231815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-09-29 19:27 <a href="http://www.blogjava.net/nobody_am/articles/231815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SpringMVC的SimpleFormController生命周期</title><link>http://www.blogjava.net/nobody_am/articles/230670.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 23 Sep 2008 07:02:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/230670.html</guid><description><![CDATA[<p>GET-------<br />
handleRequest<br />
handleRequestInternal<br />
isFormSubmission<br />
<strong style="color: red">formBackingObject</strong><br />
createBinder<br />
useDirectFieldAccess<br />
<strong style="color: red">initBinder</strong></p>
<p>showForm<br />
<strong style="color: red">referenceData</strong></p>
<p><br />
POST------<br />
handleRequest<br />
handleRequestInternal<br />
isFormSubmission<br />
<strong style="color: red">formBackingObject<br />
</strong>createBinder<br />
useDirectFieldAccess<br />
<strong style="color: red">initBinder</strong></p>
<p>suppressBinding</p>
<p>onBind<br />
suppressValidation<br />
isFormChangeRequest</p>
<p>onBindAndValidate</p>
<p><span style="color: red"><strong>processFormSubmission</strong></span></p>
<p>isFormChangeRequest</p>
<p style="color: red"><strong>onSubmit</strong></p>
<img src ="http://www.blogjava.net/nobody_am/aggbug/230670.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-09-23 15:02 <a href="http://www.blogjava.net/nobody_am/articles/230670.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts menu 动态读取数据库表</title><link>http://www.blogjava.net/nobody_am/articles/224183.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 25 Aug 2008 07:43:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/224183.html</guid><description><![CDATA[1, jsp页面内容,注意html,body等要规范.<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_2_47_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_47_Open_Text.style.display='none'; Codehighlighter1_2_47_Closed_Image.style.display='inline'; Codehighlighter1_2_47_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2_47_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_47_Closed_Text.style.display='none'; Codehighlighter1_2_47_Open_Image.style.display='inline'; Codehighlighter1_2_47_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_47_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_2_47_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;&nbsp;charset=UTF-8</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_53_111_Open_Image" onclick="this.style.display='none'; Codehighlighter1_53_111_Open_Text.style.display='none'; Codehighlighter1_53_111_Closed_Image.style.display='inline'; Codehighlighter1_53_111_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_53_111_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_53_111_Closed_Text.style.display='none'; Codehighlighter1_53_111_Open_Image.style.display='inline'; Codehighlighter1_53_111_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_53_111_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_53_111_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://struts-menu.sf.net/tag</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">menu</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_117_181_Open_Image" onclick="this.style.display='none'; Codehighlighter1_117_181_Open_Text.style.display='none'; Codehighlighter1_117_181_Closed_Image.style.display='inline'; Codehighlighter1_117_181_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_117_181_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_117_181_Closed_Text.style.display='none'; Codehighlighter1_117_181_Open_Image.style.display='inline'; Codehighlighter1_117_181_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_117_181_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_117_181_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://struts-menu.sf.net/tag-el</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">menu-el</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_187_245_Open_Image" onclick="this.style.display='none'; Codehighlighter1_187_245_Open_Text.style.display='none'; Codehighlighter1_187_245_Closed_Image.style.display='inline'; Codehighlighter1_187_245_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_187_245_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_187_245_Closed_Text.style.display='none'; Codehighlighter1_187_245_Open_Image.style.display='inline'; Codehighlighter1_187_245_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_187_245_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_187_245_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;taglib&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">c</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://java.sun.com/jsp/jstl/core</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="content"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="./scripts/coolmenus3.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Custom&nbsp;config&nbsp;for&nbsp;this&nbsp;example&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="./scripts/coolmenu2-config.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">menu:useMenuDisplayer&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="CoolMenu"</span><span style="color: #ff0000">&nbsp;&nbsp;repository</span><span style="color: #0000ff">="repository"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">c:forEach&nbsp;</span><span style="color: #ff0000">var</span><span style="color: #0000ff">="menu"</span><span style="color: #ff0000">&nbsp;items</span><span style="color: #0000ff">="${repository.topMenus}"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">menu-el:displayMenu&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="${menu.name}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">c:forEach</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">menu:useMenuDisplayer</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;put&nbsp;the&nbsp;form&nbsp;on&nbsp;a&nbsp;layer&nbsp;for&nbsp;coolmenus&nbsp;to&nbsp;handle&nbsp;Netscape4<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;is&nbsp;indicated&nbsp;by&nbsp;setting&nbsp;oCMenu.hideForm("document.formlayer")<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;see&nbsp;the&nbsp;javscript&nbsp;coolmenu&nbsp;configuration&nbsp;file.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ilayer&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="formLayer"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">="someaction.do"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;options:&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">select&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="select1"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="width:300px"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">option</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">option&nbsp;value</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">option</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">select</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ilayer</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
2,上述的repository从request来，下面列出action代码。由此可见，struts menu不一定要依赖struts1.<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_44_132_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_132_Open_Text.style.display='none'; Codehighlighter1_44_132_Closed_Image.style.display='inline'; Codehighlighter1_44_132_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_44_132_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_44_132_Closed_Text.style.display='none'; Codehighlighter1_44_132_Open_Image.style.display='inline'; Codehighlighter1_44_132_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;showMenu()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;AppException</span><span id="Codehighlighter1_44_132_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_44_132_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">repository</span><span style="color: #000000">"</span><span style="color: #000000">,<br />
<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;treeMenuCreator(</span><span style="color: #000000">0</span><span style="color: #000000">));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_200_2327_Open_Image" onclick="this.style.display='none'; Codehighlighter1_200_2327_Open_Text.style.display='none'; Codehighlighter1_200_2327_Closed_Image.style.display='inline'; Codehighlighter1_200_2327_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_200_2327_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_200_2327_Closed_Text.style.display='none'; Codehighlighter1_200_2327_Open_Image.style.display='inline'; Codehighlighter1_200_2327_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Object&nbsp;treeMenuCreator(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;moduleId)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;AppException</span><span id="Codehighlighter1_200_2327_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_200_2327_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuRepository&nbsp;repository&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuRepository();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.setLoadParam(</span><span style="color: #000000">"</span><span style="color: #000000">/WEB-INF/menu-config.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.setServletContext(context);<br />
<img id="Codehighlighter1_377_629_Open_Image" onclick="this.style.display='none'; Codehighlighter1_377_629_Open_Text.style.display='none'; Codehighlighter1_377_629_Closed_Image.style.display='inline'; Codehighlighter1_377_629_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_377_629_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_377_629_Closed_Text.style.display='none'; Codehighlighter1_377_629_Open_Image.style.display='inline'; Codehighlighter1_377_629_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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_377_629_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_377_629_Open_Text"><span style="color: #000000">{<br />
<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;repository.load();<br />
<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;context.setAttribute(MenuRepository.MENU_REPOSITORY_KEY,&nbsp;repository);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_534_618_Open_Image" onclick="this.style.display='none'; Codehighlighter1_534_618_Open_Text.style.display='none'; Codehighlighter1_534_618_Closed_Image.style.display='inline'; Codehighlighter1_534_618_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_534_618_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_534_618_Closed_Text.style.display='none'; Codehighlighter1_534_618_Open_Image.style.display='inline'; Codehighlighter1_534_618_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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;(log.isDebugEnabled())&nbsp;</span><span id="Codehighlighter1_534_618_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_534_618_Open_Text"><span style="color: #000000">{<br />
<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;log.debug(</span><span style="color: #000000">"</span><span style="color: #000000">struts-menu&nbsp;initialization&nbsp;successful</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_669_795_Open_Image" onclick="this.style.display='none'; Codehighlighter1_669_795_Open_Text.style.display='none'; Codehighlighter1_669_795_Closed_Image.style.display='inline'; Codehighlighter1_669_795_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_669_795_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_669_795_Closed_Text.style.display='none'; Codehighlighter1_669_795_Open_Image.style.display='inline'; Codehighlighter1_669_795_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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;(LoadableResourceException&nbsp;lre)&nbsp;</span><span id="Codehighlighter1_669_795_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_669_795_Open_Text"><span style="color: #000000">{<br />
<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;</span><span style="color: #0000ff">throw</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;AppException(</span><span style="color: #000000">"</span><span style="color: #000000">Failure&nbsp;initializing&nbsp;struts-menu:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<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;&nbsp;lre.getMessage());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.setDisplayers(repository.getDisplayers());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">根据moduleId获取属于某个菜单栏目的那些菜单<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">List&lt;Integer&gt;&nbsp;list=menuManager.getMenusByModuleId(moduleId);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">返回某菜单栏目的顶层菜单,顶层菜单就是parentId&nbsp;is&nbsp;null<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">List&nbsp;topMenus&nbsp;=&nbsp;menuManager.loadTopMenusByModuleId(moduleId);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">遍历菜单<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">for&nbsp;(Object&nbsp;o&nbsp;:&nbsp;topMenus)&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;buildTreeMenu(repository,&nbsp;(Menu)&nbsp;o,&nbsp;list,&nbsp;null);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">}</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//////////////</span><span style="color: #008000">临时&nbsp;&nbsp;start</span><span style="color: #008000"><br />
<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;MenuComponent&nbsp;mc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuComponent();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc.setName(</span><span style="color: #000000">"</span><span style="color: #000000">文件</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc.setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">文件</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc.setParent(</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.addMenu(mc);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuComponent&nbsp;mc1</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuComponent();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc1.setName(</span><span style="color: #000000">"</span><span style="color: #000000">新建</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc1.setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">新建</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc1.setParent(mc);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.addMenu(mc1);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuComponent&nbsp;mc2</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuComponent();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc2.setName(</span><span style="color: #000000">"</span><span style="color: #000000">Word</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc2.setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">Word</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc2.setParent(mc1);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc2.setUrl(</span><span style="color: #000000">"</span><span style="color: #000000">http://www.baidu.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc2.setTarget(</span><span style="color: #000000">"</span><span style="color: #000000">_self</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.addMenu(mc2);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuComponent&nbsp;mc3</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuComponent();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc3.setName(</span><span style="color: #000000">"</span><span style="color: #000000">Excel</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc3.setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">Excel</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc3.setParent(mc1);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc3.setUrl(</span><span style="color: #000000">"</span><span style="color: #000000">http://www.google.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc3.setTarget(</span><span style="color: #000000">"</span><span style="color: #000000">_self</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.addMenu(mc3);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuComponent&nbsp;mc4</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuComponent();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc4.setName(</span><span style="color: #000000">"</span><span style="color: #000000">保存</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc4.setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">保存</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc4.setParent(mc);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc4.setUrl(</span><span style="color: #000000">"</span><span style="color: #000000">http://www.excelerate-tech.com</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc4.setTarget(</span><span style="color: #000000">"</span><span style="color: #000000">_self</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.addMenu(mc4);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MenuComponent&nbsp;mc5</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MenuComponent();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc5.setName(</span><span style="color: #000000">"</span><span style="color: #000000">帮助</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc5.setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">帮助</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc5.setParent(</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc5.setUrl(</span><span style="color: #000000"><a href="http://www.sina.cn">http://www.sina.cn</a></span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc5.setTarget(</span><span style="color: #000000">"</span><span style="color: #000000">_self</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repository.addMenu(mc5);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//////////////</span><span style="color: #008000">&nbsp;临时&nbsp;end</span><span style="color: #008000"><br />
<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;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;repository;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">递归构造菜单<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">菜单属性有:&nbsp;id,序号seq,名称title,提示tip,连接url,目标窗口target,父菜单parentMenu,子菜单集合childMenus</span><span style="color: #008000"><br />
<img id="Codehighlighter1_2422_3001_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2422_3001_Open_Text.style.display='none'; Codehighlighter1_2422_3001_Closed_Image.style.display='inline'; Codehighlighter1_2422_3001_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2422_3001_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2422_3001_Closed_Text.style.display='none'; Codehighlighter1_2422_3001_Open_Image.style.display='inline'; Codehighlighter1_2422_3001_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2422_3001_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">/**/</span><span id="Codehighlighter1_2422_3001_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">private&nbsp;void&nbsp;buildTreeMenu(MenuRepository&nbsp;repository,&nbsp;Menu&nbsp;menu,&nbsp;List&lt;Integer&gt;&nbsp;menuIds,MenuComponent&nbsp;parentMenu)&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(menuIds.contains(menu.getId().intValue()))&nbsp;{<br />
<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;MenuComponent&nbsp;mc&nbsp;=&nbsp;new&nbsp;MenuComponent();<br />
<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;mc.setName(menu.getTitle());<br />
<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;mc.setTitle(menu.getTip());<br />
<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;mc.setParent(parentMenu);<br />
<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;Set&nbsp;set&nbsp;=&nbsp;menu.getChildMenu();<br />
<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;if(set!=null&nbsp;&amp;&amp;&nbsp;set.size()&gt;0){<br />
<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;for&nbsp;(Object&nbsp;o&nbsp;:&nbsp;set)&nbsp;{<br />
<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;buildTreeMenu(repository,&nbsp;(Menu)&nbsp;o,&nbsp;menuIds,mc);<br />
<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;}<br />
<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;}else{<br />
<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;mc.setPage(menu.getForward());<br />
<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;mc.setTarget(menu.getTarget());<br />
<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;}<br />
<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;repository.addMenu(mc);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000">*/</span></span></div>
<br />
<br />
<img src ="http://www.blogjava.net/nobody_am/aggbug/224183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-08-25 15:43 <a href="http://www.blogjava.net/nobody_am/articles/224183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>监控tomcat状态片断</title><link>http://www.blogjava.net/nobody_am/articles/217680.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 26 Jul 2008 08:59:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/217680.html</guid><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.net.URL;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.net.URLConnection;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Date;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_104_1362_Open_Image" onclick="this.style.display='none'; Codehighlighter1_104_1362_Open_Text.style.display='none'; Codehighlighter1_104_1362_Closed_Image.style.display='inline'; Codehighlighter1_104_1362_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_104_1362_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_104_1362_Closed_Text.style.display='none'; Codehighlighter1_104_1362_Open_Image.style.display='inline'; Codehighlighter1_104_1362_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;RestartTomcat&nbsp;</span><span id="Codehighlighter1_104_1362_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_104_1362_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_164_1266_Open_Image" onclick="this.style.display='none'; Codehighlighter1_164_1266_Open_Text.style.display='none'; Codehighlighter1_164_1266_Closed_Image.style.display='inline'; Codehighlighter1_164_1266_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_164_1266_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_164_1266_Closed_Text.style.display='none'; Codehighlighter1_164_1266_Open_Image.style.display='inline'; Codehighlighter1_164_1266_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_164_1266_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_164_1266_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<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">set&nbsp;connection&nbsp;timecout</span><span style="color: #008000"><br />
<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;System.setProperty(</span><span style="color: #000000">"</span><span style="color: #000000">sun.net.client.defaultConnectTimeout</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">10000</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<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;System.setProperty(</span><span style="color: #000000">"</span><span style="color: #000000">sun.net.client.defaultReadTimeout</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">10000</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URLConnection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_398_1263_Open_Image" onclick="this.style.display='none'; Codehighlighter1_398_1263_Open_Text.style.display='none'; Codehighlighter1_398_1263_Closed_Image.style.display='inline'; Codehighlighter1_398_1263_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_398_1263_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_398_1263_Closed_Text.style.display='none'; Codehighlighter1_398_1263_Open_Image.style.display='inline'; Codehighlighter1_398_1263_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">true</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_398_1263_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_398_1263_Open_Text"><span style="color: #000000">{<br />
<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;URL&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(</span><span style="color: #000000">"</span><span style="color: #000000">http://www.xxx.cn</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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;conn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url.openConnection();<br />
<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;<br />
<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;</span><span style="color: #008000">//</span><span style="color: #008000">log("connection&nbsp;is&nbsp;"&nbsp;+&nbsp;conn);</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_621_1155_Open_Image" onclick="this.style.display='none'; Codehighlighter1_621_1155_Open_Text.style.display='none'; Codehighlighter1_621_1155_Closed_Image.style.display='inline'; Codehighlighter1_621_1155_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_621_1155_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_621_1155_Closed_Text.style.display='none'; Codehighlighter1_621_1155_Open_Image.style.display='inline'; Codehighlighter1_621_1155_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(conn</span><span style="color: #000000">==</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;conn.getHeaderField(</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span style="color: #000000">==</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;(conn.getHeaderField(</span><span style="color: #0000ff">null</span><span style="color: #000000">)).indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">200</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_621_1155_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_1155_Open_Text"><span style="color: #000000">{<br />
<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;<br />
<img id="Codehighlighter1_646_684_Open_Image" onclick="this.style.display='none'; Codehighlighter1_646_684_Open_Text.style.display='none'; Codehighlighter1_646_684_Closed_Image.style.display='inline'; Codehighlighter1_646_684_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_646_684_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_646_684_Closed_Text.style.display='none'; Codehighlighter1_646_684_Open_Image.style.display='inline'; Codehighlighter1_646_684_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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">(conn</span><span style="color: #000000">==</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span id="Codehighlighter1_646_684_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_646_684_Open_Text"><span style="color: #000000">{<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">Connection&nbsp;is&nbsp;null</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_725_759_Open_Image" onclick="this.style.display='none'; Codehighlighter1_725_759_Open_Text.style.display='none'; Codehighlighter1_725_759_Closed_Image.style.display='inline'; Codehighlighter1_725_759_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_725_759_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_725_759_Closed_Text.style.display='none'; Codehighlighter1_725_759_Open_Image.style.display='inline'; Codehighlighter1_725_759_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.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: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(conn.getHeaderField(</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span style="color: #000000">==</span><span style="color: #0000ff">null</span><span style="color: #000000">)</span><span id="Codehighlighter1_725_759_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_725_759_Open_Text"><span style="color: #000000">{<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">No&nbsp;http&nbsp;Status</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_817_863_Open_Image" onclick="this.style.display='none'; Codehighlighter1_817_863_Open_Text.style.display='none'; Codehighlighter1_817_863_Closed_Image.style.display='inline'; Codehighlighter1_817_863_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_817_863_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_817_863_Closed_Text.style.display='none'; Codehighlighter1_817_863_Open_Image.style.display='inline'; Codehighlighter1_817_863_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.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: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">((conn.getHeaderField(</span><span style="color: #0000ff">null</span><span style="color: #000000">)).indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">200</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)</span><span id="Codehighlighter1_817_863_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_817_863_Open_Text"><span style="color: #000000">{<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;http&nbsp;status&nbsp;is&nbsp;not&nbsp;200</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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 />
<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;<br />
<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;Runtime.getRuntime().exec(</span><span style="color: #000000">"</span><span style="color: #000000">net&nbsp;stop&nbsp;tomcat5</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">Stop&nbsp;tomcat5<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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;Thread.sleep(</span><span style="color: #000000">1000</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">30</span><span style="color: #000000">&nbsp;);<br />
<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;Runtime.getRuntime().exec(</span><span style="color: #000000">"</span><span style="color: #000000">net&nbsp;start&nbsp;tomcat5</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">Start&nbsp;tomcat5<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">Tomcat&nbsp;has&nbsp;been&nbsp;restarted.</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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">wait&nbsp;5&nbsp;minuts</span><span style="color: #008000"><br />
<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;Thread.sleep(</span><span style="color: #000000">1000</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_1162_1259_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1162_1259_Open_Text.style.display='none'; Codehighlighter1_1162_1259_Closed_Image.style.display='inline'; Codehighlighter1_1162_1259_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1162_1259_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1162_1259_Closed_Text.style.display='none'; Codehighlighter1_1162_1259_Open_Image.style.display='inline'; Codehighlighter1_1162_1259_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.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">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_1162_1259_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_1162_1259_Open_Text"><span style="color: #000000">{<br />
<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;log(</span><span style="color: #000000">"</span><span style="color: #000000">Tomcat&nbsp;is&nbsp;running&nbsp;correctly</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<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">wait&nbsp;1&nbsp;minut</span><span style="color: #008000"><br />
<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;Thread.sleep(</span><span style="color: #000000">1000</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<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;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1304_1360_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1304_1360_Open_Text.style.display='none'; Codehighlighter1_1304_1360_Closed_Image.style.display='inline'; Codehighlighter1_1304_1360_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1304_1360_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1304_1360_Closed_Text.style.display='none'; Codehighlighter1_1304_1360_Open_Image.style.display='inline'; Codehighlighter1_1304_1360_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;log(String&nbsp;s)</span><span id="Codehighlighter1_1304_1360_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_1304_1360_Open_Text"><span style="color: #000000">{<br />
<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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Date()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/217680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-07-26 16:59 <a href="http://www.blogjava.net/nobody_am/articles/217680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java正则表达式解析Html片断</title><link>http://www.blogjava.net/nobody_am/articles/217655.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 26 Jul 2008 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/217655.html</guid><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_39_2975_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_2975_Open_Text.style.display='none'; Codehighlighter1_39_2975_Closed_Image.style.display='inline'; Codehighlighter1_39_2975_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_39_2975_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_2975_Closed_Text.style.display='none'; Codehighlighter1_39_2975_Open_Image.style.display='inline'; Codehighlighter1_39_2975_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_39_2975_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_39_2975_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;input&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;p&nbsp;align=\</span><span style="color: #000000">"</span><span style="color: #000000">center\</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;img&nbsp;alt=\</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;WIDTH=\</span><span style="color: #000000">"</span><span style="color: #000000">1000</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;height=\</span><span style="color: #000000">"</span><span style="color: #000000">1000</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;src=\</span><span style="color: #000000">"</span><span style="color: #000000">http:</span><span style="color: #008000">//</span><span style="color: #008000">media.people.com.cn/mediafile/200806/30/F200806300819101721101382.jpg\"&nbsp;/&gt;&lt;/p&gt;&lt;p&nbsp;class=\"pictext\"&nbsp;align=\"center\"&gt;倪萍（资料图）&lt;/p&gt;&lt;p&gt;　　推荐阅读：&lt;/p&gt;&lt;p&gt;　　●主持人资料库&amp;mdash;&amp;mdash;倪萍、曹颖&lt;/p&gt;&lt;p&gt;　　●出走央视三年&nbsp;文清碌碌无为当演员沦为影视配角&lt;/p&gt;&lt;p&gt;　　●川籍主持人李佳明回归央视&nbsp;不再主持《开心辞典》&lt;/p&gt;&lt;p&gt;　　●从&amp;ldquo;解说门&amp;rdquo;到&amp;ldquo;走穴&amp;rdquo;&nbsp;当央视名嘴遭遇尴尬&lt;/p&gt;&lt;p&gt;　　●那些从央视离开的主持人&lt;/p&gt;&lt;p&gt;　　●央视综艺主持人纷纷出走的三个原因&lt;/p&gt;&lt;p&gt;　　●毅然挥手告别　离开央视的&amp;ldquo;名嘴&amp;rdquo;们&lt;/p&gt;&lt;p&gt;　　文清从央视的这兴奋一跳，并没有跳到另一个高峰，相反落到一个低洼的谷地，那么在她之前先后离开主持岗位的曹颖、赵琳、倪萍又是怎样一幅景象呢？现在也是她们该晒一晒的时候了，不过一眼望过去并非惨不忍睹，而是有喜也有忧。&lt;/p&gt;&lt;p&gt;　　&lt;strong&gt;倪萍&nbsp;影视圈也当大姐&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;　　倪萍是中国观众最熟悉不过的央视主持人了，如果没有她的眼泪，中国的电视屏幕将会缺少很多真情。但是后来，有一天她突然说出了自己的肺腑之言：&amp;ldquo;我曾经拿着话筒跑在最前面，但这样持续跑下去，终究会是最后一名，我已经感觉跑不动了。&amp;rdquo;&lt;/p&gt;&lt;p&gt;　　于是，几年前，在央视规定很严的情况下，她被破例批准在外参演影视作品，而倪萍也的确没让央视的领导们失望，在第２２届金鸡百花奖颁奖礼上，她凭借《美丽的大脚》，一举拿下了金鸡奖的影后桂冠。&lt;/p&gt;&lt;p&gt;　　如今，倪萍早已将关系转到中国电视剧制作中心，全心拍摄影视剧，《两个人的芭蕾》、《泥鳅也是鱼》等影响之作陆续诞生。&lt;/p&gt;&lt;p&gt;　　从杨澜手中接过《综艺大观》的话筒，倪萍走向了主持舞台的辉煌，而如今离开那个位置，她依旧没有迷失，在影视圈还是保持着大姐的风范。&lt;/p&gt;&lt;!--分页--&gt;&lt;p&nbsp;align=\"center\"&gt;&lt;img&nbsp;alt=\"\"&nbsp;width=1000&nbsp;height=\"1000\"&nbsp;src=\"</span><span style="color: #008000; text-decoration: underline">http://media.people.com.cn/mediafile/200806/30/F200806300819112389715921.jpg</span><span style="color: #008000">\"&nbsp;/&gt;&lt;/p&gt;&lt;p&nbsp;class=\"pictext\"&nbsp;align=\"center\"&gt;赵琳（资料图）&lt;/p&gt;&lt;p&gt;　　&lt;strong&gt;倪萍&nbsp;影视圈也当大姐&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;　　倪萍是中国观众最熟悉不过的央视主持人了，如果没有她的眼泪，中国的电视屏幕将会缺少很多真情。但是后来，有一天她突然说出了自己的肺腑之言：&amp;ldquo;我曾经拿着话筒跑在最前面，但这样持续跑下去，终究会是最后一名，我已经感觉跑不动了。&amp;rdquo;&lt;/p&gt;&lt;p&gt;　　于是，几年前，在央视规定很严的情况下，她被破例批准在外参演影视作品，而倪萍也的确没让央视的领导们失望，在第２２届金鸡百花奖颁奖礼上，她凭借《美丽的大脚》，一举拿下了金鸡奖的影后桂冠。&lt;/p&gt;&lt;p&gt;　　如今，倪萍早已将关系转到中国电视剧制作中心，全心拍摄影视剧，《两个人的芭蕾》、《泥鳅也是鱼》等影响之作陆续诞生。&lt;/p&gt;&lt;p&gt;　　从杨澜手中接过《综艺大观》的话筒，倪萍走向了主持舞台的辉煌，而如今离开那个位置，她依旧没有迷失，在影视圈还是保持着大姐的风范。&lt;/p&gt;&lt;p&gt;　　&lt;strong&gt;赵琳&nbsp;开门红后没起色&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;　　当年，赵琳因主持央视《生活》栏目，曾荣获&amp;ldquo;华鹤杯&amp;rdquo;全国电视&amp;ldquo;十佳&amp;rdquo;经济节目主持人。２００２年，赵琳辞去央视主持人职位后，受赵宝刚导演邀约出演荧屏处女作《别了，温哥华》，饰演剧中女主角&amp;ldquo;任小雪&amp;rdquo;，自此踏上影视之路。&lt;/p&gt;&lt;p&gt;　　《别了，温哥华》在观众中反响热烈，也算是给赵琳的转型之路来了一个开门红，还凭借在该剧中出色表现，荣获中国电视&amp;ldquo;双十佳&amp;rdquo;女演员奖。&lt;/p&gt;&lt;p&gt;　　就在大家纷纷猜测赵琳从此将大红大紫的时候，她接下来主演的《重返上海滩》、《基因之战》、《录像带》、《危情２４小时》、《血色残阳》等作品，虽然有一定知名度，可她本人的表现并不突出，并未给观众继续带来惊喜。而且在网络还流传，赵琳的感情生活也犯迷糊，被一个假军人骗钱骗色。&lt;/p&gt;&lt;p&gt;　　如今，在镜头前沉沉浮浮的赵琳又找到了赵宝刚，加盟了有陆毅、朱雨辰、王珞丹等出演的《我的青春谁做主》，我们都期待她能借赵宝刚的功力再次冒头。&lt;/p&gt;&lt;!--分页--&gt;&lt;p&nbsp;align=\"center\"&gt;&lt;img&nbsp;alt=\"\"&nbsp;width&nbsp;=&nbsp;1000&nbsp;&nbsp;height=\"1000\"&nbsp;src=\"</span><span style="color: #008000; text-decoration: underline">http://media.people.com.cn/mediafile/200806/30/F200806300819101426445281.jpg</span><span style="color: #008000">\"&nbsp;/&gt;&lt;/p&gt;&lt;p&nbsp;class=\"pictext\"&nbsp;align=\"center\"&gt;曹颖（资料图）&lt;/p&gt;&lt;p&gt;　　&lt;strong&gt;曹颖&nbsp;拍戏主持两不误&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;　　在央视主持《万家灯火》、《综艺大观》的曹颖，是观众公认的实力派主持人，可是她在央视眼里却是一名不安分的员工，因为就在她拿着央视薪水的同时，也在外面疯狂地接拍影视剧，于是，忍无可忍的央视给她下了最后通牒，要她在拍戏和央视两者之间做出选择。始终无法忽略自己对电视剧的喜爱，曹颖最终做了艰难的选择&amp;mdash;&amp;mdash;为演戏而离开央视。&lt;/p&gt;&lt;p&gt;　　看来曹颖的选择是明智的，在影视圈里，她在《日落紫禁城》里可爱的封库伦公主、《我想嫁给你》里美丽多病的白雪、《文成公主》里高贵大方的文成公主、《凤在江湖》里冷艳高贵的蜻蜓、《乌龙闯情关》里可爱调皮犹如仙子般的水仙、《律政佳人》里干练又气质十足的女律师钱小美等，都让观众记忆深刻。而她还凭借《大雪无痕》里任性的丁洁而获得了金鹰奖观众最喜欢的女演员奖。&lt;/p&gt;&lt;p&gt;　　拍戏是自己的最爱，可&amp;ldquo;贪心&amp;rdquo;的曹颖也离不开主持舞台，在一番谈判之后，她成功&amp;ldquo;改嫁&amp;rdquo;到湖南卫视，和湖南台当红主持人主持大型活动、享受同等待遇。更奇妙的是，湖南卫视给她的政策很宽松，既允许拍戏，还可以接拍广告。（记者&nbsp;李平）&lt;/p&gt;";</span><span style="color: #008000"><br />
<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;System.out.println(findImg(input));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;rate&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_3056_3409_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3056_3409_Open_Text.style.display='none'; Codehighlighter1_3056_3409_Closed_Image.style.display='inline'; Codehighlighter1_3056_3409_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3056_3409_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3056_3409_Closed_Text.style.display='none'; Codehighlighter1_3056_3409_Open_Image.style.display='inline'; Codehighlighter1_3056_3409_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;findImg(String&nbsp;input)&nbsp;</span><span id="Codehighlighter1_3056_3409_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_3056_3409_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;restult&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;regex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;img\\s*([^&gt;]*)&gt;</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">以&lt;img开头，接着一个或多个空格，接着是一些非&nbsp;&gt;&nbsp;的字符，最后以&gt;结尾</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;p&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Pattern.compile(regex);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matcher&nbsp;m&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;p.matcher(input);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_3254_3387_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3254_3387_Open_Text.style.display='none'; Codehighlighter1_3254_3387_Closed_Image.style.display='inline'; Codehighlighter1_3254_3387_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3254_3387_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3254_3387_Closed_Text.style.display='none'; Codehighlighter1_3254_3387_Open_Image.style.display='inline'; Codehighlighter1_3254_3387_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(m.find())&nbsp;</span><span id="Codehighlighter1_3254_3387_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_3254_3387_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<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;String&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m.group();<br />
<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;<br />
<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;String&nbsp;replacement&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;processImgWidth(img);<br />
<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;restult&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;restult.replaceAll(img,&nbsp;replacement);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;restult;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_3465_3914_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3465_3914_Open_Text.style.display='none'; Codehighlighter1_3465_3914_Closed_Image.style.display='inline'; Codehighlighter1_3465_3914_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3465_3914_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3465_3914_Closed_Text.style.display='none'; Codehighlighter1_3465_3914_Open_Image.style.display='inline'; Codehighlighter1_3465_3914_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;processImgWidth(String&nbsp;input)&nbsp;</span><span id="Codehighlighter1_3465_3914_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_3465_3914_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;regexWidth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">((w|w)(i|I)(d|D)(t|T)(h|H))\\s*=\\s*(\</span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">)\\d</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">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;p1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Pattern.compile(regexWidth);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matcher&nbsp;m1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;p1.matcher(input);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_3675_3894_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3675_3894_Open_Text.style.display='none'; Codehighlighter1_3675_3894_Closed_Image.style.display='inline'; Codehighlighter1_3675_3894_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3675_3894_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3675_3894_Closed_Text.style.display='none'; Codehighlighter1_3675_3894_Open_Image.style.display='inline'; Codehighlighter1_3675_3894_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(m1.find())&nbsp;</span><span id="Codehighlighter1_3675_3894_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_3675_3894_Open_Text"><span style="color: #000000">{<br />
<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;String&nbsp;width&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m1.group();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<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;String&nbsp;replacement&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;processWidthValue(width);<br />
<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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Pre:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;result);<br />
<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;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;result.replaceAll(width,&nbsp;replacement);<br />
<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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Post:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;result);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;result;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_3972_4367_Open_Image" onclick="this.style.display='none'; Codehighlighter1_3972_4367_Open_Text.style.display='none'; Codehighlighter1_3972_4367_Closed_Image.style.display='inline'; Codehighlighter1_3972_4367_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_3972_4367_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_3972_4367_Closed_Text.style.display='none'; Codehighlighter1_3972_4367_Open_Image.style.display='inline'; Codehighlighter1_3972_4367_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;processWidthValue(String&nbsp;width)&nbsp;</span><span id="Codehighlighter1_3972_4367_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_3972_4367_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;regexWidthNo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">\\d+</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;p2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Pattern.compile(regexWidthNo);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matcher&nbsp;m2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;p2.matcher(width);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_4130_4346_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4130_4346_Open_Text.style.display='none'; Codehighlighter1_4130_4346_Closed_Image.style.display='inline'; Codehighlighter1_4130_4346_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_4130_4346_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_4130_4346_Closed_Text.style.display='none'; Codehighlighter1_4130_4346_Open_Image.style.display='inline'; Codehighlighter1_4130_4346_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(m2.find())&nbsp;</span><span id="Codehighlighter1_4130_4346_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_4130_4346_Open_Text"><span style="color: #000000">{<br />
<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;String&nbsp;widthNo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m2.group();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_4172_4315_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4172_4315_Open_Text.style.display='none'; Codehighlighter1_4172_4315_Closed_Image.style.display='inline'; Codehighlighter1_4172_4315_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_4172_4315_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_4172_4315_Closed_Text.style.display='none'; Codehighlighter1_4172_4315_Open_Image.style.display='inline'; Codehighlighter1_4172_4315_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.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_4172_4315_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_4172_4315_Open_Text"><span style="color: #000000">{<br />
<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: #0000ff">int</span><span style="color: #000000">&nbsp;widthValue&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.parseInt(widthNo);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<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;rate&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">500</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;widthValue;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_4271_4310_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4271_4310_Open_Text.style.display='none'; Codehighlighter1_4271_4310_Closed_Image.style.display='inline'; Codehighlighter1_4271_4310_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_4271_4310_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_4271_4310_Closed_Text.style.display='none'; Codehighlighter1_4271_4310_Open_Image.style.display='inline'; Codehighlighter1_4271_4310_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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;(rate&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_4271_4310_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_4271_4310_Open_Text"><span style="color: #000000">{<br />
<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;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">width=\</span><span style="color: #000000">"</span><span style="color: #000000">400</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
<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 />
<img id="Codehighlighter1_4337_4342_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4337_4342_Open_Text.style.display='none'; Codehighlighter1_4337_4342_Closed_Image.style.display='inline'; Codehighlighter1_4337_4342_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_4337_4342_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_4337_4342_Closed_Text.style.display='none'; Codehighlighter1_4337_4342_Open_Image.style.display='inline'; Codehighlighter1_4337_4342_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.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;(Exception&nbsp;e)&nbsp;</span><span id="Codehighlighter1_4337_4342_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_4337_4342_Open_Text"><span style="color: #000000">{<br />
<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;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;result;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/217655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-07-26 14:26 <a href="http://www.blogjava.net/nobody_am/articles/217655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Filter解决Struts中文编码问题</title><link>http://www.blogjava.net/nobody_am/articles/215610.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 17 Jul 2008 15:59:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/215610.html</guid><description><![CDATA[Filter定义：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;filter;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.Filter;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.FilterConfig;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletRequest;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletResponse;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.FilterChain;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.IOException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_314_1214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_314_1214_Open_Text.style.display='none'; Codehighlighter1_314_1214_Closed_Image.style.display='inline'; Codehighlighter1_314_1214_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_314_1214_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_314_1214_Closed_Text.style.display='none'; Codehighlighter1_314_1214_Open_Image.style.display='inline'; Codehighlighter1_314_1214_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CharacterEncodingFilter&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Filter&nbsp;</span><span id="Codehighlighter1_314_1214_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_314_1214_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;FilterConfig&nbsp;filterConfig;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;String&nbsp;encodingName;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;enable;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_449_506_Open_Image" onclick="this.style.display='none'; Codehighlighter1_449_506_Open_Text.style.display='none'; Codehighlighter1_449_506_Closed_Image.style.display='inline'; Codehighlighter1_449_506_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_449_506_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_449_506_Closed_Text.style.display='none'; Codehighlighter1_449_506_Open_Image.style.display='inline'; Codehighlighter1_449_506_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;CharacterEncodingFilter()&nbsp;</span><span id="Codehighlighter1_449_506_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_449_506_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.encodingName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.enable&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_578_639_Open_Image" onclick="this.style.display='none'; Codehighlighter1_578_639_Open_Text.style.display='none'; Codehighlighter1_578_639_Closed_Image.style.display='inline'; Codehighlighter1_578_639_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_578_639_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_578_639_Closed_Text.style.display='none'; Codehighlighter1_578_639_Open_Image.style.display='inline'; Codehighlighter1_578_639_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init(FilterConfig&nbsp;filterConfig)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_578_639_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_578_639_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.filterConfig&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filterConfig;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadConfigParams();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_675_931_Open_Image" onclick="this.style.display='none'; Codehighlighter1_675_931_Open_Text.style.display='none'; Codehighlighter1_675_931_Closed_Image.style.display='inline'; Codehighlighter1_675_931_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_675_931_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_675_931_Closed_Text.style.display='none'; Codehighlighter1_675_931_Open_Image.style.display='inline'; Codehighlighter1_675_931_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;loadConfigParams()&nbsp;</span><span id="Codehighlighter1_675_931_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_675_931_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.encodingName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.filterConfig.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">encoding</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;strIgnoreFlag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.filterConfig.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">enable</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_866_893_Open_Image" onclick="this.style.display='none'; Codehighlighter1_866_893_Open_Text.style.display='none'; Codehighlighter1_866_893_Closed_Image.style.display='inline'; Codehighlighter1_866_893_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_866_893_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_866_893_Closed_Text.style.display='none'; Codehighlighter1_866_893_Open_Image.style.display='inline'; Codehighlighter1_866_893_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(strIgnoreFlag.equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">))&nbsp;</span><span id="Codehighlighter1_866_893_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_866_893_Open_Text"><span style="color: #000000">{<br />
<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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.enable&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_900_928_Open_Image" onclick="this.style.display='none'; Codehighlighter1_900_928_Open_Text.style.display='none'; Codehighlighter1_900_928_Closed_Image.style.display='inline'; Codehighlighter1_900_928_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_900_928_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_900_928_Closed_Text.style.display='none'; Codehighlighter1_900_928_Open_Image.style.display='inline'; Codehighlighter1_900_928_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_900_928_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_900_928_Open_Text"><span style="color: #000000">{<br />
<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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.enable&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doFilter(ServletRequest&nbsp;request,&nbsp;ServletResponse&nbsp;response,<br />
<img id="Codehighlighter1_1065_1182_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1065_1182_Open_Text.style.display='none'; Codehighlighter1_1065_1182_Closed_Image.style.display='inline'; Codehighlighter1_1065_1182_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1065_1182_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1065_1182_Closed_Text.style.display='none'; Codehighlighter1_1065_1182_Open_Image.style.display='inline'; Codehighlighter1_1065_1182_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FilterChain&nbsp;chain)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException,&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_1065_1182_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_1065_1182_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_1086_1142_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1086_1142_Open_Text.style.display='none'; Codehighlighter1_1086_1142_Closed_Image.style.display='inline'; Codehighlighter1_1086_1142_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1086_1142_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1086_1142_Closed_Text.style.display='none'; Codehighlighter1_1086_1142_Open_Image.style.display='inline'; Codehighlighter1_1086_1142_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.enable)&nbsp;</span><span id="Codehighlighter1_1086_1142_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_1086_1142_Open_Text"><span style="color: #000000">{<br />
<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;request.setCharacterEncoding(</span><span style="color: #0000ff">this</span><span style="color: #000000">.encodingName);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(request,&nbsp;response);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1208_1211_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1208_1211_Open_Text.style.display='none'; Codehighlighter1_1208_1211_Closed_Image.style.display='inline'; Codehighlighter1_1208_1211_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1208_1211_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1208_1211_Closed_Text.style.display='none'; Codehighlighter1_1208_1211_Open_Image.style.display='inline'; Codehighlighter1_1208_1211_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;destroy()&nbsp;</span><span id="Codehighlighter1_1208_1211_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_1208_1211_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
Web.xml定义<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;?</span><span style="color: #000000">xml&nbsp;version</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;encoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">iso-8859-1</span><span style="color: #000000">"</span><span style="color: #000000">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;!--</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Licensed&nbsp;to&nbsp;the&nbsp;Apache&nbsp;Software&nbsp;Foundation&nbsp;(ASF)&nbsp;under&nbsp;one&nbsp;or&nbsp;more<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;contributor&nbsp;license&nbsp;agreements.&nbsp;&nbsp;See&nbsp;the&nbsp;NOTICE&nbsp;file&nbsp;distributed&nbsp;with<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">&nbsp;work&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;additional&nbsp;information&nbsp;regarding&nbsp;copyright&nbsp;ownership.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;ASF&nbsp;licenses&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">&nbsp;file&nbsp;to&nbsp;You&nbsp;under&nbsp;the&nbsp;Apache&nbsp;License,&nbsp;Version&nbsp;</span><span style="color: #000000">2.0</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;(the&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">License</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;you&nbsp;may&nbsp;not&nbsp;use&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">&nbsp;file&nbsp;except&nbsp;in&nbsp;compliance&nbsp;with<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;License.&nbsp;&nbsp;You&nbsp;may&nbsp;obtain&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;License&nbsp;at<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http:</span><span style="color: #008000">//</span><span style="color: #008000">www.apache.org/licenses/LICENSE-2.0</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Unless&nbsp;required&nbsp;by&nbsp;applicable&nbsp;law&nbsp;or&nbsp;agreed&nbsp;to&nbsp;in&nbsp;writing,&nbsp;software<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;distributed&nbsp;under&nbsp;the&nbsp;License&nbsp;is&nbsp;distributed&nbsp;on&nbsp;an&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">AS&nbsp;IS</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;BASIS,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;WITHOUT&nbsp;WARRANTIES&nbsp;OR&nbsp;CONDITIONS&nbsp;OF&nbsp;ANY&nbsp;KIND,&nbsp;either&nbsp;express&nbsp;or&nbsp;implied.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;the&nbsp;License&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;the&nbsp;specific&nbsp;language&nbsp;governing&nbsp;permissions&nbsp;and<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;limitations&nbsp;under&nbsp;the&nbsp;License.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;web</span><span style="color: #000000">-</span><span style="color: #000000">app&nbsp;PUBLIC<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//Sun&nbsp;Microsystems,&nbsp;Inc.//DTD&nbsp;Web&nbsp;Application&nbsp;2.3//EN</span><span style="color: #000000">"</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://java.sun.com/dtd/web-app_2_3.dtd</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">web</span><span style="color: #000000">-</span><span style="color: #000000">app</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">display</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">Struts&nbsp;Examples&nbsp;Application</span><span style="color: #000000">&lt;/</span><span style="color: #000000">display</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;Standard&nbsp;Action&nbsp;Servlet&nbsp;Configuration&nbsp;(with&nbsp;debugging)&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">servlet</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">action</span><span style="color: #000000">&lt;/</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">servlet</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000">org.apache.struts.action.ActionServlet</span><span style="color: #000000">&lt;/</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">config</span><span style="color: #000000">&lt;/</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">WEB</span><span style="color: #000000">-</span><span style="color: #000000">INF</span><span style="color: #000000">/</span><span style="color: #000000">struts</span><span style="color: #000000">-</span><span style="color: #000000">config.xml,<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">WEB</span><span style="color: #000000">-</span><span style="color: #000000">INF</span><span style="color: #000000">/</span><span style="color: #000000">struts</span><span style="color: #000000">-</span><span style="color: #000000">config</span><span style="color: #000000">-</span><span style="color: #000000">Wildcard.xml<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">load</span><span style="color: #000000">-</span><span style="color: #000000">on</span><span style="color: #000000">-</span><span style="color: #000000">startup</span><span style="color: #000000">&gt;</span><span style="color: #000000">2</span><span style="color: #000000">&lt;/</span><span style="color: #000000">load</span><span style="color: #000000">-</span><span style="color: #000000">on</span><span style="color: #000000">-</span><span style="color: #000000">startup</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">servlet</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;Standard&nbsp;Action&nbsp;Servlet&nbsp;Mapping&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">action</span><span style="color: #000000">&lt;/</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">&gt;*</span><span style="color: #000000">.</span><span style="color: #0000ff">do</span><span style="color: #000000">&lt;/</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">CharacterEncoding</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000">filter.CharacterEncodingFilter</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">encoding</span><span style="color: #000000">&lt;/</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000">UTF</span><span style="color: #000000">-</span><span style="color: #000000">8</span><span style="color: #000000">&lt;/</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">enable</span><span style="color: #000000">&lt;/</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">true</span><span style="color: #000000">&lt;/</span><span style="color: #000000">param</span><span style="color: #000000">-</span><span style="color: #000000">value</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">init</span><span style="color: #000000">-</span><span style="color: #000000">param</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">CharacterEncoding</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">action</span><span style="color: #000000">&lt;/</span><span style="color: #000000">servlet</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;!--</span><span style="color: #000000">&nbsp;The&nbsp;Usual&nbsp;Welcome&nbsp;File&nbsp;List&nbsp;</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">welcome</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">-</span><span style="color: #000000">list</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<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">welcome</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">&gt;</span><span style="color: #000000">index.jsp</span><span style="color: #000000">&lt;/</span><span style="color: #000000">welcome</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">welcome</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">-</span><span style="color: #000000">list</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">web</span><span style="color: #000000">-</span><span style="color: #000000">app</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/215610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-07-17 23:59 <a href="http://www.blogjava.net/nobody_am/articles/215610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>James mail服务器发匿名邮件</title><link>http://www.blogjava.net/nobody_am/articles/215235.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 16 Jul 2008 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/215235.html</guid><description><![CDATA[从<a href="http://james.apache.org/">http://james.apache.org/</a>下载最新的james服务器<br />
修改james-2.3.1\bin\run.bat文件，设置java_home环境变量<br />
运行run.bat启动mail服务器<br />
<br />
用下列命令可以注册为windows服务：james-2.3.1\bin\Wrapper -i james-2.3.1\conf\wrapper.conf<br />
<br />
用telnet 登录4555端口管理jamesmail用户<br />
<br />
用下面两个类测试：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee" twffan="done"><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;java.util.Date;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;java.util.Properties;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.Message;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.MessagingException;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.Session;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.Transport;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.internet.AddressException;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.internet.InternetAddress;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.internet.MimeMessage;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /><br />
<img id="Codehighlighter1_503_2085_Open_Image" onclick="this.style.display='none'; Codehighlighter1_503_2085_Open_Text.style.display='none'; Codehighlighter1_503_2085_Closed_Image.style.display='inline'; Codehighlighter1_503_2085_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_503_2085_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_503_2085_Closed_Text.style.display='none'; Codehighlighter1_503_2085_Open_Image.style.display='inline'; Codehighlighter1_503_2085_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">class</span><span style="color: #000000" twffan="done">&nbsp;SendMail&nbsp;</span><span id="Codehighlighter1_503_2085_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_503_2085_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;String&nbsp;sendMail(String&nbsp;from,&nbsp;String&nbsp;to,&nbsp;String&nbsp;userName,<br />
<img id="Codehighlighter1_621_1492_Open_Image" onclick="this.style.display='none'; Codehighlighter1_621_1492_Open_Text.style.display='none'; Codehighlighter1_621_1492_Closed_Image.style.display='inline'; Codehighlighter1_621_1492_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_621_1492_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_621_1492_Closed_Text.style.display='none'; Codehighlighter1_621_1492_Open_Image.style.display='inline'; Codehighlighter1_621_1492_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password,&nbsp;String&nbsp;subject,&nbsp;String&nbsp;body)&nbsp;</span><span id="Codehighlighter1_621_1492_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_621_1492_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{</span><span style="color: #008000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /></span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Properties&nbsp;props&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;System.getProperties();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">&nbsp;设置SMTP邮件服务器：</span><span style="color: #008000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /></span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">mail.smtp.host</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">,&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">localhost</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">&nbsp;SMTP服务器需要验证：</span><span style="color: #008000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /></span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">mail.smtp.auth</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">,&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">true</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">&nbsp;传入用户名和口令：</span><span style="color: #008000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /></span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;Session.getDefaultInstance(props,<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;PasswordAuthenticator(userName,&nbsp;password));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">&nbsp;创建新邮件：</span><span style="color: #008000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /></span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MimeMessage&nbsp;msg&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;MimeMessage(session);<br />
<img id="Codehighlighter1_1085_1306_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1085_1306_Open_Text.style.display='none'; Codehighlighter1_1085_1306_Closed_Image.style.display='inline'; Codehighlighter1_1085_1306_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_1085_1306_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1085_1306_Closed_Text.style.display='none'; Codehighlighter1_1085_1306_Open_Image.style.display='inline'; Codehighlighter1_1085_1306_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">try</span><span style="color: #000000" twffan="done">&nbsp;</span><span id="Codehighlighter1_1085_1306_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_1085_1306_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.setFrom(</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;InternetAddress(from));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.setRecipients(Message.RecipientType.TO,&nbsp;InternetAddress.parse(<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to,&nbsp;</span><span style="color: #0000ff" twffan="done">false</span><span style="color: #000000" twffan="done">));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.setSubject(subject);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.setText(body);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.setSentDate(</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;Date());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1329_1377_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1329_1377_Open_Text.style.display='none'; Codehighlighter1_1329_1377_Closed_Image.style.display='inline'; Codehighlighter1_1329_1377_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_1329_1377_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1329_1377_Closed_Text.style.display='none'; Codehighlighter1_1329_1377_Open_Image.style.display='inline'; Codehighlighter1_1329_1377_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">catch</span><span style="color: #000000" twffan="done">&nbsp;(Exception&nbsp;e1)&nbsp;</span><span id="Codehighlighter1_1329_1377_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_1329_1377_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1.printStackTrace();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">return</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">fail</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">&nbsp;发送：</span><span style="color: #008000" twffan="done"><br />
<img id="Codehighlighter1_1395_1444_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1395_1444_Open_Text.style.display='none'; Codehighlighter1_1395_1444_Closed_Image.style.display='inline'; Codehighlighter1_1395_1444_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_1395_1444_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1395_1444_Closed_Text.style.display='none'; Codehighlighter1_1395_1444_Open_Image.style.display='inline'; Codehighlighter1_1395_1444_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" /></span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">try</span><span style="color: #000000" twffan="done">&nbsp;</span><span id="Codehighlighter1_1395_1444_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_1395_1444_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transport.send(msg);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">return</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">success</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img id="Codehighlighter1_1466_1488_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1466_1488_Open_Text.style.display='none'; Codehighlighter1_1466_1488_Closed_Image.style.display='inline'; Codehighlighter1_1466_1488_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_1466_1488_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1466_1488_Closed_Text.style.display='none'; Codehighlighter1_1466_1488_Open_Image.style.display='inline'; Codehighlighter1_1466_1488_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">catch</span><span style="color: #000000" twffan="done">&nbsp;(Exception&nbsp;e)&nbsp;</span><span id="Codehighlighter1_1466_1488_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_1466_1488_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">return</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">fail</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img id="Codehighlighter1_1495_1518_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1495_1518_Open_Text.style.display='none'; Codehighlighter1_1495_1518_Closed_Image.style.display='inline'; Codehighlighter1_1495_1518_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_1495_1518_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1495_1518_Closed_Text.style.display='none'; Codehighlighter1_1495_1518_Open_Image.style.display='inline'; Codehighlighter1_1495_1518_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1495_1518_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" twffan="done">/**&nbsp;*/</span><span id="Codehighlighter1_1495_1518_Open_Text" twffan="done"><span style="color: #008000" twffan="done">/**</span><span style="color: #008000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080" twffan="done">@param</span><span style="color: #008000" twffan="done">&nbsp;args<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">*/</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;@SuppressWarnings(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">static-access</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">)<br />
<img id="Codehighlighter1_1612_2082_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1612_2082_Open_Text.style.display='none'; Codehighlighter1_1612_2082_Closed_Image.style.display='inline'; Codehighlighter1_1612_2082_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_1612_2082_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1612_2082_Closed_Text.style.display='none'; Codehighlighter1_1612_2082_Open_Image.style.display='inline'; Codehighlighter1_1612_2082_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">static</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">void</span><span style="color: #000000" twffan="done">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff" twffan="done">throws</span><span style="color: #000000" twffan="done">&nbsp;Exception</span><span id="Codehighlighter1_1612_2082_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_1612_2082_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;from&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">test@123.com</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;to&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">wang.ming@excelerate-tech.com</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;subject&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;String(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">Test&nbsp;mail&nbsp;中文</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">.getBytes(),</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">utf-8</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;body&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;String(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">Test&nbsp;mail&nbsp;中文</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">.getBytes(),</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">utf-8</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;userName&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">smgxt</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">smgxt</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMail&nbsp;sendMail&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;SendMail();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;sendMail.sendMail(from,&nbsp;to,&nbsp;userName,&nbsp;password,&nbsp;subject,&nbsp;body);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_2039_2078_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2039_2078_Open_Text.style.display='none'; Codehighlighter1_2039_2078_Closed_Image.style.display='inline'; Codehighlighter1_2039_2078_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_2039_2078_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2039_2078_Closed_Text.style.display='none'; Codehighlighter1_2039_2078_Open_Image.style.display='inline'; Codehighlighter1_2039_2078_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">if</span><span style="color: #000000" twffan="done">(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">success</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">.equals(result))</span><span id="Codehighlighter1_2039_2078_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_2039_2078_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">Success!</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" twffan="done" />}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span></div>
<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" twffan="done"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.Authenticator;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;javax.mail.PasswordAuthentication;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /><br />
<img id="Codehighlighter1_133_474_Open_Image" onclick="this.style.display='none'; Codehighlighter1_133_474_Open_Text.style.display='none'; Codehighlighter1_133_474_Closed_Image.style.display='inline'; Codehighlighter1_133_474_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_133_474_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_133_474_Closed_Text.style.display='none'; Codehighlighter1_133_474_Open_Image.style.display='inline'; Codehighlighter1_133_474_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" twffan="done" /></span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">class</span><span style="color: #000000" twffan="done">&nbsp;PasswordAuthenticator&nbsp;</span><span style="color: #0000ff" twffan="done">extends</span><span style="color: #000000" twffan="done">&nbsp;Authenticator&nbsp;</span><span id="Codehighlighter1_133_474_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_133_474_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">private</span><span style="color: #000000" twffan="done">&nbsp;String&nbsp;username;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">private</span><span style="color: #000000" twffan="done">&nbsp;String&nbsp;password;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img id="Codehighlighter1_260_334_Open_Image" onclick="this.style.display='none'; Codehighlighter1_260_334_Open_Text.style.display='none'; Codehighlighter1_260_334_Closed_Image.style.display='inline'; Codehighlighter1_260_334_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_260_334_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_260_334_Closed_Text.style.display='none'; Codehighlighter1_260_334_Open_Image.style.display='inline'; Codehighlighter1_260_334_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;PasswordAuthenticator(String&nbsp;username,&nbsp;String&nbsp;password)&nbsp;</span><span id="Codehighlighter1_260_334_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_260_334_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">this</span><span style="color: #000000" twffan="done">.username&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;username;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">this</span><span style="color: #000000" twffan="done">.password&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;password;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img id="Codehighlighter1_402_471_Open_Image" onclick="this.style.display='none'; Codehighlighter1_402_471_Open_Text.style.display='none'; Codehighlighter1_402_471_Closed_Image.style.display='inline'; Codehighlighter1_402_471_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done" /><img id="Codehighlighter1_402_471_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_402_471_Closed_Text.style.display='none'; Codehighlighter1_402_471_Open_Image.style.display='inline'; Codehighlighter1_402_471_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">protected</span><span style="color: #000000" twffan="done">&nbsp;PasswordAuthentication&nbsp;getPasswordAuthentication()&nbsp;</span><span id="Codehighlighter1_402_471_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" twffan="done"><img alt="" src="http://www.blogjava.net/Images/dot.gif" twffan="done" /></span><span id="Codehighlighter1_402_471_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">return</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">new</span><span style="color: #000000" twffan="done">&nbsp;PasswordAuthentication(username,&nbsp;password);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" twffan="done" />}</span></span><span style="color: #000000" twffan="done"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done" /></span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/215235.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-07-16 16:05 <a href="http://www.blogjava.net/nobody_am/articles/215235.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RMI 笔记</title><link>http://www.blogjava.net/nobody_am/articles/212462.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 03 Jul 2008 16:10:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/212462.html</guid><description><![CDATA[1，服务端代码<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">//</span><span style="color: #008000">远程接口</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;rmi;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.rmi.Remote;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.rmi.RemoteException;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_118_171_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_171_Open_Text.style.display='none'; Codehighlighter1_118_171_Closed_Image.style.display='inline'; Codehighlighter1_118_171_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_118_171_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_118_171_Closed_Text.style.display='none'; Codehighlighter1_118_171_Open_Image.style.display='inline'; Codehighlighter1_118_171_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;RObject&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Remote&nbsp;</span><span id="Codehighlighter1_118_171_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_118_171_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;greeting()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;RemoteException&nbsp;;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">//</span><span style="color: #008000">远程类</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;rmi;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.rmi.RemoteException;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.naming.InitialContext;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.rmi.PortableRemoteObject;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_201_766_Open_Image" onclick="this.style.display='none'; Codehighlighter1_201_766_Open_Text.style.display='none'; Codehighlighter1_201_766_Closed_Image.style.display='inline'; Codehighlighter1_201_766_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_201_766_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_201_766_Closed_Text.style.display='none'; Codehighlighter1_201_766_Open_Image.style.display='inline'; Codehighlighter1_201_766_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;RObjectImpl&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;PortableRemoteObject&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;RObject&nbsp;</span><span id="Codehighlighter1_201_766_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_201_766_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;serialVersionUID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">8396699518685988898L</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;NAME</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">rmi://localhost/RObjectServer</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">public&nbsp;static&nbsp;final&nbsp;String&nbsp;NAME="iiop:</span><span style="color: #008000">//</span><span style="color: #008000">localhost/RObjectServer";</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_456_470_Open_Image" onclick="this.style.display='none'; Codehighlighter1_456_470_Open_Text.style.display='none'; Codehighlighter1_456_470_Closed_Image.style.display='inline'; Codehighlighter1_456_470_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_456_470_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_456_470_Closed_Text.style.display='none'; Codehighlighter1_456_470_Open_Image.style.display='inline'; Codehighlighter1_456_470_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;RObjectImpl()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;RemoteException&nbsp;</span><span id="Codehighlighter1_456_470_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_456_470_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_522_626_Open_Image" onclick="this.style.display='none'; Codehighlighter1_522_626_Open_Text.style.display='none'; Codehighlighter1_522_626_Closed_Image.style.display='inline'; Codehighlighter1_522_626_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_522_626_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_522_626_Closed_Text.style.display='none'; Codehighlighter1_522_626_Open_Image.style.display='inline'; Codehighlighter1_522_626_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;greeting()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;RemoteException&nbsp;</span><span id="Codehighlighter1_522_626_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_522_626_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;returnValue</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Server&nbsp;side&nbsp;say:&nbsp;Hi</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(returnValue);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;returnValue;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_686_764_Open_Image" onclick="this.style.display='none'; Codehighlighter1_686_764_Open_Text.style.display='none'; Codehighlighter1_686_764_Closed_Image.style.display='inline'; Codehighlighter1_686_764_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_686_764_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_686_764_Closed_Text.style.display='none'; Codehighlighter1_686_764_Open_Image.style.display='inline'; Codehighlighter1_686_764_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception</span><span id="Codehighlighter1_686_764_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_686_764_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RObject&nbsp;robj</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RObjectImpl();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InitialContext().bind(NAME,&nbsp;robj);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
2，创建Stub and Skeleton<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">JRMP:&nbsp;rmic&nbsp;RObjectImpl<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />IIOP:&nbsp;rmi&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">iiop&nbsp;RObjectImpl</span></div>
<br />
3，客户端代码<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;rmi;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.naming.InitialContext;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.rmi.PortableRemoteObject;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_109_406_Open_Image" onclick="this.style.display='none'; Codehighlighter1_109_406_Open_Text.style.display='none'; Codehighlighter1_109_406_Closed_Image.style.display='inline'; Codehighlighter1_109_406_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_109_406_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_109_406_Closed_Text.style.display='none'; Codehighlighter1_109_406_Open_Image.style.display='inline'; Codehighlighter1_109_406_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Client&nbsp;</span><span id="Codehighlighter1_109_406_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_109_406_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_167_403_Open_Image" onclick="this.style.display='none'; Codehighlighter1_167_403_Open_Text.style.display='none'; Codehighlighter1_167_403_Closed_Image.style.display='inline'; Codehighlighter1_167_403_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_167_403_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_167_403_Closed_Text.style.display='none'; Codehighlighter1_167_403_Open_Image.style.display='inline'; Codehighlighter1_167_403_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception</span><span id="Codehighlighter1_167_403_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_167_403_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;obj</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InitialContext().lookup(RObjectImpl.NAME);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RObject&nbsp;robj</span><span style="color: #000000">=</span><span style="color: #000000">(RObject)PortableRemoteObject.narrow(obj,&nbsp;RObject.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result</span><span style="color: #000000">=</span><span style="color: #000000">robj.greeting();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Get&nbsp;result&nbsp;from&nbsp;remote:&nbsp;'</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;result</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">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
4，启动Server和client<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">JRMP&nbsp;(Java&nbsp;Remote&nbsp;Method&nbsp;Protocol):&nbsp;rmiregistry<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />IIOP&nbsp;(Internet&nbsp;Inter</span><span style="color: #000000">-</span><span style="color: #000000">ORB&nbsp;Protocal):&nbsp;tnameserv</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/nobody_am/aggbug/212462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2008-07-04 00:10 <a href="http://www.blogjava.net/nobody_am/articles/212462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Resolved SiteMesh+ ADF+ JSF </title><link>http://www.blogjava.net/nobody_am/articles/134171.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Fri, 03 Aug 2007 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/134171.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Well after some hours debugging I found what is wrong with sitemesh to work with JSF or ADF frameworks..When sitemesh apply the PageParsers he forget about the scriptstag that jsf or adf added aft...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/134171.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/134171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-08-03 10:16 <a href="http://www.blogjava.net/nobody_am/articles/134171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF的Managed Bean的Request和Session范围</title><link>http://www.blogjava.net/nobody_am/articles/124700.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 16 Jun 2007 15:31:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/124700.html</guid><description><![CDATA[JSF的Managed Bean的生命范围，一般人都知道：<br>
request 范围，意味着这个Bean在请求结束之后，就结束了生命周期。而Session范围，意味着这个Bean在Session的结束生命时，他才结束生命。<br>
举个例子：Request范围内的Bean，假设在Page1，通过一个Managed Bean的动作方法，到了Page2，那么刷新Page2，如果Page2中没有和Page1中对数据的类似处理，那么Page2中的数据就会丢失。<br>
Session内的bean的话，只要Session不结束生命，Page上绑定的数据就不会消失。<br>
题外话：ASP.net2.0的ViewState做的很好，它把状态记录在客户端，但效果类似JSF的Session，比Session的好处是：不依赖与Session的生命周期。<br>
<br>
在用JSF的Managed
Bean的Request和Session时，特别注意数据的绑定。Request范围的话，在每次向Server发请求时，都会绑定Managed
Bean中定义的数据。但是Session范围的话，仅仅在Session范围内读写数据，不会在重新绑定Managed Bean中定义的数据。
<br><img src ="http://www.blogjava.net/nobody_am/aggbug/124700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-06-16 23:31 <a href="http://www.blogjava.net/nobody_am/articles/124700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HibernateTool 关于Ant的正向和反向工程配置</title><link>http://www.blogjava.net/nobody_am/articles/121582.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sat, 02 Jun 2007 19:05:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/121582.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Part1 正向（由POJO和Mapping文件产生数据库脚本，并且创建数据库）&nbsp; 1,POJO文件Code highlighting produced by Actipro CodeH...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/121582.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/121582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-06-03 03:05 <a href="http://www.blogjava.net/nobody_am/articles/121582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>P6Spy和sping配合显示真正的SQL</title><link>http://www.blogjava.net/nobody_am/articles/120930.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 30 May 2007 07:57:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/120930.html</guid><description><![CDATA[1,p6spy.jar放入lib目录，spy.properties文件放入classes目录<br>2,spy.properties文件做下面的配置之后，可以把sql语句打印到控制台和文件：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008000;">#</span><span style="color: #008000;">################################################################<br>#&nbsp;MODULES&nbsp;#<br>#&nbsp;#<br>#&nbsp;Modules&nbsp;provide&nbsp;the&nbsp;P6Spy&nbsp;functionality.&nbsp;If&nbsp;a&nbsp;module,&nbsp;such&nbsp;#<br>#&nbsp;as&nbsp;module_log&nbsp;is&nbsp;commented&nbsp;out,&nbsp;that&nbsp;functionality&nbsp;will&nbsp;not&nbsp;#<br>#&nbsp;be&nbsp;available.&nbsp;If&nbsp;it&nbsp;is&nbsp;not&nbsp;commented&nbsp;out&nbsp;(if&nbsp;it&nbsp;is&nbsp;active),&nbsp;#<br>#&nbsp;the&nbsp;functionality&nbsp;will&nbsp;be&nbsp;active.&nbsp;#<br>#&nbsp;#<br>#&nbsp;Values&nbsp;set&nbsp;in&nbsp;Modules&nbsp;cannot&nbsp;be&nbsp;reloaded&nbsp;using&nbsp;the&nbsp;#<br>#&nbsp;reloadproperties&nbsp;variable.&nbsp;Once&nbsp;they&nbsp;are&nbsp;loaded,&nbsp;they&nbsp;remain&nbsp;#<br>#&nbsp;in&nbsp;memory&nbsp;until&nbsp;the&nbsp;application&nbsp;is&nbsp;restarted.&nbsp;#<br>#&nbsp;#<br>#################################################################</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br>module</span><span style="color: #000000;">.</span><span style="color: #0000ff;">log</span><span style="color: #000000;">=</span><span style="color: #000000;">com</span><span style="color: #000000;">.</span><span style="color: #000000;">p6spy</span><span style="color: #000000;">.</span><span style="color: #000000;">engine</span><span style="color: #000000;">.</span><span style="color: #000000;">logging</span><span style="color: #000000;">.</span><span style="color: #000000;">P6LogFactory<br></span><span style="color: #008000;">#</span><span style="color: #008000;">module.outage=com.p6spy.engine.outage.P6OutageFactory<br><br>#################################################################<br>#&nbsp;REALDRIVER(s)&nbsp;#<br>#&nbsp;#<br>#&nbsp;In&nbsp;your&nbsp;application&nbsp;server&nbsp;configuration&nbsp;file&nbsp;you&nbsp;replace&nbsp;the&nbsp;#<br>#&nbsp;"real&nbsp;driver"&nbsp;name&nbsp;with&nbsp;com.p6spy.engine.P6SpyDriver.&nbsp;This&nbsp;is&nbsp;#<br>#&nbsp;where&nbsp;you&nbsp;put&nbsp;the&nbsp;name&nbsp;of&nbsp;your&nbsp;real&nbsp;driver&nbsp;P6Spy&nbsp;can&nbsp;find&nbsp;and&nbsp;#<br>#&nbsp;register&nbsp;your&nbsp;real&nbsp;driver&nbsp;to&nbsp;do&nbsp;the&nbsp;database&nbsp;work.&nbsp;#<br>#&nbsp;#<br>#&nbsp;If&nbsp;your&nbsp;application&nbsp;uses&nbsp;several&nbsp;drivers&nbsp;specify&nbsp;them&nbsp;in&nbsp;#<br>#&nbsp;realdriver2,&nbsp;realdriver3.&nbsp;See&nbsp;the&nbsp;documentation&nbsp;for&nbsp;more&nbsp;#<br>#&nbsp;details.&nbsp;#<br>#&nbsp;#<br>#&nbsp;Values&nbsp;set&nbsp;in&nbsp;REALDRIVER(s)&nbsp;cannot&nbsp;be&nbsp;reloaded&nbsp;using&nbsp;the&nbsp;#<br>#&nbsp;reloadproperties&nbsp;variable.&nbsp;Once&nbsp;they&nbsp;are&nbsp;loaded,&nbsp;they&nbsp;remain&nbsp;#<br>#&nbsp;in&nbsp;memory&nbsp;until&nbsp;the&nbsp;application&nbsp;is&nbsp;restarted.&nbsp;#<br>#&nbsp;#<br>#################################################################<br><br>#&nbsp;the&nbsp;hsqldb&nbsp;open&nbsp;source&nbsp;driver<br>#realdriver=org.hsqldb.jdbcDriver<br><br>#&nbsp;oracle&nbsp;driver</span><span style="color: #008000;"><br></span><span style="color: red; font-weight: bold;">realdriver=oracle.jdbc.driver.</span><span style="color: #000000;"><span style="color: red; font-weight: bold;">OracleDriver</span><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;mysql&nbsp;Connector/J&nbsp;driver<br>#realdriver=com.mysql.jdbc.Driver<br><br>#&nbsp;informix&nbsp;driver<br>#&nbsp;realdriver=com.informix.jdbc.IfxDriver<br><br>#&nbsp;ibm&nbsp;db2&nbsp;driver<br>#&nbsp;realdriver=COM.ibm.db2.jdbc.net.DB2Driver<br><br>#&nbsp;the&nbsp;mysql&nbsp;open&nbsp;source&nbsp;driver<br>#&nbsp;realdriver=org.gjt.mm.mysql.Driver<br><br>#specifies&nbsp;another&nbsp;driver&nbsp;to&nbsp;use</span><span style="color: #008000;"><br></span><span style="color: #000000;">realdriver2</span><span style="color: #000000;">=</span><span style="color: #000000;"><br></span><span style="color: #008000;">#</span><span style="color: #008000;">specifies&nbsp;a&nbsp;third&nbsp;driver&nbsp;to&nbsp;use</span><span style="color: #008000;"><br></span><span style="color: #000000;">realdriver3</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">the&nbsp;DriverManager&nbsp;class&nbsp;sequentially&nbsp;tries&nbsp;every&nbsp;driver&nbsp;that&nbsp;is<br>#registered&nbsp;to&nbsp;find&nbsp;the&nbsp;right&nbsp;driver.&nbsp;In&nbsp;some&nbsp;instances,&nbsp;it's&nbsp;possible&nbsp;to<br>#load&nbsp;up&nbsp;the&nbsp;realdriver&nbsp;before&nbsp;the&nbsp;p6spy&nbsp;driver,&nbsp;in&nbsp;which&nbsp;case&nbsp;your&nbsp;connections<br>#will&nbsp;not&nbsp;get&nbsp;wrapped&nbsp;as&nbsp;the&nbsp;realdriver&nbsp;will&nbsp;"steal"&nbsp;the&nbsp;connection&nbsp;before<br>#p6spy&nbsp;sees&nbsp;it.&nbsp;Set&nbsp;the&nbsp;following&nbsp;property&nbsp;to&nbsp;"true"&nbsp;to&nbsp;cause&nbsp;p6spy&nbsp;to<br>#explicitily&nbsp;deregister&nbsp;the&nbsp;realdrivers</span><span style="color: #008000;"><br></span><span style="color: red; font-weight: bold;">deregisterdrivers=</span><span style="color: #000000;"><span style="font-weight: bold; color: red;">true</span><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">###############################################################<br>#&nbsp;P6LOG&nbsp;SPECIFIC&nbsp;PROPERTIES&nbsp;#<br>################################################################<br>#&nbsp;no&nbsp;properties&nbsp;currently&nbsp;available<br><br>################################################################<br>#&nbsp;EXECUTION&nbsp;THRESHOLD&nbsp;PROPERTIES&nbsp;#<br>################################################################<br>#&nbsp;This&nbsp;feature&nbsp;applies&nbsp;to&nbsp;the&nbsp;standard&nbsp;logging&nbsp;of&nbsp;P6Spy.&nbsp;#<br>#&nbsp;While&nbsp;the&nbsp;standard&nbsp;logging&nbsp;logs&nbsp;out&nbsp;every&nbsp;statement&nbsp;#<br>#&nbsp;regardless&nbsp;of&nbsp;its&nbsp;execution&nbsp;time,&nbsp;this&nbsp;feature&nbsp;puts&nbsp;a&nbsp;time&nbsp;#<br>#&nbsp;condition&nbsp;on&nbsp;that&nbsp;logging.&nbsp;Only&nbsp;statements&nbsp;that&nbsp;have&nbsp;taken&nbsp;#<br>#&nbsp;longer&nbsp;than&nbsp;the&nbsp;time&nbsp;specified&nbsp;(in&nbsp;milliseconds)&nbsp;will&nbsp;be&nbsp;#<br>#&nbsp;logged.&nbsp;This&nbsp;way&nbsp;it&nbsp;is&nbsp;possible&nbsp;to&nbsp;see&nbsp;only&nbsp;statements&nbsp;that&nbsp;#<br>#&nbsp;have&nbsp;exceeded&nbsp;some&nbsp;high&nbsp;water&nbsp;mark.&nbsp;#<br>#&nbsp;This&nbsp;time&nbsp;is&nbsp;reloadable.&nbsp;#<br>#<br>#&nbsp;executionthreshold=integer&nbsp;time&nbsp;(milliseconds)<br>#</span><span style="color: #008000;"><br></span><span style="color: #000000;">executionthreshold</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">###############################################################<br>#&nbsp;P6OUTAGE&nbsp;SPECIFIC&nbsp;PROPERTIES&nbsp;#<br>################################################################<br>#&nbsp;Outage&nbsp;Detection<br>#<br>#&nbsp;This&nbsp;feature&nbsp;detects&nbsp;long-running&nbsp;statements&nbsp;that&nbsp;may&nbsp;be&nbsp;indicative&nbsp;of<br>#&nbsp;a&nbsp;database&nbsp;outage&nbsp;problem.&nbsp;If&nbsp;this&nbsp;feature&nbsp;is&nbsp;turned&nbsp;on,&nbsp;it&nbsp;will&nbsp;log&nbsp;any<br>#&nbsp;statement&nbsp;that&nbsp;surpasses&nbsp;the&nbsp;configurable&nbsp;time&nbsp;boundary&nbsp;during&nbsp;its&nbsp;execution.<br>#&nbsp;When&nbsp;this&nbsp;feature&nbsp;is&nbsp;enabled,&nbsp;no&nbsp;other&nbsp;statements&nbsp;are&nbsp;logged&nbsp;except&nbsp;the&nbsp;long<br>#&nbsp;running&nbsp;statements.&nbsp;The&nbsp;interval&nbsp;property&nbsp;is&nbsp;the&nbsp;boundary&nbsp;time&nbsp;set&nbsp;in&nbsp;seconds.<br>#&nbsp;For&nbsp;example,&nbsp;if&nbsp;this&nbsp;is&nbsp;set&nbsp;to&nbsp;2,&nbsp;then&nbsp;any&nbsp;statement&nbsp;requiring&nbsp;at&nbsp;least&nbsp;2<br>#&nbsp;seconds&nbsp;will&nbsp;be&nbsp;logged.&nbsp;Note&nbsp;that&nbsp;the&nbsp;same&nbsp;statement&nbsp;will&nbsp;continue&nbsp;to&nbsp;be&nbsp;logged<br>#&nbsp;for&nbsp;as&nbsp;long&nbsp;as&nbsp;it&nbsp;executes.&nbsp;So&nbsp;if&nbsp;the&nbsp;interval&nbsp;is&nbsp;set&nbsp;to&nbsp;2,&nbsp;and&nbsp;the&nbsp;query&nbsp;takes<br>#&nbsp;11&nbsp;seconds,&nbsp;it&nbsp;will&nbsp;be&nbsp;logged&nbsp;5&nbsp;times&nbsp;(at&nbsp;the&nbsp;2,&nbsp;4,&nbsp;6,&nbsp;8,&nbsp;10&nbsp;second&nbsp;intervals).<br>#<br>#&nbsp;outagedetection=true|false<br>#&nbsp;outagedetectioninterval=integer&nbsp;time&nbsp;(seconds)<br>#</span><span style="color: #008000;"><br></span><span style="color: #000000;">outagedetection</span><span style="color: #000000;">=</span><span style="color: #000000;">false<br>outagedetectioninterval</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">###############################################################<br>#&nbsp;COMMON&nbsp;PROPERTIES&nbsp;#<br>################################################################<br><br>#&nbsp;comma&nbsp;separated&nbsp;list&nbsp;of&nbsp;tables&nbsp;to&nbsp;include</span><span style="color: #008000;"><br></span><span style="color: #000000;">include&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;"><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;comma&nbsp;separated&nbsp;list&nbsp;of&nbsp;tables&nbsp;to&nbsp;exclude</span><span style="color: #008000;"><br></span><span style="color: #000000;">exclude&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;sql&nbsp;expression&nbsp;to&nbsp;evaluate&nbsp;if&nbsp;using&nbsp;regex</span><span style="color: #008000;"><br></span><span style="color: #000000;">sqlexpression&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;filter&nbsp;what&nbsp;is&nbsp;logged</span><span style="color: #008000;"><br></span><span style="color: #000000;">filter</span><span style="color: #000000;">=</span><span style="color: #000000;">false<br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;turn&nbsp;on&nbsp;tracing</span><span style="color: #008000;"><br></span><span style="color: #000000;">trace&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br>autoflush&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;sets&nbsp;the&nbsp;date&nbsp;format&nbsp;using&nbsp;Java's&nbsp;SimpleDateFormat&nbsp;routine</span><span style="color: #008000;"><br></span><span style="color: #000000;">dateformat</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">list&nbsp;of&nbsp;categories&nbsp;to&nbsp;explicitly&nbsp;include</span><span style="color: #008000;"><br></span><span style="color: #000000;">includecategories</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">list&nbsp;of&nbsp;categories&nbsp;to&nbsp;exclude:&nbsp;error,&nbsp;info,&nbsp;batch,&nbsp;debug,&nbsp;statement,<br>#commit,&nbsp;rollback&nbsp;and&nbsp;result&nbsp;are&nbsp;valid&nbsp;values<br>#excludecategories=</span><span style="color: #008000;"><br></span><span style="color: #000000;">excludecategories</span><span style="color: #000000;">=</span><span style="color: #000000;">info</span><span style="color: #000000;">,</span><span style="color: #000000;">debug</span><span style="color: #000000;">,</span><span style="color: #000000;">result</span><span style="color: #000000;">,</span><span style="color: #000000;">batch<br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">allows&nbsp;you&nbsp;to&nbsp;use&nbsp;a&nbsp;regex&nbsp;engine&nbsp;or&nbsp;your&nbsp;own&nbsp;matching&nbsp;engine&nbsp;to&nbsp;determine<br>#which&nbsp;statements&nbsp;to&nbsp;log<br>#<br>#stringmatcher=com.p6spy.engine.common.GnuRegexMatcher<br>#stringmatcher=com.p6spy.engine.common.JakartaRegexMatcher</span><span style="color: #008000;"><br></span><span style="color: #000000;">stringmatcher</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;prints&nbsp;a&nbsp;stack&nbsp;trace&nbsp;for&nbsp;every&nbsp;statement&nbsp;logged</span><span style="color: #008000;"><br></span><span style="color: #000000;">stacktrace</span><span style="color: #000000;">=</span><span style="color: #000000;">false<br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;if&nbsp;stacktrace=true,&nbsp;specifies&nbsp;the&nbsp;stack&nbsp;trace&nbsp;to&nbsp;print</span><span style="color: #008000;"><br></span><span style="color: #000000;">stacktraceclass</span><span style="color: #000000;">=</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;determines&nbsp;if&nbsp;property&nbsp;file&nbsp;should&nbsp;be&nbsp;reloaded</span><span style="color: #008000;"><br></span><span style="color: #000000;">reloadproperties</span><span style="color: #000000;">=</span><span style="color: #000000;">false<br></span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;determines&nbsp;how&nbsp;often&nbsp;should&nbsp;be&nbsp;reloaded&nbsp;in&nbsp;seconds</span><span style="color: #008000;"><br></span><span style="color: #000000;">reloadpropertiesinterval</span><span style="color: #000000;">=</span><span style="color: #800000;">60</span><span style="color: #000000;"><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">if=true&nbsp;then&nbsp;url&nbsp;must&nbsp;be&nbsp;prefixed&nbsp;with&nbsp;p6spy:</span><span style="color: #008000;"><br></span><span style="color: #000000;">useprefix</span><span style="color: #000000;">=</span><span style="color: #000000;">false<br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">specifies&nbsp;the&nbsp;appender&nbsp;to&nbsp;use&nbsp;for&nbsp;logging</span><span style="color: #008000;"><br></span><span style="color: #000000; font-weight: bold;">appender=com.p6spy.engine.logging.appender.</span><span style="color: #000000;"><span style="font-weight: bold;">Log4jLogger</span><br></span><span style="color: #008000;">#</span><span style="color: #008000;">appender=com.p6spy.engine.logging.appender.StdoutLogger<br>#appender=com.p6spy.engine.logging.appender.FileLogger<br><br>#&nbsp;name&nbsp;of&nbsp;logfile&nbsp;to&nbsp;use,&nbsp;note&nbsp;Windows&nbsp;users&nbsp;should&nbsp;make&nbsp;sure&nbsp;to&nbsp;use&nbsp;forward&nbsp;slashes&nbsp;in&nbsp;their&nbsp;pathname&nbsp;(e:/test/spy.log)&nbsp;(used&nbsp;for&nbsp;file&nbsp;logger&nbsp;only)<br>#logfile&nbsp;=&nbsp;c:/spy.log<br><br>#&nbsp;append&nbsp;to&nbsp;the&nbsp;p6spy&nbsp;log&nbsp;file.&nbsp;if&nbsp;this&nbsp;is&nbsp;set&nbsp;to&nbsp;false&nbsp;the<br>#&nbsp;log&nbsp;file&nbsp;is&nbsp;truncated&nbsp;every&nbsp;time.&nbsp;(file&nbsp;logger&nbsp;only)</span><span style="color: #008000;"><br></span><span style="color: red; font-weight: bold;">append=true<br><br>#The&nbsp;following&nbsp;are&nbsp;for&nbsp;log4j&nbsp;logging&nbsp;only<br>log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender<br>log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout<br>log4j.appender.STDOUT.layout.ConversionPattern=p6spy&nbsp;-&nbsp;%m%n<br><br>log4j.appender.F=org.apache.log4j.DailyRollingFileAppender<br>log4j.appender.A2.DatePattern='.'yyyy-MM-dd<br>log4j.appender.F.File=c:/spy.log<br>log4j.appender.F.layout=org.apache.log4j.PatternLayout<br>#</span><span style="color: #008000;"><span style="color: red; font-weight: bold;">log4j.appender.F.layout.ConversionPattern=%p&nbsp;%t&nbsp;%c&nbsp;-&nbsp;%m%n</span><br><br>#log4j.appender.CHAINSAW_CLIENT=org.apache.log4j.net.SocketAppender<br>#log4j.appender.CHAINSAW_CLIENT.RemoteHost=localhost<br>#log4j.appender.CHAINSAW_CLIENT.Port=4445<br>#log4j.appender.CHAINSAW_CLIENT.LocationInfo=true</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br><span style="font-weight: bold; color: red;">log4j</span></span><span style="color: red; font-weight: bold;">.logger.p6spy=INFO,STDOUT,</span><span style="color: #000000;"><span style="font-weight: bold; color: red;">F</span><br><br></span><span style="color: #008000;">#</span><span style="color: #008000;">################################################################<br>#&nbsp;DataSource&nbsp;replacement&nbsp;#<br>#&nbsp;#<br>#&nbsp;Replace&nbsp;the&nbsp;real&nbsp;DataSource&nbsp;class&nbsp;in&nbsp;your&nbsp;application&nbsp;server&nbsp;#<br>#&nbsp;configuration&nbsp;with&nbsp;the&nbsp;name&nbsp;com.p6spy.engine.spy.P6DataSource,#<br>#&nbsp;then&nbsp;add&nbsp;the&nbsp;JNDI&nbsp;name&nbsp;and&nbsp;class&nbsp;name&nbsp;of&nbsp;the&nbsp;real&nbsp;#<br>#&nbsp;DataSource&nbsp;here&nbsp;#<br>#&nbsp;#<br>#&nbsp;Values&nbsp;set&nbsp;in&nbsp;this&nbsp;item&nbsp;cannot&nbsp;be&nbsp;reloaded&nbsp;using&nbsp;the&nbsp;#<br>#&nbsp;reloadproperties&nbsp;variable.&nbsp;Once&nbsp;it&nbsp;is&nbsp;loaded,&nbsp;it&nbsp;remains&nbsp;#<br>#&nbsp;in&nbsp;memory&nbsp;until&nbsp;the&nbsp;application&nbsp;is&nbsp;restarted.&nbsp;#<br>#&nbsp;#<br>#################################################################<br>#realdatasource=/RealMySqlDS<br>#realdatasourceclass=com.mysql.jdbc.jdbc2.optional.MysqlDataSource<br><br>#################################################################<br>#&nbsp;DataSource&nbsp;properties&nbsp;#<br>#&nbsp;#<br>#&nbsp;If&nbsp;you&nbsp;are&nbsp;using&nbsp;the&nbsp;DataSource&nbsp;support&nbsp;to&nbsp;intercept&nbsp;calls&nbsp;#<br>#&nbsp;to&nbsp;a&nbsp;DataSource&nbsp;that&nbsp;requires&nbsp;properties&nbsp;for&nbsp;proper&nbsp;setup,&nbsp;#<br>#&nbsp;define&nbsp;those&nbsp;properties&nbsp;here.&nbsp;Use&nbsp;name&nbsp;value&nbsp;pairs,&nbsp;separate&nbsp;#<br>#&nbsp;the&nbsp;name&nbsp;and&nbsp;value&nbsp;with&nbsp;a&nbsp;semicolon,&nbsp;and&nbsp;separate&nbsp;the&nbsp;#<br>#&nbsp;pairs&nbsp;with&nbsp;commas.&nbsp;#<br>#&nbsp;#<br>#&nbsp;The&nbsp;example&nbsp;shown&nbsp;here&nbsp;is&nbsp;for&nbsp;mysql&nbsp;#<br>#&nbsp;#<br>#################################################################<br>#realdatasourceproperties=port;3306,serverName;myhost,databaseName;jbossdb,foo;bar<br><br><br>#################################################################<br>#&nbsp;JNDI&nbsp;DataSource&nbsp;lookup&nbsp;#<br>#&nbsp;#<br>#&nbsp;If&nbsp;you&nbsp;are&nbsp;using&nbsp;the&nbsp;DataSource&nbsp;support&nbsp;outside&nbsp;of&nbsp;an&nbsp;app&nbsp;#<br>#&nbsp;server,&nbsp;you&nbsp;will&nbsp;probably&nbsp;need&nbsp;to&nbsp;define&nbsp;the&nbsp;JNDI&nbsp;Context&nbsp;#<br>#&nbsp;environment.&nbsp;#<br>#&nbsp;#<br>#&nbsp;If&nbsp;the&nbsp;P6Spy&nbsp;code&nbsp;will&nbsp;be&nbsp;executing&nbsp;inside&nbsp;an&nbsp;app&nbsp;server&nbsp;then&nbsp;#<br>#&nbsp;do&nbsp;not&nbsp;use&nbsp;these&nbsp;properties,&nbsp;and&nbsp;the&nbsp;DataSource&nbsp;lookup&nbsp;will&nbsp;#<br>#&nbsp;use&nbsp;the&nbsp;naming&nbsp;context&nbsp;defined&nbsp;by&nbsp;the&nbsp;app&nbsp;server.&nbsp;#<br>#&nbsp;#<br>#&nbsp;The&nbsp;two&nbsp;standard&nbsp;elements&nbsp;of&nbsp;the&nbsp;naming&nbsp;environment&nbsp;are&nbsp;#<br>#&nbsp;jndicontextfactory&nbsp;and&nbsp;jndicontextproviderurl.&nbsp;If&nbsp;you&nbsp;need&nbsp;#<br>#&nbsp;additional&nbsp;elements,&nbsp;use&nbsp;the&nbsp;jndicontextcustom&nbsp;property.&nbsp;#<br>#&nbsp;You&nbsp;can&nbsp;define&nbsp;multiple&nbsp;properties&nbsp;in&nbsp;jndicontextcustom,&nbsp;#<br>#&nbsp;in&nbsp;name&nbsp;value&nbsp;pairs.&nbsp;Separate&nbsp;the&nbsp;name&nbsp;and&nbsp;value&nbsp;with&nbsp;a&nbsp;#<br>#&nbsp;semicolon,&nbsp;and&nbsp;separate&nbsp;the&nbsp;pairs&nbsp;with&nbsp;commas.&nbsp;#<br>#&nbsp;#<br>#&nbsp;The&nbsp;example&nbsp;shown&nbsp;here&nbsp;is&nbsp;for&nbsp;a&nbsp;standalone&nbsp;program&nbsp;running&nbsp;on&nbsp;#<br>#&nbsp;a&nbsp;machine&nbsp;that&nbsp;is&nbsp;also&nbsp;running&nbsp;JBoss,&nbsp;so&nbsp;the&nbsp;JDNI&nbsp;context&nbsp;#<br>#&nbsp;is&nbsp;configured&nbsp;for&nbsp;JBoss&nbsp;(3.0.4).&nbsp;#<br>#&nbsp;#<br>#################################################################<br>#jndicontextfactory=org.jnp.interfaces.NamingContextFactory<br>#jndicontextproviderurl=localhost:1099<br>#jndicontextcustom=java.naming.factory.url.pkgs;org.jboss.nameing:org.jnp.interfaces<br><br>#jndicontextfactory=com.ibm.websphere.naming.WsnInitialContextFactory<br>#jndicontextproviderurl=iiop://localhost:900</span></div>
3，修改Spring的context文件（本身引入了配置文件）：
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;&nbsp;P6Spy&nbsp;Just&nbsp;for&nbsp;development</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="dataSource"</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">="<span style="font-weight: bold; color: red;">com.p6spy.engine.spy.P6DataSource</span>"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">constructor-arg</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="org.springframework.jdbc.datasource.DriverManagerDataSource"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="driverClassName"</span><span style="color: #ff0000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000ff;">="${jdbc.driverClassName}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="url"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${jdbc.url}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="username"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${jdbc.username}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="password"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="${jdbc.password}"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">constructor-arg</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">&gt;</span></div>
注：貌似hibernate3.0以前是这样。<br><br><br> <img src ="http://www.blogjava.net/nobody_am/aggbug/120930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-05-30 15:57 <a href="http://www.blogjava.net/nobody_am/articles/120930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java实现图片水印</title><link>http://www.blogjava.net/nobody_am/articles/117962.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Thu, 17 May 2007 00:46:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/117962.html</guid><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ImageUtils&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;ImageUtils()&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br><br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;String&nbsp;getPressImgPath()<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ApplicationContext.getRealPath(</span><span style="color: #000000;">"</span><span style="color: #000000;">/template/data/util/shuiyin.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*//**</span><span style="color: #008000;"><br>&nbsp;&nbsp;*&nbsp;把图片印刷到图片上<br>&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;pressImg&nbsp;--&nbsp;水印文件<br>&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;targetImg&nbsp;&nbsp;--&nbsp;目标文件<br>&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;x<br>&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;y<br>&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;pressImage(String&nbsp;pressImg,&nbsp;String&nbsp;targetImg,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;_file&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;File(targetImg);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;src&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ImageIO.read(_file);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;wideth&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;src.getWidth(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;height&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;src.getHeight(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;image&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;BufferedImage(wideth,&nbsp;height,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage.TYPE_INT_RGB);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics&nbsp;g&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;image.createGraphics();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawImage(src,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;wideth,&nbsp;height,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br><br>&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: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;_filebiao&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;File(pressImg);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;src_biao&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ImageIO.read(_filebiao);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;wideth_biao&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;src_biao.getWidth(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;height_biao&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;src_biao.getHeight(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawImage(src_biao,&nbsp;wideth&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;wideth_biao&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;x,&nbsp;height&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;height_biao&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">y,&nbsp;wideth_biao,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height_biao,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&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: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;out&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FileOutputStream(targetImg);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JPEGImageEncoder&nbsp;encoder&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;JPEGCodec.createJPEGEncoder(out);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoder.encode(image);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;">*//**</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;打印文字水印图片<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;pressText&nbsp;--文字<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;targetImg&nbsp;--&nbsp;目标图片<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;fontName&nbsp;--&nbsp;字体名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;fontStyle&nbsp;--&nbsp;字体样式<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;color&nbsp;--&nbsp;字体颜色<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;fontSize&nbsp;--&nbsp;字体大小<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;x&nbsp;--&nbsp;偏移量<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;y<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;pressText(String&nbsp;pressText,&nbsp;String&nbsp;targetImg,&nbsp;String&nbsp;fontName,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;fontStyle,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;color,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;fontSize,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;_file&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;File(targetImg);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;src&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ImageIO.read(_file);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;wideth&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;src.getWidth(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;height&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;src.getHeight(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;image&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;BufferedImage(wideth,&nbsp;height,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage.TYPE_INT_RGB);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics&nbsp;g&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;image.createGraphics();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawImage(src,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;wideth,&nbsp;height,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;String&nbsp;s="www.qhd.com.cn";</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(Color.RED);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.setFont(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Font(fontName,&nbsp;fontStyle,&nbsp;fontSize));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawString(pressText,&nbsp;wideth&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;fontSize&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;x,&nbsp;height&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;fontSize</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;out&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FileOutputStream(targetImg);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JPEGImageEncoder&nbsp;encoder&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;JPEGCodec.createJPEGEncoder(out);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoder.encode(image);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pressImage(</span><span style="color: #000000;">"</span><span style="color: #000000;">C:/shuiyin/shuiyin.gif</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">c:/shuiyin/DSC02342.JPG</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;,</span><span style="color: #000000;">20</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</span></div>
<br><img src ="http://www.blogjava.net/nobody_am/aggbug/117962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-05-17 08:46 <a href="http://www.blogjava.net/nobody_am/articles/117962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java的深拷贝</title><link>http://www.blogjava.net/nobody_am/articles/117622.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 15 May 2007 07:33:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/117622.html</guid><description><![CDATA[1．浅复制与深复制概念<br>⑴浅复制（浅克隆）<br>被复制对象的所有变量都含有与原来的对象相同的值，而所有的对其他对象的引用仍然指向原来的对象。换言之，浅复制仅仅复制所考虑的对象，而不复制它所引用的对象。<br>&nbsp;<br>⑵深复制（深克隆）<br>被复制对象的所有变量都含有与原来的对象相同的值，除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象，而不再是原有的那些被引用的对象。换言之，深复制把要复制的对象所引用的对象都复制了一遍。<br>&nbsp;<br>2．Java的clone（）方法<br>⑴clone方法将对象复制了一份并返回给调用者。一般而言，clone（）方法满足：<br>①对任何的对象x，都有x.clone() !=x//克隆对象与原对象不是同一个对象<br>②对任何的对象x，都有x.clone().getClass()= =x.getClass()//克隆对象与原对象的类型一样<br>③如果对象x的equals()方法定义恰当，那么x.clone().equals(x)应该成立。<br>&nbsp;<br>⑵Java中对象的克隆<br>①为了获取对象的一份拷贝，我们可以利用Object类的clone()方法。<br>②在派生类中覆盖基类的clone()方法，并声明为public。<br>③在派生类的clone()方法中，调用super.clone()。<br>④在派生类中实现Cloneable接口。<br>&nbsp;<br>请看如下代码：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Student&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Cloneable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Student(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;clone()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.clone();</span><span style="color: #008000;">//</span><span style="color: #008000;">Object中的clone()识别出你要复制的是哪一<br></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;个对象。</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(CloneNotSupportedException&nbsp;e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.toString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>&nbsp;<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s1</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Student(</span><span style="color: #000000;">"</span><span style="color: #000000;">zhangsan</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">18</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s2</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)s1.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">lisi</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.age</span><span style="color: #000000;">=</span><span style="color: #000000;">20</span><span style="color: #000000;">;<br>System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">name=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.name</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;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">age=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.age);</span><span style="color: #008000;">//</span><span style="color: #008000;">修改学生2后，不影响<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">学生1的值。</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;}</span></div>
<br>&nbsp;<br>说明：<br>①为什么我们在派生类中覆盖Object的clone()方法时，一定要调用super.clone()呢？在运行时刻，Object中的clone()识别出你要复制的是哪一个对象，然后为此对象分配空间，并进行对象的复制，将原始对象的内容一一复制到新对象的存储空间中。<br>②继承自java.lang.Object类的clone()方法是浅复制。以下代码可以证明之。<br>&nbsp;<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Professor<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Professor(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Student&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Cloneable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;</span><span style="color: #008000;">//</span><span style="color: #008000;">常量对象。</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Professor&nbsp;p;</span><span style="color: #008000;">//</span><span style="color: #008000;">学生1和学生2的引用值都是一样的。</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Student(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age,Professor&nbsp;p)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.p</span><span style="color: #000000;">=</span><span style="color: #000000;">p;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;clone()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(CloneNotSupportedException&nbsp;e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.toString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.p</span><span style="color: #000000;">=</span><span style="color: #000000;">(Professor)p.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Professor&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Professor(</span><span style="color: #000000;">"</span><span style="color: #000000;">wanGWu</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">50</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s1</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Student(</span><span style="color: #000000;">"</span><span style="color: #000000;">zhangsan</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">18</span><span style="color: #000000;">,p);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s2</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)s1.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.p.name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">lisi</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.p.age</span><span style="color: #000000;">=</span><span style="color: #000000;">30</span><span style="color: #000000;">;<br>System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">name=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.p.name</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;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">age=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.p.age);</span><span style="color: #008000;">//</span><span style="color: #008000;">学生1的教授<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">成为lisi,age为30。</span><span style="color: #008000;"><br></span><span style="color: #000000;">}</span></div>
<br>&nbsp;<br>那应该如何实现深层次的克隆，即修改s2的教授不会影响s1的教授？代码改进如下。<br>&nbsp;<br>改进使学生1的Professor不改变（深层次的克隆）<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Professor&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Cloneable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Professor(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;clone()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(CloneNotSupportedException&nbsp;e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.toString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Student&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Cloneable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Professor&nbsp;p;<br>&nbsp;&nbsp;&nbsp;&nbsp;Student(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age,Professor&nbsp;p)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.p</span><span style="color: #000000;">=</span><span style="color: #000000;">p;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;clone()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(CloneNotSupportedException&nbsp;e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.toString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o.p</span><span style="color: #000000;">=</span><span style="color: #000000;">(Professor)p.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;o;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Professor&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Professor(</span><span style="color: #000000;">"</span><span style="color: #000000;">wangwu</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">50</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s1</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Student(</span><span style="color: #000000;">"</span><span style="color: #000000;">zhangsan</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">18</span><span style="color: #000000;">,p);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s2</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)s1.clone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.p.name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">lisi</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.p.age</span><span style="color: #000000;">=</span><span style="color: #000000;">30</span><span style="color: #000000;">;<br>System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">name=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.p.name</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;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">age=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.p.age);</span><span style="color: #008000;">//</span><span style="color: #008000;">学生1的教授不改变。</span><span style="color: #008000;"><br></span><span style="color: #000000;">}</span></div>
<br>3．利用串行化来做深复制<br>把对象写到流里的过程是串行化（Serilization）过程，但是在Java程序师圈子里又非常形象地称为&#8220;冷冻&#8221;或者&#8220;腌咸菜（picking）&#8221;过程；而把对象从流中读出来的并行化（Deserialization）过程则叫做&#8220;解冻&#8221;或者&#8220;回鲜(depicking)&#8221;过程。应当指出的是，写在流里的是对象的一个拷贝，而原对象仍然存在于JVM里面，因此&#8220;腌成咸菜&#8221;的只是对象的一个拷贝，Java咸菜还可以回鲜。<br>在Java语言里深复制一个对象，常常可以先使对象实现Serializable接口，然后把对象（实际上只是对象的一个拷贝）写到一个流里（腌成咸菜），再从流里读出来（把咸菜回鲜），便可以重建对象。<br>如下为深复制源代码。<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;deepClone()<br>{<br>&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">将对象写到流里</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;ByteArrayOutoutStream&nbsp;bo</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ByteArrayOutputStream();<br>&nbsp;ObjectOutputStream&nbsp;oo</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ObjectOutputStream(bo);<br>&nbsp;oo.writeObject(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br>&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">从流里读出来</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;ByteArrayInputStream&nbsp;bi</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ByteArrayInputStream(bo.toByteArray());<br>&nbsp;ObjectInputStream&nbsp;oi</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ObjectInputStream(bi);<br>&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">(oi.readObject());<br>}</span></div>
<br>这样做的前提是对象以及对象内部所有引用到的对象都是可串行化的，否则，就需要仔细考察那些不可串行化的对象可否设成transient，从而将之排除在复制过程之外。上例代码改进如下。<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Professor&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Serializable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Professor(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Student&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;Serializable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name;</span><span style="color: #008000;">//</span><span style="color: #008000;">常量对象。</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age;<br>&nbsp;&nbsp;&nbsp;&nbsp;Professor&nbsp;p;</span><span style="color: #008000;">//</span><span style="color: #008000;">学生1和学生2的引用值都是一样的。</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Student(String&nbsp;name,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;age,Professor&nbsp;p)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name</span><span style="color: #000000;">=</span><span style="color: #000000;">name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age</span><span style="color: #000000;">=</span><span style="color: #000000;">age;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.p</span><span style="color: #000000;">=</span><span style="color: #000000;">p;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;deepClone()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;IOException,<br>OptionalDataException,ClassNotFoundException<br>{<br>&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">将对象写到流里</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;ByteArrayOutoutStream&nbsp;bo</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ByteArrayOutputStream();<br>&nbsp;ObjectOutputStream&nbsp;oo</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ObjectOutputStream(bo);<br>&nbsp;oo.writeObject(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br>&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">从流里读出来</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;ByteArrayInputStream&nbsp;bi</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ByteArrayInputStream(bo.toByteArray());<br>&nbsp;ObjectInputStream&nbsp;oi</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ObjectInputStream(bi);<br>&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">(oi.readObject());<br>}<br>&nbsp;<br>}<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Professor&nbsp;p</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Professor(</span><span style="color: #000000;">"</span><span style="color: #000000;">wangwu</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">50</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s1</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Student(</span><span style="color: #000000;">"</span><span style="color: #000000;">zhangsan</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">18</span><span style="color: #000000;">,p);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Student&nbsp;s2</span><span style="color: #000000;">=</span><span style="color: #000000;">(Student)s1.deepClone();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.p.name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">lisi</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2.p.age</span><span style="color: #000000;">=</span><span style="color: #000000;">30</span><span style="color: #000000;">;<br>System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">name=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.p.name</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;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">age=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">s1.p.age);&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">学生1的教授不改变。</span><span style="color: #008000;"><br></span><span style="color: #000000;">}<br></span></div>
<br><img src ="http://www.blogjava.net/nobody_am/aggbug/117622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-05-15 15:33 <a href="http://www.blogjava.net/nobody_am/articles/117622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Win2K3上建立SMTP服务器</title><link>http://www.blogjava.net/nobody_am/articles/116140.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Wed, 09 May 2007 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/116140.html</guid><description><![CDATA[<p>一、安装POP3和SMTP服务组件</p>
<p>Windows Server 2003默认情况下是没有安装POP3和SMTP服务组件的，因此我们要手工添加。</p>
<p>1.安装POP3服务组件</p>
<p>以系统管理员身份登录Windows Server 2003 系统。依次进入&#8220;控制面板&#8594;添加或删除程序&#8594;添加/删除Windows组件&#8221;，在弹出的&#8220;Windows组件向导&#8221;对话框中选中&#8220;电子邮件服务&#8221;选项，点 击&#8220;详细信息&#8221;按钮，可以看到该选项包括两部分内容：POP3服务和POP3服务Web管理。为方便用户远程Web方式管理邮件服务器，建议选中&#8220;POP 3服务Web管理&#8221;。</p>
<p>2.安装SMTP服务组件</p>
<p>选中&#8220;应用程序服务器&#8221;选项，点击&#8220;详细信息&#8221;按钮，接着在&#8220;Internet信息服务（IIS）&#8221;选项中查看详细信息，选中&#8220;SMTP
Service&#8221;选项，最后点击&#8220;确定&#8221;按钮。此外，如果用户需要对邮件服务器进行远程Web管理，一定要选中&#8220;万维网服务&#8221;中的&#8220;远程管理 （HTML）&#8221;组件。完成以上设置后，点击&#8220;下一步&#8221;按钮，系统就开始安装配置POP3和SMTP服务了。</p>
<p>二、配置POP3服务器</p>
<p>1.创建邮件域</p>
<p>点击&#8220;开始&#8594;管理工具&#8594;POP3服务&#8221;，弹出POP3服务控制台窗口。选中左栏中的POP3服务后，点击右栏中的&#8220;新域&#8221;，弹出&#8220;添加域&#8221;对话框， 接着在&#8220;域名&#8221;栏中输入邮件服务器的域名，也就是邮件地址&#8220;@&#8221;后面的部分，如&#8220;MAIL.COM&#8221;，最 后点击&#8220;确定&#8221;按钮。</p>
<p>2.创建用户邮箱</p>
<p>选中刚才新建的&#8220;MAIL.COM&#8221;域，在右栏中点击&#8220;添加邮箱&#8221;，弹出添加邮箱对话框，在&#8220;邮箱名&#8221;栏中输入邮件用户名，然后设置用户密码，最后点击&#8220;确定&#8221;按钮，完成邮箱的创建,本例中创建的mailbox是<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#114;&#114;&#121;&#64;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">jerry@mail1.com</a></p>
<p>&nbsp;</p>
<p><strong>配置SMTP服务器</strong><strong></strong></p>
<p>三、配置SMTP服务器</p>
<p>完成POP3服务器的配置后，就可开始配置SMTP服务器了。点击&#8220;开始&#8594;程序&#8594;管理工具&#8594;Internet信息服务（IIS）管理器&#8221;，在 &#8220;IIS管理器&#8221;窗口中右键点击&#8220;默认SMTP虚拟服务器&#8221;选项，在弹出的菜单中选中&#8220;属性&#8221;，进入&#8220;默认SM TP虚拟服务器&#8221;窗口，切换到&#8220;常规&#8221;标签页，在&#8220;IP地址&#8221;下拉列表框中选中邮件服务器的IP地址即可。点击&#8220;确定&#8221;按钮，这样一个简单的邮件服务器就
架设完成了。</p>
<p>完成以上设置后，用户就可以使用<a href="http://download.pchome.net/internet/email/client/" target="_blank">邮件客户</a>端软件连接邮件服务器进行邮件收发工作,只要在pop3和smtp处输入邮件服务器的ip地址即可。</p>
<p>注意到这步为止，基本的mail功能已经实现了，可以正常的收发mail.</p>
<br><img src ="http://www.blogjava.net/nobody_am/aggbug/116140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-05-09 11:31 <a href="http://www.blogjava.net/nobody_am/articles/116140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring里处理Hibernate的lazyload非OpenviewSessionFilter解决方案</title><link>http://www.blogjava.net/nobody_am/articles/116006.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 08 May 2007 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/116006.html</guid><description><![CDATA[Step1 创建一个基本的处理lazy的bean<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="hibernateInterceptor"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="COLOR: #0000ff">="org.springframework.orm.hibernate3.HibernateInterceptor"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="sessionFactory"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ref&nbsp;</span><span style="COLOR: #ff0000">bean</span><span style="COLOR: #0000ff">="sessionFactory"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">property</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="baseLzService"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="COLOR: #0000ff">="org.springframework.aop.framework.ProxyFactoryBean"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="proxyTargetClass"</span><span style="COLOR: #ff0000">&nbsp;value</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="interceptorNames"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">list</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">hibernateInterceptor</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">value</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">list</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">property</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>Step2 业务bean(例子是Quarts中使用的某bean)继承上面的Bean<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="mailSend"</span><span style="COLOR: #ff0000">&nbsp;parent</span><span style="COLOR: #0000ff">="baseLzService"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="target"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">bean<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="com.staplesnrc.plugins.quartz.service.MailSend"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">property&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="systemMailSender"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ref</span><span style="COLOR: #0000ff">="systemMailSender"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">property</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">bean</span><span style="COLOR: #0000ff">&gt;</span></div>
<img src ="http://www.blogjava.net/nobody_am/aggbug/116006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-05-08 17:44 <a href="http://www.blogjava.net/nobody_am/articles/116006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2+Spring2+Hibernate3.2配置参考</title><link>http://www.blogjava.net/nobody_am/articles/115997.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 08 May 2007 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/115997.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Part 1, web.xml中的部分配置&nbsp;&lt;!--&nbsp;Spring-Context&nbsp;Loader&nbsp;--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;context-param&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;contextCo...&nbsp;&nbsp;<a href='http://www.blogjava.net/nobody_am/articles/115997.html'>阅读全文</a><img src ="http://www.blogjava.net/nobody_am/aggbug/115997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-05-08 17:17 <a href="http://www.blogjava.net/nobody_am/articles/115997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2: CRUD</title><link>http://www.blogjava.net/nobody_am/articles/114764.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 30 Apr 2007 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/114764.html</guid><description><![CDATA[struts.xml<br>
<ul>
    <li>&lt;package name="demo" extends="struts-default" namespace="/demo"&gt;</li>
</ul>
&nbsp;&nbsp;&nbsp; 分package的作用就是为了用namespace，表示这个action属于那个空间下面。<br><br>
<ul>
    <li>&lt;result type="redirect-action"&gt;list&lt;/result&gt;</li>
</ul>
&nbsp;&nbsp;&nbsp; redirect-action 的type，后面可以跟action名，不必要写路径<br><br>
<ul>
    <li>&lt;result type="redirect"&gt;/demo/list.action&lt;/result&gt;</li>
</ul>
&nbsp;&nbsp;&nbsp; redirect的type，后面必须跟路径<br><br>
<ul>
    <li>&lt;result&gt;/demo/list.action&lt;/result&gt;</li>
</ul>
&nbsp;&nbsp;&nbsp; 没有type会出错，因为它会去找文件，而不是找URL<br><br>
<ul>
    <li>&lt;s:form&nbsp; name="userForm" action="save" method="post" validate="true"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;s:hidden name="user.id" value="%{user.id}" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;s:textfield label="Name" name="user.name" value="%{user.name}" required="true" /&gt;<br>&nbsp;&nbsp;&nbsp; &lt;s:submit method="save" value="Save" /&gt;<br>&lt;/s:form&gt;</li>
</ul>
&nbsp;&nbsp;&nbsp; "%{user.name}" 绑定到Action里的user属性的name属性。<br>&nbsp;&nbsp;&nbsp; submit提交到save action。<br>&nbsp;&nbsp;&nbsp; submit最终调用action类的save方法。<br><br>
<ul>
    <li>&lt;s:url id="removeUrl" action="delete"&gt;<br>&nbsp;&nbsp; &lt;s:param name="id" value="%{id}" /&gt;<br>&lt;/s:url&gt;</li>
</ul>
&nbsp;&nbsp;&nbsp; %{id}能够从当前上下文内的id属性绑定过来。<br>&nbsp;&nbsp;&nbsp; 能够把value="%{id}" 绑定到action的name="id" 的id属性上，不需要request.getParameter("id")。<br><br>
<ul>
    <li>&lt;s:url id="removeUrl" action="delete"&gt;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </li>
</ul>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;s:param name="id" value="%{id}" /&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  <br>&nbsp;&nbsp;&nbsp; &lt;/s:url&gt;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  <br>&nbsp;&nbsp;&nbsp; &lt;s:a href="%{removeUrl}"&gt;Delete&lt;/s:a&gt;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; "%{removeUrl}"能把当前上下文定义的url拿过来。<br>&nbsp;&nbsp;&nbsp;&nbsp; 替换的做法是<br>&nbsp;&nbsp;&nbsp;&nbsp;  &lt;a href="&lt;s:url action="delete"&gt;&lt;s:param name="id" value="%{id}" /&gt;&lt;/s:url&gt;"&gt;Delete&lt;/a&gt;<br><br><br>&nbsp;&nbsp; <br><br><br><br><br>     <img src ="http://www.blogjava.net/nobody_am/aggbug/114764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-04-30 14:02 <a href="http://www.blogjava.net/nobody_am/articles/114764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提高Tomcat性能的5个步骤</title><link>http://www.blogjava.net/nobody_am/articles/114160.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Fri, 27 Apr 2007 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/114160.html</guid><description><![CDATA[1,设置Tomcat启动JDK时的内存参数；<br>2,禁用DNS搜索参数；<br>3,调整线程数参数；<br>4,启用Tomcat5.5的APR特性；<br>5,负载均衡(1个Apache&nbsp; + n个Tomcat是最简单的)．<img src ="http://www.blogjava.net/nobody_am/aggbug/114160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-04-27 17:24 <a href="http://www.blogjava.net/nobody_am/articles/114160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决weblogic抛出的ClassNotFoundException: org.hibernate.hql.ast.HqlToken异常</title><link>http://www.blogjava.net/nobody_am/articles/106197.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Sun, 25 Mar 2007 04:21:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/106197.html</guid><description><![CDATA[在配置中加以下属性就可以解决<br />&lt;prop key="hibernate.query.factory_class"&gt;org.hibernate.hql.ast.ASTQueryTranslatorFactory&lt;/prop&gt;<br /><br />使用Spring+hibernate如下<br />&lt;property name="hibernateProperties"&gt;<br />&lt;props&gt;<br />&lt;prop key="hibernate.dialect"&gt;${hibernate.dialect}&lt;/prop&gt;<br />&lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;<br />&lt;prop key="hibernate.generate_statistics"&gt;true&lt;/prop&gt;<br />&lt;!-- 解决weblogic抛出的ClassNotFoundException: org.hibernate.hql.ast.HqlToken异常--&gt; <br />&lt;prop key="hibernate.query.factory_class"&gt;org.hibernate.hql.classic.ClassicQueryTranslatorFactory&lt;/prop&gt;<br />&lt;/props&gt;<br />&lt;/property&gt;<br /><br />上面这样还是使用Hibernate2的查询机制，根据回复经验证后可以按下面设置使用hibernate3的查询机制：<br />1、拷贝Hibernate3里带的包antlr-2.7.5H3.jar到%WL_HOME%\server\lib下<br />2、修改startWebLogic.cmd ：<br /><br />在set CLASSPATH之前加上下面一句：<br />set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;<br />在set CLASSPATH之后加上下面一句：<br />set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%<br /><br />一切OK！
<p>具体原因可参照此页：<a href="http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web.html">http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web.html</a></p><br /><img src ="http://www.blogjava.net/nobody_am/aggbug/106197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-03-25 12:21 <a href="http://www.blogjava.net/nobody_am/articles/106197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat下端口型虚拟主机的配置方法</title><link>http://www.blogjava.net/nobody_am/articles/100871.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 27 Feb 2007 02:10:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/100871.html</guid><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作者：</span>
				<span lang="EN-US">Lawrence (实信商软)</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编写时间：</span>
				<span lang="EN-US">Saturday, February 10, 2007</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前言</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个免费的开源的</span>
				<span lang="EN-US">Serlvet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">容器，它是</span>
				<span lang="EN-US">Apache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基金会的</span>
				<span lang="EN-US">Jakarta</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目中的一个核心项目，由</span>
				<span lang="EN-US">Apache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">Sun</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和其它一些公司及个人共同开发而成。由于有了</span>
				<span lang="EN-US">Sun</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的参与和支持，最新的</span>
				<span lang="EN-US">Servlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Jsp</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">规范总能在</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中得到体现。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在开发和项目部署中，我们同样需要</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供端口型虚拟主机的功能。类似</span>
				<span lang="EN-US">IIS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">windows</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下一样。可是，如何配置，才能满足这样的需求，很多人在开发部署中都会发现</span>
				<span lang="EN-US">Tomcat </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并不借</span>
				<span lang="EN-US">IIS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那样简单。本文正是为了解决这一问题，由笔者实验并经过验证后作出的，供大家参考。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有不清楚或错误的地方，请及时联络。谢谢。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">一、</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基础环境：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">Web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器：</span>
				<span lang="EN-US">Tomcat-5.5.17,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">安装目录，这里是</span>
				<span lang="EN-US">c:\tools\tomcat,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如图</span>
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所示</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操作系统：</span>
				<span lang="EN-US">
						<span style="mso-tab-count: 1">    </span>windows XP professional</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">J2SDK</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span>
				<span lang="EN-US">
						<span style="mso-tab-count: 2">        </span>jdk1.5.0</span>
		</p>
		<div align="center">
				<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
						<tbody>
								<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
										<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
												<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center">
														<span lang="EN-US">
																<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
																<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
																		<v:stroke joinstyle="miter">
																		</v:stroke>
																		<v:formulas>
																				<v:f eqn="if lineDrawn pixelLineWidth 0">
																				</v:f>
																				<v:f eqn="sum @0 1 0">
																				</v:f>
																				<v:f eqn="sum 0 0 @1">
																				</v:f>
																				<v:f eqn="prod @2 1 2">
																				</v:f>
																				<v:f eqn="prod @3 21600 pixelWidth">
																				</v:f>
																				<v:f eqn="prod @3 21600 pixelHeight">
																				</v:f>
																				<v:f eqn="sum @0 0 1">
																				</v:f>
																				<v:f eqn="prod @6 1 2">
																				</v:f>
																				<v:f eqn="prod @7 21600 pixelWidth">
																				</v:f>
																				<v:f eqn="sum @8 21600 0">
																				</v:f>
																				<v:f eqn="prod @7 21600 pixelHeight">
																				</v:f>
																				<v:f eqn="sum @10 21600 0">
																				</v:f>
																		</v:formulas>
																		<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
																		</v:path>
																		<o:lock aspectratio="t" v:ext="edit">
																				<img height="380" alt="t1.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcat1/t1.gif" width="526" border="0" />
																		</o:lock>
																</v:shapetype>
														</span>
												</p>
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-ALIGN: center" align="center">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">1 Tomcat</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">安装目录</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">二、</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置需求：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">需要建立一个端口为</span>
				<span lang="EN-US">10000</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的测试站点。能够运行</span>
				<span lang="EN-US">Jsp,Servlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">三、</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置步骤：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、打开</span>
				<span lang="EN-US">C:\tools\tomcat\conf\server.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，加入一个新的</span>
				<span lang="EN-US">service</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如图</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所示。</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center">
												<span lang="EN-US">
														<img height="660" alt="t2.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcat1/t2.gif" width="555" border="0" />
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-ALIGN: center" align="center">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">2 server.xml</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">,</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">加入一个</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">service</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">代码块示意图</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">
				</span>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">Service </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="coffee"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">Connector </span>
				<span style="COLOR: #ff0000">port</span>
				<span style="COLOR: #0000ff">="10082"</span>
				<span style="COLOR: #ff0000"> maxHttpHeaderSize</span>
				<span style="COLOR: #0000ff">="8192"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />               maxThreads</span>
				<span style="COLOR: #0000ff">="150"</span>
				<span style="COLOR: #ff0000"> minSpareThreads</span>
				<span style="COLOR: #0000ff">="25"</span>
				<span style="COLOR: #ff0000"> maxSpareThreads</span>
				<span style="COLOR: #0000ff">="75"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />               enableLookups</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #ff0000"> redirectPort</span>
				<span style="COLOR: #0000ff">="10443"</span>
				<span style="COLOR: #ff0000"> acceptCount</span>
				<span style="COLOR: #0000ff">="100"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />               connectionTimeout</span>
				<span style="COLOR: #0000ff">="20000"</span>
				<span style="COLOR: #ff0000"> disableUploadTimeout</span>
				<span style="COLOR: #0000ff">="true"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">Connector </span>
				<span style="COLOR: #ff0000">port</span>
				<span style="COLOR: #0000ff">="10009"</span>
				<span style="COLOR: #ff0000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />               enableLookups</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #ff0000"> redirectPort</span>
				<span style="COLOR: #0000ff">="10443"</span>
				<span style="COLOR: #ff0000"> protocol</span>
				<span style="COLOR: #0000ff">="AJP/1.3"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">Engine </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="coffee"</span>
				<span style="COLOR: #ff0000"> defaultHost</span>
				<span style="COLOR: #0000ff">="localhost"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">Realm </span>
				<span style="COLOR: #ff0000">className</span>
				<span style="COLOR: #0000ff">="org.apache.catalina.realm.UserDatabaseRealm"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />             resourceName</span>
				<span style="COLOR: #0000ff">="UserDatabase"</span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">Host </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="localhost"</span>
				<span style="COLOR: #ff0000"> appBase</span>
				<span style="COLOR: #0000ff">="coffee"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       unpackWARs</span>
				<span style="COLOR: #0000ff">="true"</span>
				<span style="COLOR: #ff0000"> autoDeploy</span>
				<span style="COLOR: #0000ff">="true"</span>
				<span style="COLOR: #ff0000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />       xmlValidation</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #ff0000"> xmlNamespaceAware</span>
				<span style="COLOR: #0000ff">="false"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />      </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">Host</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">Engine</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">Service</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">参考代码如上<br />2<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、在</span><span lang="EN-US">c:\tools\tomcat\</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下建立一个文件夹，内容如图</span><span lang="EN-US">3</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所示。</span></p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<img height="460" alt="t3.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcat1/t3.gif" width="516" border="0" />
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">3 </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">建立虚拟站点文件夹</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<span style="mso-tab-count: 1">       </span>3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">、重启</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">服务。</span>
				<span lang="EN-US" style="mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/nobody_am/aggbug/100871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2007-02-27 10:10 <a href="http://www.blogjava.net/nobody_am/articles/100871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat5.5性能测试</title><link>http://www.blogjava.net/nobody_am/articles/87331.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 12 Dec 2006 11:37:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/87331.html</guid><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第一部分：背景</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">硬件：</span>
				<span lang="EN-US">CPU p4 3.0</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内存：</span>
				<span lang="EN-US">1 GB</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操作系统：</span>
				<span lang="EN-US">Windows2003</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上面跑着</span>
				<span lang="EN-US">Oracle <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chmetcnv w:st="on" unitname="g" sourcevalue="10" hasspace="False" negative="False" numbertype="1" tcsc="0">10g</st1:chmetcnv></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试的</span>
				<span lang="EN-US">Web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发框架：</span>
				<span lang="EN-US">SpringSide <st1:chmetcnv w:st="on" unitname="m3" sourcevalue="1" hasspace="True" negative="False" numbertype="1" tcsc="0">1.0 M3</st1:chmetcnv></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的改造版，把</span>
				<span lang="EN-US">Web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">换成</span>
				<span lang="EN-US">JSF<st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.1.3</st1:chsdate></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">Spring</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">升级到</span>
				<span lang="EN-US">2.0.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Web Server: Tomcat<st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">5.5.17</st1:chsdate> ,<span style="mso-spacerun: yes">  </span>Apache2.0 </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第二部分：测试对象</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用</span>
				<span lang="EN-US">JMeter</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试一个有</span>
				<span lang="EN-US">500+</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">条记录的表，每次查询都全部查询出来。最后在页面上显示</span>
				<span lang="EN-US">100</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">条。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
						<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
								<v:stroke joinstyle="miter">
								</v:stroke>
								<v:formulas>
										<v:f eqn="if lineDrawn pixelLineWidth 0">
										</v:f>
										<v:f eqn="sum @0 1 0">
										</v:f>
										<v:f eqn="sum 0 0 @1">
										</v:f>
										<v:f eqn="prod @2 1 2">
										</v:f>
										<v:f eqn="prod @3 21600 pixelWidth">
										</v:f>
										<v:f eqn="prod @3 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @0 0 1">
										</v:f>
										<v:f eqn="prod @6 1 2">
										</v:f>
										<v:f eqn="prod @7 21600 pixelWidth">
										</v:f>
										<v:f eqn="sum @8 21600 0">
										</v:f>
										<v:f eqn="prod @7 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @10 21600 0">
										</v:f>
								</v:formulas>
								<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
								</v:path>
								<o:lock aspectratio="t" v:ext="edit">
								</o:lock>
						</v:shapetype>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="363" alt="page.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/page.gif" width="619" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试要求：</span>
				<span lang="EN-US">10</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个并发用户，共访问</span>
				<span lang="EN-US">200</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">次</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="243" alt="Thread group.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/Thread%20group.png" width="770" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第三部分：测试结果</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 18.0pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">0，<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">未启动</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，内存情况：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="419" alt="start.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/start.gif" width="405" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">1</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，单个</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，默认设置，测试结果：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="66" alt="SR_df_tom.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/SR_df_tom.png" width="770" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，单个</span>
				<span lang="EN-US">Tomcat, </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把</span>
				<span lang="EN-US">catalina.bat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">Xms</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Xmx</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的值设为</span>
				<span lang="EN-US">768</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时测试结果：<br /></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<img height="60" alt="SR_mem_tom.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/SR_mem_tom.png" width="770" border="0" />
						<br />内存情况：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="411" alt="memmodified.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/memmodified.gif" width="403" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，单个</span>
				<span lang="EN-US">Tomcat, </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置了</span>
				<span lang="EN-US">Xms</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Xmx</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并启用了</span>
				<span lang="EN-US">APR,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试结果</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<img height="60" alt="SR_spr_tom.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/SR_spr_tom.png" width="770" border="0" />
						<br />内存情况：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> <img height="413" alt="apr.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/apr.gif" width="401" border="0" /></o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">Apache2 </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分发请求，</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个</span>
				<span lang="EN-US">Tomcat </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">负载均衡，每个</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">Xms</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Xmx</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都设置</span>
				<st1:chmetcnv w:st="on" unitname="m" sourcevalue="384" hasspace="False" negative="False" numbertype="1" tcsc="0">
						<span lang="EN-US">384M</span>
				</st1:chmetcnv>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内存，任何请求全部由</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">处理。测试结果：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<img height="60" alt="SR_ld.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/SR_ld.png" width="770" border="0" />
						<br />内存情况：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="418" alt="ldnoapr.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/ldnoapr.gif" width="402" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在测试</span>
				<span lang="EN-US">4</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的情况下，起用</span>
				<span lang="EN-US">APR,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试结果：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<img height="59" alt="SR_ld_spr.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/SR_ld_spr.png" width="770" border="0" />
						<br />内存情况：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p>
								<img height="416" alt="ldapr.gif" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tomcatpf/ldapr.gif" width="402" border="0" /> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第四部分，结论：</span>
				<span lang="EN-US">APR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">Apache2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分发方式的负载均衡，只能选一种，否则性能比较遭。</span>
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/nobody_am/aggbug/87331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-12-12 19:37 <a href="http://www.blogjava.net/nobody_am/articles/87331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat 负载均衡</title><link>http://www.blogjava.net/nobody_am/articles/87319.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Tue, 12 Dec 2006 10:14:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/87319.html</guid><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Step 1 Download 3 software<br /> <br />    1, Apache2.0.xx<br />    2,Tomcat<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?><st1:chsdate w:st="on" year="1899" month="12" day="30" islunardate="False" isrocdate="False">5.5.1</st1:chsdate>x<br />    3,mod_jk, it is connector of  tomcat<br /><br />Step 2 Install Apache2.0 at d:\Apache2, start service, then browse http://localhost for testing, you can see welcome page of apache.<br /><br />Step 3 Install 2 Tomcats at d:\tomcat1 and d:\tomcat2, set JAVA_HOME, PATH, start tomcat service, then browse http://localhost:8080 for test, you can see welcome page of tomcat.<br /><br />Step 4 Config apache: <br /><br />       Copy mod_jk.so to d:\apache2\modules.<br />      <br />       Add “include D:\Apache2\conf\mod_jk.conf” in the end of d:\apache2\conf\httpd.conf</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>Add a new file: d:\Apache2\conf\mod_jk.conf, the content is as following:</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Load mod_jk module </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">LoadModule jk_module modules/mod_jk.so</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Where to find workers.properties </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkWorkersFile conf/workers.properties</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Where to put jk logs </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkLogFile logs/mod_jk.log</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Set the jk log level [debug/error/info] </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkLogLevel info</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Select the log format </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># JkOptions indicate to send SSL KEY SIZE</span>
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
												<span lang="EN-US">
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># JkRequestLogFormat set the request format </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkRequestLogFormat "%w %V %T"</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Send servlet for context /examples to worker named ajp13 </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#JkMount /servlet/* ajp13</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Send JSPs for context /examples to worker named ajp13 </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkMount /*.jsp loadbalancer</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">JkMount /*.htm loadbalancer</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<br />
						<span style="mso-spacerun: yes">    </span>Add a new file d:\Apache2\conf\ workers.properties, the content is as following:</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># workers.properties </span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># In Unix, we use forward slashes:</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">ps=/</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># list the workers by name</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.list=tomcat1, tomcat2, loadbalancer</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># ------------------------</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># First tomcat server</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># ------------------------</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat1.port=11009</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat1.host=localhost</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat1.type=ajp13</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Specify the size of the open connection cache.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#worker.tomcat1.cachesize</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Specifies the load balance factor when used with</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># a load balancing worker.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Note:</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">  </span>----&gt; lbfactor must be &gt; 0</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">  </span>----&gt; Low lbfactor means less work done by the worker.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat1.lbfactor=100</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># ------------------------</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Second tomcat server</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># ------------------------</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat2.port=12009</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat2.host=localhost</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat2.type=ajp13</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Specify the size of the open connection cache.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#worker.tomcat2.cachesize</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Specifies the load balance factor when used with</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># a load balancing worker.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Note:</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">  </span>----&gt; lbfactor must be &gt; 0</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">  </span>----&gt; Low lbfactor means less work done by the worker.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.tomcat2.lbfactor=100</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># ------------------------</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Load Balancer worker</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># ------------------------</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># The loadbalancer (type lb) worker performs weighted round-robin</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># load balancing with sticky sessions.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># Note:</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">  </span>----&gt; If a worker dies, the load balancer will check its state</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">        </span>once in a while. Until then all work is redirected to peer</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#<span style="mso-spacerun: yes">        </span>worker.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.loadbalancer.type=lb</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">worker.loadbalancer.balanced_workers=tomcat1, tomcat2</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US"># END workers.properties</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">#</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Step 5 Config Tomcat</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>Modify conf/server.xml file</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>1 Add a unique jvmRoute to the Catalina engine </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">Near line 100, replace: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">   </span>
						<span style="mso-spacerun: yes"> </span>&lt;Engine name="Standalone" defaultHost="localhost" debug="0"&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">with: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>&lt;Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0"&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">For tomcat2, put jvmRoute="tomcat2". </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">2 Change the control port </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">At line 13, replace: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>&lt;Server port="8005"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">with: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>&lt;Server port="11005"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">For the tomcat2 server, replace port 8005 with 12005. This will prevent the two servers from conflicting. </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">3 Change the AJP13 port </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">At line 75, in the AJP 13 connector definition, replace: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>port="8009"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">with: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>port="11009"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">For the tomcat2 server, replace port 8009 with 12009. </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">4 Disable the standalone HTTP port </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">We don't want or need our tomcat servers to directly respond to HTTP requests. So we comment out the HttpConnector section between lines and <st1:chmetcnv w:st="on" unitname="in" sourcevalue="58" hasspace="True" negative="False" numbertype="1" tcsc="0">58 in</st1:chmetcnv> the server.xml file. </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">Example: </span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">&lt;!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">&lt;!--</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">    </span>&lt;Connector className="org.apache.catalina.connector.http.HttpConnector"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">               </span>port="8080" minProcessors="5" maxProcessors="75"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">            </span>
						<span style="mso-spacerun: yes">   </span>enableLookups="true" redirectPort="8443"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">               </span>acceptCount="10" debug="0" connectionTimeout="60000"/&gt;</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">--&gt;<span style="mso-spacerun: yes">    </span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span lang="EN-US">NOTE: If you don't comment this out, you will need to change the port numbers so they don't conflict between tomcat instances.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">Step 6 Test</span>  <br />            <span lang="EN-US">1 Create a file named index.jsp and put it in the /usr/local/tomcat1/webapps/ROOT directory: </span></p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;html&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;body bgcolor="red"&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;center&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;%= request.getSession().getId() %&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;h1&gt;Tomcat 1&lt;/h1&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;/body&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;/html&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 15.75pt; TEXT-INDENT: 26.25pt; mso-para-margin-left: 1.5gd; mso-char-indent-count: 2.5">
				<span lang="EN-US">2 Create a file named index.jsp and put it in the /usr/local/tomcat2/webapps/ROOT directory: </span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;html&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;body bgcolor="blue"&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;center&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;%= request.getSession().getId() %&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;h1&gt;Tomcat 2&lt;/h1&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;/body&gt;</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">&lt;/html&gt;</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>3 Browse http://localhost/index.jsp</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/nobody_am/aggbug/87319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-12-12 18:14 <a href="http://www.blogjava.net/nobody_am/articles/87319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提高Tomcat性能</title><link>http://www.blogjava.net/nobody_am/articles/86995.html</link><dc:creator>MingIsMe</dc:creator><author>MingIsMe</author><pubDate>Mon, 11 Dec 2006 11:32:00 GMT</pubDate><guid>http://www.blogjava.net/nobody_am/articles/86995.html</guid><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p> </o:p>
				</span>
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">一，</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试工具：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">1, ab - Apache HTTP server benchmarking tool</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-spacerun: yes">  </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">安装</span>
				<span lang="EN-US">Apatch2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之后，在</span>
				<span lang="EN-US">bin </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录下有这个命令，在控制台上运行</span>
				<span lang="EN-US">ab, </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就可以看到帮助内容，大体如下：</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">D:\Apache2\bin&gt;ab</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">ab: wrong number of arguments</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Usage: ab [options] [http://]hostname[:port]/path</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Options are:</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-n requests<span style="mso-spacerun: yes">     </span>Number of requests to perform</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-c concurrency<span style="mso-spacerun: yes">  </span>Number of multiple requests to make</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-t timelimit<span style="mso-spacerun: yes">    </span>Seconds to max. wait for responses</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-p postfile<span style="mso-spacerun: yes">     </span>File containing data to POST</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-T content-type Content-type header for POSTing</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-v verbosity<span style="mso-spacerun: yes">    </span>How much troubleshooting info to print</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-w<span style="mso-spacerun: yes">              </span>Print out results in HTML tables</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-i<span style="mso-spacerun: yes">              </span>Use HEAD instead of GET</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-x attributes<span style="mso-spacerun: yes">   </span>String to insert as table attributes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-y attributes<span style="mso-spacerun: yes">   </span>String to insert as tr attributes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-z attributes<span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes"> </span>String to insert as td or th attributes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-C attribute<span style="mso-spacerun: yes">    </span>Add cookie, eg. 'Apache=1234. (repeatable)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-H attribute<span style="mso-spacerun: yes">    </span>Add Arbitrary header line, eg. 'Accept-Encoding: gzip'</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">                    </span>Inserted after all normal header lines. (repeatable)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-A attribute<span style="mso-spacerun: yes">    </span>Add Basic WWW Authentication, the attributes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">                    </span>are a colon separated username and password.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-P attribute<span style="mso-spacerun: yes">    </span>Add Basic Proxy Authentication, the attributes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">                    </span>are a colon separated username and password.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-X proxy:port<span style="mso-spacerun: yes">   </span>Proxyserver and port number to use</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-V<span style="mso-spacerun: yes">              </span>Print version number and exit</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-k<span style="mso-spacerun: yes">              </span>Use HTTP KeepAlive feature</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-d<span style="mso-spacerun: yes">              </span>Do not show percentiles served table.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-S<span style="mso-spacerun: yes">              </span>Do not show confidence estimators and warnings.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-g filename<span style="mso-spacerun: yes">     </span>Output collected data to gnuplot format file.</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-e filename<span style="mso-spacerun: yes">     </span>Output CSV file with percentages served</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>-h<span style="mso-spacerun: yes">              </span>Display usage information (this message)</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">显然</span>
				<span lang="EN-US">n </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US"> c </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是最重要的两个选项。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">2,Apache-JMeter</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>JMeter</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</span>
				<span lang="EN-US">Apache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开源项目里的一个单独项目，功能比较全面，解压缩之后可以阅读文档。测试</span>
				<span lang="EN-US">web</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的顺序是先建立线程组，再建立</span>
				<span lang="EN-US">Http</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求，最后建立</span>
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个观察结果的项：用表格和</span>
				<span lang="EN-US">summary report.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">二，</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试过程：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境：内存</span>
				<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?>
				<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="g">
						<span lang="EN-US">1G</span>
				</st1:chmetcnv>
				<span lang="EN-US">, Tomcat<st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.5.17</st1:chsdate>, JDK1.5.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我要压力测试代表性页面：</span>
				<span lang="EN-US">http://61.172.192.35/nrc/publik/demo/customers.htm </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个页面查询</span>
				<span lang="EN-US">500</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">条记录，</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并且在页面上显示</span>
				<span lang="EN-US">100</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">条记录。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并发线程数：</span>
				<span lang="EN-US"> 20</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共访问次数：</span>
				<span lang="EN-US">1000</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试之前，</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">1，<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">JVM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">级别上做优化，修改了</span>
				<span lang="EN-US">catalina.bat </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中</span>
				<span lang="EN-US">-Xms </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US"> –Xmx</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">两个参数，一般设置为内存的</span>
				<span lang="EN-US">80%</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，因为机器内存是</span>
				<span lang="EN-US">1GB,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以，改为：</span>
				<span lang="EN-US">
						<span style="mso-spacerun: yes"> </span>-Xms<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="819" unitname="m">819m</st1:chmetcnv> -Xmx<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="819" unitname="m">819m</st1:chmetcnv></span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo3; tab-stops: list 18.0pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">2，<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">禁止</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
				<span lang="EN-US">DNS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解析，其实</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">默认就是禁止解析的。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用</span>
						<span lang="EN-US">ab</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行测试：</span>
						<span lang="EN-US">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">命令：</span>
				<span lang="EN-US">D:\Apache2\bin&gt;ab -c 20 -n 1000 http://61.172.192.35/snrc/publik/demo/customers.htm &gt;&gt; d:\stress.txt</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">未启用</span>
				<span lang="EN-US">APR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之前，运行结果如下：</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Server Software:<span style="mso-spacerun: yes">        </span>Apache-Coyote/1.1</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Server Hostname:<span style="mso-spacerun: yes">        </span>61.172.192.35</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<st1:place w:st="on">
														<st1:placename w:st="on">
																<span lang="EN-US">Server</span>
														</st1:placename>
														<span lang="EN-US">
																<st1:placetype w:st="on">Port</st1:placetype>
														</span>
												</st1:place>
												<span lang="EN-US">:<span style="mso-spacerun: yes">            </span>80</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Document Path:<span style="mso-spacerun: yes">          </span>/nrc/publik/demo/customers.htm</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Document Length:<span style="mso-spacerun: yes">        </span>3277 bytes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Concurrency Level:<span style="mso-spacerun: yes">      </span>20</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Time taken for tests:<span style="mso-spacerun: yes">   </span>601.328125 seconds</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Complete requests:<span style="mso-spacerun: yes">      </span>1000</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Failed requests:<span style="mso-spacerun: yes">        </span>999</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">   </span>(Connect: 0, Length: 999, Exceptions: 0)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Write errors:<span style="mso-spacerun: yes">           </span>0</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Non-2xx responses:<span style="mso-spacerun: yes">      </span>16</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Total transferred:<span style="mso-spacerun: yes">      </span>73815422 bytes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">HTML transferred:<span style="mso-spacerun: yes">       </span>73541950 bytes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Requests per second:<span style="mso-spacerun: yes">    </span>1.66 [#/sec] (mean)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Time per request:<span style="mso-spacerun: yes">       </span>12026.563 [ms] (mean)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Time per request:<span style="mso-spacerun: yes">       </span>601.328 [ms] (mean, across all concurrent requests)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Transfer rate:<span style="mso-spacerun: yes">          </span>119.88 [Kbytes/sec] received</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Connection Times (ms)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">              </span>min<span style="mso-spacerun: yes">  </span>mean[+/-sd] median<span style="mso-spacerun: yes">   </span>max</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Connect:<span style="mso-spacerun: yes">        </span>0<span style="mso-spacerun: yes">    </span>2<span style="mso-spacerun: yes">   </span>5.3<span style="mso-spacerun: yes">      </span>0<span style="mso-spacerun: yes">      </span>31</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Processing:<span style="mso-spacerun: yes">  </span>1265 11946 14632.7<span style="mso-spacerun: yes">   </span>9859<span style="mso-spacerun: yes">  </span>121656</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Waiting:<span style="mso-spacerun: yes">      </span>640 8245 14931.0<span style="mso-spacerun: yes">   </span>6421<span style="mso-spacerun: yes">  </span>121656</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Total:<span style="mso-spacerun: yes">       </span>1265 11948 14633.1<span style="mso-spacerun: yes">   </span>9859<span style="mso-spacerun: yes">  </span>121671</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Percentage of the requests served within a certain time (ms)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>50%<span style="mso-spacerun: yes">   </span>9859</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>66%<span style="mso-spacerun: yes">  </span>10515</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>75%<span style="mso-spacerun: yes">  </span>10937</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>80%<span style="mso-spacerun: yes">  </span>11343</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>90%<span style="mso-spacerun: yes">  </span>12796</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>95%<span style="mso-spacerun: yes">  </span>14921</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>98%<span style="mso-spacerun: yes">  </span>57359</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>99%<span style="mso-spacerun: yes">  </span>119890</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes"> </span>100%<span style="mso-spacerun: yes">  </span>121671 (longest request)</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启用</span>
				<span lang="EN-US">APR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之后的结果：</span>
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Server Software:<span style="mso-spacerun: yes">        </span>Apache-Coyote/1.1</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Server Hostname:<span style="mso-spacerun: yes">        </span>61.172.192.35</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<st1:place w:st="on">
														<st1:placename w:st="on">
																<span lang="EN-US">Server</span>
														</st1:placename>
														<span lang="EN-US">
																<st1:placetype w:st="on">Port</st1:placetype>
														</span>
												</st1:place>
												<span lang="EN-US">:<span style="mso-spacerun: yes">            </span>80</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Document Path:<span style="mso-spacerun: yes">          </span>/nrc/publik/demo/customers.htm</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Document Length:<span style="mso-spacerun: yes">        </span>74705 bytes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Concurrency Level:<span style="mso-spacerun: yes">      </span>20</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Time taken for tests:<span style="mso-spacerun: yes">   </span>601.500000 seconds</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Complete requests:<span style="mso-spacerun: yes">      </span>1000</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Failed requests:<span style="mso-spacerun: yes">        </span>911</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">   </span>(Connect: 0, Length: 911, Exceptions: 0)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Write errors:<span style="mso-spacerun: yes">           </span>0</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Non-2xx responses:<span style="mso-spacerun: yes">      </span>16</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Total transferred:<span style="mso-spacerun: yes">      </span>73808906 bytes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">HTML transferred:<span style="mso-spacerun: yes">       </span>73535578 bytes</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Requests per second:<span style="mso-spacerun: yes">    </span>1.66 [#/sec] (mean)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Time per request:<span style="mso-spacerun: yes">       </span>12030.000 [ms] (mean)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Time per request:<span style="mso-spacerun: yes">       </span>601.500 [ms] (mean, across all concurrent requests)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Transfer rate:<span style="mso-spacerun: yes">          </span>119.83 [Kbytes/sec] received</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Connection Times (ms)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">            </span>
														<span style="mso-spacerun: yes">  </span>min<span style="mso-spacerun: yes">  </span>mean[+/-sd] median<span style="mso-spacerun: yes">   </span>max</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Connect:<span style="mso-spacerun: yes">        </span>0<span style="mso-spacerun: yes">    </span>1<span style="mso-spacerun: yes">   </span>5.1<span style="mso-spacerun: yes">      </span>0<span style="mso-spacerun: yes">      </span>31</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Processing:<span style="mso-spacerun: yes">  </span>3703 11952 15032.6<span style="mso-spacerun: yes">   </span>9375<span style="mso-spacerun: yes">  </span>120593</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Waiting:<span style="mso-spacerun: yes">      </span>593 7073 15476.2<span style="mso-spacerun: yes">   </span>4906<span style="mso-spacerun: yes">  </span>120593</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Total:<span style="mso-spacerun: yes">       </span>3703 11954 15032.5<span style="mso-spacerun: yes">   </span>9375<span style="mso-spacerun: yes">  </span>120593</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">Percentage of the requests served within a certain time (ms)</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>50%<span style="mso-spacerun: yes">   </span>9375</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>66%<span style="mso-spacerun: yes">  </span>10250</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>75%<span style="mso-spacerun: yes">  </span>11093</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>80%<span style="mso-spacerun: yes">  </span>11687</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>90%<span style="mso-spacerun: yes">  </span>13734</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>95%<span style="mso-spacerun: yes">  </span>15750</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>98%<span style="mso-spacerun: yes">  </span>70812</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">  </span>99%<span style="mso-spacerun: yes">  </span>119937</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<span style="mso-spacerun: yes"> </span>100%<span style="mso-spacerun: yes">  </span>120593 (longest request)</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用</span>
				<span lang="EN-US">JMeter</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行测试：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下栽</span>
				<span lang="EN-US">tcnative-1.dll</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，放在</span>
				<span lang="EN-US">tomcat/apr/tcnative-1.dll,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span>
				<span lang="EN-US">catalina.bat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中</span>
				<span lang="EN-US"> JAVA_OPTS <span style="mso-spacerun: yes"> </span>-Djava.library.path="%CATALINA_BASE%\arp"</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">未启用</span>
				<span lang="EN-US">APR, </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">结果如下：<br /></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
						<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
								<v:stroke joinstyle="miter">
								</v:stroke>
								<v:formulas>
										<v:f eqn="if lineDrawn pixelLineWidth 0">
										</v:f>
										<v:f eqn="sum @0 1 0">
										</v:f>
										<v:f eqn="sum 0 0 @1">
										</v:f>
										<v:f eqn="prod @2 1 2">
										</v:f>
										<v:f eqn="prod @3 21600 pixelWidth">
										</v:f>
										<v:f eqn="prod @3 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @0 0 1">
										</v:f>
										<v:f eqn="prod @6 1 2">
										</v:f>
										<v:f eqn="prod @7 21600 pixelWidth">
										</v:f>
										<v:f eqn="sum @8 21600 0">
										</v:f>
										<v:f eqn="prod @7 21600 pixelHeight">
										</v:f>
										<v:f eqn="sum @10 21600 0">
										</v:f>
								</v:formulas>
								<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
								</v:path>
								<o:lock aspectratio="t" v:ext="edit">
								</o:lock>
						</v:shapetype>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<img height="53" alt="Summary Report1.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tmp/Summary%20Report1.png" width="768" border="0" />
						<br />起用</span>
				<span lang="EN-US">APR,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">结果如下：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> <img height="55" alt="Summary Report2.png" src="http://www.blogjava.net/images/blogjava_net/nobody_am/tmp/Summary%20Report2.png" width="768" border="0" /></o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对比两个结果，启动</span>
				<span lang="EN-US">APR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，效果并不十分明显。可能做</span>
				<span lang="EN-US">load balance</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">效果会更明显。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">三，</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解决办法总结：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">1，<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">优化</span>
				<span lang="EN-US">JVM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的内存数量；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">2，<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">禁止</span>
				<span lang="EN-US">DNS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解析；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt">
				<span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'">
						<span style="mso-list: Ignore">3，<span style="FONT: 7pt 'Times New Roman'">  </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启用</span>
				<span lang="EN-US">APR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是否启动了</span>
				<span lang="EN-US">APR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">？</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动之后，看到：xxxxx </span>
				<span lang="EN-US">http11BaseProtocol Start</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示没有启用</span>
				<span lang="EN-US">APR</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<span lang="EN-US">xxxxx http11AprProtocol Star </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表示启用了</span>
				<span lang="EN-US">APR</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="mso-bidi-font-family: 宋体">
						<span style="mso-list: Ignore">四，</span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">待续</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用一个</span>
				<span lang="EN-US">Apache2 + 2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个</span>
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在一台服务器上做负载均衡。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<o:p> </o:p>
				</span>
		</p>
<img src ="http://www.blogjava.net/nobody_am/aggbug/86995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nobody_am/" target="_blank">MingIsMe</a> 2006-12-11 19:32 <a href="http://www.blogjava.net/nobody_am/articles/86995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>