﻿<?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/wangchenyang/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:09:55 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:09:55 GMT</pubDate><ttl>60</ttl><item><title>从需求开发会议谈起</title><link>http://www.blogjava.net/wangchenyang/archive/2011/10/21/363072.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Fri, 21 Oct 2011 15:19:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/10/21/363072.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363072.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/10/21/363072.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363072.html</trackback:ping><description><![CDATA[<p>今天项目组进行了一个小时的需求讨论，由于刚进入项目组不久，对系统了解不多，几乎没有发言一直在旁听。</p>
<p>此次会议得出一点心得：系统开发中最重要的就是<strong>解决方案的敲定</strong>，解决方案选择对的话，就算没有达到事半功倍的效果，开发人员开发起来也能轻松很多。</p>
<p>怎么才能产生一个好的解决方案，这就与对系统、需求、技术的掌握程度了，程度越高考虑事情越周全、解决方案越有效。</p>
<p>由此也可以得出，企业在选择员工时应该看重分析问题、解决问题的能力，而不是技术能力。当然了，技术能力一般，解决问题能力可能也不是多好。</p>
<p>一个好的程序员：<strong>技术能力+解决问题能力</strong>（思维逻辑），所以技术是基础、必备的，技术上要每天都有收获，思维方式要时刻注意培养，不仅仅是解决开发问题时注意，日常生活同样使用。</p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-10-21 23:19 <a href="http://www.blogjava.net/wangchenyang/archive/2011/10/21/363072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>你的成功在于你每天养成的习惯</title><link>http://www.blogjava.net/wangchenyang/archive/2011/10/09/363073.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Sun, 09 Oct 2011 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/10/09/363073.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363073.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/10/09/363073.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363073.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363073.html</trackback:ping><description><![CDATA[<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -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: 0px;" class="Apple-style-span"><span style="text-align: left; line-height: 26px; font-family: Arial; color: #333333; font-size: 14px;" class="Apple-style-span">要成功，就马上准备有所付出吧！这就是每天你应该养成的习惯。<span class="Apple-converted-space">&nbsp;</span><br />1、不说&ldquo;不可能&rdquo;；<span class="Apple-converted-space">&nbsp;</span><br />2、凡事第一反应： 找方法，不找借口；<span class="Apple-converted-space">&nbsp;</span><br />3、遇到挫折对自己说声：太好了，机会来了！<span class="Apple-converted-space">&nbsp;</span><br />4、不说消极的话，不落入消极的情绪，一旦发生立即正面处理；<span class="Apple-converted-space">&nbsp;</span><br />5、凡事先订立目标；<span class="Apple-converted-space">&nbsp;</span><br />6、行动前，预先做计划；<span class="Apple-converted-space">&nbsp;</span><br />7、工作时间，每一分、每一秒做有利于生产的事情；<span class="Apple-converted-space">&nbsp;</span><br />8、随时用零碎的时间做零碎的事情；<span class="Apple-converted-space">&nbsp;</span><br />9、守时；<span class="Apple-converted-space">&nbsp;</span><br />10、写点日记，不要太依靠记忆；<span class="Apple-converted-space">&nbsp;</span><br />11、随时记录想到的灵感；<span class="Apple-converted-space">&nbsp;</span><br />12、把重要的观念、方法写下来，随时提示自己；<span class="Apple-converted-space">&nbsp;</span><br />13、走路比平时快30%，肢体语言健康有力，不懒散、萎靡；<span class="Apple-converted-space">&nbsp;</span><br />14、每天出门照镜子，给自己一个自信的微笑；<span class="Apple-converted-space">&nbsp;</span><br />15、每天自我反省一次；<span class="Apple-converted-space">&nbsp;</span><br />16、每天坚持一次运动；<span class="Apple-converted-space">&nbsp;</span><br />17、听心跳一分钟，在做重要的事情，疲劳时，紧张时，烦躁时。。。。<span class="Apple-converted-space">&nbsp;</span><br />18、开会做前排；<span class="Apple-converted-space">&nbsp;</span><br />19、微笑；<span class="Apple-converted-space">&nbsp;</span><br />20、用心倾听，不打断对方的话；<span class="Apple-converted-space">&nbsp;</span><br />21、说话有力，感觉自己的声音能产生感染力的磁场；<span class="Apple-converted-space">&nbsp;</span><br />22、说话之前，先考虑一下对方的感觉；<span class="Apple-converted-space">&nbsp;</span><br />23、每天有意识赞美别人三次以上；<span class="Apple-converted-space">&nbsp;</span><br />24、即使表示感谢，如果别人帮助了你的话；<span class="Apple-converted-space">&nbsp;</span><br />25、控制住不要让自己作出为自己辩护的第一反应；<span class="Apple-converted-space">&nbsp;</span><br />26、不用训斥、指责的口吻与别人说话；<span class="Apple-converted-space">&nbsp;</span><br />27、每天做一件&rdquo;分外事&ldquo;；<span class="Apple-converted-space">&nbsp;</span><br />28、不关任何方面，每天必须至少做一次&rdquo;进步一点点&ldquo;，并且有意识的提高；<span class="Apple-converted-space">&nbsp;</span><br />29、每天提前15分上班，推迟30分下班；<span class="Apple-converted-space">&nbsp;</span><br />30、每天下班前5分钟做一下今天的整理工作；<span class="Apple-converted-space">&nbsp;</span><br />31、定期存钱；<span class="Apple-converted-space">&nbsp;</span><br />32、节俭；<span class="Apple-converted-space">&nbsp;</span><br />33、时常运用&rdquo;头脑风暴&ldquo;，利用脑力激荡提升自己创新能力；<span class="Apple-converted-space">&nbsp;</span><br />34、恪守诚信；<span class="Apple-converted-space">&nbsp;</span><br />35、学会原谅。</span></span></p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363073.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-10-09 10:58 <a href="http://www.blogjava.net/wangchenyang/archive/2011/10/09/363073.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数字转换人民币大写</title><link>http://www.blogjava.net/wangchenyang/archive/2011/10/08/363074.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Sat, 08 Oct 2011 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/10/08/363074.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363074.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/10/08/363074.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363074.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363074.html</trackback:ping><description><![CDATA[<p>通过JS完成，能满足多种浏览器，不足之处是展示效果不是很理想，而且最多只能输入13位数字，希望大家提出改正方法</p>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span><br /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><br />    <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span>数字转换人民币大写<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><br />    <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #0000ff;">&gt;</span><span style="background-color: #f5f5f5; color: #000000;"><br />        </span><span style="background-color: #f5f5f5; color: #0000ff;">function</span><span style="background-color: #f5f5f5; color: #000000;"> convert() {<br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">var</span><span style="background-color: #f5f5f5; color: #000000;"> big </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">new</span><span style="background-color: #f5f5f5; color: #000000;"> Array(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">零</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">壹</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">贰</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">叁</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">肆</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">伍</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">陆</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">柒</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">捌</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">玖</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">var</span><span style="background-color: #f5f5f5; color: #000000;"> unit </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">new</span><span style="background-color: #f5f5f5; color: #000000;"> Array(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">圆</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">拾</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">佰</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">仟</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">万</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">拾</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">佰</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">仟</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">亿</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">拾</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">,<br /> </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">佰</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">仟</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">万</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">var</span><span style="background-color: #f5f5f5; color: #000000;"> num </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> document.getElementById(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">num</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">).value;<br />             </span><span style="background-color: #f5f5f5; color: #0000ff;">if</span><span style="background-color: #f5f5f5; color: #000000;"> (num </span><span style="background-color: #f5f5f5; color: #000000;">==</span><span style="background-color: #f5f5f5; color: #000000;">""</span><span style="background-color: #f5f5f5; color: #000000;">) {<br />                alert(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">输入为空，请输入数字</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />                </span><span style="background-color: #f5f5f5; color: #0000ff;">return</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">false</span><span style="background-color: #f5f5f5; color: #000000;">;<br />            }<br /><br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">if</span><span style="background-color: #f5f5f5; color: #000000;"> (num.match(</span><span style="background-color: #f5f5f5; color: #000000;">/</span><span style="background-color: #f5f5f5; color: #000000;">[^,.\d]</span><span style="background-color: #f5f5f5; color: #000000;">/</span><span style="background-color: #f5f5f5; color: #000000;">) </span><span style="background-color: #f5f5f5; color: #000000;">!=</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">null</span><span style="background-color: #f5f5f5; color: #000000;">) {<br />                alert(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">输入内容不合法，请输入数字</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />                </span><span style="background-color: #f5f5f5; color: #0000ff;">return</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">false</span><span style="background-color: #f5f5f5; color: #000000;">;<br />            }<br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">var</span><span style="background-color: #f5f5f5; color: #000000;"> temp </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #000000;">""</span><span style="background-color: #f5f5f5; color: #000000;">;<br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">if</span><span style="background-color: #f5f5f5; color: #000000;"> (num </span><span style="background-color: #f5f5f5; color: #000000;">!=</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">null</span><span style="background-color: #f5f5f5; color: #000000;">&amp;&amp;</span><span style="background-color: #f5f5f5; color: #000000;">num.length</span><span style="background-color: #f5f5f5; color: #000000;">&lt;=</span><span style="background-color: #f5f5f5; color: #000000;">13</span><span style="background-color: #f5f5f5; color: #000000;">) {<br />                </span><span style="background-color: #f5f5f5; color: #0000ff;">for</span><span style="background-color: #f5f5f5; color: #000000;"> (</span><span style="background-color: #f5f5f5; color: #0000ff;">var</span><span style="background-color: #f5f5f5; color: #000000;"> i </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #000000;">0</span><span style="background-color: #f5f5f5; color: #000000;">; i </span><span style="background-color: #f5f5f5; color: #000000;">&lt;</span><span style="background-color: #f5f5f5; color: #000000;"> num.length; i</span><span style="background-color: #f5f5f5; color: #000000;">++</span><span style="background-color: #f5f5f5; color: #000000;">) {<br />                    </span><span style="background-color: #f5f5f5; color: #0000ff;">if</span><span style="background-color: #f5f5f5; color: #000000;">(num.charAt(i)</span><span style="background-color: #f5f5f5; color: #000000;">==</span><span style="background-color: #f5f5f5; color: #000000;">0</span><span style="background-color: #f5f5f5; color: #000000;">){<br />                        alert(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">输入内容不合法，不能以0开始</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />                        </span><span style="background-color: #f5f5f5; color: #0000ff;">return</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">false</span><span style="background-color: #f5f5f5; color: #000000;">;<br />                    }</span><span style="background-color: #f5f5f5; color: #0000ff;">else</span><span style="background-color: #f5f5f5; color: #000000;">{<br />                        temp </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> temp </span><span style="background-color: #f5f5f5; color: #000000;">+</span><span style="background-color: #f5f5f5; color: #000000;"> big[num.charAt(i)] </span><span style="background-color: #f5f5f5; color: #000000;">+</span><span style="background-color: #f5f5f5; color: #000000;"> unit[num.length </span><span style="background-color: #f5f5f5; color: #000000;">-</span><span style="background-color: #f5f5f5; color: #000000;"> i </span><span style="background-color: #f5f5f5; color: #000000;">-</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #000000;">1</span><span style="background-color: #f5f5f5; color: #000000;">];<br />                    }<br />                    <br />                }<br />            }</span><span style="background-color: #f5f5f5; color: #0000ff;">else</span><span style="background-color: #f5f5f5; color: #000000;">{<br />                alert(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">最多只能输入13位数字</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />                </span><span style="background-color: #f5f5f5; color: #0000ff;">return</span><span style="background-color: #f5f5f5; color: #000000;"> </span><span style="background-color: #f5f5f5; color: #0000ff;">false</span><span style="background-color: #f5f5f5; color: #000000;">;<br />            }<br />            document.getElementById(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">rmb</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">).innerText </span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;"> temp;<br />            <br />        }<br /><br />        <br />    </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><br /><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><br /><br /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><br /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="num"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="num"</span><span style="color: #0000ff;">/&gt;</span><br /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="convert"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="转换"</span><span style="color: #ff0000;"> onclick</span><span style="color: #0000ff;">="return convert()"</span><span style="color: #0000ff;">/&gt;</span><br /><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="rmb"</span><span style="color: #0000ff;">/&gt;</span><br /><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><br /><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></pre>
</div>
<p><br />&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-10-08 10:36 <a href="http://www.blogjava.net/wangchenyang/archive/2011/10/08/363074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>敲回车光标跳到下一个输入框（只能在IE中使用）</title><link>http://www.blogjava.net/wangchenyang/archive/2011/10/08/363075.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Sat, 08 Oct 2011 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/10/08/363075.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363075.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/10/08/363075.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363075.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363075.html</trackback:ping><description><![CDATA[<div class="cnblogs_code">
<pre><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span><br /> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><br />  <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span> 敲回车光标跳到下一个输入框（只能在IE下使用） <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><br /> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><br />    <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><span style="background-color: #f5f5f5; color: #000000;"><br />        </span><span style="background-color: #f5f5f5; color: #0000ff;">function</span><span style="background-color: #f5f5f5; color: #000000;"> turnNext(object){<br />            </span><span style="background-color: #f5f5f5; color: #0000ff;">if</span><span style="background-color: #f5f5f5; color: #000000;">(object.keyCode</span><span style="background-color: #f5f5f5; color: #000000;">==</span><span style="background-color: #f5f5f5; color: #000000;">13</span><span style="background-color: #f5f5f5; color: #000000;">){<br />                object.keyCode</span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;">9</span><span style="background-color: #f5f5f5; color: #000000;">;<br />            }<br />        }<br />    </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><br /> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><br />  <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">table</span><span style="color: #0000ff;">&gt;</span><br />    <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">tr</span><span style="color: #0000ff;">&gt;</span>username<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="name1"</span><span style="color: #ff0000;"> onkeydown</span><span style="color: #0000ff;">="turnNext(event)"</span><span style="color: #0000ff;">/&gt;&lt;/</span><span style="color: #800000;">tr</span><span style="color: #0000ff;">&gt;</span><br />    <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">tr</span><span style="color: #0000ff;">&gt;</span>password<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="name2"</span><span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;&lt;/</span><span style="color: #800000;">tr</span><span style="color: #0000ff;">&gt;</span><br />    <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">tr</span><span style="color: #0000ff;">&gt;</span>age<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="name2"</span><span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;&lt;/</span><span style="color: #800000;">tr</span><span style="color: #0000ff;">&gt;</span><br />  <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">table</span><span style="color: #0000ff;">&gt;</span><br /> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><br /><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></pre>
</div>
<p></p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-10-08 10:22 <a href="http://www.blogjava.net/wangchenyang/archive/2011/10/08/363075.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种文件注释写法</title><link>http://www.blogjava.net/wangchenyang/archive/2011/09/30/363076.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Fri, 30 Sep 2011 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/09/30/363076.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363076.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/09/30/363076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363076.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363076.html</trackback:ping><description><![CDATA[<div class="Section0">
<h1 style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';">JSP<span face="宋体" style="font-family: 宋体;">注释</span></span><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';"><o:p></o:p></span></h1>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">在JSP中注释最好用</span></span><span style="mso-spacerun: 'yes'; color: #008000; font-weight: bold; font-size: 10.5000pt; font-family: '宋体';">&lt;%----<span face="宋体" style="font-family: 宋体;">注释内容----%&gt;</span></span><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">JSP<span face="宋体" style="font-family: 宋体;">注释分两种</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">显示注释：在客户端（源代码）可以看到</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">HTML<span face="宋体" style="font-family: 宋体;">中的注释&lt;!---注释内容---&gt;&nbsp;&nbsp;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">隐式注释：在客户端（源代码）看不到</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">使用JAVA中的&ldquo;//&rdquo;、&ldquo;/*</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: 'Times New Roman';">&hellip;&hellip;&hellip;&hellip;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">*/&rdquo;<span face="宋体" style="font-family: 宋体;">，以及JSP中自己的注释&lt;%----注释内容----%&gt;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&lt;%---JSP<span face="宋体" style="font-family: 宋体;">中的注释，看不见---%&gt;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&lt;%</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&nbsp;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">//<span face="宋体" style="font-family: 宋体;">注释，看不见&nbsp;</span></span><span style="mso-spacerun: 'yes'; color: #008000; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">单行注释</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&nbsp;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">/*</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&nbsp;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">XXXXX</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&nbsp;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">注释，看不见&nbsp;&nbsp;</span></span><span style="mso-spacerun: 'yes'; color: #008000; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">多行注释</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&nbsp;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">YYYYY</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="text-indent: 21.0000pt; layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">*/</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">%&gt;</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&lt;!----<span face="宋体" style="font-family: 宋体;">显示注释---&gt;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="15" style="layout-grid-mode: char; text-align: justify; line-height: 16.5000pt;"><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';">&lt;!--This&nbsp;page&nbsp;was&nbsp;loaded&nbsp;on&nbsp;&lt;%=&nbsp;(new&nbsp;java.util.Date()).toLocaleString()&nbsp;%&gt;&nbsp;--&gt;</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';"><o:p></o:p></span></p>
<p class="15" style="layout-grid-mode: char; text-align: justify; line-height: 16.5000pt;"><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';"><span face="宋体" style="font-family: 宋体;">结果：&lt;!--This&nbsp;page&nbsp;was&nbsp;loaded&nbsp;on&nbsp;20</span></span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: '宋体';">10</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';">-</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: '宋体';">1</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';">2-</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: '宋体';">0</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';">1&nbsp;13:24:32&nbsp;--&gt;</span><span style="mso-spacerun: 'yes'; color: #000000; font-size: 12.0000pt; font-family: 'Arial';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">如果用显示注释，浏览器也会执行里面的内容，速度会低点</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p><img src="http://pic002.cnblogs.com/images/2011/324103/2011093015510732.jpg" alt="" /></p>
<h1 style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';">HTML<span face="宋体" style="font-family: 宋体;">注释</span></span><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';"><o:p></o:p></span></h1>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">只有一种&nbsp;</span><a name="OLE_LINK1"></a>&lt;!----<span face="宋体" style="font-family: 宋体;">注释内容--&gt;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">&lt;!----<span face="宋体" style="font-family: 宋体;">这里是HTML注释---&gt;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<h1 style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';">XML<span face="宋体" style="font-family: 宋体;">注释</span></span><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';"><o:p></o:p></span></h1>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">只有一种&lt;!----注释内容--&gt;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<h1 style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';">CSS<span face="宋体" style="font-family: 宋体;">注释</span></span><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';"><o:p></o:p></span></h1>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">只有一种&nbsp;/*&nbsp;&nbsp;注释内容&nbsp;*/</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<h1 style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';">JavaScript<span face="宋体" style="font-family: 宋体;">注释</span></span><span style="mso-spacerun: 'yes'; font-weight: bold; font-size: 22.0000pt; font-family: '宋体';"><o:p></o:p></span></h1>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">单行注释&nbsp;&nbsp;&nbsp;//注释内容</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">多行注释&nbsp;&nbsp;</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">/*</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">XXXX</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><span face="宋体" style="font-family: 宋体;">注释内容</span></span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">YYYY</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
<p class="0" style="layout-grid-mode: char; text-align: justify;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">*/</span><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';"><o:p></o:p></span></p>
</div><img src ="http://www.blogjava.net/wangchenyang/aggbug/363076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-09-30 15:52 <a href="http://www.blogjava.net/wangchenyang/archive/2011/09/30/363076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts1入门实例（简单登录）</title><link>http://www.blogjava.net/wangchenyang/archive/2011/09/19/363077.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Mon, 19 Sep 2011 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/09/19/363077.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363077.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/09/19/363077.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363077.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363077.html</trackback:ping><description><![CDATA[<p>现在开始加入公司的核心项目，但由于项目开发比较早，所以使用的技术不是很新潮，前台用的还是struts1。</p>
<p>虽然不是什么新技术，但仍可以从中学到好多东西的。花了一个晚上的时间终于把struts1的流程跑通了。</p>
<p>省略了创建过程及加入jar包的过程，直接进入正题。</p>
<p>首页要在web.xml中添加相应的struts配置：</p>
<div>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">action</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            org.apache.struts.action.ActionServlet<br />        </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">config</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/WEB-INF/struts-config.xml</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">debug</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">2</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">detail</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">2</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">2</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">action</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">*.do</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-mapping</span><span style="color: #0000ff;">&gt;</span></pre>
</div>
</div>
<p></p>
<p>然后在config所对应的目录下添加struts配置文件struts-config.xml</p>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml version="1.0" encoding="UTF-8" </span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br /><br /></span><span style="color: #0000ff;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE struts-config PUBLIC<br />          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"<br />          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /><br /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">struts-config</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /><br /></span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"> ActionForm  </span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">form-beans</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"> name:名称 type:类路径 </span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">form-bean </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="loginForm"</span><span style="color: #ff0000;"> type</span><span style="color: #0000ff;">="com.login.LoginForm"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">form-bean</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">form-beans</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"> 设置全局URL，必须写在Action前面，这样任何Action都可以使用 </span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">global-forwards</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forward </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="result"</span><span style="color: #ff0000;"> path</span><span style="color: #0000ff;">="/result.jsp"</span><span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">global-forwards</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /><br /></span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"> 注册Action </span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action-mappings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />    </span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"> name：名称 type：类路径 path：客户端（JSP）提交到服务器端时指定的路径（Form表单中的action=&rdquo;/login.do" </span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />        </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action </span><span style="color: #ff0000;">path</span><span style="color: #0000ff;">="/login"</span><span style="color: #ff0000;"> type</span><span style="color: #0000ff;">="com.login.LoginAction"</span><span style="color: #ff0000;"><br />            name</span><span style="color: #0000ff;">="loginForm"</span><span style="color: #ff0000;"> scope</span><span style="color: #0000ff;">="request"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;"> 局部URL，只有这个action可以使用 </span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forward </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="success"</span><span style="color: #ff0000;"> path</span><span style="color: #0000ff;">="/success.jsp"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">forward</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />            </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forward </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="error"</span><span style="color: #ff0000;"> path</span><span style="color: #0000ff;">="/error.jsp"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">forward</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />        </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: #0000ff;">&lt;/</span><span style="color: #800000;">action-mappings</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /><br /><br /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">struts-config</span><span style="color: #0000ff;">&gt;</span></pre>
</div>
<pre></pre>
<pre>注：Action和Form的关系是一个Action只能对应一个Form（通过Action的name属性）</pre>
<pre>而一个Form可以被多个Action调用</pre>
<pre><strong>LoginAction.java</strong></pre>
<div>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">package</span><span style="color: #000000;"> com.login;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.http.HttpServletRequest;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.http.HttpServletResponse;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.Action;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.ActionForm;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.ActionForward;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.ActionMapping;<br /><br /></span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> LoginAction </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> Action {<br /><br />    @Override<br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> ActionForward execute(ActionMapping mapping, ActionForm form,<br />            HttpServletRequest request, HttpServletResponse response)<br />            </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception {<br />        LoginForm lf </span><span style="color: #000000;">=</span><span style="color: #000000;"> (LoginForm) form;<br />        String username </span><span style="color: #000000;">=</span><span style="color: #000000;"> lf.getUsername();<br />        String password </span><span style="color: #000000;">=</span><span style="color: #000000;"> lf.getPassword();<br />        String errorInfo </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">""</span><span style="color: #000000;">;<br />        String result </span><span style="color: #000000;">=</span><span style="color: #000000;"> UserManager.getInstance().login(username, password);<br />        </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (result.equals(</span><span style="color: #000000;">"</span><span style="color: #000000;">success</span><span style="color: #000000;">"</span><span style="color: #000000;">)) {<br />            request.setAttribute(</span><span style="color: #000000;">"</span><span style="color: #000000;">username</span><span style="color: #000000;">"</span><span style="color: #000000;">, username);<br />            </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> mapping.findForward(</span><span style="color: #000000;">"</span><span style="color: #000000;">success</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />        } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (result.equals(</span><span style="color: #000000;">"</span><span style="color: #000000;">username</span><span style="color: #000000;">"</span><span style="color: #000000;">)) {<br />            errorInfo </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">密码错误</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />        } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {<br />            errorInfo </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">用户名错误</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />        }<br />        request.setAttribute(</span><span style="color: #000000;">"</span><span style="color: #000000;">errorInfo</span><span style="color: #000000;">"</span><span style="color: #000000;">, errorInfo);<br />        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> mapping.findForward(</span><span style="color: #000000;">"</span><span style="color: #000000;">error</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />    }<br /><br />}</span></pre>
</div>
</div>
<div></div>
<pre><strong>LoginForm.java</strong></pre>
<div>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;">package</span><span style="color: #000000;"> com.login;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.servlet.http.HttpServletRequest;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.ActionErrors;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.ActionForm;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.struts.action.ActionMapping;<br /><br /></span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> LoginForm </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> ActionForm {<br /><br />    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String username;<br />    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String password;<br /><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> reset(ActionMapping mapping, HttpServletRequest request) {<br />        System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">--------reset()-------------</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />        </span><span style="color: #0000ff;">super</span><span style="color: #000000;">.reset(mapping, request);<br />    }<br /><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> ActionErrors validate(ActionMapping mapping,<br />            HttpServletRequest request) {<br />        System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">--------validate()-------------</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #0000ff;">super</span><span style="color: #000000;">.validate(mapping, request);<br />    }<br /><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String getUsername() {<br />        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> username;<br />    }<br /><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setUsername(String username) {<br />        </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.username </span><span style="color: #000000;">=</span><span style="color: #000000;"> username;<br />    }<br /><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String getPassword() {<br />        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> password;<br />    }<br /><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setPassword(String password) {<br />        </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.password </span><span style="color: #000000;">=</span><span style="color: #000000;"> password;<br />    }<br /><br />}</span></pre>
</div>
</div>
<div></div>
<pre><strong>对我个人来说最重要的是前台jsp页面没有掌握，经常在页面上花费很多时间</strong></pre>
<pre>在编写JSP页面时要用struts标签，而我经常会忘记</pre>
<pre>引入jsp标签</pre>
<div>
<pre>&lt;%@ taglib uri="<span style="color: #8b0000;">http://struts.apache.org/tags-html</span>" prefix="<span style="color: #8b0000;">html</span>" %&gt;
&lt;%@ taglib uri="<span style="color: #8b0000;">http://struts.apache.org/tags-bean</span>" prefix="<span style="color: #8b0000;">bean</span>" %&gt;</pre>
</div>
<pre>index.jsp</pre>
<div>
<pre>&lt;%@ page language="<span style="color: #8b0000;">java</span>" <span style="color: #0000ff;">import</span>="<span style="color: #8b0000;">java.util.*</span>" pageEncoding="<span style="color: #8b0000;">UTF-8</span>"%&gt;
&lt;%@ taglib uri="<span style="color: #8b0000;">http://struts.apache.org/tags-html</span>" prefix="<span style="color: #8b0000;">html</span>" %&gt;
&lt;%@ taglib uri="<span style="color: #8b0000;">http://struts.apache.org/tags-bean</span>" prefix="<span style="color: #8b0000;">bean</span>" %&gt;

&lt;!DOCTYPE HTML PUBLIC "<span style="color: #8b0000;">-//W3C//DTD HTML 4.01 Transitional//EN</span>"&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;title&gt;首页&lt;/title&gt;
	&lt;/head&gt;

	&lt;body&gt;
		&lt;html:form action="<span style="color: #8b0000;">/login.do</span>"&gt;
			用户名：&lt;html:text property="<span style="color: #8b0000;">username</span>"&gt;&lt;/html:text&gt;&lt;br/&gt;
			密码: &lt;html:password property="<span style="color: #8b0000;">password</span>"&gt;&lt;/html:password&gt;&lt;br/&gt;
			&lt;html:submit&gt;submit&lt;/html:submit&gt;
		&lt;/html:form&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>
<p>&nbsp;</p>
<p><strong>展示结果（将Action的返回值展示到JSP页面上）</strong></p>
<div>
<pre>&lt;%@ page language="<span style="color: #8b0000;">java</span>" <span style="color: #0000ff;">import</span>="<span style="color: #8b0000;">java.util.*</span>" pageEncoding="<span style="color: #8b0000;">UTF-8</span>"%&gt;
&lt;%@ taglib uri="<span style="color: #8b0000;">http://struts.apache.org/tags-html</span>" prefix="<span style="color: #8b0000;">html</span>"%&gt;
&lt;%@ taglib uri="<span style="color: #8b0000;">http://struts.apache.org/tags-bean</span>" prefix="<span style="color: #8b0000;">bean</span>"%&gt;

&lt;!DOCTYPE HTML PUBLIC "<span style="color: #8b0000;">-//W3C//DTD HTML 4.01 Transitional//EN</span>"&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;title&gt;Error&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;bean:write <span style="color: #0000ff;">name</span>="<span style="color: #8b0000;">errorInfo</span>" scope="<span style="color: #8b0000;">request</span>" /&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>
<p></p>
<div></div>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre></pre><img src ="http://www.blogjava.net/wangchenyang/aggbug/363077.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-09-19 23:00 <a href="http://www.blogjava.net/wangchenyang/archive/2011/09/19/363077.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ant学习实例</title><link>http://www.blogjava.net/wangchenyang/archive/2011/09/14/363078.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Wed, 14 Sep 2011 14:03:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/09/14/363078.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363078.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/09/14/363078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363078.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363078.html</trackback:ping><description><![CDATA[<h1>1.安装Ant</h1>  <p>先从<a title="http://ant.apache.org/" href="http://ant.apache.org/">http://ant.apache.org/</a>下载Ant，解压到任一目录下面，比如E:\Lab</p>  <p>然后设置环境变量</p>  <p>ANT_HOME=E:\Lab\apache-ant-1.8.2</p>  <p>path=E:\Lab\apache-ant-1.8.2\bin</p>  <p>最后验证是否安装成功</p>  <p>在dos中输入ant，如果显示</p>  <p><em>Buildfile: build.xml does not exist!      <br />Build failed</em></p>  <p>则安装成功</p>  <h1>2.基础元素</h1>  <h2>project元素</h2>  <p>project元素是Ant文件的根元素</p>  <p>project的属性</p>  <table border="1" cellspacing="0" cellpadding="2" width="666"><tbody>     <tr>       <td valign="top" width="80">         <p>Attribute</p>       </td>        <td valign="top" width="315">         <p>Description</p>       </td>        <td valign="top" width="269">         <p>Required</p>       </td>     </tr>      <tr>       <td valign="top" width="84">         <p>name</p>       </td>        <td valign="top" width="313">         <p>项目名称</p>       </td>        <td valign="top" width="269">         <p>No</p>       </td>     </tr>      <tr>       <td valign="top" width="88">         <p>default</p>       </td>        <td valign="top" width="311">         <p>当没有指定target时使用的缺省target</p>       </td>        <td valign="top" width="269">         <p>Yes</p>       </td>     </tr>      <tr>       <td valign="top" width="91">         <p>basedir</p>       </td>        <td valign="top" width="309">         <p>用于指定基路径的位置。该属性没有指定时，使用 Ant 的构件文件的附目录作为基准目录。</p>       </td>        <td valign="top" width="269">         <p>No</p>       </td>     </tr>   </tbody></table>  <h2>target元素</h2>  <p>target为Ant的基本执行单元，它可以包含一个或多个具体的任务。多个target 可以存在相互依赖关系</p>  <p>Ant会依照depends属性中target出现的顺序（从左到右）依次执行每个target。然而，要记住的是只要某个target依赖于一个target，后者就会被先执行。</p>  <table border="1" cellspacing="0" cellpadding="2" width="661"><tbody>     <tr>       <td valign="top" width="659">         <p>&lt;target name=&quot;A&quot;/&gt;</p>          <p>&lt;target name=&quot;B&quot; depends=&quot;A&quot;/&gt;</p>          <p>&lt;target name=&quot;C&quot; depends=&quot;B&quot;/&gt;</p>          <p>&lt;target name=&quot;D&quot; depends=&quot;C,B,A&quot;/&gt;</p>       </td>     </tr>   </tbody></table>  <p>假定我们要执行target D。从它的依赖属性来看，你可能认为先执行C，然后B，最后A被执行。错了，C依赖于B，B依赖于A，所以先执行A，然后B，</p>  <p>然后C，最后D被执行。</p>  <p>一个target只能被执行一次，即时有多个target依赖于它。</p>  <p>若想更好的控制build过程，可以使用if或unless。</p>  <p>if 属性 </p>  <p>&#160;&#160;&#160; 用于验证指定的属性是否存在，若不存在，所在 target 将不会被执行。</p>  <p>unless 属性 </p>  <p>&#160;&#160;&#160; 该属性的功能与 if 属性的功能正好相反，它也用于验证指定的属性是否存在，若不存在，所在 target 将会被执行。</p>  <h2>property元素</h2>  <p>property元素可看作参量或者参数的定义（即经常使用的变量），project 的属性可以通过 property 元素来设定，也可在 Ant 之外设定。</p>  <p>name是变量的名称 value是变量的值,要用某个变量时使用${name}方式调用。</p>  <h1>3.完整示例</h1>  <p>创建一个java项目</p>  <p>HelloWorld.java</p>  <div>   <pre>package com.test;

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println(&quot;Hello world&quot;);
	}
}</pre>
</div>

<p>编写build.xml文件</p>

<p><strong>注：build.xml放在和src同级目录，而不是在src下级目录</strong></p>

<p>目录结构是</p>

<div>
  <p>MyProject &lt;dir&gt; 
    <br />|--lib &lt;dir&gt; －－库目录 

    <br />|--classes &lt;dir&gt; －－目的文件目录 

    <br />|--src &lt;dir&gt; －－源文件目录 

    <br />|--doc &lt;dir&gt; －－api文档目录 

    <br /><font color="#ff0000">|--build.xml</font></p>

  <pre>&lt;?xml version=&quot;<span style="color: #8b0000">1.0</span>&quot; encoding=&quot;<span style="color: #8b0000">UTF-8</span>&quot; ?&gt;
&lt;project name=&quot;<span style="color: #8b0000">helloWorld</span>&quot; <span style="color: #0000ff">default</span>=&quot;<span style="color: #8b0000">run</span>&quot; basedir=&quot;<span style="color: #8b0000">.</span>&quot;&gt;
	&lt;property name=&quot;<span style="color: #8b0000">src</span>&quot; value=&quot;<span style="color: #8b0000">src</span>&quot;/&gt;
	&lt;property name=&quot;<span style="color: #8b0000">dest</span>&quot; value=&quot;<span style="color: #8b0000">build/classes</span>&quot;/&gt;
	&lt;property name=&quot;<span style="color: #8b0000">lib</span>&quot; value=&quot;<span style="color: #8b0000">lib</span>&quot;&gt;&lt;/property&gt;
	&lt;property name=&quot;<span style="color: #8b0000">hello_jar</span>&quot; value=&quot;<span style="color: #8b0000">hello1.jar</span>&quot;&gt;&lt;/property&gt;
	&lt;!--初始化 之前执行删除操作--&gt;
	&lt;target name=&quot;<span style="color: #8b0000">init</span>&quot; depends=&quot;<span style="color: #8b0000">clean</span>&quot;&gt;
		&lt;mkdir dir=&quot;<span style="color: #8b0000">${dest}</span>&quot;/&gt;
	&lt;/target&gt;
	&lt;!--编译生成class文件 --&gt;
	&lt;target name=&quot;<span style="color: #8b0000">compile</span>&quot; depends=&quot;<span style="color: #8b0000">init</span>&quot;&gt;
		&lt;javac srcdir=&quot;<span style="color: #8b0000">${src}</span>&quot; destdir=&quot;<span style="color: #8b0000">${dest}</span>&quot;&gt;&lt;/javac&gt;
	&lt;/target&gt;
	&lt;!--将编译后的class文件打包--&gt;
	&lt;target name=&quot;<span style="color: #8b0000">build</span>&quot; depends=&quot;<span style="color: #8b0000">compile</span>&quot;&gt;
		&lt;mkdir dir=&quot;<span style="color: #8b0000">${lib}</span>&quot;/&gt;
		&lt;jar jarfile=&quot;<span style="color: #8b0000">${lib}/${hello_jar}</span>&quot; basedir=&quot;<span style="color: #8b0000">${dest}</span>&quot;&gt;&lt;/jar&gt;
	&lt;/target&gt;
	&lt;target name=&quot;<span style="color: #8b0000">run</span>&quot; depends=&quot;<span style="color: #8b0000">build</span>&quot;&gt;
		&lt;java classname=&quot;<span style="color: #8b0000">com.test.HelloWorld</span>&quot; classpath=&quot;<span style="color: #8b0000">${lib}/${hello_jar}</span>&quot;&gt;&lt;/java&gt;
	&lt;/target&gt;
	&lt;!--删除--&gt;
	&lt;target name=&quot;<span style="color: #8b0000">clean</span>&quot;&gt;
		&lt;delete dir=&quot;<span style="color: #8b0000">${dest}</span>&quot;&gt;&lt;/delete&gt;
		&lt;delete dir=&quot;<span style="color: #8b0000">${lib}</span>&quot;&gt;&lt;/delete&gt;&lt;!-- 是dir 删除目录 ，不是file 删除文件--&gt;
	&lt;/target&gt;
&lt;/project&gt;</pre>
</div>
整个过程：初始化----编译----打包---放到相应的位置 

<br />

<p>参考：</p>

<p><a title="http://www.cnblogs.com/philander/articles/1782254.html" href="http://www.cnblogs.com/philander/articles/1782254.html">http://www.cnblogs.com/philander/articles/1782254.html</a></p>

<p><a title="http://www.cnblogs.com/elric/archive/2011/03/19/1988840.html" href="http://www.cnblogs.com/elric/archive/2011/03/19/1988840.html">http://www.cnblogs.com/elric/archive/2011/03/19/1988840.html</a></p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-09-14 22:03 <a href="http://www.blogjava.net/wangchenyang/archive/2011/09/14/363078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>请不要忘记，还有“思考”这个东西【转】</title><link>http://www.blogjava.net/wangchenyang/archive/2011/09/08/363079.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Thu, 08 Sep 2011 01:10:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/09/08/363079.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363079.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/09/08/363079.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363079.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363079.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">
<p>【转自】<a href="http://www.cnblogs.com/tanky_woo/archive/2011/09/07/2169559.html">http://www.cnblogs.com/tanky_woo/archive/2011/09/07/2169559.html</a></p>
<p>最近准备参加实习生招聘，于是开始关注起了各大公司的面试题，在看网易面试题的时候看到了这么一题：</p>
<p><span style="background-color: #c0c0c0;"><span style="color: #ff0000;">为什么现在的计算机采用二进制？而不是八进制或十六进制？你认为以后的计算机会采用几进制？</span></span></p>
<p>我当时就在问自己，为什么？但是无果，我隐约记得很多书上都讲过，但是为了追求速度，追求更重要的知识，我把这部分内容给自动滤过了。</p>
<p>于是我又在想，是什么原因导致这样的呢？</p>
<p>我开始回忆我的学习过程，我发现，在大一大二开始接触编程时，我还是很喜欢思考的，但是为何后来就麻木了呢？</p>
<p>于是我又开始分析我的学习方法，没错，就是学习方法出问题了&mdash;我过于的追求速度，追求广泛，很多知识，我都是一扫而过，很多代码，我都是看一看就自以为懂了，曾经刚开始学时，我还经常把代码往电脑上敲，把代码抄在纸上，然而现在却是直接扫一下。</p>
<p>我想到了一个词&mdash;<strong>物极必反</strong>。虽然我看的很多，看的很快，但是收效却不大。</p>
<p>我突然就被惊醒了，是的，扪心自问一下，现在记在我脑海里的，还有多少知识呢？你了解的知识多吗？你看书仔细吗？</p>
<p>我相信很多人都和我一样，为了应付考试，应付以后的面试，工作，都在疯狂的看书，疯狂的吸纳知识，但是，你真的掌握了这些知识吗？</p>
<p>写到这里的时候，我又想起来我昨天在伯乐在线看到的<a href="http://www.jobbole.com/entry.php/1322-&aring;&cedil;&cedil;&eacute;&laquo;&auml;&frac14;&iuml;&frac14;&aring;&brvbar;&auml;&frac12;&aring;&shy;&brvbar;&auml;&sup1;&nbsp;&auml;&cedil;&eacute;&mdash;&uml;&aelig;&deg;&ccedil;&egrave;&macr;&shy;&egrave;&uml;" target="_blank"><span style="color: #313428;" color="#313428">一篇文章</span></a>：学一门语言，要了解他的历史，哲学观，这也是一种思考：</p>
<p>比如文章中举例的：拿python来说，他的设计哲学是&ldquo;用一种方法，最好是只有一种方法来做一件事&rdquo;，而perl的设计哲学是&ldquo;总有多种方法来做同一件事&rdquo;。</p>
<p>其实，这是多么有趣的一件事，然后，就这样被大部分人给忽略了。想到这，我都替自己感觉到可惜。</p>
<p>幸好今天发现了这个问题，就像《让子弹飞》里面说的一样&ldquo;步子要一步步的走，迈得大了，会扯着蛋&rdquo;，确实，知识也要一步步的积累，没有什么快速掌握的方法，最好的办法就是一步一步的积累，要多<strong>思考</strong>，没有思考，就没有进步；没有思考，就没有升华。</p>
<p>我们应该时刻要记住，学，应该是一种享受的过程，重点不在于结果，而是过程，一种发散思维的过程。</p>
<p>希望自己能时刻记住这一点，能应付好接下来的实习生求职。</p>
<p>注：上面那个问题的答案，大家可以相互交流下，我在网上找到这篇讲的不错：</p>
<p><a href="http://blog.csdn.net/hkx1n/article/details/4280036"><span style="color: #313428;" color="#313428">http://blog.csdn.net/hkx1n/article/details/4280036</span></a></p>
</div>
<script type="text/javascript">// <![CDATA[
if ($ != jQuery) {
	$ = jQuery.noConflict();
}
var isLogined = true;
var cb_blogId = 72950;
var cb_entryId = 2169559;
var cb_blogApp = "tanky_woo";
var cb_blogUserGuid = "99a47d77-f68b-df11-ba8f-001cf0cd104b";
var cb_entryCreatedDate = '2011/9/7 10:57:00';
// ]]&gt;</script><img src ="http://www.blogjava.net/wangchenyang/aggbug/363079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-09-08 09:10 <a href="http://www.blogjava.net/wangchenyang/archive/2011/09/08/363079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT草根职场必看【转】</title><link>http://www.blogjava.net/wangchenyang/archive/2011/09/07/363080.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Wed, 07 Sep 2011 13:05:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/09/07/363080.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363080.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/09/07/363080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363080.html</trackback:ping><description><![CDATA[<p>前言:真实世界中的事情往往不是我们想象那么简单的,软件项目的复杂的业务也不是市面上的什么&rdquo;精通，企业级&rdquo;之类书籍能够讲述明白的。不要以为管理系统就是数据增删改查，不要以为数据相差零点零几就没有什么。</p>
<p>你要清楚：作为一个开发人员，你最值得骄傲的是什么，职业操守是什么。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 这里有一点需要的明白的是：公司为什么请你？说的直接一点，公司不是慈善机构，公司就是花钱请你来为她做事，创造价值的，一个不能创造价值的员工，公司会留你吗？</p>
<p>&nbsp;&nbsp;&nbsp; 终于等到了上班的那天，我对任何人都珍惜今天的这个机会，因为没有人知道，在此之前，我经历了怎样的艰辛。</p>
<p>&nbsp;&nbsp;&nbsp; Leader给了我系统的整个数据字典（所有数据库表的图），说了一句：&ldquo;理解所有表的关系，下午我给你讲讲系统的业务背景&rdquo;。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;看到这里，有一点要告诉大家的是：不要再天真的以为公司会花几个星期，几个月的事情，让你慢慢的熟悉业务，熟悉相关的知识，一切要靠自己去快速的领悟与消化，这是一个&ldquo;物竞天择，能者居之&rdquo;的社会，不是没有谁就不行。</p>
<p>&nbsp;&nbsp;&nbsp; 说道这里，打个岔！同时这里给刚刚毕业或者踏入整个行业的朋友们提个醒：不要再以自己大学多么有名而骄傲，也不要再因为自己以前的成绩多么的好而得以。<strong>一个人的学习能力就决定了他以后发展的深度和广度。胸怀决定发展的高度！</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;<strong> 不要再以为有人会像老师那样一行行的解释代码是什么意思，不要以为你是新人，犯错就是&ldquo;理所当然&rdquo;。No excuse！</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 在公司，我是最小的，周围都是有几年工作经历的同事，还有四十多岁的。如果公司要裁人（在中国it），那么新人和年纪很大的就是目标群体（在你没有核心竞争力和很好的人缘之前），新人是最大的目标！压力！</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 毕竟自己从大二就开始在外面兼职和实习，这点觉悟还是有的。所以，接到这第一个任务之后，自己开始行动起来。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 面对上百张数据表，无疑是个负责的蜘蛛网，怎么办？那就得看你如何处理了。如果说，你要找人帮忙，也得&ldquo;察言观色&rdquo;。下面，我们就细细说来。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 首先说如何理解上百张表，无疑，从系统的功能入手时最快速的。系统的功能一般是分模块实现的，那么表势必和相关的功能挂钩，那么把表按照功能划分来看，就很方便了。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以这里就告诫朋友们一点：要学会逆向思维。一直做项目的时候，总是先设计功能，让后设计表，是吧！现在反推，从表到功能，再回到表，就能够把问题变得简单一点！不要以为这很简单，我这里只是一个简单的例子而已，如果问题更加复杂，怎么办？！</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 因为我是新人，计算机的权限有限，很多的资源都不能访问，也没有开通查看代码的权限。但是，我现在需要可以运行的系统来帮助我，怎么办？</p>
<p>那么就涉及到第二个问题，如何找人帮忙？</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 不要傻不拉几的一上去就随便找个人，然后开口说：&ldquo;帮我一下&ldquo;！要知道，人家凭什么帮你？人家有事情要忙吗？这个世界没有谁帮助谁是理所当然的！感激帮助过你的朋友和亲人吧！</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以，<strong>要学会&ldquo;察言观色&ldquo;，这里不是贬义词！做人要灵光点</strong>！</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先，最好请示leader，问他是否有时间？态度要好！如果没有，那么就要问他，除了他还有谁可以问。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当问另外一个人的时候，首先要观察这个人是不是忙的那种不可开交的样子，如果是，那么，现在最好不要问，而是自己再次评估一下，如果要找人帮忙，估计要花人家多长的时间？如何估算，这就是个人的本事了，呵呵！我这里暂且不说，免得又朋友说&ldquo;你不说，我也知道&ldquo; ！呵呵！</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后，等自己这边时间也估计好之后，然后态度很好的告诉你需要寻求帮助的人：&ldquo;可以打扰你几分钟吗&ldquo;，然后，你就告诉他，你需要系统的一个可以运行的版本! 如果人家没有时间，不要退缩，你就要追问，估计什么时候可以有时间，是否有文档，先让自己熟悉下。然后你就到那个点在再去问，不要忘记，随时注意态度！</p>
<p>&nbsp; &nbsp;&nbsp; 不管如何，不要靠指望别人，要靠自己的一些经验或相关文档，尽力的理解。<strong>一句话，用心的，带着脑子做事情！</strong></p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-09-07 21:05 <a href="http://www.blogjava.net/wangchenyang/archive/2011/09/07/363080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种创建单例模式的优缺点</title><link>http://www.blogjava.net/wangchenyang/archive/2011/09/05/363081.html</link><dc:creator>日出星辰</dc:creator><author>日出星辰</author><pubDate>Mon, 05 Sep 2011 13:54:00 GMT</pubDate><guid>http://www.blogjava.net/wangchenyang/archive/2011/09/05/363081.html</guid><wfw:comment>http://www.blogjava.net/wangchenyang/comments/363081.html</wfw:comment><comments>http://www.blogjava.net/wangchenyang/archive/2011/09/05/363081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangchenyang/comments/commentRss/363081.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangchenyang/services/trackbacks/363081.html</trackback:ping><description><![CDATA[<p>单例模式应用于一个类只有一个实例的情况，并且为其实例提供一个全局的访问点。</p>  <p><strong>特点</strong>：</p>  <p>1.一个类只有一个实例</p>  <p>2.自己创建这个实例</p>  <p>3.整个系统只能用这个实例</p>  <p><strong>应用场景</strong></p>  <p>外部资源：每台计算机有若干个打印机，但只能有一个PrinterSpooler，以避免两个打印作业同时输出到打印机。</p>  <p>内部资源：大多数软件都有一个（或多个）属性文件存放系统配置，这样的系统应该有一个对象管理这些属性文件。</p>  <p><strong>实现方式</strong></p>  <p>1.饿汉式：单例实例在类装载时就构建，急切初始化。（预先加载法）</p>  <div>   <pre><span style="color: #008000">/**
 * 饿汉式（推荐）
 *
 */</span>
<span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> Singleton1 {

	<span style="color: #0000ff">private</span> Singleton1() {
	}

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Singleton1 instance = <span style="color: #0000ff">new</span> Singleton1();

	<span style="color: #0000ff">public</span> Singleton1 getInstance() {
		<span style="color: #0000ff">return</span> instance;
	}

}</pre>
</div>

<br />

<table cellspacing="0" cellpadding="2" width="684" border="1"><tbody>
    <tr>
      <td valign="top" width="200">优点</td>

      <td valign="top" width="482">1.线程安全 
        <br />2.在类加载的同时已经创建好一个静态对象，调用时反应速度快</td>
    </tr>

    <tr>
      <td valign="top" width="200">缺点</td>

      <td valign="top" width="482">资源效率不高，可能getInstance()永远不会执行到，但执行该类的其他静态方法或者加载了该类（class.forName)，那么这个实例仍然初始化</td>
    </tr>
  </tbody></table>

