﻿<?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-Ordinary hut</title><link>http://www.blogjava.net/landor2004/</link><description>人间一福地，胜似天仙宫</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 16:53:20 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 16:53:20 GMT</pubDate><ttl>60</ttl><item><title>Notify和Wait的简单理解</title><link>http://www.blogjava.net/landor2004/archive/2013/04/27/398507.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Sat, 27 Apr 2013 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2013/04/27/398507.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/398507.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2013/04/27/398507.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/398507.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/398507.html</trackback:ping><description><![CDATA[<div>java中wait和notify的简单理解</div><div>1 它们都是Object的属性；</div><div>2 wait：释放对象锁；由于把锁释放了，当前线程就会卡住，继续再等待获取锁的机会（也许是干了一半的活后，就把活交出去了，然后等待继续干活的机会）；</div><div>3 notify：告诉其中一个等待的线程（具体哪一个不知道），我已经用完这个对象，你可以继续用了</div><div>4 它们都要包含在synchronized块里，只有先锁住这个对象，才能进行wait、notify操作；<br /><br /><div>例子：</div><div>1 定义一个普通对象<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;MyObj&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;name;<br />}</div><div>2 主线程类，定义MyObj对象，new两个线程</div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;TestMain&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;MyObj&nbsp;obj&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;MyObj();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/**</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080; ">@param</span><span style="color: #008000; ">&nbsp;args<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Throwable&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;TestMain().myTest();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;myTest()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Throwable{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test1&nbsp;test1&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Test1();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test2&nbsp;test2&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Test2();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;t1&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Thread(test1);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;t2&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Thread(test2);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1.start();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(1000);<span style="color: #008000; ">//</span><span style="color: #008000; ">启动线程1，然后主线程睡眠1秒钟，再启动2</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t2.start();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><div>3 定义线程1，：</div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Test1&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;Runnable{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;run()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">synchronized</span>&nbsp;(TestMain.obj)&nbsp;{<span style="color: #008000; ">//</span><span style="color: #008000; ">占有对象锁</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.name="1";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(TestMain.obj.name);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">打印出1</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.wait();&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">释放对TestMain.obj对象的锁，同时当前线程立即卡住，陷入等待</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(TestMain.obj.name);<span style="color: #008000; ">//</span><span style="color: #008000; ">只有线程再次抢到TestMain.obj的锁后，才会运行</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><div>4 线程2：</div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Test2&nbsp;<span style="color: #0000FF; ">implements</span>&nbsp;Runnable{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;run()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">synchronized</span>&nbsp;(TestMain.obj)&nbsp;{&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">当线程1释放这个对象的锁时，本线程立即得到</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.name&nbsp;=&nbsp;"2";&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">改值</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.notify();<span style="color: #008000; ">//</span><span style="color: #008000; ">通知占用了TestMain.obj且当前是等待的线程（线程1）可以继续，但是必须等到本synchronized块执行完毕。</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.name&nbsp;=&nbsp;"3";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.name&nbsp;=&nbsp;"4";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(1000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestMain.obj.name&nbsp;=&nbsp;"7";<span style="color: #008000; ">//</span><span style="color: #008000; ">执行完毕，此时线程1被唤醒，会打印出7</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}</div><div>结果显示1和7</div><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"></div></div></div><img src ="http://www.blogjava.net/landor2004/aggbug/398507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2013-04-27 15:23 <a href="http://www.blogjava.net/landor2004/archive/2013/04/27/398507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：UTC和GMT的含义 </title><link>http://www.blogjava.net/landor2004/archive/2013/04/22/398217.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Mon, 22 Apr 2013 09:04:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2013/04/22/398217.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/398217.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2013/04/22/398217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/398217.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/398217.html</trackback:ping><description><![CDATA[转载&nbsp;<a href="http://supertoffy.blog.163.com/blog/static/16447681820116150115743/">http://supertoffy.blog.163.com/blog/static/16447681820116150115743/<br /></a><br /><br /><div><div>每个地区都有自己的本地时间，在网上以及无线电通信中时间转换的问题就显得格外突出。我自己就经常混淆于此，特地研究了一下，记录在此以备忘。</div><div></div><div>整个地球分为二十四时区，每个时区都有自己的本地时间。在国际无线电通信场合，为了统一起见，使用一个统一的时间，称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样，都与英国伦敦的本地时相同。在本文中，UTC与GMT含义完全相同。</div><div></div><div>北京时区是东八区，领先UTC八个小时，在电子邮件信头的Date域记为+0800。如果在电子邮件的信头中有这么一行：</div><div></div><div>Date: Fri, 08 Nov 2002 09:42:22 +0800</div><div></div><div>说明信件的发送地的地方时间是二&#9675;&#9675;二年十一月八号，星期五，早上九点四十二分（二十二秒），这个地方的本地时领先UTC八个小时(+0800，就是东八区时间)。电子邮件信头的Date域使用二十四小时的时钟，而不使用AM和PM来标记上下午。</div><div></div><div>以这个电子邮件的发送时间为例，如果要把这个时间转化为UTC，可以使用一下公式：</div><div></div><div>UTC + 时区差 ＝ 本地时间</div><div></div><div>时区差东为正，西为负。在此，把东八区时区差记为 +0800，</div><div></div><div>UTC + (＋0800) = 本地（北京）时间 (1)</div><div></div><div>那么，UTC = 本地时间（北京时间)）- 0800 (2)</div><div></div><div>0942 - 0800 = 0142</div><div></div><div>即UTC是当天凌晨一点四十二分二十二秒。如果结果是负数就意味着是UTC前一天，把这个负数加上2400就是UTC在前一天的时间。例如，本地（北京）时间是 0432 （凌晨四点三十二分），那么，UTC就是 0432 - 0800 = -0368，负号意味着是前一天， -0368 + 2400 = 2032，既前一天的晚上八点三十二分。</div><div></div><div>纽约的时区是西五区，比UTC落后五个小时，记为 -0500：</div><div></div><div>UTC ＋ （-0500） = 纽约时间 （3）</div><div></div><div>UTC ＝ 纽约时间 ＋ 0500 （4）</div></div><img src ="http://www.blogjava.net/landor2004/aggbug/398217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2013-04-22 17:04 <a href="http://www.blogjava.net/landor2004/archive/2013/04/22/398217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2与spring集成，action中参数传到页面丢失的问题</title><link>http://www.blogjava.net/landor2004/archive/2012/08/19/385790.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Sun, 19 Aug 2012 15:06:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2012/08/19/385790.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/385790.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2012/08/19/385790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/385790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/385790.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: struts2单独使用没有任何问题，加入spring后，发现页面表单可以传到struts2的action中，但是返回到页面后，数据丢失,&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2012/08/19/385790.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/385790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2012-08-19 23:06 <a href="http://www.blogjava.net/landor2004/archive/2012/08/19/385790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Camel与cxf</title><link>http://www.blogjava.net/landor2004/archive/2011/09/29/359783.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Thu, 29 Sep 2011 05:50:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/09/29/359783.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/359783.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/09/29/359783.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/359783.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/359783.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Camel与cxf&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2011/09/29/359783.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/359783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-09-29 13:50 <a href="http://www.blogjava.net/landor2004/archive/2011/09/29/359783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XPath记录</title><link>http://www.blogjava.net/landor2004/archive/2011/09/15/358702.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Thu, 15 Sep 2011 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/09/15/358702.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/358702.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/09/15/358702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/358702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/358702.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: XPath记录&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2011/09/15/358702.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/358702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-09-15 14:49 <a href="http://www.blogjava.net/landor2004/archive/2011/09/15/358702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAXB2完成java bean到xml的相互转换</title><link>http://www.blogjava.net/landor2004/archive/2011/06/03/351656.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Fri, 03 Jun 2011 04:04:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/06/03/351656.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/351656.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/06/03/351656.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/351656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/351656.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAXB2完成java bean到xml的相互转换&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2011/06/03/351656.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/351656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-06-03 12:04 <a href="http://www.blogjava.net/landor2004/archive/2011/06/03/351656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AIX上发布java web程序编码问题</title><link>http://www.blogjava.net/landor2004/archive/2011/05/23/350843.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Mon, 23 May 2011 07:54:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/05/23/350843.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/350843.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/05/23/350843.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/350843.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/350843.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Could not parse date - Class: java.text.DateFormat<br>Caused by: java.text.ParseException: Unparseable date:&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2011/05/23/350843.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/350843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-05-23 15:54 <a href="http://www.blogjava.net/landor2004/archive/2011/05/23/350843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载 - spring 动态数据源切换</title><link>http://www.blogjava.net/landor2004/archive/2011/03/30/347328.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Wed, 30 Mar 2011 13:30:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/03/30/347328.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/347328.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/03/30/347328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/347328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/347328.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转载 - spring 动态数据源切换&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2011/03/30/347328.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/347328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-03-30 21:30 <a href="http://www.blogjava.net/landor2004/archive/2011/03/30/347328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>maven一些说明</title><link>http://www.blogjava.net/landor2004/archive/2011/03/04/345729.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Fri, 04 Mar 2011 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/03/04/345729.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/345729.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/03/04/345729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/345729.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/345729.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: maven一些说明&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2011/03/04/345729.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/345729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-03-04 16:29 <a href="http://www.blogjava.net/landor2004/archive/2011/03/04/345729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript中正则表达式中的问号（？）</title><link>http://www.blogjava.net/landor2004/archive/2011/03/02/345500.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Wed, 02 Mar 2011 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/03/02/345500.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/345500.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/03/02/345500.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/345500.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/345500.html</trackback:ping><description><![CDATA[<strong>1 分组的时候，？可以不记录一些组，比如：</strong><br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->var str="abc";<br />
var reg=/(?:a)b(c)/g<br />
reg.test(str);<br />
alert(RegExp.$1);//结果为c</div>
此时虽然第一个小括号也满足，但是如果用?:标注之后，它不会被存入正则表达式的缓存中。<br />
<br />
<strong>2 遇见功能，"?="，意识说目标串中肯定存在什么，比如：<br />
</strong>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">var&nbsp;str</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">ab4</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
var&nbsp;reg</span><span style="color: #000000;">=/</span><span style="color: #000000;">ab(</span><span style="color: #000000;">?=</span><span style="color: #000000;">\d)</span><span style="color: #000000;">/</span><span style="color: #000000;">g<br />
alert(reg.test(str));//结果为true</span></div>
意思是第三位肯定是数字；<br />
<strong>"?!"，意思说目标串中不应该存在什么</strong><br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">var&nbsp;str</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">ab1</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
var&nbsp;reg</span><span style="color: #000000;">=/</span><span style="color: #000000;">ab(</span><span style="color: #000000;">?!</span><span style="color: #000000;">\d)</span><span style="color: #000000;">/</span><span style="color: #000000;">g<br />
alert(reg.test(str));//结果为false</span></div>
<strong>意思是目标串中的第三位不应该是数字。</strong><img src ="http://www.blogjava.net/landor2004/aggbug/345500.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-03-02 16:29 <a href="http://www.blogjava.net/landor2004/archive/2011/03/02/345500.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于web开发过程中的编码</title><link>http://www.blogjava.net/landor2004/archive/2011/03/02/345489.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Wed, 02 Mar 2011 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2011/03/02/345489.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/345489.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2011/03/02/345489.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/345489.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/345489.html</trackback:ping><description><![CDATA[1 浏览器会根据content="text/html; charset=gbk"来解析该用什么编码来把这些字节流decode成字符串，并显示；<br />
2 当客户端提交表单的时候，比如以post方式提交，浏览器同样会根据上面的编码，把这些字符串encode成字节流，发送到服务端；<br />
3 在服务端，默认就会认为传过来的东西就是ASCii码，没别的，也就是ISO-8859-1，所以它就去decode，ISO-8859-1中根本没有中文汉字对应的二进制码，没找到，就乱了应该是一堆口吧；<br />
4 解决办法是加一个过滤器，比如gbk，那就设置成request.setCharacterEncoding("GBK")；这样服务端在获取字符串的时候，就用GBK去decode这个二进制流了；<br />
5 如果是ajax，问题又来了，因为ajax只支持utf-8编码格式，过程应该是这样：<br />
&nbsp;&nbsp; &nbsp;a 浏览器通过ajax像server端post数据时，ajax自动将浏览器中的文字用utf-8 encode成二进制流，然后发送到server端；<br />
&nbsp;&nbsp; &nbsp;b server端如果配置的filter是gbk，那么会用gbk去decode这个二进制流，显然乱麻；但是不应该是一堆口，因为他应该根据二进制流的每两位字节，在GBK编码表中能找到对应的内容，具体的内容是简体文字还是繁体文字还是其他的，就不一定了；<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;此时要是偶数个汉字还好（可以把它用gbk进行encode，然后用utf-8进行decode，这样就还原回来了），<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;如果是奇数个汉字就出现丢失了（因为一个字符用UTF-8 encode后为3个字节，如果三个字符被encode之后，就是9个字节，当用gbk进行decode 的时候，gbk是用2个字节，结果剩下了一个字节，这个字节在gbk的编码表中不存在（因为gbk编码表都是2个字节的），所以就用？号填充了）。<br />
&nbsp;&nbsp; &nbsp;c 所以必须在服务端的fiter中对ajax请求进行判断，用jquery为例：<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">$.ajax({<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;contentType:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">application/x-www-form-urlencoded;charset=utf-8</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span></div>
<br />
在server端的filter中，可以判断charset是不是空，如果加上上面的代码，那么charset就是utf-8，代码如下：<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->if (request.getCharacterEncoding() == null) {<br />
&nbsp;&nbsp;&nbsp; request.setCharacterEncoding(this.encoding);//正常提交请求时候，charset是空的，也就是说request.getCharacterEncoding()是空的；<br />
}</div>
<img src ="http://www.blogjava.net/landor2004/aggbug/345489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2011-03-02 15:51 <a href="http://www.blogjava.net/landor2004/archive/2011/03/02/345489.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用itext生成word</title><link>http://www.blogjava.net/landor2004/archive/2010/04/21/318983.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Wed, 21 Apr 2010 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2010/04/21/318983.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/318983.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2010/04/21/318983.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/318983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/318983.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用itext生成word&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2010/04/21/318983.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/318983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2010-04-21 15:00 <a href="http://www.blogjava.net/landor2004/archive/2010/04/21/318983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle的锁和事务的记录</title><link>http://www.blogjava.net/landor2004/archive/2010/02/19/313424.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Fri, 19 Feb 2010 14:23:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2010/02/19/313424.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/313424.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2010/02/19/313424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/313424.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/313424.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: oracle的锁和事务的记录&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2010/02/19/313424.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/313424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2010-02-19 22:23 <a href="http://www.blogjava.net/landor2004/archive/2010/02/19/313424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>weblogic集群中获取jndi的方式</title><link>http://www.blogjava.net/landor2004/archive/2010/01/20/310271.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Wed, 20 Jan 2010 13:25:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2010/01/20/310271.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/310271.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2010/01/20/310271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/310271.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/310271.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: weblogic集群中获取jndi的方式&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2010/01/20/310271.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/310271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2010-01-20 21:25 <a href="http://www.blogjava.net/landor2004/archive/2010/01/20/310271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于用spring的JtaTransactionManager，配置分布式事务</title><link>http://www.blogjava.net/landor2004/archive/2010/01/09/308827.html</link><dc:creator>landor</dc:creator><author>landor</author><pubDate>Sat, 09 Jan 2010 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/landor2004/archive/2010/01/09/308827.html</guid><wfw:comment>http://www.blogjava.net/landor2004/comments/308827.html</wfw:comment><comments>http://www.blogjava.net/landor2004/archive/2010/01/09/308827.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/landor2004/comments/commentRss/308827.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landor2004/services/trackbacks/308827.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于用spring的JtaTransactionManager，配置分布式事务&nbsp;&nbsp;<a href='http://www.blogjava.net/landor2004/archive/2010/01/09/308827.html'>阅读全文</a><img src ="http://www.blogjava.net/landor2004/aggbug/308827.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landor2004/" target="_blank">landor</a> 2010-01-09 13:22 <a href="http://www.blogjava.net/landor2004/archive/2010/01/09/308827.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>