﻿<?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-所有随笔区</title><link>http://www.blogjava.net/all</link><description>专注于Java技术</description><language>zh-cn</language><lastBuildDate>Sun, 05 Jul 2009 05:15:47 GMT</lastBuildDate><pubDate>Sun, 05 Jul 2009 05:15:47 GMT</pubDate><ttl>60</ttl><item><title>在Hibernate应用中如何处理批量更新和批量删除_含3.0新特性</title><link>http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html</link><dc:creator>WANGPENG</dc:creator><author>WANGPENG</author><pubDate>Sun, 05 Jul 2009 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html</guid><wfw:comment>http://www.blogjava.net/wangpeng/comments/285540.html</wfw:comment><comments>http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangpeng/comments/commentRss/285540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangpeng/services/trackbacks/285540.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html'>阅读全文</a><img src ="http://www.blogjava.net/wangpeng/aggbug/285540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangpeng/" target="_blank">WANGPENG</a> 2009-07-05 11:21 <a href="http://www.blogjava.net/wangpeng/archive/2009/07/05/285540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Store, Q&amp;A(译)</title><link>http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html</link><dc:creator>Sha Jiang</dc:creator><author>Sha Jiang</author><pubDate>Sun, 05 Jul 2009 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html</guid><wfw:comment>http://www.blogjava.net/jiangshachina/comments/285528.html</wfw:comment><comments>http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiangshachina/comments/commentRss/285528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiangshachina/services/trackbacks/285528.html</trackback:ping><description><![CDATA[<div align="center"><span style="font-size: 10pt;"><strong><span style="font-size: 14pt;"><a href="http://weblogs.java.net/blog/joshy/archive/2009/06/the_java_store.html">Java Store, Q&amp;A</a></span></strong></span><br />
</div>
<span style="font-size: 10pt;">在今年的JavaOne中，比较重要的议题之一就是Java应用商店。目前还没机会亲身体会一下这个商店，但我至少认为Java应用商店为广大Java程序员提供了一个新的展示自我的平台。Please show yourself! (2009.07.05最后更新)<br />
<br />
Java Store是JavaOne中最重大的消息之一。我格外为之骄傲，因为在过去的几个月中我一直秘密地为其工作。由于这一消息，我收到了一大堆关于该商店的问题，以及如何将它与Java生态系统中的其它部分相关联。出于对已极佳的<a href="http://java.sun.com/warehouse/reference/faq/">FAQ</a>的补充，我想应该再回答一些问题。<br />
<strong><br />
简约概括一下你所宣布的消息</strong><br />
我们已经发布了Java Store的私有Beta版，是一个桌面的客户端应用，它允许大家浏览并购买桌面Java应用；还有一个Java仓库的开放Beta版，为了分发应用程序，开发者们可将这些应用程序上传到这个仓库中。现在你就可以登录并浓度一下这个<a href="http://www.java.com/en/store/index.jsp">商店</a>和<a href="http://java.sun.com/warehouse/">仓库</a>。目前，这个商店和仓库只针对美国用户，很快将有更多的国家能够使用。<br />
<br />
<strong>我可以使用除JavaFX之外的其它语言来做用于Java Store的程序吗？</strong><br />
是的！不仅仅是Java和JavaFX，所有基于JVM的语言都是允许的。记住，最终用户并不关心你的应用是用什么语言写的。他们只关心你所做的应用是有用的，看起来和用起来都很好。<br />
<br />
<strong>商店中的应用程序有哪些限制？</strong><br />
查看<a href="http://java.sun.com/warehouse/reference/faq/">FAQ</a>，可以得到全部的细节，但简要的回答是：任何的JVM语句；必须面向消费者；(目前)小于50M；必须是未签名，或使用有效认证的签名。在该商店商用之前，所有的应用都是免费的，商用之后你就需要付费。此处包含的细节很少，但这些都是基本的。<br />
<br />
<strong>何时才允许我贩卖应用程序？</strong><br />
我们将尽快。商店还未开张。但最终，你不会拥有一个货架空空如也的商店。这就是为什么我们要给你们，开发者，时间去准备好你们的应用。当我们向商用开放这个商店时，你就能够标上价格并开始售卖了。<br />
<br />
<strong>顾客将如何找到我的应用程序？</strong><br />
你在JavaOne大会上看到的桌面客户端只是第一个版本。我们已在努力工作，向商店加上新的特性，这将使得顾客们找到你的应用。将有诸如查找，过滤，排序和评论之类的新特性。最后，Java Store将会随Java发布，这就使得你的应用能被近百万人发现。<br />
<br />
<strong>移动和TV应用将会怎样？</strong><br />
Java Store实际包含两个方面。店面是一个桌面客户端程序，它使你能够购买桌面应用。还有一个Java Warehouse，这是你，即开发者，存放待售应用程序的地方。在未来，还会增加针对电视和移动应用的店面，可能会有运营商冠名。你所存放应用程序的Java Warehouse将为所有的这些店面提供服务。桌面应用只是令人激动的第一步罢了。<br />
<br />
<strong>现在商店里都哪些应用了？他们来自于何处？</strong><br />
我们与许多伙伴公司一同工作为这个商店构建新的应用，以及修改已有的应用程序。我个人的最爱是Astronomy Picture of the Day，由位于俄勒冈州Eugene的一个名为<a href="http://www.concentricsky.com/">Concentric Sky</a>的公司创建的。这个程序与NASA的太空图片相连接，能使你浏览以前的图片，阅读图片说明，甚至还能使用Google Translate将文本翻译成其它语言。请看Concentric Sky的CEO在他们的博客中<a href="http://www.concentricsky.com/">对Java Store和JavaFX的描述</a>。<br />
<br />
<strong>为什么开发者们不能在其它国家登录？什么时候才能允许我们在其它国家贩卖应用程序？</strong><br />
我们将尽可能快的在其它国家开放这个商店。国际贸易要比你所想象的还要复杂的多(作为一个工程师，我感到十分的吃惊)。每个国家在税率，私有权和商业方面都有不同的法规。现在我们有法律和商业方面的伙记们在这些问题而工作。当前，我们计划在2010年的早些时候实现这一目标，但是如果我们能做得更快些，那一定会告诉你。<br />
<br />
为了使消息更清晰，我们让Jeet Kaul，Java的高管之一，作一些解释：(点击观看) <br />
<a href="http://blogs.sun.com/webmink/entry/tweetswoop_us_only_java_store"><img src="http://weblogs.java.net/blog/joshy/javastore/SafariScreenSnapz024.png" alt="SafariScreenSnapz024.png" border="0" width="418" height="239" /></a><br />
如果你有任何关于Java Store的问题，请发邮件给我，或者在我们的反馈页面中提交你的评论。<br />
<br />
</span>
<img src ="http://www.blogjava.net/jiangshachina/aggbug/285528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiangshachina/" target="_blank">Sha Jiang</a> 2009-07-05 09:48 <a href="http://www.blogjava.net/jiangshachina/archive/2009/07/05/285528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过网页修改activex安全设置，添加信任站点，禁用弹出窗口阻止程序</title><link>http://www.blogjava.net/zhip/archive/2009/07/05/285521.html</link><dc:creator>zhip</dc:creator><author>zhip</author><pubDate>Sat, 04 Jul 2009 18:38:00 GMT</pubDate><guid>http://www.blogjava.net/zhip/archive/2009/07/05/285521.html</guid><wfw:comment>http://www.blogjava.net/zhip/comments/285521.html</wfw:comment><comments>http://www.blogjava.net/zhip/archive/2009/07/05/285521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhip/comments/commentRss/285521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhip/services/trackbacks/285521.html</trackback:ping><description><![CDATA[<p><font face="新宋体" color="#000000">信任站点的注册表项</font></p>
<p><font face="新宋体" color="#000000">HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range[*]</font></p>
<p><font color="#000000">ActiveX的注册表项</font></p>
<p><font color="#000000">HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\[0-4]\[*]</font></p>
<p><font color="#000000">[0-4]</font></p>
<p><font color="#000000">值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置<br />
------------------------------<br />
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我的电脑<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地 Intranet 区域<br />
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 受信任的站点区域<br />
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Internet 区域<br />
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 受限制的站点区域</font></p>
<p><font color="#000000">[*]</font></p>
<p><font color="#000000">1001&nbsp;&nbsp;&nbsp;&nbsp; 下载已签名的 ActiveX 控件<br />
1004&nbsp;&nbsp;&nbsp;&nbsp; 下载未签名的 ActiveX 控件<br />
1200&nbsp;&nbsp;&nbsp;&nbsp; 运行 ActiveX 控件和插件<br />
1201&nbsp;&nbsp;&nbsp;&nbsp; 对没有标记为安全的 ActiveX 控件进行初始化和脚本运行<br />
1405&nbsp;&nbsp;&nbsp;&nbsp; 对标记为可安全执行脚本的 ActiveX 控件执行脚本<br />
2201&nbsp;&nbsp;&nbsp;&nbsp; ActiveX 控件自动提示 **</font></p>
<p><font color="#000000">弹出窗口阻止程序<font face="新宋体">的注册表项</font></font></p>
<p><font face="新宋体" color="#000000">HKEY_CURRENT_USERHKCU\Software\Microsoft\Internet Explorer\New Windows\PopupMgr</font></p>
<p><font color="#000000">具体脚本如下:</font></p>
<p style="margin: 5px; line-height: 150%"><code><span style="color: rgb(0,0,0)"><font face="新宋体"><span style="color: rgb(0,0,204)">&lt;</span>SCRIPT LANGUAGE<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(255,0,255)">"JavaScript"</span><span style="color: rgb(0,0,204)">&gt;</span><br />
<span style="color: rgb(0,0,204)">&lt;</span><span style="color: rgb(0,0,204)">!</span><span style="color: rgb(0,0,204)">-</span><span style="color: rgb(0,0,204)">-</span><br />
var WshShell<span style="color: rgb(0,0,204)">=</span><span style="color: rgb(0,0,255)">new</span> ActiveXObject<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"WScript.Shell"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//添加信任站点ip<br />
</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">""</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\http"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"2"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\:Range"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"192.168.0.1"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">""</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\http"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"2"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range101\\:Range"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"192.168.0.2"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//修改IE ActiveX安全设置<br />
</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1001"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1004"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1200"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1201"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1405"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\2201"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"0"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"REG_DWORD"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//禁用Winxp弹出窗口阻止程序<br />
</span><br />
WshShell<span style="color: rgb(0,0,204)">.</span>RegWrite<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"HKCU\\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"no"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
<br />
alert<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"active控件安全设置，弹出窗口设置，信任站点设置成功"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">;</span><br />
</font><font face="新宋体"><span style="color: rgb(255,153,0)">//--&gt;<br />
</span><br />
<span style="color: rgb(0,0,204)">&lt;</span><span style="color: rgb(0,0,204)">/</span>SCRIPT<span style="color: rgb(0,0,204)">&gt;</span></font></span></code></p>
<img src ="http://www.blogjava.net/zhip/aggbug/285521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhip/" target="_blank">zhip</a> 2009-07-05 02:38 <a href="http://www.blogjava.net/zhip/archive/2009/07/05/285521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>线程同步：何时互斥锁不够，还需要条件变量?</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 17:07:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285519.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285519.html</trackback:ping><description><![CDATA[<p><span style="color: red"><strong>很显然，pthread中的条件变量与Java中的wait,notify类似</strong></span></p>
<p>假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像这样add()<br />
{<br />
　　pthread_mutex_lock(lock_s);<br />
　　sum++;<br />
　　pthread_mutex_unlock(lock_s);<br />
}</p>
<p>　　如果操作比较复杂,假设线程t0,t1,t2的操作是sum++,而线程t3则是在sum到达100的时候,打印出一条信息,并对sum清零.这种情况下,如果只用mutex, 则t3需要一个循环,每个循环里先取得lock_s,然后检查sum的状态,如果sum&gt;=100,则打印并清零,然后unlock.如果sum&lt;100,则unlock,并sleep()本线程合适的一段时间.</p>
<p>　这个时候,t0,t1,t2的代码不变,t3的代码如下<br />
　　print()<br />
　　{<br />
　　　　while (1)<br />
　　　　{<br />
　　　　　　pthread_mutex_lock(lock_s);<br />
　　　　　　if(sum&lt;100)<br />
　　　　　　{<br />
　　　　　　　　printf(&#8220;sum reach 100!&#8221;);<br />
　　　　　　　　pthread_mutex_unlock(lock_s);<br />
　　　　　　}<br />
　　　　　　else<br />
　　　　　　{<br />
　　　　　　　　pthread_mutex_unlock(lock_s);<br />
　　　　　　　　my_thread_sleep(100);<br />
　　　　　　　　return OK;<br />
　　　　　　}<br />
　　　　}<br />
　　}</p>
<p>这种办法有两个问题<br />
　　1) sum在大多数情况下不会到达100,那么对t3的代码来说,大多数情况下,走的是else分支,只是lock和unlock,然后sleep().这浪费了CPU处理时间.<br />
　　2) 为了节省CPU处理时间,t3会在探测到sum没到达100的时候sleep()一段时间.这样却又带来另外一个问题,亦即t3响应速度下降.可能在sum到达200的时候,t4才会醒过来.<br />
　　3) 这样,程序员在设置sleep()时间的时候陷入两难境地,设置得太短了节省不了资源,太长了又降低响应速度.真是难办啊!</p>
<p>　　这个时候,condition variable内裤外穿,从天而降,拯救了焦头烂额的你.</p>
<p>　　你首先定义一个condition variable.<br />
　　pthread_cond_t cond_sum_ready=PTHREAD_COND_INITIALIZER;</p>
<p>　　t0,t1,t2的代码只要后面加两行,像这样<br />
　　add()<br />
　　{<br />
　　　　pthread_mutex_lock(lock_s);<br />
　　　　sum++;<br />
　　　　pthread_mutex_unlock(lock_s);<br />
　　　　if(sum&gt;=100)<br />
　　　　pthread_cond_signal(&amp;cond_sum_ready);<br />
　　}<br />
　　而t3的代码则是<br />
　　print<br />
　　{<br />
　　　　pthread_mutex_lock(lock_s);<br />
　　　　while(sum&lt;100)<br />
　　　　pthread_cond_wait(&amp;cond_sum_ready, &amp;lock_s);<br />
　　　　printf(&#8220;sum is over 100!&#8221;);<br />
　　　　sum=0;<br />
　　　　pthread_mutex_unlock(lock_s);<br />
　　　　return OK;<br />
　　}</p>
<p>注意两点:<br />
　　1) 在thread_cond_wait()之前,必须先lock相关联的mutex, 因为假如目标条件未满足,pthread_cond_wait()实际上会unlock该mutex, 然后block,在目标条件满足后再重新lock该mutex, 然后返回.</p>
<p>　　2) 为什么是while(sum&lt;100),而不是if(sum&lt;100) ?这是因为在pthread_cond_signal()和pthread_cond_wait()返回之间,有时间差,假设在这个时间差内,还有另外一个线程t4又把sum减少到100以下了,那么t3在pthread_cond_wait()返回之后,显然应该再检查一遍sum的大小.这就是用while的用意</p>
<p><br />
boost lib</p>
<p>http://www.stlchina.org/twiki/bin/view.pl/Main/BoostThread#safag7ZYn7rqw</p>
<p><br />
文章出处：DIY部落(http://www.diybl.com/course/3_program/c++/cppxl/20090508/166837.html)</p>
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 01:07 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POSIX thread (pthread) 简介</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 17:06:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285518.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285518.html</trackback:ping><description><![CDATA[dd dddddddddddddddd
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 01:06 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POSIX线程和信号量小结</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 17:02:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285517.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285517.html</trackback:ping><description><![CDATA[dd
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 01:02 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下进程的各种状态</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 16:21:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285515.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285515.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285515.html</trackback:ping><description><![CDATA[<p>Linux下进程的各种状态<br />
</p>
<p><strong><span style="color: red"><strong>我的问题来了，假如是一个进程使用了udp的阻塞recvfrom()方法，在网络连接没有数据到达时，进程会在这个方法上面阻塞？这个阻塞的意思是进程会进入等待队列，此时的进程处于下列的什么状态？？然后cpu进而调度其他进程。。。还是cpu仍然给此进程分配时间片在它自己的时间片上让其阻塞在此方法上,这不是浪费cpu时间??<br />
</strong>我是真的得好好看看操作系统的书了<br />
</span></strong><br />
D Uninterruptible sleep (usually IO)<br />
不可中断的深度睡眠，一般由IO引起，同步IO在做读或写操作时，此进程不能做其它事情，只能等待，这时进程处于这种状态，如果程序采用异步IO，这种状态应该就很少见到了<br />
&nbsp;<br />
R Running or runnable (on run queue)&nbsp; <br />
进程处于运行或就绪状态<br />
&nbsp;<br />
S Interruptible sleep (waiting for an event to complete) <br />
可接收信号的睡眠状态，sleep函数可演示这种状态<br />
&nbsp;<br />
T Stopped, either by a job control signal or because it is being traced.<br />
被ctrl+z中断或被trace<br />
&nbsp;<br />
W paging (not valid since the 2.6.xx kernel) <br />
&nbsp;<br />
X dead (should never be seen) <br />
进程已经完全死掉，不可能看见这种状态的<br />
&nbsp;<br />
Z Defunct ("zombie") process, terminated but not reaped by its parent.<br />
进程已经终止，但是其父进程没有来及处理它，多进程写不好的话，这种状态是常见的<br />
&nbsp;<br />
For BSD formats and when the stat keyword is used, additional characters may <br />
be displayed: <br />
&lt; high-priority (not nice to other users) <br />
&nbsp;<br />
N low-priority (nice to other users) <br />
&nbsp;<br />
L has pages locked into memory (for real-time and custom IO) <br />
&nbsp;<br />
s is a session leader<br />
&nbsp;<br />
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) <br />
&nbsp;<br />
+ is in the foreground process group<br />
&nbsp;<br />
关于D和Z一段有趣的解释：<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; 有一类垃圾却并非这么容易打扫，那就是我们常见的状态为 D (Uninterruptible sleep) ，以及状态为 Z (Zombie) 的垃圾进程。这些垃圾进程要么是求而不得，像怨妇一般等待资源(D)，要么是僵而不死，像冤魂一样等待超度(Z)，它们在 CPU run_queue 里滞留不去，把 Load Average 弄的老高老高，没看过我前一篇blog的国际友人还以为这儿民怨沸腾又出了什么大事呢。怎么办？开枪！kill -9！看你们走是不走。但这两种垃圾进程偏偏是刀枪不入的，不管换哪种枪法都杀不掉它们。无奈，只好reboot，像剿灭禽流感那样不分青红皂白地一律扑杀！<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; 怨妇 D，往往是由于 I/O 资源得不到满足，而引发等待，在内核源码 fs/proc/array.c 里，其文字定义为&#8220; "D (disk sleep)", /* 2 */ &#8221;（由此可知 D 原是Disk的打头字母），对应着 include/linux/sched.h 里的&#8220; #define TASK_UNINTERRUPTIBLE 2 &#8221;。举个例子，当 NFS 服务端关闭之时，若未事先 umount 相关目录，在 NFS 客户端执行 df 就会挂住整个登录会话，按 Ctrl+C 、Ctrl+Z 都无济于事。断开连接再登录，执行 ps axf 则看到刚才的 df 进程状态位已变成了 D ，kill -9 无法杀灭。正确的处理方式，是马上恢复 NFS 服务端，再度提供服务，刚才挂起的 df 进程发现了其苦苦等待的资源，便完成任务，自动消亡。若 NFS 服务端无法恢复服务，在 reboot 之前也应将 /etc/mtab 里的相关 NFS mount 项删除，以免 reboot 过程例行调用 netfs stop 时再次发生等待资源，导致系统重启过程挂起。</p>
<p>　　冤魂 Z 之所以杀不死，是因为它已经死了，否则怎么叫 Zombie（僵尸）呢？冤魂不散，自然是生前有结未解之故。在UNIX/Linux中，每个进程都有一个父进程，进程号叫PID（Process ID），相应地，父进程号就叫PPID（Parent PID）。当进程死亡时，它会自动关闭已打开的文件，舍弃已占用的内存、交换空间等等系统资源，然后向其父进程返回一个退出状态值，报告死讯。如果程序有 bug，就会在这最后一步出问题。儿子说我死了，老子却没听见，没有及时收棺入殓，儿子便成了僵尸。在UNIX/Linux中消灭僵尸的手段比较残忍，执行 ps axjf 找出僵尸进程的父进程号（PPID，第一列），先杀其父，然后再由进程天子 init（其PID为1，PPID为0）来一起收拾父子僵尸，超度亡魂，往生极乐。注意，子进程变成僵尸只是碍眼而已，并不碍事，如果僵尸的父进程当前有要务在身，则千万不可贸然杀之。</p>
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 00:21 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>waitpid</title><link>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html</link><dc:creator>Frank_Fang</dc:creator><author>Frank_Fang</author><pubDate>Sat, 04 Jul 2009 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html</guid><wfw:comment>http://www.blogjava.net/fhtdy2004/comments/285514.html</wfw:comment><comments>http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fhtdy2004/comments/commentRss/285514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fhtdy2004/services/trackbacks/285514.html</trackback:ping><description><![CDATA[waitpid(等待子进程中断或结束)<br />
　　表头文件<br />
　　#include&lt;sys/types.h&gt;<br />
　　#include&lt;sys/wait.h&gt;<br />
　　定义函数 pid_t waitpid(pid_t pid,int * status,int options);<br />
　　函数说明<br />
　　waitpid()会暂时停止目前进程的执行,直到有信号来到或子进程<br />
　　结束。如果在调用 wait()时子进程已经结束,则 wait()会立即<br />
　　返回子进程结束状态值。 子进程的结束状态值会由参数 status 返回,<br />
　　而子进程的进程识别码也会一起返回。如果不在意结束状态值,则<br />
　　参数 status 可以设成 NULL。参数 pid 为欲等待的子进程识别码,<br />
　　其他数值意义如下:<br />
　　pid&lt;-1 等待进程组识别码为 pid 绝对值的任何子进程。<br />
　　pid=-1 等待任何子进程,相当于 wait()。 <br />
　　pid=0 等待进程组识别码与目前进程相同的任何子进程。 <br />
　　pid&gt;0 等待任何子进程识别码为 pid 的子进程。<br />
　　参数 option 可以为 0 或下面的 OR 组合:<br />
　　WNOHANG 如果没有任何已经结束的子进程则马上返回, 不予以等待。<br />
　　WUNTRACED 如果子进程进入暂停执行情况则马上返回,但结束状态不予以理会。<br />
　　子进程的结束状态返回后存于 status,底下有几个宏可判别结束情况:<br />
　　WIFEXITED(status)如果子进程正常结束则为非 0 值。<br />
　　WEXITSTATUS(status)取得子进程 exit()返回的结束代码,一般会先用 WIFEXITED 来判断是否正常结束才能使用此宏。<br />
　　WIFSIGNALED(status)如果子进程是因为信号而结束则此宏值为真<br />
　　WTERMSIG(status) 取得子进程因信号而中止的信号代码,一般会先用 WIFSIGNALED 来判断后才使用此宏。<br />
　　WIFSTOPPED(status) 如果子进程处于暂停执行情况则此宏值为真。一般只有使用 WUNTRACED 时才会有此情况。<br />
　　WSTOPSIG(status) 取得引发子进程暂停的信号代码,一般会先用 WIFSTOPPED 来判断后才使用此宏。<br />
　　如果执行成功则返回子进程识别码(PID) ,如果有错误发生则返回<br />
　　返回值-1。失败原因存于 errno 中。<br />
　　/******<br />
　　* waitpid.c - Simple wait usage<br />
　　*********/<br />
　　#include &lt;unistd.h&gt;<br />
　　#include &lt;sys/types.h&gt;<br />
　　#include &lt;sys/wait.h&gt;<br />
　　#include &lt;stdio.h&gt;<br />
　　#include &lt;stdlib.h&gt;<br />
　　int main( void )<br />
　　{<br />
　　pid_t childpid;<br />
　　int status;<br />
　　childpid = fork();<br />
　　if ( -1 == childpid )<br />
　　{<br />
　　perror( "fork()" );<br />
　　exit( EXIT_FAILURE );<br />
　　}<br />
　　else if ( 0 == childpid )<br />
　　{<br />
　　puts( "In child process" );<br />
　　sleep( 3 );//让子进程睡眠3秒，看看父进程的行为<br />
　　printf("\tchild pid = %d\n", getpid());<br />
　　printf("\tchild ppid = %d\n", getppid());<br />
　　exit(EXIT_SUCCESS);<br />
　　}<br />
　　else <br />
　　{<br />
　　waitpid( childpid, &amp;status, 0 );<br />
　　puts( "in parent" );<br />
　　printf( "\tparent pid = %d\n", getpid() );<br />
　　printf( "\tparent ppid = %d\n", getppid() );<br />
　　printf( "\tchild process exited with status %d \n", status );<br />
　　}<br />
　　exit(EXIT_SUCCESS);<br />
　　}<br />
　　[root@localhost src]# gcc waitpid.c <br />
　　[root@localhost src]# ./a.out <br />
　　In child process<br />
　　child pid = 4469<br />
　　child ppid = 4468<br />
　　in parent<br />
　　parent pid = 4468<br />
　　parent ppid = 4379<br />
　　child process exited with status 0 <br />
　　[root@localhost src]# <br />
　　如果将上面&#8220;waitpid( childpid, &amp;status, 0 );&#8221;行注释掉，程序执行效果如下：<br />
　　[root@localhost src]# ./a.out <br />
　　In child process<br />
　　in parent<br />
　　parent pid = 4481<br />
　　parent ppid = 4379<br />
　　child process exited with status 1331234400 <br />
　　[root@localhost src]# child pid = 4482<br />
　　child ppid = 1<br />
　　子进程还没有退出，父进程已经退出了。
<img src ="http://www.blogjava.net/fhtdy2004/aggbug/285514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fhtdy2004/" target="_blank">Frank_Fang</a> 2009-07-05 00:01 <a href="http://www.blogjava.net/fhtdy2004/archive/2009/07/05/285514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>word 快捷键</title><link>http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html</link><dc:creator>helloworld2008</dc:creator><author>helloworld2008</author><pubDate>Sat, 04 Jul 2009 15:47:00 GMT</pubDate><guid>http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html</guid><wfw:comment>http://www.blogjava.net/zhaochengming/comments/285512.html</wfw:comment><comments>http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhaochengming/comments/commentRss/285512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhaochengming/services/trackbacks/285512.html</trackback:ping><description><![CDATA[<p>常用快捷键<br />
快捷键　　　　　　　　　 作用<br />
Ctrl+Shift+Spacebar　　 创建不间断空格<br />
Ctrl+ -(连字符)　　　　　创建不间断连字符<br />
Ctrl+B　　　　　　　　　 使字符变为粗体<br />
Ctrl+I　　　　　　　　　 使字符变为斜体<br />
Ctrl+U　　　　　　　　　 为字符添加下划线<br />
Ctrl+Shift+　　　　　　　缩小字号<br />
Ctrl+Shift+&gt;　　　　　　 增大字号<br />
Ctrl+Q　　　　　　　　　　删除段落格式<br />
Ctrl+Spacebar　　　　　　删除字符格式<br />
Ctrl+C　　　　　　　　　 复制所选文本或对象<br />
Ctrl+X　　　　　　　　　 剪切所选文本或对象<br />
Ctrl+V　　　　　　　　　 粘贴文本或对象<br />
Ctrl+Z　　　　　　　　　 撤消上一操作<br />
Ctrl+Y　　　　　　　　　 重复上一操作</p>
<p>快捷键大全<br />
1.用于设置字符格式和段落格式的快捷键<br />
快捷键　　　　　　　　　 作用<br />
Ctrl+Shift+F　　　　　　改变字体<br />
Ctrl+Shift+P　　　　　　改变字号<br />
Ctrl+Shift+&gt;　　　　　　增大字号<br />
Ctrl+Shift+&lt;　　　　　　减小字号<br />
Ctrl+]　　　　　　　　　逐磅增大字号<br />
Ctrl+[　　　　　　　　　逐磅减小字号<br />
Ctrl+D　　　　　　　　　改变字符格式（"格式"菜单中的"字体"命令）<br />
Shift+F3　　　　　　　　切换字母大小写<br />
Ctrl+Shift+A　　　　　　将所选字母设为大写<br />
Ctrl+B　　　　　　　　　应用加粗格式<br />
Ctrl+U　　　　　　　　　应用下划线格式<br />
Ctrl+Shift+W　　　　　　只给字、词加下划线，不给空格加下划线<br />
Ctrl+Shift+H　　　　　　应用隐藏文字格式<br />
Ctrl+I　　　　　　　　　应用倾斜格式<br />
Ctrl+Shift+K　　　　　　将字母变为小型大写字母<br />
Ctrl+=（等号）　　　　　应用下标格式（自动间距）<br />
Ctrl+Shift++（加号）　　应用上标格式（自动间距）<br />
Ctrl+Shift+Z　　　　　　取消人工设置的字符格式<br />
Ctrl+Shift+Q　　　　　　将所选部分设为Symbol字体<br />
Ctrl+Shift+*（星号）　　显示非打印字符<br />
Shift+F1（单击）　　　　需查看文字格式了解其格式的文字<br />
Ctrl+Shift+C　　　　　　复制格式<br />
Ctrl+Shift+V　　　　　　粘贴格式<br />
Ctrl+1　　　　　　　　　单倍行距<br />
Ctrl+2　　　　　　　　　双倍行距<br />
Ctrl+5　　　　　　　　　1.5 倍行距<br />
Ctrl+0　　　　　　　　　在段前添加一行间距<br />
Ctrl+E　　　　　　　　　段落居中<br />
Ctrl+J　　　　　　　　　两端对齐<br />
Ctrl+L　　　　　　　　　左对齐<br />
Ctrl+R　　　　　　　　　右对齐<br />
Ctrl+Shift+D　　　　　　分散对齐<br />
Ctrl+M　　　　　　　　　左侧段落缩进<br />
Ctrl+Shift+M　　　　　　取消左侧段落缩进<br />
Ctrl+T　　　　　　　　　创建悬挂缩进<br />
Ctrl+Shift+T　　　　　　减小悬挂缩进量<br />
Ctrl+Q　　　　　　　　　取消段落格式<br />
Ctrl+Shift+S　　　　　　应用样式<br />
Alt+Ctrl+K　　　　　　　启动"自动套用格式"<br />
Ctrl+Shift+N　　　　　　应用"正文"样式<br />
Alt+Ctrl+1　　　　　　　应用"标题1"样式<br />
Alt+Ctrl+2　　　　　　　应用"标题2"样式<br />
Alt+Ctrl+3　　　　　　　应用"标题3"样式<br />
Ctrl+Shift+L　　　　　　应用"列表"样式<br />
</p>
<p>2.用于编辑和移动文字及图形的快捷键<br />
◆删除文字和图形<br />
快捷键　　　　　　　　　 作用<br />
Backspace　　　　　　　 删除左侧的一个字符<br />
Ctrl+Backspace　　　　　删除左侧的一个单词<br />
Delete　　　　　　　　　删除右侧的一个字符<br />
Ctrl+Delete　　　　　　 删除右侧的一个单词<br />
Ctrl+X　　　　　　　　　将所选文字剪切到"剪贴板"<br />
Ctrl+Z　　　　　　　　　撤消上一步操作<br />
Ctrl+F3　　　　　　　　 剪切至"图文场"</p>
<p>◆复制和移动文字及图形<br />
快捷键　　　　　　　　　作用<br />
Ctrl+C　　　　　　　　　复制文字或图形<br />
F2（然后移动插入　　　　移动选取的文字或图形点并按Enter键）<br />
Alt+F3　　　　　　　　　创建"自动图文集"词条<br />
Ctrl+V　　　　　　　　　粘贴"剪贴板"的内容<br />
Ctrl+Shift+F3　　　　　粘贴"图文场"的内容<br />
Alt+Shift+R　　　　　　复制文档中上一节所使用的页眉或页脚</p>
<p>◆插入特殊字符<br />
快捷键　　　　　　　　　 插入<br />
Ctrl+F9　　　　　　　　 域<br />
Shift+Enter　　　　　　 换行符<br />
Ctrl+Enter　　　　　　　分页符<br />
Ctrl+Shift+Enter　　　　列分隔符<br />
Ctrl+ -　　　　　　　　 可选连字符<br />
Ctrl+Shift+ -　　　　　 不间断连字符<br />
Ctrl+Shift+空格　　　　 不间断空格<br />
Alt+Ctrl+C　　　　　　　版权符号<br />
Alt+Ctrl+R　　　　　　　注册商标符号<br />
Alt+Ctrl+T　　　　　　　商标符号<br />
Alt+Ctrl+.（句点）　　　省略号</p>
<p>◆选定文字和图形<br />
选定文本的方法是：按住 Shift 键并按能够移动插入点的键。<br />
快捷键　　　　　　　　　　 将选定范围扩展至<br />
Shift+&#8594;　　　　　　　　　右侧的一个字符<br />
Shift+&#8592;　　　　　　　　　左侧的一个字符<br />
Ctrl+Shift+&#8594;　　　　　　 单词结尾<br />
Ctrl+Shift+&#8592;　　　　　　 单词开始<br />
Shift+End　　　　　　　　 行尾<br />
Shift+Home　　　　　　　　行首<br />
Shift+&#8595;　　　　　　　　　下一行<br />
Shift+&#8593;　　　　　　　　　上一行<br />
Ctrl+Shift+&#8595;　　　　　　 段尾<br />
Ctrl+Shift+&#8593;　　　　　　 段首<br />
Shift+Page Down　　　　　 下一屏<br />
Shift+Page Up　　　　　　 上一屏<br />
Ctrl+Shift+Home　　　　　 文档开始处<br />
Ctrl+Shift+End　　　　　　文档结尾处<br />
Alt+Ctrl+Shift+Page Down　窗口结尾<br />
Ctrl+A　　　　　　　　　　 包含整篇文档<br />
Ctrl+Shift+F8+&#8593;或&#8595;　　　 纵向文本块(按 Esc 键取消选定模式)<br />
F8+箭头键　　　　　　　　　文档中的某个具体位置(按Esc键取消选定模式)</p>
<p>◆选定表格中的文字和图形<br />
快捷键　　　　　　　　　　　　　作用<br />
Tab键　　　　　　　　　　　　　 选定下一单元格的内容<br />
Shift+Tab　　　　　　　　　　　 选定上一单元格的内容<br />
按住Shift键并重复　　　　　　　 按某箭头键将所选内容扩展到相邻单元格<br />
Ctrl+Shift+F8然后按箭头键　　　 扩展所选内容（或块）<br />
Shift+F8　　　　　　　　　　　　缩小所选内容<br />
Alt+数字键盘上的5　　　　　　　 选定整张表格<br />
（Num Lock键需处于关闭状态）</p>
<p>◆移动插入点</p>
<p>&nbsp;<img height="633" alt="" src="http://www.blogjava.net/images/blogjava_net/zhaochengming/wordkey.jpg" width="588" border="0" /><br />
快捷键　　　　　　　　　作用<br />
&#8592;　　　　　　　　　　　左移一个字符<br />
&#8594;　　　　　　　　　　　右移一个字符<br />
Ctrl+&#8592;　　　　　　　　左移一个单词<br />
Ctrl+&#8594;　　　　　　　　右移一个单词<br />
Ctrl+&#8593;　　　　　　　　上移一段<br />
Ctrl+&#8595;　　　　　　　　下移一段<br />
Shift+Tab　　　　　　　左移一个单元格（在表格中）<br />
Tab　　　　　　　　　　右移一个单元格（在表格中）<br />
&#8593;　　　　　　　　　　 上移一行<br />
&#8595;　　　　　　　　　　 下移一行<br />
End　　　　　　　　　　移至行尾<br />
Home　　　　　　　　　 移至行首<br />
Alt+Ctrl+Page Up　　　 移至窗口顶端<br />
Alt+Ctrl+Page Down　　 移至窗口结尾<br />
Page Up　　　　　　　　上移一屏（滚动）<br />
Page Down　　　　　　　下移一屏（滚动）<br />
Ctrl+Page Down　　　　 移至下页顶端<br />
Ctrl+Page Up　　　　　 移至上页顶端<br />
Ctrl+End　　　　　　　 移至文档结尾 <br />
Ctrl+Home　　　　　　　移至文档开头<br />
Shift+F5　　　　　　　 移至前一处修订；对于刚打开的文档，移至上一次关闭文档时<br />
　　　　　　　　　　　　插入点所在位置</p>
<p>◆在表格中移动<br />
快捷键　　　　　　　　　光标移至<br />
Tab　　　　　　　　　　一行中的下一个单元格<br />
Shift+Tab　　　　　　　一行中的上一个单元格<br />
Alt+Home　　　　　　　　一行中的第一个单元格<br />
Alt+End　　　　　　　　一行中的最后一个单元格<br />
Alt+Page Up　　　　　　一列中的第一个单元格<br />
Alt+Page Down　　　　　一列中的最后一个单元格<br />
&#8593;　　　　　　　　　　　上一行 <br />
&#8595;　　　　　　　　　　　下一行</p>
<p><br />
◆在表格中插入段落和制表符<br />
快捷键　　　　　　　　在单元格中插入<br />
Enter　　　　　　　　 新段落<br />
Ctrl+Tab　　　　　　　制表符</p>
<p>3.用于处理文档的快捷键<br />
◆创建、查看和保存文档<br />
快捷键　　　　　　　　作用<br />
Ctrl+N　　　　　　　　创建与当前或最近使用过的文档类型相同的新文档<br />
Ctrl+O　　　　　　　　打开文档<br />
Ctrl+W　　　　　　　　关闭文档<br />
Alt+Ctrl+S　　　　　　拆分文档窗口<br />
Alt+Shift+C　　　　　 撤消拆分文档窗口<br />
Ctrl+S　　　　　　　　保存文档</p>
<p>◆查找、替换和浏览文本 <br />
Ctrl+F　　　　　　　　查找文字、格式和特殊项<br />
Alt+Ctrl+Y　　　　　　在关闭"查找和替换"窗口之后重复查找<br />
Ctrl+H　　　　　　　　替换文字、特殊格式和特殊项<br />
Ctrl+G　　　　　　　　定位至页、书签、脚注、表格、注释、图形或其它位置<br />
Alt+Ctrl+Z　　　　　　返回至页、书签、脚注、表格、批注、图形或其他位置<br />
Alt+Ctrl+Home　　　　 浏览文档</p>
<p>◆撤消和恢复操作<br />
Esc　　　　　　　　　取消操作<br />
Ctrl+Z　　　　　　　 撤消操作<br />
Ctrl+Y　　　　　　　 恢复或重复操作</p>
<p>◆切换至其他视图<br />
Alt+Ctrl+P　　　　　　切换到页面视图 <br />
Alt+Ctrl+O　　　　　　切换到大纲视图<br />
Alt+Ctrl+N　　　　　　切换到普通视图<br />
Ctrl+\\　　　　　　　　在主控文档和子文档之间移动</p>
<p>◆用于审阅文档的快捷键<br />
快捷键　　　　　　　　　 作用<br />
Alt+Ctrl+M　　　　　　　插入批注<br />
Ctrl+Shift+E　　　　　　打开或关闭标记修订功能<br />
Home　　　　　　　　　　定位至批注开始<br />
End　　　　　　　　　　 定位至批注结尾<br />
Ctrl+Home　　　　　　　定位至一组批注的起始处<br />
Ctrl+End　　　　　　　 定位至一组批注的结尾处<br />
4.用于处理引用、脚注和尾注的快捷键<br />
快捷键　　　　　　　　　作用 <br />
Alt+Shift+O　　　　　　标记目录项<br />
Alt+Shift+I　　　　　　标记引文目录项<br />
Alt+Shift+X　　　　　　标记索引项<br />
Alt+Ctrl+F　　　　　　 插入脚注<br />
Alt+Ctrl+E　　　　　　 插入尾注</p>
<p>5.用于处理域的快捷键<br />
快捷键　　　　　　　　 作用<br />
Alt+Shift+D　　　　　　插入Date域<br />
Alt+Ctrl+L　　　　　　 插入Listnum域<br />
Alt+Shift+P　　　　　　插入Page域<br />
Alt+Shift+T　　　　　　插入Time域<br />
Ctrl+F9　　　　　　　　插入空域<br />
Ctrl+Shift+F7　　　　 更新Word源文档中的链接信息<br />
F9　　　　　　　　　　 更新所选域<br />
Ctrl+Shift+F9　　　　 解除域的链接<br />
Shift+F9　　　　　　　在域代码和其结果之间进行切换<br />
Alt+F9　　　　　　　　在所有的域代码及其结果间进行切换<br />
Alt+Shift+F9　　　　　从显示域结果的域中运行Gotobutton 或 Macrobutton<br />
F11　　　　　　　　　 定位至下一域<br />
Shift+F11　　　　　　 定位至前一域<br />
Ctrl+F11　　　　　　　锁定域<br />
Ctrl+Shift+F11　　　　解除对域的锁定</p>
<p>6.用于处理文档大纲的快捷键<br />
Alt+Shift+&#8592;　　　　　　提升段落级别<br />
Alt+Shift+&#8594;　　　　　　降低段落级别<br />
Ctrl+Shift+N　　　　　　降级为正文<br />
Alt+Shift+&#8593;　　　　　　上移所选段落<br />
Alt+Shift+&#8595;　　　　　　下移所选段落<br />
Alt+Shift+ +　　　　　　扩展标题下的文本<br />
Alt+Shift+ -　　　　　　折叠标题下的文本<br />
Alt+Shift+A　　　　　　 扩展或折叠所有文本或标题<br />
数字键盘上的斜杠（/）　 隐藏或显示字符格式<br />
Alt+Shift+L　　　　　　只显示首行正文或显示全部正文<br />
Alt+Shift+1　　　　　　显示所有具有"标题1"样式的标题<br />
Alt+Shift+n　　　　　　显示从"标题1"到"标题n"的<br />
（指标题级别）　　　　　所有标题 </p>
<p>7.用于进行邮件合并的快捷键<br />
要使用这些按键组合，需要先建立邮件合并的主文档。<br />
快捷键　　　　　　　　 作用 <br />
Alt+Shift+K　　　　　　预览邮件合并<br />
Alt+Shift+N　　　　　　合并文档<br />
Alt+Shift+M　　　　　　打印已合并的文档<br />
Alt+Shift+E　　　　　　编辑邮件合并数据文档<br />
Alt+Shift+F　　　　　　插入合并域</p>
<p>8.用于处理 Web 页的快捷键<br />
快捷键　　　　　　作用<br />
Ctrl+K　　　　　　插入超级链接<br />
Alt+&#8592;　　　　　　返回一页<br />
Alt+&#8594;　　　　　　前进一页<br />
F9　　　　　　　　刷新</p>
<p>9.用于打印和预览文档的按键<br />
Ctrl+P　　　　　　　　　打印文档<br />
Alt+Ctrl+I　　　　　　　切换至或退出打印预览箭头键在放大的预览页上移动<br />
Page Up或Page Down　　　在缩小显示比例时逐页翻阅预览页<br />
Ctrl+Home　　　　　　　 在缩小显示比例时移至第一张预览页<br />
Ctrl+End　　　　　　　　在缩小显示比例时移至最后一张预览页<br />
10.用于Office助手的快捷键<br />
如果要完成下面大多数操作，Office 助手必须打开并且可见。<br />
快捷键　　　　　　　　　作用<br />
F1　　　　　　　　　　　获得Office助手（助手处于显示状态）的帮助<br />
Alt+F6　　　　　　　　　激活Office助手气球<br />
Alt+数字键　　　　　　　从助手显示的列表中选择帮助主题（Alt+1代表第一个主题以<br />
　　　　　　　　　　　 此类推） <br />
Alt+&#8595;　　　　　　　　　查看更多的帮助主题 <br />
Alt+&#8593;　　　　　　　　　查看前面的帮助主题<br />
Esc　　　　　　　　　　关闭助手消息或提示</p>
<p>11.用于帮助的快捷键<br />
◆在帮助窗口中工作<br />
快捷键　　　　　　　　作用<br />
Alt+O　　　　　　　　 显示"选项"菜单以访问帮助工具栏上的命令<br />
Alt+空格键　　　　　　显示程序"控制"菜单<br />
Alt+F4　　　　　　　　关闭活动的帮助窗口</p>
<p>◆在定位窗格中移动<br />
快捷键　　　　　　　　作用<br />
Ctrl+Tab　　　　　　　切换到下一选项卡<br />
Ctrl+Shift+Tab　　　　切换到前一选项卡<br />
Alt+C　　　　　　　　 切换到"目录"选项卡<br />
Alt+I　　　　　　　　 切换到"索引"选项卡<br />
Enter　　　　　　　　 打开或关闭所选书籍，或打开所选帮助主题<br />
&#8595;　　　　　　　　　　选择下一书籍或帮助主题<br />
&#8593;　　　　　　　　　　选择前一书籍或帮助主题</p>
<p>◆在主题窗格中移动<br />
快捷键　　　　　　　　作用<br />
Alt+&#8592;　　　　　　　　返回查看过的帮助主题<br />
Alt+&#8594;　　　　　　　　前往查看过的帮助主题<br />
Tab　　　　　　　　　 转到第一个或下一超级链接<br />
Shift+Tab　　　　　　转到最后或前一超级链接<br />
Enter　　　　　　　　激活所选超级链接<br />
Esc　　　　　　　　　关闭弹出的窗口<br />
&#8593;　　　　　　　　　 向帮助主题的开始处滚动 <br />
&#8595;　　　　　　　　　 向帮助主题的结尾处滚动<br />
Page Up　　　　　　　以更大的增量向帮助主题的开始处滚动<br />
Page Down　　　　　　以更大的增量向帮助主题的结尾处滚动<br />
Home　　　　　　　　 移动到帮助主题的开始<br />
End　　　　　　　　　移动到帮助主题的结尾<br />
Ctrl+P　　　　　　　打印当前帮助主题<br />
Ctrl+A　　　　　　　选定整个帮助主题<br />
Ctrl+C　　　　　　　将选定内容复制到"剪贴板"</p>
<p>12.用于菜单的快捷键<br />
快捷键　　　　　　　　作用<br />
Shift+F10　　　　　　 显示<br />
F10　　　　　　　　　　激活菜单栏 <br />
Alt+Spacebar　　　　　显示程序标题栏上的程序图标菜单<br />
&#8595;/&#8593;（如菜单　　　　 选择菜单或子菜单中的下一个<br />
或子菜单已显示）　　　或前一个命令<br />
&#8592;/&#8594;　　　　　　　　 选择左边或者右边的菜单，或者在显示子菜单时，在主菜单和<br />
　　　　　　　　　　 子菜单之间切换<br />
Home或End　　　　　　选择菜单或子菜单中第一个或者最后一个命令<br />
Alt　　　　　　　　　同时关闭显示的菜单和子菜单<br />
Esc　　　　　　　　　关闭显示的菜单。若显示子菜单时，只关闭子菜单<br />
Alt+Ctrl+ =　　　　　将工具栏按钮添至菜单。当键入此快捷键然后单击工具栏按钮<br />
　　　　　　　　　　 时，Microsoft Word会将按钮添至适当的菜单。例如，单击"格<br />
　　　　　　　　　　 式"工具栏上的"项目符号"按钮可以将"项目符号"命令添至"格式"菜单。<br />
Alt+Ctrl+ -从菜单中删除命令。当键入此快捷键（数字键盘上然后选择菜单命令时，该命令将被删的减号键）除。如果改变了主意，可以按Esc取消此快捷命令，要恢复已修改了的菜单可以通过在"工具/自　　　　　　　　　　　定义"重新设置菜单。<br />
Alt+Ctrl++为菜单命令自定义快捷键。当您键（数字小键盘入此快捷键并选择了菜单命令时，将上的加号键）会出现"自定义键盘"对话框，你可以在其中添加更改或删除快捷键<br />
13.用于窗口和对话框的快捷键<br />
◆在文档和程序窗口中移动<br />
快捷键　　　　　　　作用<br />
Alt+Tab　　　　　　 切换至下一个程序或Microsoft Word文档窗口<br />
Alt+Shift+Tab　　　 切换至上一个程序或Microsoft Word文档窗口<br />
Ctrl+Esc　　　　　　显示Microsoft Windows"开始"菜单<br />
Ctrl+W　　　　　　　关闭活动文档窗口<br />
Ctrl+F5　　　　　　 将已最大化的活动文档窗口还原<br />
Ctrl+F6　　　　　　 切换至下一个Word文档窗口<br />
Ctrl+Shift+F6　　　切换至上一个Word文档窗口<br />
Ctrl+F7，　　　　　　按箭头键在文档窗口不处于最大化状态时，并按下Enter执行"移　　　　　　　　　　　　动"命令（单击标题栏中的文档图标可显示此命令） <br />
Ctrl+F8，　　　　　　按箭头键在文档窗口不处于最大化状态时，并按下Enter执行"大　　　　　　　　　　　　小"命令（单击标题栏中的文档图标可显示此命令）<br />
Ctrl+F10　　　　　　　最大化文档窗口 </p>
<p>◆在对话框中移动<br />
快捷键　　　　　　　　　作用<br />
Ctrl+Tab　　　　　　　　切换至对话框中的下一张选项卡<br />
Ctrl+Shift+Tab　　　　　切换至对话框中的上一张选项卡<br />
Tab　　　　　　　　　　 移至下一选项或选项组<br />
Shift+Tab　　　　　　　 移至上一选项或选项组,箭头在所选列表中的选项间移动，或者在一组选项的选项间移动<br />
Spacebar　　　　　　　　执行所选按钮的指定操作；选中或清除复选框,字母在所选列表中，移动到以键入字母开始的下一选项<br />
Alt+字母　　　　　　　　选择选项，或者选中或清除包含该字母（带有下划线）的选项名称旁的复选框<br />
Alt+&#8595;（选中列表时）　　打开所选列表<br />
Esc（选中列表时）　　　关闭所选列表<br />
Enter　　　　　　　　　执行对话框中默认按钮的指定操作<br />
Esc　　　　　　　　　　取消命令并关闭对话框 </p>
<p>14.用于"打开"和"另存为"对话框的快捷键<br />
快捷键　　　　　　　 作用<br />
Ctrl+F12　　　　　　显示"打开"对话框<br />
F12　　　　　　　　　显示"另存为"对话框<br />
Alt+1　　　　　　　　转到上一文件夹（"向上一级"按钮）<br />
Alt+3　　　　　　　　关闭对话框，并打开（"搜索Web"按钮）<br />
Alt+4　　　　　　　　删除所选文件夹或文件（"删除"按钮）<br />
Alt+5　　　　　　　　在打开的文件夹中创建新子文件夹（"新建文件夹"按钮）<br />
Alt+6　　　　　　　　在"列表"、"详细资料"、"属性"和 "预览"视图之间切换（单击"视图"按钮旁边的箭头）<br />
Alt+7　　　　　　　　显示"工具"菜单（"工具"按钮）<br />
F5　　　　　　　　　 刷新"打开"或"另存为"对话框（"文件"菜单）中可见的文件</p>
<p>15.用于发送电子邮件的快捷键 <br />
在激活电子邮件标题后，可使用下列快捷键（按下 Shift+Tab可激活电子邮件标题）。<br />
Alt+S　　　　　　　　 发送当前文档或邮件<br />
Ctrl+Shift+B　　　　　打开通讯录<br />
Alt+K　　　　　　　　 检查"收件人"、"抄送"和"密件抄送"行中与通讯录不一致的名称<br />
Alt+.（句号）　　　　 在"收件人"域中打开通讯录<br />
Alt+C　　　　　　　　 在"抄送"域中打开通讯录<br />
Alt+B　　　　　　　　 在"密件抄送"域中打开通讯录<br />
Alt+J　　　　　　　　 转到"主题"域<br />
Alt+P　　　　　　　　 打开Microsoft Outlook"邮件选项"对话框（在邮件中，单击"视图"菜单中的"选项"命令可显示此对话框）。 <br />
Ctrl+Shift+G　　　　　创建邮件标志<br />
Shift+Tab　　　　　　 选择电子邮件标题的前一个域或按钮<br />
Tab　　　　　　　　　　选择电子邮件标题中的下一个框或选择邮件或文档的正文（当电子邮件标题中的最后一个框处于活动状态时）</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/zhaochengming/aggbug/285512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhaochengming/" target="_blank">helloworld2008</a> 2009-07-04 23:47 <a href="http://www.blogjava.net/zhaochengming/archive/2009/07/04/285512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>装箱问题的Java实现</title><link>http://www.blogjava.net/haosola/archive/2009/07/04/285503.html</link><dc:creator>好不容易</dc:creator><author>好不容易</author><pubDate>Sat, 04 Jul 2009 13:56:00 GMT</pubDate><guid>http://www.blogjava.net/haosola/archive/2009/07/04/285503.html</guid><wfw:comment>http://www.blogjava.net/haosola/comments/285503.html</wfw:comment><comments>http://www.blogjava.net/haosola/archive/2009/07/04/285503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haosola/comments/commentRss/285503.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haosola/services/trackbacks/285503.html</trackback:ping><description><![CDATA[　问题：
<p>&nbsp;</p>
<p>　　一个工厂制造的产品形状都是长方体，它们的高度都是h，长和宽都相等，一共有六个型号，他们的长宽分别为1*1, 2*2,3*3,4*4, 5*5, 6*6。这些产品通常使用一个6*6*h的长方体包裹包装然后邮寄给客户。因为邮费很贵，所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。</p>
<p>　　Input</p>
<p>　　输入文件包括几行，每一行代表一个订单。每个订单里的一行包括六个整数，中间用空格隔开，分别为1*1至6*6这六种产品的数量。输入文件将以6个0组成的一行结尾。</p>
<p>　　Output</p>
<p>　　除了输入的最后一行6个0以外，输入文件里每一行对应着输出文件的一行，每一行输出一个整数代表对应的订单所需的最小包裹数。</p>
<p>　　对于6*6的一个箱子来说，最多只能放一个6*6或一个5*5或4*4的盒子，所以我们初始化需要的箱子数时就是这这几种箱子的个数和，对于3*3的箱子来说，我们可以放一个或2个或3个或4个，这我们可以通过整除和取模来确定放了3*3盒子的箱子数，再把它加入到总箱子数中，接下来我们就是把1*1和2*2的盒子塞进前面所需的箱子中，当塞不完时再来新增盒子，我们首先要将前面的箱子剩余的空间统计出来，并且要以2*2的优先考虑，因为我们可以把多余的2*2的位置变为填充4个1*1的，毕竟1*1的只要有空间随处都可以塞。所以当我们的箱子要是装了1个5*5的盒子的话，那么它就只能塞1*1的了，一个可以塞11个1*1的，对于装了4*4的盒子的话，那么还可以装5个2*2的盒子，暂且不要去转话成1*1的，除非没办法只能装1*1的，对于3*3的话就可以根据取模之后一个箱子剩下的空间了，如果一个箱子中只放了一个3*3的，那么还剩下3个3*3的空间可以放，我们知道可以放5个2*2的和7个1*1的，对于放了2个3*3的箱子，我们剩下的空间可以放3个2*2的以及6个1*1的，对于放了3个3*3的箱子，我们只能放1个2*2的和5个1*1的，这样一来我们就统计出了此时可以放2*2以及1*1的空间到底有多少，接下来我们就放箱子进去啊，放一个就减一个，知道1*1的和2*2的盒子都放完了，要是还没有放完的话我们就新增箱子或者如果1*1的没放完，而2*2的还有剩，那么就将每个2*2的转化成4个1*1的就行了，具体实现就看下面的代码吧，由于时间关系，就没写注释了。</p>
<p>　　import java.io.BufferedInputStream;</p>
<p>　　import java.util.HashMap;</p>
<p>　　import java.util.Map;</p>
<p>　　import java.util.Scanner;</p>
<p>　　public class Test</p>
<p>　　public static void main(String args)</p>
<p>　　Scanner sc=new Scanner(new BufferedInputStream(System.in));</p>
<p>　　boolean flag=true;</p>
<p>　　Map map=new HashMap();</p>
<p>　　int k=0;</p>
<p>　　while(flag)</p>
<p>　　int n=new int[6];</p>
<p>　　n[0]=sc.nextInt();</p>
<p>　　n[1]=sc.nextInt();</p>
<p>　　n[2]=sc.nextInt();</p>
<p>　　n[3]=sc.nextInt();</p>
<p>　　n[4]=sc.nextInt();</p>
<p>　　n[5]=sc.nextInt();</p>
<p>　　flag=false;</p>
<p>　　else</p>
<p>　　map.put(k, n);</p>
<p>　　k++;</p>
<p>　　for(int i=0;i&lt; map.size();i++)</p>
<p>　　int vs=(int)map.get(i);</p>
<p>　　int boxNum=0;</p>
<p>　　boxNum+=vs[3]+vs[4]+vs[5];</p>
<p>　　boxNum+=vs[2]/4;</p>
<p>　　else</p>
<p>　　boxNum+=vs[2]/4+1;</p>
<p>　　int for1=vs[4]*11;</p>
<p>　　int for2=vs[3]*5;</p>
<p>　　for1+=7;</p>
<p>　　for2+=5;</p>
<p>　　for1+=6;</p>
<p>　　for2+=3;</p>
<p>　　for1+=5;</p>
<p>　　for2+=1;</p>
<p>　　vs[0]=0;</p>
<p>　　else</p>
<p>　　vs[0]=vs[0]-for1;</p>
<p>　　vs[0]=0;</p>
<p>　　else</p>
<p>　　vs[0]=vs[0]-4*(for2-vs[1]);</p>
<p>　　vs[1]=0;</p>
<p>　　else</p>
<p>　　vs[1]=vs[1]-for2;</p>
<p>　　boxNum+=vs[1]/9;</p>
<p>　　else</p>
<p>　　boxNum+=vs[1]/9+1;</p>
<p>　　boxNum+=(vs[0]-(9-(vs[1]%9))*4)/36;</p>
<p>　　else</p>
<p>　　boxNum+=(vs[0]-(9-(vs[1]%9))*4)/36+1;</p>
<p>　　boxNum+=vs[0]/36;</p>
<p>　　else</p>
<p>　　boxNum+=vs[0]/36+1;</p>
<p>　　System.out.println(boxNum);</p>
<a href="http://www.stocksohu.cn">www.stocksohu.cn</a>&nbsp;<a href="http://www.stock117.cn">www.stock117.cn</a><br />
<img src ="http://www.blogjava.net/haosola/aggbug/285503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haosola/" target="_blank">好不容易</a> 2009-07-04 21:56 <a href="http://www.blogjava.net/haosola/archive/2009/07/04/285503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java声音技术简析</title><link>http://www.blogjava.net/haosola/archive/2009/07/04/285502.html</link><dc:creator>好不容易</dc:creator><author>好不容易</author><pubDate>Sat, 04 Jul 2009 13:53:00 GMT</pubDate><guid>http://www.blogjava.net/haosola/archive/2009/07/04/285502.html</guid><wfw:comment>http://www.blogjava.net/haosola/comments/285502.html</wfw:comment><comments>http://www.blogjava.net/haosola/archive/2009/07/04/285502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haosola/comments/commentRss/285502.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haosola/services/trackbacks/285502.html</trackback:ping><description><![CDATA[<p>　<strong>一 在t中播放声音</strong> </p>
<p>　　播放声音是java对多媒体的支持一个重要部分.现今流行的声音格式有wav,mid,au为扩展名的声音文件。而java现主要支持以au为名的声音。在t中专门提供了类AudioClip来对声音的支持。</p>
<p>　　由于t的多媒体功能书上都有很清晰的介绍也很简单。我们就以一个例子来结束这部分的说明。</p>
<p>　　import java.t.*;</p>
<p>　　public class sounda extends t</p>
<p>　　public static void main (String args)</p>
<p>　　AudioClip ac = getAudioClip(getCodeBase(), "sloop.au");</p>
<p>　　ac.play();</p>
<p>　　// ac.loop();</p>
<p>　　// ac.stop();</p>
<p>　　上面例子只是很简单的说明，AudioClip是java中播放类。java中提供了两个很有用的方法getCodeBase()，getDocumentBase()他们分别返回t本身和包含此t主页的URL地址.上面的sloop.au即我机器上的声音文件。我们在此直接使用了AudioClip的play方法来播放声音。大家可测试用t的图像功能加入按钮。</p>
<p>　　<strong>二 java应用程序中的声音播放</strong></p>
<p>　　由于在应用程序并不支持AudioClip类。所以播放声音文件成了一大难题。制做自己的java播放器或应用媒体方面的java应用程序我们就不能支持声音了吗?不是的，sun公司为应用程序中的声音支持另提供了一个java新包。sun.audio在这个包下面提供了大部分所需要的声音处理类。注：sun包下面还有很多很有意思的技术支持，如java2D,Tools等，大家可自己尝试去使用。</p>
<p>　　下面我们就来做个自己的声音播放测试</p>
<p>　　import sun.audio.*;</p>
<p>　　import java.io.*;</p>
<p>　　public class Sound</p>
<p>　　public static voie main(String args)</p>
<p>　　try</p>
<p>　　FileInputStream fileau=new</p>
<p>　　FileInputStream("sloop.au");</p>
<p>　　AudioStream as=new AudioStream(fileau);</p>
<p>　　AudioPlayer.player.start(as);</p>
<p>　　catch (Exception e)</p>
<p>　　注：上面两例都没有提供相应的stop方法，本文章指在方法的尝试，并非全面文章，但上面的例子都是可用的。</p>
<p>　　<strong>三 javaX中Sound包的应用</strong></p>
<p>　　当我在进行上面的测试过程中，我发现javaX目录下也提供了一个sound包对java声音的强大支持，并且在sun网站的jjse上可下载到相关的大量例子程序.<a href="http://www.haokan118.cn">www.haokan118.cn</a>&nbsp;<a href="http://www.haokan120.cn">www.haokan120.cn</a><br />
</p>
<img src ="http://www.blogjava.net/haosola/aggbug/285502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haosola/" target="_blank">好不容易</a> 2009-07-04 21:53 <a href="http://www.blogjava.net/haosola/archive/2009/07/04/285502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql5.1+tomcat6连接池遇到的问题及解决方法</title><link>http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html</link><dc:creator>田园风光</dc:creator><author>田园风光</author><pubDate>Sat, 04 Jul 2009 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html</guid><wfw:comment>http://www.blogjava.net/fjshenhq/comments/285498.html</wfw:comment><comments>http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fjshenhq/comments/commentRss/285498.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fjshenhq/services/trackbacks/285498.html</trackback:ping><description><![CDATA[<p>一、在项目中的配置：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .在WebRoot/META-INF下建context.xml文件，注意必须在该目录下：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" encoding="UTF-8"?&gt;<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;&lt;Context reloadable="true" crossContext="true"&gt;<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;&lt;Resource <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; name="jdbc/项目名" --------------------------------------------必须为项目名，否则会有异常<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; auth="Container"--------------------------------------------------该项为不变项<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; type="javax.sql.DataSource"---------------------------------------该项为不变项<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; driverClassName="com.mysql.jdbc.Driver"-------------------------数据库驱动名<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; url="jdbc:mysql://localhost:3306/haotian?autoReconnect=true"-------url<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; username="root"-----------------------------------------------------用户名<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; password="root"-----------------------------------------------------密码<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; maxActive="10"&nbsp;&nbsp; ----------------------------------------------------最大连接数 <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; maxIdle="5"&nbsp;&nbsp;&nbsp;&nbsp; -------------------------------------------------------最大空闲连接数<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;maxWait="-1"/&gt;&nbsp;&nbsp; -------------------------------------------------最大等待毫秒数，-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; &lt;/Context&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在Tomcat6.0以后就不需要在web.xml中配置了：<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;&lt;resource-ref&gt;<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; &lt;description&gt;DB Connection&lt;/description&gt;<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;&lt;res-ref-name&gt;jdbc/blog&lt;/res-ref-name&gt;<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;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<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; &lt;res-auth&gt;Container&lt;/res-auth&gt;<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;&lt;/resource-ref&gt;<br />
<br />
<br />
二、配置过程中遇到的异常及解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解决方法：连接池的名字是name="jdbc/项目名"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解决方法：必须把mysql的驱动包，拷贝到tomcat/lib目录下<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; (3)javax.naming.NameNotFoundException: Name&nbsp;jdbc is not bound in this Context<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个异常可能是使用tomcat6版本以下，需要在项目的web.xml配置：<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; &lt;resource-ref&gt;<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; &lt;description&gt;DB Connection&lt;/description&gt;<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;&lt;res-ref-name&gt;jdbc/blog&lt;/res-ref-name&gt;<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;&lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<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; &lt;res-auth&gt;Container&lt;/res-auth&gt;<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;&lt;/resource-ref&gt;<br />
<br />
以上是个人在开发过程中遇到的异常，在参考网友提供解决及个人实践总结所得。<br />
</p>
 <img src ="http://www.blogjava.net/fjshenhq/aggbug/285498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fjshenhq/" target="_blank">田园风光</a> 2009-07-04 21:24 <a href="http://www.blogjava.net/fjshenhq/archive/2009/07/04/285498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>this关键字</title><link>http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html</link><dc:creator>改变，成就梦想!</dc:creator><author>改变，成就梦想!</author><pubDate>Sat, 04 Jul 2009 10:47:00 GMT</pubDate><guid>http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html</guid><wfw:comment>http://www.blogjava.net/zhikai51/comments/285491.html</wfw:comment><comments>http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhikai51/comments/commentRss/285491.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhikai51/services/trackbacks/285491.html</trackback:ping><description><![CDATA[<strong>一、this关键字的使用：</strong><br />
1、this在java中表示出以下的概念：<br />
&nbsp;&nbsp;&nbsp; <span style="color: red">1)、调用类中的属性：this.属性<br />
&nbsp;&nbsp;&nbsp;&nbsp;2)、调用类中的方法：this.方法()<br />
&nbsp;&nbsp;&nbsp;&nbsp;3)、调用类中的构造方法：this()<br />
&nbsp;&nbsp;&nbsp;&nbsp;4)、表示当前对象：this </span>
<p><strong>二、记住以下两点：(重点)</strong><br />
1、所有的构造方法应该是对象操作前最早调用的，所以使用this调用构造方法的时候所有的代码必须放在构造方法的首行。</p>
<p>2、在使用this调用构造方法时候至少有一个构造方法是没有使用this()调用的，而此构造方法将做为调用的出口，一般这个出口都会使用无参构造完成。</p>
<p><strong>三、this有一个最重要的概念----当前对象，当前正在调用类中方法的对象，叫做当前对象。</strong></p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/zhikai51/aggbug/285491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhikai51/" target="_blank">改变，成就梦想!</a> 2009-07-04 18:47 <a href="http://www.blogjava.net/zhikai51/archive/2009/07/04/285491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程讲解</title><link>http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html</link><dc:creator>改变，成就梦想!</dc:creator><author>改变，成就梦想!</author><pubDate>Sat, 04 Jul 2009 10:42:00 GMT</pubDate><guid>http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html</guid><wfw:comment>http://www.blogjava.net/zhikai51/comments/285490.html</wfw:comment><comments>http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhikai51/comments/commentRss/285490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhikai51/services/trackbacks/285490.html</trackback:ping><description><![CDATA[<strong>一、线程：</strong><br />
1、线程的基本概念：<strong>线程是一个程序里面不同的执行路径</strong>。(或<strong>线程是一个程序内部的顺序控制</strong>流。)<br />
2、main()方法叫主线程(主分支--&gt;一个分支就是一个线程)。<br />
3、进程：<br />
&nbsp;&nbsp;&nbsp; 进程是一个静态的概念。<br />
4、在同一时间，一个CPU只能支持一个线程在执行。<br />
5、Java的线程是通过java.lang.Thread类来实现的。<br />
6、可以通过创建一个Thread的实例来创建新的线程。<br />
7、可以通过Thread类的Start()方法来启动线程。<br />
<p><br />
<strong>二、创建线程的两种方式</strong>：<br />
1、使用<span style="color: red">实现Runnable接口</span>方式(<span style="background-color: yellow">建议能使用接口时便使用接口方式</span>）<br />
2、使用<span style="color: red">继承Thread类</span>方式（<span style="background-color: yellow">继承方式是死的</span>）<br />
&nbsp;&nbsp;&nbsp;&nbsp; sleep()方法--&gt;&gt;Thread类的静态方法<br />
3、线程的优先级是用数字表示，范围从1到10，一个线程的缺省优先级是5。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 可使用下述方法获得或设置线程对象的优先级：<br />
&nbsp;&nbsp;&nbsp;&nbsp; int getPriority();<br />
&nbsp;&nbsp;&nbsp;&nbsp; void setPriority(int newPriority);</p>
<img src ="http://www.blogjava.net/zhikai51/aggbug/285490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhikai51/" target="_blank">改变，成就梦想!</a> 2009-07-04 18:42 <a href="http://www.blogjava.net/zhikai51/archive/2009/07/04/285490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由一道编程题想到的........</title><link>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html</link><dc:creator>石头@</dc:creator><author>石头@</author><pubDate>Sat, 04 Jul 2009 10:38:00 GMT</pubDate><guid>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html</guid><wfw:comment>http://www.blogjava.net/shiliqiang/comments/285489.html</wfw:comment><comments>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shiliqiang/comments/commentRss/285489.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shiliqiang/services/trackbacks/285489.html</trackback:ping><description><![CDATA[&nbsp; 细节决定成败！<br />
<br />
今天一起的一个好同学给我发过来个编程题（有304瓶啤酒 每喝3瓶就可以拿这3个空瓶去换一瓶啤酒&nbsp; 一共可以喝多少瓶啤酒 ） 题目不难， 我写了个思路给他看（他说和他的一样）， 他问我结果， 我想这个做法对了结果应该正确。结果我的结果和人家的结果不一样，原因是没有加上原来的基数。<br />
<br />
&nbsp; 细节决定成败！ 尤其对做技术的人而言，希望能吸取其中的经验，在自己以后的道路上尽量不要再犯这样的错误了！<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/shiliqiang/aggbug/285489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shiliqiang/" target="_blank">石头@</a> 2009-07-04 18:38 <a href="http://www.blogjava.net/shiliqiang/archive/2009/07/04/285489.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>爱有时要学会放弃</title><link>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html</link><dc:creator>石头@</dc:creator><author>石头@</author><pubDate>Sat, 04 Jul 2009 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html</guid><wfw:comment>http://www.blogjava.net/shiliqiang/comments/285483.html</wfw:comment><comments>http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shiliqiang/comments/commentRss/285483.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shiliqiang/services/trackbacks/285483.html</trackback:ping><description><![CDATA[一只孤独的刺猬常常独自来到河边散步。杨柳在微风中轻轻摇曳，柳絮纷纷扬扬地飘洒下来，这时候，年青的刺猬会停下来，望着水中柳树的倒影，望着水草里自己的影子，默默地出神。一条鱼静静地游过来，游到了刺猬的心中，揉碎了水草里的梦。&#8220;为什么你总是那么忧郁呢？&#8221;鱼默默地问刺猬。 &#8220;我忧郁吗？&#8221;刺猬轻轻地笑了。 鱼温柔地注视着刺猬，默默地抚摸着鱼的忧伤，轻轻地说：&#8220;让我来温暖你的心。&#8221; 上帝啊，鱼和刺猬相爱了！ 上帝说，你见过鱼和刺猬的爱情吗？ 刺猬说：&#8220;我要把身上的刺一根根拔掉，我不想在我们拥抱的时候刺痛你。&#8221; 鱼说：&#8220;不要啊，我怎么忍心看你那一滴滴流淌下来的鲜血？那血是从我心上淌出来的。&#8221; 刺猬说：&#8220;因为我爱你！爱是不需要理由的。&#8221; 鱼说：&#8220;可是，你拔掉了刺就不是你了。我只想要给你以快乐&#8230;&#8230;&#8221; 刺猬说：&#8220;我宁愿为你一点点撕碎自己&#8230;&#8230;&#8221; 刺猬在一点点拔自己身上的刺，每拔一下都是一阵揪心的疼，每一次的疼都在鱼的心上。鱼渴望和刺猬作一次深情的相拥，它一次次地腾越而起，每一次的纵身是为了每一次的梦想，每一次的梦想是每一次跌碎的痛苦。 鱼对上帝说：&#8220;如何能让我有一双脚，我要走到爱人的身旁？&#8221; 上帝说：&#8220;孩子，请原谅我的无能为力，因为你本来就是没有脚的。&#8221; 鱼说：&#8220;难道我的爱错了？&#8221; 上帝说：&#8220;爱永远没有错。&#8221; 鱼说：&#8220;要如何做才能给我的爱人以幸福？&#8221; 上帝说：&#8220;请转身！&#8221; 鱼毅然游走了，在辽阔的水域下，鱼闪闪的鳞片渐渐消失在刺猬的眼睛里。 刺猬说：&#8220;上帝啊，鱼有眼泪吗？&#8221;上帝说：&#8220;鱼的眼泪流在水里。&#8221; 上帝啊，爱是什么？ 上帝说，<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;"爱有时候需要学会放弃"。 
<img src ="http://www.blogjava.net/shiliqiang/aggbug/285483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shiliqiang/" target="_blank">石头@</a> 2009-07-04 17:30 <a href="http://www.blogjava.net/shiliqiang/archive/2009/07/04/285483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dom4j创建解析xml</title><link>http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html</link><dc:creator>胡娟</dc:creator><author>胡娟</author><pubDate>Sat, 04 Jul 2009 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html</guid><wfw:comment>http://www.blogjava.net/hujuan/comments/285478.html</wfw:comment><comments>http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hujuan/comments/commentRss/285478.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hujuan/services/trackbacks/285478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 所需要的jar包                        &nbsp;                                                                                                            Normal            0   ...&nbsp;&nbsp;<a href='http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html'>阅读全文</a><img src ="http://www.blogjava.net/hujuan/aggbug/285478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hujuan/" target="_blank">胡娟</a> 2009-07-04 16:55 <a href="http://www.blogjava.net/hujuan/archive/2009/07/04/dom4jxml.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google Maps Data API </title><link>http://www.blogjava.net/sterning/archive/2009/07/04/285475.html</link><dc:creator>诗特林</dc:creator><author>诗特林</author><pubDate>Sat, 04 Jul 2009 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/sterning/archive/2009/07/04/285475.html</guid><wfw:comment>http://www.blogjava.net/sterning/comments/285475.html</wfw:comment><comments>http://www.blogjava.net/sterning/archive/2009/07/04/285475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sterning/comments/commentRss/285475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sterning/services/trackbacks/285475.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sterning/archive/2009/07/04/285475.html'>阅读全文</a><img src ="http://www.blogjava.net/sterning/aggbug/285475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sterning/" target="_blank">诗特林</a> 2009-07-04 16:50 <a href="http://www.blogjava.net/sterning/archive/2009/07/04/285475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不刻盘运行Knoppix（完整版）</title><link>http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Sat, 04 Jul 2009 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/285465.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/285465.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/285465.html</trackback:ping><description><![CDATA[<ol>
    <li>用虚拟光驱软件（如DAEMON Tools等）加载下载的光盘映像，然后进入虚拟成的光盘，将KNOPPIX目录拷贝到FAT32分区上，如E:\KNOPPIX；</li>
    <li>进入Knoppix光盘的&#8220;boot\isolinux&#8221;目录，将linux24和minirt24.gz拷贝到E盘根目录下（若您使用2.6.x内核，请拷贝linux26和minirt26.gz），然后将loadlin.exe放到E盘根目录下；</li>
    <li>在E盘根目录下建立一个批处理文件，例如knoppix.bat，其内容内容如下：<br />
    loadlin linux24 root=/dev/hda6 ramdisk_size=100000 init=/etc/init lang=cn apm=power-off vga=791 initrd=minirt24.gz nomce quiet BOOT_IMAGE=knoppix myconfig=scan<br />
    其中/dev/hda6是Knoppix所在的FAT32分区。Knoppix将主分区当做/dev/hda1，第一个从分区为/dev/hda5，第二个从分区为/dev/hda6，依次类推，因此E盘是/dev/hda6。如果是第一次使用，可以去掉myconfig这个参数；</li>
    <li>用vfloppy虚拟软驱进入dos界面；</li>
    <li>进入你放置Knoppix的分区（注意：在使用vfloppy时，dos界面中输入B:表示进入C盘，输入C:表示进入D盘，以此类推），输入knoppix.bat，就可进入Knoppix。</li>
</ol>
<p>此方法适用于Knoppix 3.4以上版本。</p>
<p>注意：如果上述文件未放在盘符的根目录下，可能会出现以下错误：<br />
1.Can't find KNOPPIX filesystem,sorry.<br />
Dropping you to a (very limited) shell.<br />
Press reset button to quit.</p>
<p>Additional builtin commands avaliable:<br />
cat mount umount <br />
insmod rmmod lsmod</p>
<p>2.looking for CDROM in /dev/scd0</p>
<p>需要用到的工具：<br />
<a href="/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/loadlin.rar">/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/loadlin.rar<br />
</a><a href="/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/VFloppy_PConline.rar">/Files/DreamAngel/linux/不刻盘运行Knoppix（完整版）/VFloppy_PConline.rar</a></p>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/285465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-07-04 15:38 <a href="http://www.blogjava.net/DreamAngel/archive/2009/07/04/285465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2.1.6 struts.xml 配置</title><link>http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html</link><dc:creator>scorpion剌客</dc:creator><author>scorpion剌客</author><pubDate>Sat, 04 Jul 2009 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html</guid><wfw:comment>http://www.blogjava.net/xiangjava/comments/285461.html</wfw:comment><comments>http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiangjava/comments/commentRss/285461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiangjava/services/trackbacks/285461.html</trackback:ping><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: #008080;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #0000ff;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE&nbsp;struts&nbsp;PUBLIC<br />
</span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.1//EN"<br />
</span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;"http://struts.apache.org/dtds/struts-2.1.dtd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">struts</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;配置struts.properties的key&nbsp;跟&nbsp;value&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">constant&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;scope</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;static</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;optional</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">include&nbsp;</span><span style="color: #ff0000;">file</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;package元素是Struts配置文件的核心，该元素可以出现0次，或者无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">package&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="必填的包名"</span><span style="color: #ff0000;">&nbsp;extends</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;namespace</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;abstract</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;externalReferenceResolver</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素可以出现，也可以不出现，最多出现一次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result-types</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result-type&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;default</span><span style="color: #0000ff;">="true|false"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result-type</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result-types</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptors</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素的&nbsp;interceptors元素和interceptors-stack至少出现其中之一，也可以二者都出现</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor-stack&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor-stack</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptors</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">default-interceptor-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">default-interceptor-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">default-action-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">default-action-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">global-results</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该字符串内容可以出现0次或多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;映射资源<br />
</span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">global-results</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">global-exception-mappings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;该元素必须出现，可以出现无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">exception-mapping&nbsp;</span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;exception</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常处理资源<br />
</span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">exception-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">global-exception-mappings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;method</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;converter</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;映射资源<br />
</span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">interceptor-ref&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">interceptor-ref</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">exception-mapping&nbsp;</span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;exception</span><span style="color: #0000ff;">=""</span><span style="color: #ff0000;">&nbsp;name</span><span style="color: #0000ff;">=""</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">100</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常处理资源<br />
</span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;下面元素可以出现0次，也可以无限多次&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">102</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="参数名"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">参数值</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">103</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">exception-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">104</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">action</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">package</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">106</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">struts</span><span style="color: #0000ff;">&gt;</span></div>
<img src ="http://www.blogjava.net/xiangjava/aggbug/285461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiangjava/" target="_blank">scorpion剌客</a> 2009-07-04 15:01 <a href="http://www.blogjava.net/xiangjava/archive/2009/07/04/285461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2.1.6 struts.properties 配置</title><link>http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html</link><dc:creator>scorpion剌客</dc:creator><author>scorpion剌客</author><pubDate>Sat, 04 Jul 2009 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html</guid><wfw:comment>http://www.blogjava.net/xiangjava/comments/285460.html</wfw:comment><comments>http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiangjava/comments/commentRss/285460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiangjava/services/trackbacks/285460.html</trackback:ping><description><![CDATA[<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;1</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.properties这是一个标准的Properties文件，</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">前面字符串是key<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;2</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;每个key就是一个Struts2属性，</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">后面对应的value就是一个Struts2属性值<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;3</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.properties文件通常放在项目里的WEB</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">INF</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">classes路径下。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;4</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;也可也放在CLASSPATH路径下，Struts2框架就可以加载该文件<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;5</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;以下这些元素同样可以在Struts2的struts.xml中通过constant配置<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;6</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;7</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定加载Struts&nbsp;2配置文件的配置文件管理器<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;8</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;该属性的默认值是org.apache.Struts2.config.DefaultConfiguration，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;9</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;这是Struts&nbsp;2默认的配置文件管理器。如果需要实现自己的配置管理器，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;10</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;开发者则可以实现一个实现Configuration接口的<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;11</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;类，该类可以自己加载Struts&nbsp;2配置文件。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;12</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.configuration&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;org.apache.struts2.config.DefaultConfiguration<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;13</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;14</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Web应用的默认Locale<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;15</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.locale</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">en_US<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;16</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;17</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Web应用的默认编码集。该属性对于处理中文请求参数非常有用，对于获取<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;18</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;中文请求参数值，应该将该属性值设置为GBK或者GB2312<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;19</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.i18n.encoding</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">UTF</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">8</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;20</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;21</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Struts&nbsp;2默认的ObjectFactory&nbsp;Bean<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;22</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;另外，你也可以提供一个com.opensymphony.xwork2.ObjectFactory子类名称<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;23</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;默认指定spring<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;24</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">spring<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;25</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;26</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Spring框架的自动装配模式，该属性的默认值是name，即默认根据Bean的<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;27</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;name属性自动装配&nbsp;。有效值为：name,&nbsp;type,&nbsp;auto,&nbsp;constructor<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;28</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory.spring.autoWire&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;name<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;29</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;30</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定整合Spring框架时,是否缓存Bean实例<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;31</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;有效值为:</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">&nbsp;(默认值是true)&nbsp;通常不建议修改该属性值。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;32</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory.spring.useClassCache&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;33</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;34</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;确保spring的自动装配策略总是被考虑的<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;35</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;有效值为:</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);">&nbsp;(黑认值是false)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;36</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.objectFactory.spring.autoWire.alwaysRespect&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;37</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;38</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.objectTypeDeterminer指定Struts2的类型检测机制，通常支持<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;39</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;tiger和notiger两个值<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;40</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.objectTypeDeterminer&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">tiger<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;41</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.objectTypeDeterminer&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;notiger&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;42</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;43</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定处理multipart</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">form</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">data的MIME类型（文件上传）请求的框架，该属性<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;44</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;支持cos、pell和jakarta等属性值，即分别对应使用cos的文件上传框架、<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;45</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;pell上传及common</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">fileupload文件上传框架。该属性的默认值为jakarta。<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;46</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.multipart.parser</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">cos<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;47</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.multipart.parser</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">pell<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;48</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.multipart.parser</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">jakarta<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;49</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;50</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;struts.multipart.saveDir该属性指定上传文件的临时保存路<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;51</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;径，默认值是javax.servlet.context.tempdir<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;52</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.multipart.saveDir</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;53</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;54</span>&nbsp;<span style="color: rgb(0, 0, 0);">##指定文件上传中整个请求内容允许的最大字节数（&nbsp;默认2097152）<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;55</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.multipart.maxSize</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">2097152</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;56</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;57</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;加载自定义属性文件(不会覆盖struts.properties)加载多个以E文逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;58</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.custom.properties</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">application,org</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">apache</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">struts2</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">extension</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">custom<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;59</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;60</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定将HTTP请求映射到指定Action的映射器,默认映射器根据请求的前缀与<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;61</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;Action的name属性完成映射<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;62</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.mapper.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.struts2.dispatcher.mapper.DefaultActionMapper<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;63</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;64</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定需要处理的请求后缀，默认是action，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;65</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;即所有匹配</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">.action的请求都由Struts2处理。需要指定多个后缀以E文逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;66</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.action.extension</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">action,,<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;67</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;68</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否通过JAR文件提供静态内容服务<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;69</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.serve.</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;70</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;71</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置浏览器是否缓存静态容，当应用处于开发阶段时，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;72</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;我们希望每次请求都获得服务器的最新响应，则可以设置为false<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;73</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.serve.</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">.browserCache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;74</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;75</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否支持动态方法调用，如果需要关闭动态方法调用，则可以设置为false<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;76</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.enable.DynamicMethodInvocation&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;77</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;78</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;该属性设置是否允许在Action名中使用斜线，默认不使用<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;79</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.enable.SlashesInActionNames&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;80</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;81</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否允许在标签中使用表达语法<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;82</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.tag.altSyntax</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;83</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;84</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置Struts2应用是否使用开发模式。如果设置该属性为true，<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;85</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;则可以在应用出错时显示更多详细的错误信息<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;86</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.devMode&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;87</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;88</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置是否每次HTTP请求到达时，系统都重新加载资源文件。在开发阶段设置<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;89</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;true更有得于开发&nbsp;产品发布时为false<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;90</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.i18n.reload</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;91</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;92</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定视图标签的视图主题<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;93</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ui.theme</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">xhtml<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;94</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;95</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定视图主题所需要模板文件的位置，默认值为template&nbsp;即默认加载<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;96</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;template路经下的模板文件<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;97</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ui.templateDir</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">template<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;98</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;99</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定模板文件的后缀，允许使用ftl,&nbsp;vm&nbsp;或&nbsp;jsp&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">100</span>&nbsp;<span style="color: rgb(0, 0, 0);">###（分别对应FreeMarker,&nbsp;Velocity,&nbsp;JSP）默认值为ftl<br />
</span><span style="color: rgb(0, 128, 128);">101</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ui.templateSuffix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">ftl<br />
</span><span style="color: rgb(0, 128, 128);">102</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">103</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置当struts.xml文件改变后，系统是否自动重新加载该文件<br />
</span><span style="color: rgb(0, 128, 128);">104</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.configuration.xml.reload</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">105</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">106</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Velocite框架所需的velocity.properties文件的位置<br />
</span><span style="color: rgb(0, 128, 128);">107</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.velocity.configfile&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;velocity.properties<br />
</span><span style="color: rgb(0, 128, 128);">108</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">109</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Velocity框架的Context位置，如果该框架有多个Context，则以E文逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">110</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.velocity.contexts&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">111</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">112</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Velocity框架的toolbox位置。<br />
</span><span style="color: rgb(0, 128, 128);">113</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.velocity.toolboxlocation</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">114</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">115</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定web应用所在的监听端口。通常没有太大的用户，只是当Struts2需要生成<br />
</span><span style="color: rgb(0, 128, 128);">116</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;URL时（例如Url标签）该属性才提供web应用的默认端口<br />
</span><span style="color: rgb(0, 128, 128);">117</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.url.http.port&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">80</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">118</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">119</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;类似于struts.url.http.port&nbsp;属性，区别是该属性指定是web应用的加密服务端口<br />
</span><span style="color: rgb(0, 128, 128);">120</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.url.https.port&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">443</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">121</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">122</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Struts2生成URL时是否包含请求参数。none,&nbsp;get,&nbsp;all&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">123</span>&nbsp;<span style="color: rgb(0, 0, 0);">###（不包含，仅包含GET类型请求参数，包含全部请求参数）<br />
</span><span style="color: rgb(0, 128, 128);">124</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.url.includeParams&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;get<br />
</span><span style="color: rgb(0, 128, 128);">125</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">126</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定应用所需要的国际化资源文件，多个文件以E文&nbsp;逗号隔开<br />
</span><span style="color: rgb(0, 128, 128);">127</span>&nbsp;<span style="color: rgb(0, 0, 0);">#&nbsp;struts.custom.i18n.resources</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">testmessages,testmessages2<br />
</span><span style="color: rgb(0, 128, 128);">128</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">129</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;对于某些JavaEE服务器，不支持HttpServletRequest调用getParameterMap()方法，<br />
</span><span style="color: rgb(0, 128, 128);">130</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;此时可以设置属性值为true来解决该问题对于&nbsp;WebLogic,&nbsp;Orion,&nbsp;和&nbsp;OC4J&nbsp;通常应该<br />
</span><span style="color: rgb(0, 128, 128);">131</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;设置该属性为true<br />
</span><span style="color: rgb(0, 128, 128);">132</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.dispatcher.parametersWorkaround&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">133</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">134</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定Struts&nbsp;2使用的FreeMarker管理器。该属性的默认<br />
</span><span style="color: rgb(0, 128, 128);">135</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;值是&nbsp;org.apache.struts2.views.freemarker.FreemarkerManager，<br />
</span><span style="color: rgb(0, 128, 128);">136</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;这是Struts&nbsp;2内建的FreeMarker管理器<br />
</span><span style="color: rgb(0, 128, 128);">137</span>&nbsp;<span style="color: rgb(0, 0, 0);">#struts.freemarker.manager.classname</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.struts2.views.freemarker.FreemarkerManager<br />
</span><span style="color: rgb(0, 128, 128);">138</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">139</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定是否启用缓存FreeMarker模板<br />
</span><span style="color: rgb(0, 128, 128);">140</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;具有相同的效果复制的模板下WEB_APP&nbsp;</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">模板<br />
</span><span style="color: rgb(0, 128, 128);">141</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.templatesCache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">142</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">143</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;是否使用缓存模型BeanWrapper<br />
</span><span style="color: rgb(0, 128, 128);">144</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.beanwrapperCache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">145</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">146</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;StrutsBeanWrapper&nbsp;javadocs以获取更多信息<br />
</span><span style="color: rgb(0, 128, 128);">147</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.wrapper.altMap</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">148</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">149</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;maxStrongSize&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;MruCacheStorage&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;freemarker<br />
</span><span style="color: rgb(0, 128, 128);">150</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.freemarker.mru.max.strong.size</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">100</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">151</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">152</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;指定XSLT&nbsp;Result&nbsp;是否使用样式表缓存。当应用处于开发阶段时，通常被置为true，当应用处于产品时为false<br />
</span><span style="color: rgb(0, 128, 128);">153</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.xslt.nocache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">154</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">155</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;是否总是选择的名称将之前的所有最后的斜线<br />
</span><span style="color: rgb(0, 128, 128);">156</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.mapper.alwaysSelectFullNamespace</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">157</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">158</span>&nbsp;<span style="color: rgb(0, 0, 0);">###&nbsp;是否允许静态方法访问OGNL表达式<br />
</span><span style="color: rgb(0, 128, 128);">159</span>&nbsp;<span style="color: rgb(0, 0, 0);">struts.ognl.allowStaticMethodAccess</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 255);">false</span></div>
<img src ="http://www.blogjava.net/xiangjava/aggbug/285460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiangjava/" target="_blank">scorpion剌客</a> 2009-07-04 14:59 <a href="http://www.blogjava.net/xiangjava/archive/2009/07/04/285460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让你的程序24小时都在赚钱！(转载)</title><link>http://www.blogjava.net/sterning/archive/2009/07/04/285459.html</link><dc:creator>诗特林</dc:creator><author>诗特林</author><pubDate>Sat, 04 Jul 2009 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/sterning/archive/2009/07/04/285459.html</guid><wfw:comment>http://www.blogjava.net/sterning/comments/285459.html</wfw:comment><comments>http://www.blogjava.net/sterning/archive/2009/07/04/285459.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sterning/comments/commentRss/285459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sterning/services/trackbacks/285459.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/sterning/archive/2009/07/04/285459.html'>阅读全文</a><img src ="http://www.blogjava.net/sterning/aggbug/285459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sterning/" target="_blank">诗特林</a> 2009-07-04 14:49 <a href="http://www.blogjava.net/sterning/archive/2009/07/04/285459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大话深入浅出Effective Java核心实战编程思想之——猴王的把戏</title><link>http://www.blogjava.net/heis/archive/2009/07/04/285458.html</link><dc:creator>Heis</dc:creator><author>Heis</author><pubDate>Sat, 04 Jul 2009 06:37:00 GMT</pubDate><guid>http://www.blogjava.net/heis/archive/2009/07/04/285458.html</guid><wfw:comment>http://www.blogjava.net/heis/comments/285458.html</wfw:comment><comments>http://www.blogjava.net/heis/archive/2009/07/04/285458.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/heis/comments/commentRss/285458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heis/services/trackbacks/285458.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 不知道大家还记不记得在《西游记》里的莲花洞夺宝的故事，就是猴王巧夺宝物，收复金银角大王那一章。到底这个故事给了我们什么启示呢？这故事又和Effective Java有什么联系？&nbsp;&nbsp;<a href='http://www.blogjava.net/heis/archive/2009/07/04/285458.html'>阅读全文</a><img src ="http://www.blogjava.net/heis/aggbug/285458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heis/" target="_blank">Heis</a> 2009-07-04 14:37 <a href="http://www.blogjava.net/heis/archive/2009/07/04/285458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web 开发与设计师速查手册大全（下）</title><link>http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html</link><dc:creator>隔叶黄莺</dc:creator><author>隔叶黄莺</author><pubDate>Sat, 04 Jul 2009 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html</guid><wfw:comment>http://www.blogjava.net/Unmi/comments/285457.html</wfw:comment><comments>http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Unmi/comments/commentRss/285457.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Unmi/services/trackbacks/285457.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在Web 开发与设计师速查手册大全（上）中，介绍的主要是 Web 开发者常用速查手册，本文将着重介绍 Web 前端设计者常用速查手册。其中涉及颜色速查表以及 Adobe 众多设计工具的速查手册。<br><br>Color Codes<br>RGB Hex Colour Chart<br>这张 RGB 16进制颜色速查表刚好可以打印在整张 A4 纸上，包含216种所谓的 Web 安全色。下载（PNG | PDF ）&nbsp;&nbsp;<a href='http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html'>阅读全文</a><img src ="http://www.blogjava.net/Unmi/aggbug/285457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Unmi/" target="_blank">隔叶黄莺</a> 2009-07-04 14:09 <a href="http://www.blogjava.net/Unmi/archive/2009/07/04/285457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>赌气做了一个JSF Table Component，分享源代码！</title><link>http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html</link><dc:creator>Always BaNg.</dc:creator><author>Always BaNg.</author><pubDate>Sat, 04 Jul 2009 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html</guid><wfw:comment>http://www.blogjava.net/lifesting/comments/285453.html</wfw:comment><comments>http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/lifesting/comments/commentRss/285453.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lifesting/services/trackbacks/285453.html</trackback:ping><description><![CDATA[周二，我兴匆匆去老刘那演示RichFaces的Table控件，可老刘说了，RichFaces太复杂，不适合我们，且还有不少的bug(这些我无法考证:)。于是他拿出一个使用了一堆JSP+Servelet+Bean写的一个表格，跟说我，我很怀疑JSF能做出这个东西来，你使用纯JSF做一个一样的表格组件我就相信JSF能够用在开发平台(注:我是此Eclipse开发平台的兼职架构师)上。我心里琢磨，既然你是用JSP/Servlet搞出来的，而JSF是基于Servlet的技术，怎么可能实现不了呢？ 三天做出来！我一直相信，技术在于使用技术的人，而不是技术本身。<br />
<br />
<span style="font-size: 18pt;">
<span style="color: red;"><a href="http://gefexample.googlecode.com/files/jsftry.tar.gz">下载</a></span> </span><br />
<br />
先看图吧：<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/lifesting/09/table.jpg" border="1" height="761" width="625" /><br />
<br />
再看看对应的JSF标记<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;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html&nbsp;</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/1999/xhtml"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:h</span><span style="color: #0000ff;">="http://java.sun.com/jsf/html"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:f</span><span style="color: #0000ff;">="http://java.sun.com/jsf/core"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:ui</span><span style="color: #0000ff;">="http://java.sun.com/jsf/facelets"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:cby</span><span style="color: #0000ff;">="http:/www.lifesting.com/jsf"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:composition&nbsp;</span><span style="color: #ff0000;">template</span><span style="color: #0000ff;">="/tpl.xhtml"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="pageTitle"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">表格展示</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:define</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;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="pageHeader"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">国家</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:define</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;">ui:define&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="body"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:form</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;">h:panelGrid&nbsp;</span><span style="color: #ff0000;">columns</span><span style="color: #0000ff;">="1"</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;">h:message&nbsp;</span><span style="color: #ff0000;">for</span><span style="color: #0000ff;">="mytable"</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;">h:panelGrid</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;">cby:rns&nbsp;</span><span style="color: #ff0000;">text</span><span style="color: #0000ff;">="页面设置"</span><span style="color: #ff0000;">&nbsp;tableFor</span><span style="color: #0000ff;">="mytable"</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;">cby:filter&nbsp;</span><span style="color: #ff0000;">text</span><span style="color: #0000ff;">="过滤策略"</span><span style="color: #ff0000;">&nbsp;tableFor</span><span style="color: #0000ff;">="mytable"</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;">cby:delete&nbsp;</span><span style="color: #ff0000;">tableFor</span><span style="color: #0000ff;">="mytable"</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;">cby:table&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="mytable"</span><span style="color: #ff0000;">&nbsp;var</span><span style="color: #0000ff;">="rec"</span><span style="color: #ff0000;">&nbsp;checkable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;idField</span><span style="color: #0000ff;">="code"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean</span><span style="color: #0000ff;">="Country"</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;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="name"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="true"</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;width</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="名称"</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.name}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</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;">cby:column</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;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="region"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="false"</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;width</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="区域"</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.region}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</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;">cby:column</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;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="surfaceArea"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="false"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="true"</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;width</span><span style="color: #0000ff;">="150"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="表面积"</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.surfaceArea}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</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;">cby:column</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;">cby:column&nbsp;</span><span style="color: #ff0000;">field</span><span style="color: #0000ff;">="population"</span><span style="color: #ff0000;">&nbsp;sortable</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;filterable</span><span style="color: #0000ff;">="true"</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;width</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;">&nbsp;value</span><span style="color: #0000ff;">="人口"</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h:outputText&nbsp;</span><span style="color: #ff0000;">value</span><span style="color: #0000ff;">="#{rec.wrapped.population}"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">h:outputText</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;">cby:column</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;">cby:ds&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;">cby:table</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;">h:form</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;">ui:define</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ui:composition</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></div>
<br />
因为开发平台最终是以BO为核心，所以此表格组件是通过设置 bean，然后再通过Hibernate来获取数据的。<br />
<br />
这个组件除采用JSF +Facelet之外，没有其它页面技术，代码简洁，无抽象，且里面还有注释，初学者可以参考一下。<br />
<br />
主要功能：<br />
1 设置column的filterable属性(true/false)来过滤数据(目前实现为左匹配，比如输入Sa，就是Sa开头的)<br />
2 分页导航<br />
3 设置column的sortable属性(true/false)用来对某列进行 正/反 排序<br />
4 改变页记录大小，默认为20条/页<br />
5 设置table的checkable属性为true，表格将会多一行用来选择。<br />
6 可以批量删除被checked的记录。<br />
<br />
这个组件只考虑了功能，并没有考虑到美观，如果你觉得可以用，改改它的html属性设置。<br />
<br />
安装：<br />
<br />
1 附件是一个Maven项目，必须安装有maven。<br />
2 安装MySQL数据库，启动MySQL，运行 <br />
create database world<br />
3 找到项目下面的world.sql，假设其路径为/a/b/c/world.sql，使用MySQL的source命令<br />
use world<br />
source /a/b/c/world.sql<br />
4修改项目下的hibernate.cfg.xml中MySQL数据库用户名/密码。<br />
5 执行mvn jetty:run 启动<br />
6 浏览器输入 http://localhost:8080/jsftry/ 就可以看到效果了<br />
<br />
关于调试：<br />
1 下载一个Eclipse JEE版本<br />
2&nbsp; 在项目目录下执行 mvn eclipse:clean eclipse:eclipse -DdownloadSources=true -Dwtpversion=1.5<br />
<br />
虽然工作中不用Java很久了，但拿起来玩玩还是觉得Java真的很有生产力。JSF，Hibernate，Maven，Eclipse一个比一个牛比。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/lifesting/aggbug/285453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lifesting/" target="_blank">Always BaNg.</a> 2009-07-04 13:22 <a href="http://www.blogjava.net/lifesting/archive/2009/07/04/285453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 2.x 精简实例系列教程（待发表，敬请关注）</title><link>http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Sat, 04 Jul 2009 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/285449.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/285449.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/285449.html</trackback:ping><description><![CDATA[<p>教程别名：基于Struts 2.x 的SimpleWeb小项目开发教程</p> <p>Struts版本：Struts 2.1.6</p> <p>两种实现形式：</p> <blockquote> <p>a. XML配置形式，兼容Struts 2.0，JSP文件置根目录下</p> <p>b. Annotation注解形式，JSP文件置WEB-INF下面</p></blockquote> <p>标签库两种形式：a. Struts 2 tag&nbsp;&nbsp;&nbsp; b. JSTL+EL</p> <p>实例项目名：SimpleWeb</p> <p>（1）环境搭建与HelloSimple测试</p> <p>（2）用户登录实例讲解Action（Action&amp;Result）</p> <p>（3）用JavaBean写用户业务逻辑（POJO，JDBC，Junit）</p> <p>（4）用户注册模块与重用户登录模块（exception，Session的设置）</p> <p>（5）用户的CRUD操作（Method）</p> <p>（6）新闻和栏目相关业务逻辑的编写</p> <p>（7）新闻与栏目操作的Action与整合eWebEditor</p> <p>（8）整合Jquery技术</p> <p>（9）重写用户注册模块与用户登录模块（融入Jquery技术）</p> <p>…… 其他内容，如果大家需要，请跟我说一下，我会考虑加入我的教程中。</p> <p>&nbsp;</p> <p>原则：不要因技术而学技术，而要根据需要而学：Struts 2.x有些东西是不需要用或者很少用到的，在本教程中就没有涉及到。</p> <p>本教程适用：</p> <p>1、想学习Struts 2.x的朋友</p> <p>2、没时间学习Hibernate,Spring等框架，而只想用Struts 2.x + JDBC做开发的朋友</p> <p>&nbsp;</p> <p>实例正在开发中，教程正在编写中，敬请关注！</p><img src ="http://www.blogjava.net/rongxh7/aggbug/285449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-07-04 11:55 <a href="http://www.blogjava.net/rongxh7/archive/2009/07/04/285449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Radius服务中使用MS-CHAP-V1协议进行通讯</title><link>http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html</link><dc:creator>青果</dc:creator><author>青果</author><pubDate>Sat, 04 Jul 2009 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html</guid><wfw:comment>http://www.blogjava.net/ruchal/comments/285445.html</wfw:comment><comments>http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ruchal/comments/commentRss/285445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ruchal/services/trackbacks/285445.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近一个项目“无线网接入动态密码验证” ，使用思科的ACS作为Radius客户端，自己实现Radius服务端进行密码验证，步骤如下：（握手过程Radius已经封装，无须管它）<br>1，    客户端：发送报文，接受返回报文并解析，然后进行相应的处理（客户端由思科的ACS处理）；<br>2，    服务端：接受报文，解析报文并验证（密码之类），然后响应相应的结果（需要java实现）&nbsp;&nbsp;<a href='http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html'>阅读全文</a><img src ="http://www.blogjava.net/ruchal/aggbug/285445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ruchal/" target="_blank">青果</a> 2009-07-04 11:42 <a href="http://www.blogjava.net/ruchal/archive/2009/07/04/radius_mschapv1.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>堆与栈有什么区别？</title><link>http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html</link><dc:creator>飘摇</dc:creator><author>飘摇</author><pubDate>Sat, 04 Jul 2009 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html</guid><wfw:comment>http://www.blogjava.net/BJswing/comments/285446.html</wfw:comment><comments>http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BJswing/comments/commentRss/285446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BJswing/services/trackbacks/285446.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 堆和栈的区别&nbsp;&nbsp;<a href='http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html'>阅读全文</a><img src ="http://www.blogjava.net/BJswing/aggbug/285446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BJswing/" target="_blank">飘摇</a> 2009-07-04 11:21 <a href="http://www.blogjava.net/BJswing/archive/2009/07/04/285446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不要钱的好东东</title><link>http://www.blogjava.net/nickey/archive/2009/07/04/285440.html</link><dc:creator>nickey's home</dc:creator><author>nickey's home</author><pubDate>Sat, 04 Jul 2009 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/nickey/archive/2009/07/04/285440.html</guid><wfw:comment>http://www.blogjava.net/nickey/comments/285440.html</wfw:comment><comments>http://www.blogjava.net/nickey/archive/2009/07/04/285440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nickey/comments/commentRss/285440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nickey/services/trackbacks/285440.html</trackback:ping><description><![CDATA[<p>本文将提供一种一劳永逸的翻墙方式（ssh -D），实施之后，那道墙——对你来说——将从此透明。</p>

<p>本文面向的用户：使用Windows作为操作系统并且使用Firefox作为常用浏览器。</p>

<h2>第一步：免费获取拥有SSH权限的帐号和密码。</h2>

<p>默认的免费获取方式：将本文转载到你自己的博客上，将转载后的文章网址发送到<img src="http://photos.smugmug.com/photos/497999637_nw25h-O.png" alt="f.ckgfw#gmail.com" title="" />。</p>

<p>转载方式：拷贝<a href="https://dl.getdropbox.com/u/873345/static/embed.txt">文章代码</a>至博客后台HTML编辑器中，直接发布即可，文章标题自拟，可在前后文插入自己的评论。</p>

<p>经过人工审核，你将收到一封附有五个拥有SSH权限的帐号和密码的电子邮件，你可以将它们赠与你自己的读者。</p>

<p>更多获取方式将在今后陆续激活，请关注我们的最新更新：<a href="https://friendfeed.com/fuckgfw">https://friendfeed.com/fuckgfw</a></p>

<h2>第二步：配置MyEntunnel软件</h2>

<p>下载并安装MyEntunnel，该软件全名为My Encrypted Tunnel。</p>

<p>一键下载：<a href="https://dl.getdropbox.com/u/873345/download/myentunnel.exe">https://dl.getdropbox.com/u/873345/download/myentunnel.exe</a></p>

<p><img src="http://photos.smugmug.com/photos/497956295_FRKXY-O.jpg" alt="myentunnel" title="" /></p>

<p>按照上图将第一步收到的帐号信息填写到相应的地方后，点击<img src="http://photos.smugmug.com/photos/497956305_GuUqV-O.jpg" alt="save" title="" />按钮，再点击<img src="http://photos.smugmug.com/photos/497956257_vDBHg-O.jpg" alt="hide" title="" />按钮。</p>

<p>第一次连接过程中会出现一个认证对话框，按照提示确认即可。以后的自动连接中将不再出现此认证对话框。</p>

<p>最后点击<img src="http://photos.smugmug.com/photos/497956277_uqUyE-O.jpg" alt="hide" title="" />按钮，使对话框隐藏到系统任务栏中。</p>

<p>提示：</p>

<p>为MyEntunnel创建一个快捷方式，将其复制到系统的【启动】（C:\Documents and Settings\当前用户名（需要修改成你自己的）\「开始」菜单\程序\启动）文件夹中，今后开机便可自动启动软件，并自动连接服务器。</p>

<p><img src="http://photos.smugmug.com/photos/497956351_pNNkc-O.png" alt="tray" title="" /></p>

<p>绿色代表连接成功且稳定；黄色代表正在连接或重新连接；红色代表连接失败。</p>

<h2>第三步：配置Firefox浏览器</h2>

<p>假设你正使用<a href="http://www.mozilla.com/firefox">Firefox浏览器</a>阅读本文。</p>

<p>一键安装：<a href="http://autoproxy.mozdev.org/latest.xpi">http://autoproxy.mozdev.org/latest.xpi</a></p>

<p><img src="http://photos.smugmug.com/photos/498951512_XzxSh-O.png" alt="xpi-offical" title="" /></p>

<p>点击立即安装，安装后，重新启动Firefox。然后你会看到如下对话框，选择gfwlist (P.R.China)后，点击确定。</p>

<p><img src="http://photos.smugmug.com/photos/497956357_vmp9W-O.png" alt="gfwlist" title="" /></p>

<p>接着你会看到Firefox主界面右上角出现有一个&#8220;福&#8221;字图案，点击&#8220;福&#8221;。</p>

<p><img src="http://photos.smugmug.com/photos/497956204_t4d3L-O.png" alt="fu" title="" /></p>

<p>点击&#8220;代理服务器——编辑代理服务器&#8221;。</p>

<p><img src="http://photos.smugmug.com/photos/497956317_yWwtL-O.png" alt="edit" title="" /></p>

<p>随即出现如下画面，你会看到如GAppProxy、Tor和Your Freedom这样一系列代理服务器名称。</p>

<p><img src="http://photos.smugmug.com/photos/497956227_jQby9-O.png" alt="before" title="" /></p>

<p>将GAppProxy一栏的参数修改为如下图所示。</p>

<p><img src="http://photos.smugmug.com/photos/497956232_ttQRj-O.png" alt="after" title="" /></p>

<p>修改完毕后，点击确定。至此配置已全部就绪。</p>

<p>获取更多帮助，请关注反馈中心：<a href="https://friendfeed.com/fuckgfw-feedback">https://friendfeed.com/fuckgfw-feedback</a></p>

<a href="http://digg.com/d1nsDv"><img src="https://dl.getdropbox.com/u/873345/static/Bernie.png" alt="Bernie:&quot;Eat me!&quot;" title="I'm Bernie. Eat me!" border="0" align="right"/ /></a>

<h2>第四步：支持fuckGFW</h2>

<p>获取详情，请关注捐赠与推广中心：<a href="https://friendfeed.com/fuckgfw-donation-and-marketing">https://friendfeed.com/fuckgfw-donation-and-marketing</a></p>

<h4>版权信息：您可以自由复制、传播、演绎本作品且无需署名、无需注明原始出处。</h4><img src ="http://www.blogjava.net/nickey/aggbug/285440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nickey/" target="_blank">nickey's home</a> 2009-07-04 09:39 <a href="http://www.blogjava.net/nickey/archive/2009/07/04/285440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些js ajax 源码</title><link>http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 04 Jul 2009 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/285439.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/285439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/285439.html</trackback:ping><description><![CDATA[今日做网站，对js&nbsp; div+css等小有感冒<br />
1.首页flash图片轮播源文件<br />
<a href="/Files/chenglu/flash-index.rar">/Files/chenglu/flash-index.rar</a><br />
2.图片局部放大<br />
<a href="/Files/chenglu/tjpzoom.zip">/Files/chenglu/tjpzoom.zip</a><br />
3.Tab内容切换<br />
<a href="/Files/chenglu/ajaxtabscontent.rar">/Files/chenglu/ajaxtabscontent.rar</a><br />
4.Jquery报纸特效<br />
<a href="/Files/chenglu/jquerynewspager.rar">/Files/chenglu/jquerynewspager.rar</a>
<img src ="http://www.blogjava.net/chenglu/aggbug/285439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-07-04 09:17 <a href="http://www.blogjava.net/chenglu/archive/2009/07/04/js_sth.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse中10个比较有用的快捷键组合 </title><link>http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html</link><dc:creator>小虫旺福</dc:creator><author>小虫旺福</author><pubDate>Fri, 03 Jul 2009 21:42:00 GMT</pubDate><guid>http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html</guid><wfw:comment>http://www.blogjava.net/sy1214520/comments/285433.html</wfw:comment><comments>http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sy1214520/comments/commentRss/285433.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sy1214520/services/trackbacks/285433.html</trackback:ping><description><![CDATA[一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码，使得整体的开发效率和质量得到提升。
<p><strong>&nbsp;&nbsp;&nbsp; 1. ctrl+shift+r：打开资源</strong></p>
<p>&nbsp;&nbsp;&nbsp; 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件，而你只需要按下文件名或mask名中的前几个字母，比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。</p>
<p align="center"><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/19px 'Trebuchet MS'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" twffan="done"><img alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092247938.gif" twffan="done" /></span></p>
<p><strong>&nbsp;&nbsp;&nbsp; 2. ctrl+o：快速outline</strong></p>
<p>&nbsp;&nbsp;&nbsp; 如果想要查看当前类的方法或某个特定方法，但又不想把代码拉上拉下，也不想使用查找功能的话，就用ctrl+o吧。它可以列出当前类中的所有方法及属性，你只需输入你想要查询的方法名，点击enter就能够直接跳转至你想去的位置。</p>
<p align="center"><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/19px 'Trebuchet MS'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" twffan="done"><img alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092248145.gif" twffan="done" /></span></p>
<p><strong>&nbsp;&nbsp;&nbsp; 3. ctrl+e：快速转换编辑器</strong></p>
<p>&nbsp;&nbsp;&nbsp; 这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡，但是在很多文件打开的状态下，ctrl+e会更加有效率。</p>
<p align="center"><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/19px 'Trebuchet MS'; text-transform: none; color: rgb(102,102,102); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0" twffan="done"><img alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092248844.gif" twffan="done" /></span></p>
<p><strong>&nbsp;&nbsp;&nbsp; 4. ctrl+2，L：为本地变量赋值</strong></p>
<p>&nbsp;&nbsp;&nbsp; 开发过程中，我常常先编写方法，如Calendar.getInstance()，然后通过ctrl+2快捷键将方法的计算结果赋值于一个本地变量之上。这样我节省了输入类名，变量名以及导入声明的时间。Ctrl+F的效果类似，不过效果是把方法的计算结果赋值于类中的域。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 5. alt+shift+r：重命名</strong></p>
<p>&nbsp;&nbsp;&nbsp; 重命名属性及方法在几年前还是个很麻烦的事，需要大量使用搜索及替换，以至于代码变得零零散散的。今天的Java IDE提供源码处理功能，Eclipse也是一样。现在，变量和方法的重命名变得十分简单，你会习惯于在每次出现更好替代名称的时候都做一次重命名。要使用这个功能，将鼠标移动至属性名或方法名上，按下alt+shift+r，输入新名称并点击回车。就此完成。如果你重命名的是类中的一个属性，你可以点击alt+shift+r两次，这会呼叫出源码处理对话框，可以实现get及set方法的自动重命名。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 6. alt+shift+l以及alt+shift+m：提取本地变量及方法</strong></p>
<p>&nbsp;&nbsp;&nbsp; 源码处理还包括从大块的代码中提取变量和方法的功能。比如，要从一个string创建一个常量，那么就选定文本并按下alt+shift+l即可。如果同一个string在同一类中的别处出现，它会被自动替换。方法提取也是个非常方便的功能。将大方法分解成较小的、充分定义的方法会极大的减少复杂度，并提升代码的可测试性。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 7. shift+enter及ctrl+shift+enter</strong></p>
<p>&nbsp;&nbsp;&nbsp; Shift+enter在当前行之下创建一个空白行，与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入空白行。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 8. Alt+方向键</strong></p>
<p>&nbsp;&nbsp;&nbsp; 这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分，这个快捷方式尤其好使。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 9. ctrl+m</strong></p>
<p>&nbsp;&nbsp;&nbsp; 大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。</p>
<p><strong>&nbsp;&nbsp;&nbsp; 10. ctrl+.及ctrl+1：下一个错误及快速修改</strong></p>
<p>&nbsp;&nbsp;&nbsp; ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用，即修改建议的快捷键。新版Eclipse的修改建议做的很不错，可以帮你解决很多问题，如方法中的缺失参数，throw/catch exception，未执行的方法等等。</p>
<p align="center"><img style="width: 622px; height: 167px" height="276" alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090521092248748.gif" width="902" twffan="done" /></a></p>
<p>&nbsp;&nbsp;&nbsp; 更多快捷键组合可在Eclipse按下ctrl+shift+L查看。</p>
<img src ="http://www.blogjava.net/sy1214520/aggbug/285433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sy1214520/" target="_blank">小虫旺福</a> 2009-07-04 05:42 <a href="http://www.blogjava.net/sy1214520/archive/2009/07/04/285433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>String Stream in C++</title><link>http://www.blogjava.net/qslbrooklyn/archive/2009/07/04/285429.html</link><dc:creator>JosephQuinn</dc:creator><author>JosephQuinn</author><pubDate>Fri, 03 Jul 2009 17:22:00 GMT</pubDate><guid>http://www.blogjava.net/qslbrooklyn/archive/2009/07/04/285429.html</guid><wfw:comment>http://www.blogjava.net/qslbrooklyn/comments/285429.html</wfw:comment><comments>http://www.blogjava.net/qslbrooklyn/archive/2009/07/04/285429.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qslbrooklyn/comments/commentRss/285429.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qslbrooklyn/services/trackbacks/285429.html</trackback:ping><description><![CDATA[<h3><strong>String Streams</strong></h3>
The stringstream is a class that is useful for extracting data from or writing formatted data to strings.<br />
A very common question, for example is this: ``How do I convert a string to a number ? ''. Of course, there's no way to do so in general, since not all strings look like numbers. But it's certainly not unusual that we'd want to extract a number from a string. Note that the g++ compiler ships without the sstream header.<br />
<br />
<strong>FAQ: How Do I Convert String To Number ?</strong><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: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">sstream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;s&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">456</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;istringstream&nbsp;sin(s);<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;sin&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;a;<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;a&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
The istringstream class is an input stream attached to a string. The constructor copies the string s into its private buffer, and then we may extract data from it using regular stream semantics, in this case we use <em><strong>sin&gt;&gt;a</strong></em>.<br />
<strong><br />
FAQ: How Do I Convert A Number To A String ?</strong><br />
or how do I do ``sprintf'' in C++ ?<br />
<br />
You may have guessed -- the answer is to use an ostringstream. This data type behaves in a similar way to the istringstream. The main difference is that there is an extra method, str(). This method returns the string that lies in the ostringstream object. There's also a verision of str() that takes a string argument -- this initialises the streams underlying string buffer to that argument. This is commonly used to clear a stream for reuse -- one can call mystream.str("");<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: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">sstream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;std::ostringstream&nbsp;strout;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">42</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;strout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">The&nbsp;answer&nbsp;to&nbsp;the&nbsp;question&nbsp;is&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">42</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;std::endl;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;strout.str()&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;strout.str(</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;strout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">53.2</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;strout.str()&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
<strong>Using Stringstreams To Parse Input</strong><br />
<br />
A problem that often comes up is this: suppose you have written the following code:<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: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">do</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Enter&nbsp;a&nbsp;positive&nbsp;integer&nbsp;(0&nbsp;to&nbsp;quit)</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(&nbsp;cin&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;x&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;x&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;);<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
What happens if the user enters<br />
<br />
2 3<br />
<br />
Or worse, if they enter:<br />
<br />
5.0<br />
<br />
The problem is that the extraction operator does not expect each item extracted to be on a seperate line. So if you do expect this, you need to be explicit about it in your code. The way to do this is use getline() to read a line of input into a string and then use that string to create an istringstream from which we can extract data. After we've extracted the data we need, we can check for trailing garbage. Here's an example:<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: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">sstream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;std::cin;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;std::cout;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;std::end;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x;<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;ch;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;std::</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;myString;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(getline&nbsp;(&nbsp;cin,&nbsp;myString&nbsp;))<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::istringstream&nbsp;strin(myString);<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strin&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;x;<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">strin)<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Bad&nbsp;input</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(&nbsp;strin&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;ch&nbsp;)<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Bad&nbsp;input</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">You&nbsp;entered:&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;x&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;endl;<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
Some notes:<br />
<br />
&nbsp;&nbsp;&nbsp; * The istringstream object is declared within the loop, so its scope is the block of the loop. So a new istringstream object is created and the old one is destroyed for each iteration of the loop.<br />
&nbsp;&nbsp;&nbsp; * The test (!strin) checks to see if the stream is in an error state.<br />
&nbsp;&nbsp;&nbsp; * The attempt to extract a character is a test to see if there's anything left in the stream after we extract an integer. Note that this ignores whitespace (which is the desired effect in this case)<br />
&nbsp;&nbsp;&nbsp; * If there are no problems, then the extraction was succesful. <br />
<br />
<strong>strstream considered harmful</strong><br />
<br />
There exists a deprecated class similar to stringstream that is called strstream. Do not confuse these two classes. They are not the same. strstream has a very error prone interface because of the way it handles memory. One problem is that it does not append trailing nulls when str() is called. So you must append a trailing null, or std::ends. Another important thing to remember is that if you use ostrstream with a dynamic buffer, like this:<br />
<br />
<em><strong>std::ostrstream strout;<br />
strout &lt;&lt; "The answer is ..." &lt;&lt; 42 &lt;&lt; std::endl &lt;&lt; std::ends;<br />
strout.str();</strong></em><br />
<br />
Then calling str has the peculiar side effect that the caller is responsible for managing the memory allocated by strout's buffer, which is pretty silly since the caller does not know how the memory was allocated (it may be allocated using malloc() or new). So to make the stupid thing take its memory back, one makes the following call:<br />
<em><strong><br />
strout.freeze(0);</strong></em><br />
<br />
It's worth mentioning that there is another, safer way to use ostrstream and that is to use it with a static buffer. If you do this, you don't need to deal with this freeze() nonsense. To do this, call the constructor that takes a character array as an argument.<br />
<br />
<em><strong>char a[100];<br />
std::ostrstream strout(a,100);<br />
strout &lt;&lt; "the answer is" &lt;&lt; 42 &lt;&lt; std::endl &lt;&lt; std::ends;<br />
std::cout &lt;&lt; a &lt;&lt; std::endl;
</strong></em>
<img src ="http://www.blogjava.net/qslbrooklyn/aggbug/285429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qslbrooklyn/" target="_blank">JosephQuinn</a> 2009-07-04 01:22 <a href="http://www.blogjava.net/qslbrooklyn/archive/2009/07/04/285429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring blazeDS Integration destination not exists异常解决</title><link>http://www.blogjava.net/huaoguo/archive/2009/07/04/285426.html</link><dc:creator>huaoguo</dc:creator><author>huaoguo</author><pubDate>Fri, 03 Jul 2009 16:41:00 GMT</pubDate><guid>http://www.blogjava.net/huaoguo/archive/2009/07/04/285426.html</guid><wfw:comment>http://www.blogjava.net/huaoguo/comments/285426.html</wfw:comment><comments>http://www.blogjava.net/huaoguo/archive/2009/07/04/285426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huaoguo/comments/commentRss/285426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huaoguo/services/trackbacks/285426.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: mxml编译时要根据remoting-config.xml来处理destination的定义，而我们把premiumService定义在了 spring bean中,所以它根本就不知道premiumService的存在。取消掉remoting-config.xml的注释，再次对mxml进行编译（如修改后保存），在浏览器中清除缓存、刷新...&nbsp;&nbsp;<a href='http://www.blogjava.net/huaoguo/archive/2009/07/04/285426.html'>阅读全文</a><img src ="http://www.blogjava.net/huaoguo/aggbug/285426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huaoguo/" target="_blank">huaoguo</a> 2009-07-04 00:41 <a href="http://www.blogjava.net/huaoguo/archive/2009/07/04/285426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>暑期项目小结(2)</title><link>http://www.blogjava.net/sunny-1218/archive/2009/07/04/285424.html</link><dc:creator>一缕阳光</dc:creator><author>一缕阳光</author><pubDate>Fri, 03 Jul 2009 16:25:00 GMT</pubDate><guid>http://www.blogjava.net/sunny-1218/archive/2009/07/04/285424.html</guid><wfw:comment>http://www.blogjava.net/sunny-1218/comments/285424.html</wfw:comment><comments>http://www.blogjava.net/sunny-1218/archive/2009/07/04/285424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunny-1218/comments/commentRss/285424.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunny-1218/services/trackbacks/285424.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于wiki的，有兴趣的看下&nbsp;&nbsp;<a href='http://www.blogjava.net/sunny-1218/archive/2009/07/04/285424.html'>阅读全文</a><img src ="http://www.blogjava.net/sunny-1218/aggbug/285424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunny-1218/" target="_blank">一缕阳光</a> 2009-07-04 00:25 <a href="http://www.blogjava.net/sunny-1218/archive/2009/07/04/285424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原]Hibernate集合映射</title><link>http://www.blogjava.net/wintys/archive/2009/07/03/hibernate_collection.html</link><dc:creator>天堂露珠</dc:creator><author>天堂露珠</author><pubDate>Fri, 03 Jul 2009 15:50:00 GMT</pubDate><guid>http://www.blogjava.net/wintys/archive/2009/07/03/hibernate_collection.html</guid><wfw:comment>http://www.blogjava.net/wintys/comments/285421.html</wfw:comment><comments>http://www.blogjava.net/wintys/archive/2009/07/03/hibernate_collection.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wintys/comments/commentRss/285421.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wintys/services/trackbacks/285421.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Hibernate中Set、List、Map、Array等集合的映射。&nbsp;&nbsp;<a href='http://www.blogjava.net/wintys/archive/2009/07/03/hibernate_collection.html'>阅读全文</a><img src ="http://www.blogjava.net/wintys/aggbug/285421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wintys/" target="_blank">天堂露珠</a> 2009-07-03 23:50 <a href="http://www.blogjava.net/wintys/archive/2009/07/03/hibernate_collection.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教你10道汤的做法</title><link>http://www.blogjava.net/paulwong/archive/2009/07/03/285420.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 03 Jul 2009 15:19:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2009/07/03/285420.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/285420.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2009/07/03/285420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/285420.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/285420.html</trackback:ping><description><![CDATA[<div id="articleContent">
<div align="center"><font style="color: #000000; height: auto">莲藕腔骨汤 </font></div>
<font size="3"><font color="#000"><font style="color: #660033; height: auto">&nbsp;&nbsp; </font></font></font><font style="color: #000000; height: auto">
<div align="center">原料：莲藕2根（约500克）腔骨500克姜6片清水2000ml&nbsp;&nbsp;&nbsp;&nbsp; 调料：盐2茶匙（10克）&nbsp;&nbsp;&nbsp;&nbsp; 做法： </div>
<br />
&nbsp;&nbsp; 1、将腔骨剁成块洗净。莲藕去皮切块。姜洗净切片。&nbsp;&nbsp;&nbsp;&nbsp; 2、锅中倒入清水，大火加热至沸腾后，放入腔骨焯烫3分钟，捞出用清水冲去表面的浮沫。&nbsp;&nbsp;&nbsp;&nbsp; 3、将腔骨放入汤煲中，一次性加够足量清水，盖上盖子大火加热至快沸腾时，打开盖子用勺撇去浮沫。放入姜片，盖上盖子调中小火煲30分钟。&nbsp;&nbsp;&nbsp;&nbsp; 4、放入莲藕块，盖上盖子继续用中小火煲1个半小时即可。食用前调入盐即可。 <br />
</font><a href="http://www.scysw.com/mskx/pic/20071115152325.jpg" target="_blank"><font color="#000" size="3"><img height="366" src="http://www.scysw.com/mskx/pic/20071115152325.jpg" width="500" border="0"  alt="" /></font></a> <br />
<br />
<font style="color: #000000; height: auto">田园蔬菜汤 </font><br />
&nbsp;&nbsp; 原料：玉米1根 胡萝卜1根荸荠8颗青笋一根腔骨500克 姜6片 清水2000ml&nbsp;&nbsp;&nbsp;&nbsp; 调料：盐2茶匙（10克）&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、将腔骨剁成块洗净。玉米，胡萝卜，青笋和荸荠都去皮洗净后切块。姜洗净切片。&nbsp;&nbsp;&nbsp;&nbsp; 2、锅中倒入清水，大火加热至沸腾后，放入腔骨焯烫3分钟，捞出用清水冲去表面的浮沫。&nbsp;&nbsp;&nbsp;&nbsp; 3、将腔骨放入汤煲中，一次性加够足量清水，盖上盖子大火加热至快沸腾时，打开盖子用勺撇去浮沫。放入姜片，盖上盖子调中小火煲1小时。&nbsp;&nbsp;&nbsp;&nbsp; 4、先放入玉米块，荸荠和胡萝卜块，盖上盖子继续用小火煲1个小时，然后再放入青笋煲5分钟，食用前调入盐即可。 <br />
<font style="color: #000000; height: auto"></font><br />
<font style="color: #000000; height: auto"></font><br />
<a href="http://www.scysw.com/tssp/pic/20071115152358.jpg" target="_blank"><img height="385" src="http://www.scysw.com/tssp/pic/20071115152358.jpg" width="450" border="0"  alt="" /></a> <br />
<font style="color: #000000; height: auto">清心润肺汤 </font><br />
&nbsp;&nbsp; 汤料：罗汉果1个（10克）红枣2颗（20克）玉竹20克&nbsp;&nbsp;蜜枣4颗（40克） 百合10克南杏10克剑花30克&nbsp;&nbsp;&nbsp;&nbsp; 原料：腔骨300克猪通脊200克 老姜1块 清水200ml 盐1茶匙（5克）&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、姜去皮洗净。将腔骨和猪通脊洗净，再将猪通脊切成约2厘米的小块。&nbsp;&nbsp;&nbsp;&nbsp; 2、锅中倒入水，大火将水煮开后，倒入腔骨和猪通脊焯烫，煮至变色后捞出，用水冲洗掉浮末。再将汤料用水洗净。&nbsp;&nbsp;&nbsp;&nbsp; 3、将冲净的腔骨和猪通脊块倒入汤煲，一次性加入足量清水（约2000毫升）。&nbsp;&nbsp;&nbsp;&nbsp; 4、水开后，用勺子撇去浮末，放入用刀稍拍散的姜，倒入汤料，盖上盖子，转小火煲2个小时后关火，喝前调入盐即可。 <br />
<br />
<a href="http://www.scysw.com/tssp/pic/20071115152424.jpg" target="_blank"><font color="#000" size="3"><img height="397" src="http://www.scysw.com/tssp/pic/20071115152424.jpg" width="450" border="0"  alt="" /></font></a> <br />
<br />
<font style="color: #660033; height: auto">&nbsp;&nbsp;</font><font style="color: #000000; height: auto">&nbsp;&nbsp;牛骨香菇萝卜汤 </font><br />
&nbsp;&nbsp; 原料：牛骨500克&nbsp;&nbsp;香菇6朵&nbsp;&nbsp;胡萝卜2根&nbsp;&nbsp;大葱3段&nbsp;&nbsp;老姜3片&nbsp;&nbsp;香菜2根&nbsp;&nbsp; 醋1茶匙（5ml）&nbsp;&nbsp;花椒10粒&nbsp;&nbsp;盐适量&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、牛骨斩成5cm长的块，洗净备用。香菇用温水浸泡5分钟后去蒂洗净。胡罗卜去皮洗净后切块。&nbsp;&nbsp;&nbsp;&nbsp; 2、将牛骨放入汤煲中，一次性倒入足量清水没过牛骨。大火加热后，撇去浮沫，放入香菇，大葱，姜片和花椒。再调入醋，盖上盖子用中火煲2小时。&nbsp;&nbsp;&nbsp;&nbsp; 3、放入胡萝卜块，继续炖15分钟，调入盐。食用前，撒入香菜即可 <br />
<font style="color: #000000; height: auto"></font><br />
<font style="color: #000000; height: auto"></font><br />
<a href="http://www.scysw.com/tssp/pic/2007111515250.jpg" target="_blank"><font color="#000" size="3"><img height="360" src="http://www.scysw.com/tssp/pic/2007111515250.jpg" width="450" border="0"  alt="" /></font></a>&nbsp;<br />
<font style="color: #000000; height: auto">鱼头豆腐汤 </font><br />
&nbsp;&nbsp; 原料：鱼头1个（约500克） 嫩豆腐1盒&nbsp;&nbsp;香菇8朵&nbsp;&nbsp;大葱3段&nbsp;&nbsp;老姜3片盐1茶匙（5克）&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、鱼头洗净，从中间劈开，用纸巾蘸干鱼头表面的水分。嫩豆腐切成1cm厚的大块。香菇用温水浸泡5分钟后，去蒂洗净。&nbsp;&nbsp;&nbsp;&nbsp; 2、煎锅中倒入油，待7成热时，放入鱼头用中火双面煎黄（每面约3分钟）。将鱼头摆在锅的一边，用锅中的油爆香大葱段和姜片后，倒入足量开水没过鱼头。&nbsp;&nbsp;&nbsp;&nbsp; 3、再放入香菇，盖上盖子，大火炖煮50分钟。&nbsp;&nbsp;&nbsp;&nbsp; 4、调入盐，放入豆腐继续煮3分钟即可。 <br />
<br />
<a href="http://www.scysw.com/tssp/pic/20071115152543.jpg" target="_blank"><font color="#000" size="3"><img height="398" src="http://www.scysw.com/tssp/pic/20071115152543.jpg" width="450" border="0"  alt="" /></font></a> <br />
<br />
<font style="color: #660033; height: auto">&nbsp;&nbsp; </font><font style="color: #000000; height: auto">竹荪煲鸡汤 </font><br />
&nbsp;&nbsp;原料：竹荪6根 柴鸡半只&nbsp;&nbsp;大葱4段&nbsp;&nbsp;老姜4片 小菜心6棵&nbsp;&nbsp;胡萝卜半根&nbsp;&nbsp;盐2茶匙（10克）&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、将柴鸡半只，洗净斩成块。竹荪用冷水浸泡10分钟，只要竹荪回软发脆即可。&nbsp;&nbsp;&nbsp;&nbsp; 2、将鸡块放入开水中焯烫一下捞出，用清水冲净鸡块表面上的浮末。将鸡块放入砂锅中，一次性倒入足量清水，放入大葱，姜片，待汤沸腾后，转小火煲1小时。&nbsp;&nbsp;&nbsp;&nbsp; 3、趁着煲汤的时间，将浸泡回软的竹荪，切去头和尾部的网，放入温水中焯烫20秒钟，去除竹荪的生涩味。捞出后，用冷水洗净，放入汤锅中，继续煲30分钟。&nbsp;&nbsp;&nbsp;&nbsp; 4、最后，可以放一下小菜心和胡萝卜片在汤中，煮2分钟后即可关火，根据自己的口味，放盐调味即可。 <br />
<font style="color: #000000; height: auto"></font><br />
<a href="http://www.scysw.com/tssp/pic/200711161535.jpg" target="_blank"><font color="#000" size="3"><img height="373" src="http://www.scysw.com/tssp/pic/200711161535.jpg" width="500" border="0"  alt="" /></font></a> <br />
<br />
<font style="color: #000000; height: auto">土鸡安眠汤 </font><br />
&nbsp;&nbsp;&nbsp;&nbsp;原料：&nbsp;&nbsp;&nbsp;&nbsp; 土鸡半只（约500克）&nbsp;&nbsp;香菇20克&nbsp;&nbsp;黄豆30克&nbsp;&nbsp;枸杞20克&nbsp;&nbsp;党参20克&nbsp;&nbsp;玉竹20克&nbsp;&nbsp;红枣10克&nbsp;&nbsp;桂圆15克&nbsp;&nbsp;大葱3段&nbsp;&nbsp;老姜3片&nbsp;&nbsp;盐适量&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、土鸡洗净后，斩成大块。香菇用温水浸泡5分钟，剪去1/2的根部，洗净备用。将黄豆，枸杞，党参，玉竹，红枣和桂圆用温水浸泡5分钟后洗净。&nbsp;&nbsp;&nbsp;&nbsp; 2、将鸡块放入汤煲中，一次性倒入足量清水没过食材。大火加热后，撇去浮沫。&nbsp;&nbsp;&nbsp;&nbsp; 3、将香菇，黄豆，枸杞，党参，玉竹，红枣，桂圆，葱段和姜片放入，转文火煲2小时。食用前，根据个人口味调入适量盐。 <br />
<font style="color: #000000; height: auto"></font><br />
<a href="http://www.scysw.com/tssp/pic/2007111615337.jpg" target="_blank"><font color="#000" size="3"><img height="441" src="http://www.scysw.com/tssp/pic/2007111615337.jpg" width="500" border="0"  alt="" /></font></a> <br />
<br />
<font style="color: #660033; height: auto">&nbsp;&nbsp;&nbsp;&nbsp;</font><font style="color: #000000; height: auto">灵芝香菇煲土鸡 </font><br />
&nbsp;&nbsp; 原料：灵芝4克（约6片）干香菇10朵红枣10颗土鸡半只 大葱4段 老姜4片绍酒1汤匙（15ml）盐适量&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、灵芝，香菇和红枣用冷水浸泡2分钟，冲洗干净备用。土鸡洗净斩成大块。&nbsp;&nbsp;&nbsp;&nbsp; 2、将鸡块放入汤煲中，一次性到够足量清水。大火加热后，撇去浮沫。放入灵芝，香菇，红枣，大葱段，姜片，淋入料酒。盖上盖子，用文火煲2小时。食用前，调入适量盐。 <br />
<font style="color: #000000; height: auto"></font><br />
<font style="color: #000000; height: auto"></font><br />
<font style="color: #660033; height: auto"><a href="http://www.scysw.com/tssp/pic/2007111615412.jpg" target="_blank"><font color="#000" size="3"><img height="434" src="http://www.scysw.com/tssp/pic/2007111615412.jpg" width="500" border="0"  alt="" /></font></a></font> <br />
<font style="color: #000000; height: auto">猴头菇煲乌鸡 </font><br />
&nbsp;&nbsp;&nbsp;&nbsp;原料：猴头菇2朵&nbsp;&nbsp;乌鸡1只&nbsp;&nbsp;大葱3段&nbsp;&nbsp;老姜4片&nbsp;&nbsp;盐适量&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、用剪刀略剪去猴头菇表面的细毛后，用温水浸泡12个小时以上。再反复用清水攥洗猴头菇，洗净后切掉根部。乌鸡去除内脏和头尾。大葱切段。老姜切片。&nbsp;&nbsp;&nbsp;&nbsp; 2、把乌鸡放入汤煲中，倒入一次性到够足量清水。大火加热后，撇去浮沫。放入猴头菇，葱段和姜片。盖上盖子，中火炖2小时左右。食用前，放适量盐调味。 <br />
<font style="color: #000000; height: auto"></font><br />
<a href="http://www.scysw.com/tssp/pic/2007111615447.jpg" target="_blank"><font color="#000" size="3"><img height="455" src="http://www.scysw.com/tssp/pic/2007111615447.jpg" width="500" border="0"  alt="" /></font></a> <br />
<br />
<font style="color: #660033; height: auto">&nbsp;&nbsp;&nbsp;&nbsp;</font><font style="color: #000000; height: auto">灰树花炖腔骨 </font><br />
&nbsp;&nbsp;原料：灰树花3朵&nbsp;&nbsp;腔骨500克&nbsp;&nbsp;大葱5段&nbsp;&nbsp;老姜4片&nbsp;&nbsp;花椒5颗&nbsp;&nbsp;盐适量&nbsp;&nbsp;&nbsp;&nbsp; 做法：&nbsp;&nbsp;&nbsp;&nbsp; 1、灰树花用温水泡发后洗净，浸泡灰树花的水沉淀后留用。&nbsp;&nbsp;&nbsp;&nbsp; 2、腔骨斩成大块洗净。锅中倒入冷水，放入腔骨，大火加热至沸腾后，继续煮3分钟。捞出后，用清水冲净。&nbsp;&nbsp;&nbsp;&nbsp; 3、将腔骨放入砂锅中，并一次性到够足量沸水。大火煮后，撇去浮沫，倒入浸泡灰树花的汤。放入灰树花，大葱，姜片和花椒，盖上盖子，用文火煲2小时，食用前调入适量盐。 <br />
<font style="color: #000000; height: auto"></font><br />
<font style="color: #000000; height: auto"></font><br />
<font style="color: #660033; height: auto"><img height="423" src="http://www.scysw.com/tssp/pic/2007111615523.jpg" width="457" border="0"  alt="" /></font></div>
<img src ="http://www.blogjava.net/paulwong/aggbug/285420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2009-07-03 23:19 <a href="http://www.blogjava.net/paulwong/archive/2009/07/03/285420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>千万级的数据，每条记录如何能够实时准确的知道自己的排名？[转]</title><link>http://www.blogjava.net/xiaomage234/archive/2009/07/03/285417.html</link><dc:creator>小马歌</dc:creator><author>小马歌</author><pubDate>Fri, 03 Jul 2009 14:23:00 GMT</pubDate><guid>http://www.blogjava.net/xiaomage234/archive/2009/07/03/285417.html</guid><wfw:comment>http://www.blogjava.net/xiaomage234/comments/285417.html</wfw:comment><comments>http://www.blogjava.net/xiaomage234/archive/2009/07/03/285417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaomage234/comments/commentRss/285417.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaomage234/services/trackbacks/285417.html</trackback:ping><description><![CDATA[<p>需求：<br />
一个千万级数据量的服务，不停的插入和删除记录，每条记录需要知道自己的排名，比如SNS中的抢车位，如何让每个uid能够知道自己在所有人中的车总价排名？</p>
<p>致命伤（cache无用论）<br />
有1000万个用户，试想排名第500万的用户突然发飙了，把他的车全卖了，那么他之后的500万个用户的排名都提高了，也就是cache全部瞬间失效了。。。pity，此时加再多的cache只能是浮云</p>
<p>解决方法：<br />
1，划分子空间，比如k心网，不提供全部用户的排名，只提供用户在其好友中的车总价的排名（其实这样更有意义，不过这是产品层面），这样即时一个用户车价变化，影响的也只是其好友的cache，别人不做影响<br />
2，牺牲实时性，算不过来就离线算呗，这个太容易想到了，比如k心网车总价的排名是每12个小时更新一次的</p>
<p>BT的需求：<br />
假如，只是假如，我们就需要uid在所有用户中的实时准确排名怎么办？？（产品不想牺牲实时性的UE）,这时解决问题只能靠更好的算法模型</p>
<p>扩展的红黑树：<br />
这个结构在一般数据结构书不提，在CLRS是以扩展话题为讨论的，在TAOCP中是以课后题出现，但在CLRS的视频中可是重点介绍，讲了一节课呢，所以推荐看这个视频11.Dynamic.Statistics。拷贝书上的介绍nonsense，所以只是简单的介绍一下：扩展红黑树ERBT中，每个节点不仅有color,link,key信息，还包括了一个很重要的信息=&gt;该节点所有子节点的数目（包括其自身在内），这样每个节点的排名可以在找到它的那一霎那得到，因为(初始rank(root)=0)：<br />
rank(lnode)=rank(pnode)<br />
rank(rnode)=children_count(lnode)+1<br />
而作为补偿，同样需要在更改操作时，维护子节点的数目<br />
查找和维护的时间复杂度都是log(n)</p>
<p>解决方案:<br />
还是车总价的排名显示问题，我们在内存中维护这样一颗ERBT，key就是车的总价位，当有用户的车总价发生变化时，我们就删除这个节点并插入一个新节点。当需要显示用户的车总价排名时，先从uid得到车总价的数值（比如从mysql中），然后拿这个数值到ERBT中做查找，当找到这个值的时候，排名自然得到。</p>
<p>对于千万级数据，log(n)基本在20-30，而使mc的话，每秒请求可以到2万这个级别，我们假设hash的拉链平均长度为3，也就是使用ERBT的速度理论上是直接hash的1/10，也就是能够支撑2000r/s的请求，这样的能力对于一般的SNS应用也是够了。当然如果要求更高性能还需要做更多的优化。</p>
<p>故障恢复：<br />
首先这个服务就支持分布式，因为每台机器可以独立的跑ERBT，另外即时down机了，恢复也很容易，只要从mysql中导入数据一遍则自动生成，我们也可以把ERBT定时按照hash的形式dump出一份，以备意外时访问</p>
 <img src ="http://www.blogjava.net/xiaomage234/aggbug/285417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaomage234/" target="_blank">小马歌</a> 2009-07-03 22:23 <a href="http://www.blogjava.net/xiaomage234/archive/2009/07/03/285417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache HTTPServer与JBoss或是Tomcat的整合与请求分发 </title><link>http://www.blogjava.net/bitmap/archive/2009/07/03/285244.html</link><dc:creator>bitmap</dc:creator><author>bitmap</author><pubDate>Fri, 03 Jul 2009 14:06:00 GMT</pubDate><guid>http://www.blogjava.net/bitmap/archive/2009/07/03/285244.html</guid><description><![CDATA[如果需要一台服务器来做转发请求的话，用 apache的HttpServer再好不过了。<br />