<p>&#160;</p>

<p>2.懒汉式：单例实例在第一次被使用时构建，延迟初始化。</p>

<div>
  <pre><span style="color: #0000ff">class</span> Singleton2 {
	<span style="color: #0000ff">private</span> Singleton2() {
	}

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Singleton2 instance = <span style="color: #0000ff">null</span>;

	<span style="color: #0000ff">public</span> static Singleton2 getInstance() {
		<span style="color: #0000ff">if</span> (instance == <span style="color: #0000ff">null</span>) {</pre>

  <pre>              //多个线程判断instance都为null时，在执行new操作时多线程会出现重复情况
			instance = <span style="color: #0000ff">new</span> Singleton2();
		}
		<span style="color: #0000ff">return</span> instance;
	}
}</pre>
</div>

<br />

<p>懒汉式在单个线程中没有问题，但在多线程就可能会出现两个或多个Singleton2实例情况，</p>

<p>虽然后面实例化的Singleton2会覆盖前面实例化的Singleton2，但最好避免这样的情况。</p>

<p>改进方式就是加锁synchornized</p>

<div>
  <pre><span style="color: #0000ff">class</span> Singleton3 {
	<span style="color: #0000ff">private</span> Singleton3() {
	}

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Singleton3 instance = <span style="color: #0000ff">null</span>;

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">synchronized</span> Singleton3 getInstance() {
		<span style="color: #0000ff">if</span> (instance == <span style="color: #0000ff">null</span>) {
			instance = <span style="color: #0000ff">new</span> Singleton3();
		}
		<span style="color: #0000ff">return</span> instance;
	}
}</pre>
</div>

<table cellspacing="0" cellpadding="2" width="644" border="1"><tbody>
    <tr>
      <td valign="top" width="200">优点</td>

      <td valign="top" width="442">资源利用率高，不执行getInstance()就不会被实例，可以执行该类的其他静态方法</td>
    </tr>

    <tr>
      <td valign="top" width="200">缺点</td>

      <td valign="top" width="442">第一次加载时不够快，多线程使用不必要的同步开销大</td>
    </tr>
  </tbody></table>

<p>
  <br />3.双重检测</p>

<div>
  <pre><span style="color: #0000ff">class</span> Singleton4 {
	<span style="color: #0000ff">private</span> Singleton4() {
	}

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Singleton4 instance = <span style="color: #0000ff">null</span>;

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Singleton4 getInstance() {
		<span style="color: #0000ff">if</span> (instance == <span style="color: #0000ff">null</span>) {
			<span style="color: #0000ff">synchronized</span> (Singleton4.<span style="color: #0000ff">class</span>) {
				<span style="color: #0000ff">if</span> (instance == <span style="color: #0000ff">null</span>) {
					instance = <span style="color: #0000ff">new</span> Singleton4();
				}
			}
		}
		<span style="color: #0000ff">return</span> instance;
	}
}</pre>
</div>

<br />