<br />
假如一个客户请求服务器A,A并不直接处理客户端的请求，而是把请求转发到<br />
服务器B。<br />
<br />
来看一个具体怎么操作吧。<br />
<br />
首先先下载一个apache-httpserver,这里用的是apache_2.2.3-win32-x86-no_ssl.msi,你可以在此<br />
<a href="http://apache.mirror.phpchina.com/httpd/">http://apache.mirror.phpchina.com/httpd/</a>&nbsp; <a href="http://www.bt285.cn/">http://www.bt285.cn</a> 　进行下载。或此看此文最后的附件也可。<br />
<br />
安装就不用说了吧，安装完毕后。有时候启动服务会失败，我的第一次就失败了。端口被占用。<br />
这时我们：<br />
<br />
<p>首先用netstat -ano 看是得到占用80端口的进程的PID，然后打开任务管理器，选择-&gt;查看-&gt;选择列，勾上PID（进程标识符），结束这个进程，再启动Apache就成功了.<br />
可以在浏览器输入:http://localhost 出现　'it works' 说明就ok了.<br />
<br />
服务启动成功后去下载:mod_jk-apache-2.2.3.so,本文附件中会提供。<br />
<br />
<br />
1.进入apache的安装目录。找到modules把下载好的mod_jk-apache-2.2.3.so复制进去。<br />
2.在conf目录建立一个workers.properties文件，内容如下:</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%; 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"># Define</span> <span style="font-weight: bold; color: #800000">1</span> <span style="font-weight: bold; color: #000000">real</span> <span style="color: #000000">worker using ajp13<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />worker.list</span><span style="color: #808080">=</span><span style="color: #000000">admin<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />#</span> <span style="color: #0000ff">Set</span> <span style="color: #000000">properties</span> <span style="color: #0000ff">for</span> <span style="color: #000000">admin (ajp13)<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />worker.admin.type</span><span style="color: #808080">=</span><span style="color: #000000">ajp13<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />worker.admin.host</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">127.0</span><span style="color: #000000">.</span><span style="font-weight: bold; color: #800000">0.1</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />worker.admin.port</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">8009</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />worker.admin.lbfactor</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />#worker.admin.cachesize</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">10</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># worker.admin.cache_timeout</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">600</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />worker.admin.socket_keepalive</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># worker.admin.recycle_timeout</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">300</span></div>
<p><br />
其中host就是你要转发到的服务器IP,port是端口号。这里是用本机测试，所以只改端口号就行了。<br />
<br />
3.打开conf目录下的httpd.conf文件，找到#LoadModule ssl_module modules/mod_ssl.so <a href="http://www.5a520.cn/">http://www.5a520.cn</a> 这一行。在<br />
这一行下面加上:</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; 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"># 加载 mod_jk 模块<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />LoadModule jk_module modules</span><span style="color: #808080">/</span><span style="color: #000000">mod_jk</span><span style="color: #808080">-</span><span style="color: #000000">apache</span><span style="color: #808080">-</span><span style="font-weight: bold; color: #800000">2.2</span><span style="color: #000000">.</span><span style="font-weight: bold; color: #800000">3</span><span style="color: #000000">.so<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># 指定 mod_jk 模块所需的配置文件 workers.properties 的位置<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />JkWorkersFile conf</span><span style="color: #808080">/</span><span style="color: #000000">workers.properties<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># 指定 mod_jk 模块的日志文件位置<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />JkLogFile logs</span><span style="color: #808080">/</span><span style="color: #000000">mod_jk.</span><span style="color: #ff00ff">log</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># 指定 mod_jk 模块的日志级别<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />JkLogLevel info<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># 指定 mod_jk 模块的日志格式<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />JkLogStampFormat "</span><span style="color: #ff0000">[</span><span style="color: #ff0000">%a %b %d %H:%M:%S %Y</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /># 发送所有请求上下文的请求给 admin<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" />JkMount</span> <span><span style="color: #008080">/*</span> <span style="color: #008080">admin</span></span>
<p><span>最后一个的admin就是第二步中的worker.list</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%; 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">&lt;</span><span style="color: #800000">Service</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="jboss.web"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????</span><span style="color: #008000"><!----></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />??<br />
<img alt="" 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">="8080"</span> <span style="color: #ff0000">address</span><span style="color: #0000ff">="${jboss.bind.address}"</span><span style="color: #ff0000">????<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????????? maxThreads</span><span style="color: #0000ff">="250"</span> <span style="color: #ff0000">maxHttpHeaderSize</span><span style="color: #0000ff">="8192"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????????? emptySessionPath</span><span style="color: #0000ff">="true"</span> <span style="color: #ff0000">protocol</span><span style="color: #0000ff">="HTTP/1.1"</span><span style="color: #ff0000"><br />
<img alt="" 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">="8443"</span> <span style="color: #ff0000">acceptCount</span><span style="color: #0000ff">="100"</span><span style="color: #ff0000"><br />
<img alt="" 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: #0000ff">/&gt;</span><span style="color: #000000">??<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????</span><span style="color: #008000"><!----></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????</span><span style="color: #008000"><!----></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????</span><span style="color: #008000"><!----></span><span style="color: #000000"><br />
<img alt="" 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">="8009"</span> <span style="color: #ff0000">address</span><span style="color: #0000ff">="${jboss.bind.address}"</span> <span style="color: #ff0000">protocol</span><span style="color: #0000ff">="AJP/1.3"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />????????? emptySessionPath</span><span style="color: #0000ff">="true"</span> <span style="color: #ff0000">enableLookups</span><span style="color: #0000ff">="false"</span> <span style="color: #ff0000">redirectPort</span><span style="color: #0000ff">="8443"</span> <span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" 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">="jboss.web"</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 alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />?????????</span><span style="color: #008000"><!----></span></div>
<p>tomcat:<br />
tomcat/conf/server.xml:</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%; 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: #000000"><br />
<img alt="" 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">="8009"</span> <span style="color: #ff0000">protocol</span><span style="color: #0000ff">="AJP/1.3"</span> <span style="color: #ff0000">redirectPort</span><span style="color: #0000ff">="8443"</span> <span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span></div>
<p><br />
其中关于AJP的配置是一样的，这里可以更改你需要的端口，当然上面的apache也需要同时更改。<br />
<br />
最后打浏览器测试一下吧:<br />
http://localhost<br />
<br />
显示的其实就是<a href="http://127.0.0.1:8009/">http://127.0.0.1:8009</a> ，如果你JBoss/Tomat下部署有测试工程。看一下吧。已经出现了。<br />
<br />
好的，操作成功了。说明已经转发成功。</p>
<p><a title="相关附件下载" href="http://cid-39cce615c2e5d86b.skydrive.live.com/self.aspx/Public/opensource/apache-httpserver%e9%85%8d%e7%bd%ae.rar">相关附件下载</a></p>
<br />
<br />
好了apache的配置都搞定了，重启一下ok.<br />
<br />
我们再来看一下jboss的配置:<br />
<br />
找到:<br />
jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\server.xml<br />
<br />
看看最上面的一段配置就行了:</div>
 <img src ="http://www.blogjava.net/bitmap/aggbug/285244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bitmap/" target="_blank">bitmap</a> 2009-07-03 22:06 <a href="http://www.blogjava.net/bitmap/archive/2009/07/03/285244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐快播免费电影网站</title><link>http://www.blogjava.net/sealyu/archive/2009/07/03/285403.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Fri, 03 Jul 2009 12:07:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/archive/2009/07/03/285403.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/285403.html</wfw:comment><comments>http://www.blogjava.net/sealyu/archive/2009/07/03/285403.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/285403.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/285403.html</trackback:ping><description><![CDATA[<h3>推荐快播免费电影网站</h3>