<table cellspacing="0" cellpadding="2" width="639" border="1"><tbody>
    <tr>
      <td valign="top" width="200">优点</td>

      <td valign="top" width="437">资源利用率高，不执行getInstance()就不被实例，可以执行该类其他静态方法</td>
    </tr>

    <tr>
      <td valign="top" width="200">缺点</td>

      <td valign="top" width="437">第一次加载时反应不快，由于java内存模型一些原因偶尔失败</td>
    </tr>
  </tbody></table>

<p>&#160;</p>

<p>4.静态内部类</p>

<div>
  <pre><span style="color: #0000ff">class</span> Singleton5 {
	<span style="color: #0000ff">private</span> Singleton5() {
	}

	<span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">class</span> SingletonHelp {
		<span style="color: #0000ff">static</span> Singleton5 instance = <span style="color: #0000ff">new</span> Singleton5();
	}

	<span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> Singleton5 getInstance() {
		<span style="color: #0000ff">return</span> SingletonHelp.instance;
	}
}</pre>
</div>

<br />

<table cellspacing="0" cellpadding="2" width="639" border="1"><tbody>
    <tr>
      <td valign="top" width="200">优点</td>

      <td valign="top" width="437">资源利用率高，不执行getInstance()不被实例，可以执行该类其他静态方法</td>
    </tr>

    <tr>
      <td valign="top" width="200">缺点</td>

      <td valign="top" width="437">第一次加载时反应不够快</td>
    </tr>
  </tbody></table>

<p>&#160;</p>

<p><strong><font color="#ff0000">总结：一般采用饿汉式（1），若对资源十分在意可以采用静态内部类（4），不建议采用懒汉式及双重检测（2、3）</font></strong></p>

<p><strong>另外</strong></p>

<p>对于第二种可以采用volatile方式</p>

<p>volatile用更低的代价代替同步</p>

<p>解释：同步的代价主要有覆盖范围决定，如果可以降低同步的覆盖范围，可大幅提升性能。</p>

<p>而volatile覆盖范围是变量级别的，因此同步代价很低。</p>

<p>volatile原理：告诉处理器，不要将其放入工作内存，而是直接在主存操作。因此，当多处理器或多线程在访问该变量时</p>

<p>都将直接操作主存，这在本质上做到了变量共享。</p>

<p>volation优势：</p>

<p>1.更大的程度吞吐量</p>

<p>2.更少的代码实现多线程</p>

<p>3.程序伸缩性好</p>

<p>4.比较好理解，无需太高的学习成本</p>

<p>volatile不足：</p>

<p>1.容易出问题</p>

<p>2.比较难设计</p>

<p><strong>参考文献</strong></p>

<p><a title="http://yiminghe.iteye.com/blog/404334" href="http://yiminghe.iteye.com/blog/404334">http://yiminghe.iteye.com/blog/404334</a></p>

<p><a title="http://developer.51cto.com/art/201103/249322.htm" href="http://developer.51cto.com/art/201103/249322.htm">http://developer.51cto.com/art/201103/249322.htm</a></p><img src ="http://www.blogjava.net/wangchenyang/aggbug/363081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangchenyang/" target="_blank">日出星辰</a> 2011-09-05 21:54 <a href="http://www.blogjava.net/wangchenyang/archive/2011/09/05/363081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>