<ul><span id="friend">
    <li><a href="http://www.adnim5.cn/Out.asp?userid=9652" target="_blank">www.k585.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=4373" target="_blank">www.vodtt.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=1" target="_blank">www.mm023.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=5764" target="_blank">www.13hp.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=4974" target="_blank">v.92na.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=5996" target="_blank">tv.huayushequ.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=11437" target="_blank">www.145la.cn</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=3487" target="_blank">www.gggvod.cn</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=9774" target="_blank">www.dv165.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=12992" target="_blank">ymx18.cn</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=6733" target="_blank">www.qvodc.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=3632" target="_blank">whklg.5944vip.net</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=10588" target="_blank">www.lvyoulvyou.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=10582" target="_blank">zjd240.w18.dns2008.cn</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=9559" target="_blank">movie.in0574.com</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=7461" target="_blank">www.cctv-tv.net</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=10572" target="_blank">zjd.9yz.cc</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=10578" target="_blank">www.hcge.net</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=10565" target="_blank">19623.800y.net</a>
    <li><a href="http://www.adnim5.cn/Out.asp?userid=10525" target="_blank">www.sdxyyy.com</a> </li>
    </span></ul>
<img src ="http://www.blogjava.net/sealyu/aggbug/285403.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2009-07-03 20:07 <a href="http://www.blogjava.net/sealyu/archive/2009/07/03/285403.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在分布式事务中实现基于Oracle PLSQL UL LOCK的悲观离线锁</title><link>http://www.blogjava.net/ldd600/archive/2009/07/03/285400.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Fri, 03 Jul 2009 11:24:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/archive/2009/07/03/285400.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/285400.html</wfw:comment><comments>http://www.blogjava.net/ldd600/archive/2009/07/03/285400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/285400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/285400.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 悲观离线锁可以控制多事务的并发，特别是当多事务是在多个jvm上执行时，我们需要利用外部锁，如DB锁。本文利用Oracle PLSQL UL锁，在JTA分布式事务中实现锁管理器，并封装成隐含锁提供给应用项目组使用。&nbsp;&nbsp;<a href='http://www.blogjava.net/ldd600/archive/2009/07/03/285400.html'>阅读全文</a><img src ="http://www.blogjava.net/ldd600/aggbug/285400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2009-07-03 19:24 <a href="http://www.blogjava.net/ldd600/archive/2009/07/03/285400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>