<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[万里有云的博客]]></title>
	  <link>http://cheng-wan-li.blog.163.com</link>
	  <description><![CDATA[无论现实多么残酷，都要在自己的心中永远留下最后的香格里拉--最后的一片净土！ 生活的理想,就是为了理想的生活。只有向后才能理解生活,但要生活好,则必须向前看。把握每一天！]]></description>
	  <language>zh-CN</language>
	  <pubDate>Tue, 12 Aug 2008 19:43:27 +0800</pubDate>
	  <lastBuildDate>Tue, 12 Aug 2008 19:43:27 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[cheng-wan-li]]></managingEditor>
	  <webMaster><![CDATA[万里有云]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[万里有云的博客]]></title>
	  	<url>http://ava.blog.163.com/photo/pVuYWFBocQhhNamLz7fdGw==/179299560164831191.jpg</url>
	  	<link>http://cheng-wan-li.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[归来兮]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220087210112426</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天是师姐大喜之日，我们几个师弟们前去捧场。从昨天下午四点去忙活到今天下午三点，晚上睡了4个多小时，真是累！下午回来又遇到了暴雨，浑身浇个湿透，又困又乏，倒头就睡，直到现在。可还是感觉精神萎靡，唉，睡的久了吧</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 真心的恭喜芳姐新婚大吉！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天看到广告，七夕要到了....</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 给了一个懈逅的理由,但却没有倾诉的对象</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220087210112426</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220087210112426</guid>
    <pubDate>Sat, 2 Aug 2008 22:01:12 +0800</pubDate>
    <dcterms:modified>2008-08-03T13:49:30+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[一句话！]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200862193227761</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 暑假回家随便看了本过期的《读者》，上面有一句话令人记忆犹新！</P>
<P>“人，这一辈子，仅在关键的时刻多赶几步就行了！”</P>
<P>弟弟要考研，只在家呆了一周，我把这句话送给了他。</P>
<P>今天再把这句话送给自己：在关键的时刻多赶几步！GO！</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200862193227761</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200862193227761</guid>
    <pubDate>Mon, 21 Jul 2008 21:32:27 +0800</pubDate>
    <dcterms:modified>2008-07-21T21:32:27+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[MD,再也不看国足的比赛]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200857103225716</link>
    <description><![CDATA[<div><P>RT，想不通这些人渣一天每人伙食费400，吃掉半头猪，做的贡献还没猪多</P>
<P>再一次发誓不看国足的比赛了，这次是真的</P>
<P>&nbsp;</P>
<P>haha&nbsp; 女记者回应“宫外孕”:黄健翔 今晚你疯狂了没有?[转贴]</P>
<P>陆幽博客:黄健翔6月6日在博客中爆料，国家足球队主教练杜伊把央视女记者陆某搞成宫外孕。最近陆幽首次做出回应:&nbsp;&nbsp; <BR><BR>　　阿黄：&nbsp;&nbsp; <BR><BR>　　想这样称呼你不是一天两天了，您最近的表现，很象这个名字所代表的一种动物。有的时候，这种动物是忠诚的象征，有的时候，这种动物起到的就是一个贬义词的作用。当然，我这里所指的阿黄，只针对你一个人，不包括其它这个“姓”的同胞。我也挺体谅你的，你从央视辞职之后，日子并不怎么舒心，按照白岩松的“名狗”理论说下去，那就是“离开央视的名狗，肯定不再象以前那么有名”。&nbsp; <BR><BR>　　上个星期，你在你的博客上说我和杜伊主教练发生了超友谊的关系，并且，引起了严重的后果。表面上看来，你好象是为所谓被搞出“宫外孕”的我打抱不平，实际上呢，你却是在提高你日益下滑的知名度，让大家把眼球再一次在你的身上停留几秒钟而已。你知道吗，最近国内一些球迷是如何拿此事调侃的吗——他们说，KAO，连最本能的生理活动都能射偏，何况是对男足来说极其困难的射门呢？&nbsp;&nbsp; <BR><BR>　　欧洲杯如火如荼，我在这边也忙得一塌糊涂。平心而论，欧洲杯确实好看，而你的解说也确实要比国内的其它人要精彩。可能正是因为你的业务水平比别人高，舌头的功能比别人要强大数倍，所以也就有了不少闲功夫，所以能够在这个时刻，给我后背捅上一刀子，但我仍然觉得，这似乎不应该是你这种人所能做出来的事情。我没必要澄清我和杜伊到底是什么关系，更不会去随着你的心愿去说杜伊到底“脱靶”了没有，我只是想说，在个人生活日益开放的今天，如果两个人是你情我愿，又跟你何干呢？&nbsp;&nbsp; <BR><BR>　　阿黄，北京时间21：50左右，杜伊指挥的中国队又一次遭遇了失败，这一回，是败伊拉克脚下，是真正的灭顶之灾。在为欧洲杯做着精心准备的同时，突然间想看看你又会发布什么新的消息没有。其实，在赛前，你应该这样在博客里写道：上一回，我在中卡之战前揭露了杜伊的丑陋嘴脸，国足输了，足见我批评的正确性。这一回，我要继续深挖下去，把杜伊跟陆某交往的重要“细节”告诉大家，并且，我要向大家表明，我自己是一个多么成功多么负责的男人……这话听起来有点无耻不是？实际上，你做人已经到了这样一个境界——无耻者无畏了。&nbsp;&nbsp; <BR><BR>　　最后，想做一个假设。要是中国队在1：0领先的情况下，保持住了胜利果实，你又会说些什么呢，会不会继续为所谓被搞出“宫外孕”的我追讨跟“零距离”一样的权利呢？看来，咱们的一部分女同胞以后都不用找妇联了，有什么憋屈事直接请你在博客上叫几声就行了。噢，对了，不知道某颖最近找过你没有，你们之间出了什么问题吗？&nbsp;&nbsp; <BR><BR>　　好了，不浪费我的时间了，还有一个多小时，欧洲杯小组赛就要开始了，我得好好准备了。顺便为你的伟大的、万岁的、已经深深陷入死亡之组的意大利祈祷，希望眼下的困局只不过是老天对他们的考验，对于慢热型的他们来说，过了这道坎，或许会有惊人的表现！&nbsp;&nbsp; <BR><BR>　　你曾经的女同事小陆&nbsp; <BR></P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200857103225716</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200857103225716</guid>
    <pubDate>Sat, 7 Jun 2008 22:32:25 +0800</pubDate>
    <dcterms:modified>2008-06-16T18:06:02+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[国产首款3G无线上网卡在渝面市]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200854112517230</link>
    <description><![CDATA[<div><P>重邮信科推出3G高速无线上网卡，上网速度比常规快4-8倍<BR><BR>　　电信重组方案公布和3G牌照发放的关健时刻，重邮信科昨日宣布成功推出了国内首款<BR>在TD-SCDMA3G网络环境中使用的高速无线上网卡，并于上周通过了工业和信息化部的入网<BR>认证测试，同时获得了入网许可证。<BR><BR>　　重邮专家认为，重邮信科推出的TD-HSDPA型无线上网卡，为服务2008北京奥运创造了<BR>条件，也标志着我国TD-SCDMA产业的发展迈上了新台阶，<BR><BR>　　无线上网速度提高4-8倍<BR><BR>　　无线上网作为有线宽带网的补充，只要有网络覆盖和带有无线上网接口的终端即可，<BR>终端可以是笔记本电脑、台式电脑、掌上电脑以及智能手机。<BR><BR>　　据悉，目前主流的无线上网卡主要是移动GPRS上网卡和联通的CDMA上网卡2种。其中，<BR>CDMA无线上网平均传输速率为150&nbsp;Kbps左右，峰值可以达到230.4Kbps；GPRS无线上网卡平<BR>均传输速度约为60～120Kbps，峰值可以达到216Kbps。<BR><BR>　　重邮信科研发的TD-HSDPA&nbsp;TCN230型无线上网卡，是在TD-SCDMA网络环境中使用的高速<BR>无线上网卡，最大优势是上网速度大为提升，其传输速率可稳定在800-900Kbps，峰值可达<BR>1.1Mbps。上网速率是目前市面上主流无线上网卡的4～8倍，同时还是有线宽带上网速度的<BR>3倍甚至更多（以目前普通家庭使用的1-2兆宽带为例）。<BR><BR>　　高清电影可边下载边观看<BR><BR>　　记者注意到，这种3G无线上网卡，外观上与目前市面上的产品无多大差异，下载高清<BR>电影仅几秒时间就能完成。目前使用有线宽带下载高清电影，最快也需1天左右。<BR><BR>　　除了上传和下载播放电影、收发邮件、玩游戏等功能，使用这种无线上网卡，再在电<BR>脑上安装一套专用视频通话软件，还可实现通过电脑拨打3G视频电话和发短信。<BR><BR>　　奥运前在8城市推广暂无重庆<BR><BR>　　遗憾的是，重庆造这一高科技产品暂时无法在重庆使用。由于国家批准中国移动在北<BR>京、上海、天津、沈阳、秦皇岛、广州、深圳、厦门8个城市启动TD-SCDMA3G网络商用，无<BR>线上网卡将在这8个城市应用。<BR><BR>　　为确保在奥运会前规模化提供成熟稳定的TD-HSDPA无线上网卡，重邮信科向中国移动<BR>第二轮TD-SCDMA终端集中采购的投标工作已全面启动。“虽然国产3G在渝建设还没有时间<BR>表，但只要一声令下，我们将第一时间让本土市民用上3G手机及无线上网”。<BR><BR>　　据悉，重邮信科是我国最早从事TD-SCDMA（俗称国产3G）第三代移动通信技术标准和<BR>移动终端核心技术研发的单位之一，主要从事TD-SCDMA芯片等核心技术的研发和生产。<BR></P>
<P>&nbsp;</P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200854112517230</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200854112517230</guid>
    <pubDate>Wed, 4 Jun 2008 11:25:17 +0800</pubDate>
    <dcterms:modified>2008-06-04T11:25:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[地震]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200841310306536</link>
    <description><![CDATA[<div><P>大自然太震撼了！</P>
<P>昨晚前前后后冲出宿舍两三次，折腾了一宿</P>
<P>生命如此的脆弱，活着真好，好好珍惜每一天吧</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2008.5.13</P>
<P>上天真是对自己不薄，五月四号从九寨黄龙回来，路过松潘，茂县，汶川. 都江堰...现在都成了重灾区，如果晚回来一周，后果真是不可想象。汶川的县城很小，就在岷江两岸的一块开阔地上，交通极其不便利。顺着岷江的一条唯一的公路，两边都是崇山峻岭，救灾难度可想而知。</P>
<P>这几天一直联系小骚，终于有了他的消息。小子最近在都江堰买房了，这下不知该怎么办了。打了无数个电话，终于通了一次，只是报了个平安，没有多说几句。因为信号太差，根本就听不清楚。但愿一切都好！</P>
<P>今天接到表哥的电话，他的两个朋友从北京赶过来救灾，直接到成都是不行了，转道重庆，再直奔成都。两人为了给灾区省钱买了硬座过来，而且在公司请假也没说明是来救灾，真是感动。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2008.5.18</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 昨晚折腾一宿，回宿舍看四川卫视，3分钟内节目主持人通报了4编《余震通知》，将会发生6.5-7.0级的余震。而且重庆政府也警告市民做好预防余震的准备。学校炸开了锅，都坐不住了。只好躺到外面羽毛球场将就了一晚上。这方面学生真是敏感</P>
<P><IMG style="WIDTH: 714px; HEIGHT: 783px" height=1577 src="http://bbs.cqupt.edu.cn/bbscon.php?bid=227&amp;id=133396&amp;ap=600183" width=2037></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;太极操场凌晨一点半实拍&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2008.5.20</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200841310306536</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200841310306536</guid>
    <pubDate>Tue, 13 May 2008 10:30:06 +0800</pubDate>
    <dcterms:modified>2008-05-20T12:10:45+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[杀回来了]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220084711753392</link>
    <description><![CDATA[<div><P>又回学校了，在外面一直以来感觉自己根本不是学生，回来了还感觉不是。</P>
<P>不过，回来真好，食欲好，心情好。回来第一天就收到通知，投的ICNC08文章已经录取，真是高兴。</P>
<P>再见了296！哈</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220084711753392</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220084711753392</guid>
    <pubDate>Wed, 7 May 2008 11:07:53 +0800</pubDate>
    <dcterms:modified>2008-05-09T17:45:09+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[男人很不自信]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/288758522008324114916876</link>
    <description><![CDATA[<div><P>今天股市全线飘红，心情不错。刚刚随便点了个网页，觉得很有意思：</P>
<P>《男人很不自信》</P>
<P>你好！我是一个中年男人，深深爱上一位大三的女生，但总有一种违背伦理的感觉。因为大她24岁，出门总觉得怪怪的，显得自己信心不足了。我们二人总想到陌生的城市生活。（申明一下我是单身的人。）[查看原文] </P>
<P>女人帮建议 </P>
<P>比一个大三女生大24岁，你40多了，不知道你最近一次到游戏机室打游戏是什么时候？ </P>
<P>如果你现在去游戏机室，首先你会发现那里大多数玩家都是小朋友，第一感觉有点怪，但并不会有人把你赶走。然后恐怕你会发现自己并不是打得最好的，但你是能一次买最多游戏币的。人家小朋友技术好两个币打通关，你技术烂也不怕，死了就加钱续玩，20个币一样打通关。你羡慕小朋友技术好吗？小朋友也暗暗羡慕你一次能买一大堆游戏币。其实大家都能各自找到自信的理由。 </P>
<P>从这角度看，恋爱跟打游戏没什么不同，身份、背景、条件相差很远的不同男人面对一个女生，可以用不同方式进行追求，充分发挥自己的优势。事情本来就是这样的，里面的所谓“伦理”并不会比一个游戏机室的营业守则更复杂。(女人帮专家 王尔冈) </P>
<P>专家以进游戏室打游戏的例子巧妙的回答了这个问题，非常精彩！呵呵，但就游戏这个话题，发扬科研精神我有几个观点不赞成专家的意见：</P>
<P>&nbsp;1.游戏技术：这么大年龄还进游戏室，可见对游戏非常喜欢。像是这种弱智游戏，玩的久了技术肯定就能提高，百分百的提高。春节在家逛街碰到小学同学拉着一起去游戏室玩，即使好多年没摸，但是技术没忘。不管是《三国志》《恐龙岛》还是《雪山兄弟》基本上都能打半个通关。PK类的《拳皇》，简直战无不胜，所向披靡，一般的小孩都不敢过招！</P>
<P>2经济实力：就是所谓的一次能买一大堆游戏币。因为技术并不次，所以就没必要买那么多游戏币了。买那么多又玩不了，送给小孩？这样是害他们，还不如把钱给路上的乞丐。</P>
<P>3伦理规则：我们进游戏室明显感觉与周围的环境格格不入，没人提醒自己也知道岁月不饶人哪，再也没有小时候的感觉了。奉劝此老男人立即滚出游戏室，把机会留给纯情少男，或许会有一段惊天地泣鬼神的爱情故事诞生！</P>
<P>4瞌睡了，睡觉了</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/288758522008324114916876</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/288758522008324114916876</guid>
    <pubDate>Thu, 24 Apr 2008 23:49:16 +0800</pubDate>
    <dcterms:modified>2008-04-24T23:51:02+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[log4j教程]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200831633247819</link>
    <description><![CDATA[<div><DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H2 style="CLEAR: both" xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">1.简介</A></H2></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。例如，跟踪语句（trace），结构转储和常见的 System.out.println或printf调试语句。log4j提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。 </A></P>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">使用一个专门的日志记录包，可以减轻对成千上万的System.out.println语句的维护成本，因为日志记录可以通过配置脚本在运行时得以控制。 log4j维护嵌入在程序代码中的日志记录语句。通过规范日志记录的处理过程，一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。 </A></P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H2 style="CLEAR: both" xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">2.安装</A></H2></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">为了使用我们即将要安装的日志记录工具，还必须要设置操作环境，只有这样，工具才能知道从哪里找到它所需要的信息，并且操作系统知道从哪里找到这个工具。那么，怎样做呢？实际上，它要求更改操作环境。</A></P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<OL type=1 xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml">从 <A href="http://jakarta.apache.org/log4j/docs/download.html" target=_top xmlns="">http://jakarta.apache.org/log4j/docs/download.html</A>下载log4j发行版。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml">解压存档文件到合适的目录中。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml">添加文件 <TT xmlns="">dist/lib/log4j-1.2.6.jar</TT> 到 <TT xmlns="">CLASSPATH</TT> 环境变量中。 </P></LI></OL></DIV></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H2 style="CLEAR: both" xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.log4j的基本概念 </A></H2></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">使用log4j大概涉及3个主要概念:</A></P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<OL type=1 xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">公共类 Logger</A></SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">Logger</A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 负责处理日志记录的大部分操作。 </A></P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">公共接口 Appender</A></SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml"><EM xmlns="">Appender</EM></A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 负责控制日志记录操作的输出。 </A></P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">公共抽象类Layout</A></SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">Layout</A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 负责格式化<SPAN xmlns="">Appender</SPAN>的输出。 </A></P></LI></OL></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H3 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.1.Logger</A></H3></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。 日志记录器(Logger)的可用级别<SPAN xmlns="">Level</SPAN> (不包括自定义级别 <SPAN xmlns="">Level</SPAN>)， 以下内容就是摘自log4j API (</A><A href="http://jakarta.apache.org/log4j/docs/api/index.html" target=_top xmlns="">http://jakarta.apache.org/log4j/docs/api/index.html</A>): </P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<UL type=disc xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level DEBUG</SPAN> </P>
<P xmlns="http://www.w3.org/1999/xhtml">DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level INFO</SPAN> </P>
<P xmlns="http://www.w3.org/1999/xhtml">INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level WARN</SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml">WARN level表明会出现潜在错误的情形。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level ERROR</SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml">ERROR level指出虽然发生错误事件，但仍然不影响系统的继续运行。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level FATAL</SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml">FATAL level指出每个严重的错误事件将会导致应用程序的退出。</P></LI></UL></DIV>
<P xmlns="http://www.w3.org/1999/xhtml">另外，还有两个可用的特别的日志记录级别: (以下描述来自log4j API <A href="http://jakarta.apache.org/log4j/docs/api/index.html" target=_top xmlns="">http://jakarta.apache.org/log4j/docs/api/index.html</A>): </P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<UL type=disc xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level ALL</SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml">ALL Level是最低等级的，用于打开所有日志记录。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">static Level OFF</SPAN></P>
<P xmlns="http://www.w3.org/1999/xhtml">OFF Level是最高等级的，用于关闭所有日志记录。 </P></LI></UL></DIV>
<P xmlns="http://www.w3.org/1999/xhtml">日志记录器（Logger）的行为是分等级的。</P>
<DIV xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml"></A>
<P xmlns="http://www.w3.org/1999/xhtml">
</P><DIV xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml"></A></DIV><A xmlns="http://www.w3.org/1999/xhtml">日志记录器（Logger）将只输出那些级别高于或等于它的级别的信息。如果没有设置日志记录器（Logger）的级别，那么它将会继承最近的祖先的级别。因此，如果在包<SPAN xmlns="">com.foo.bar</SPAN>中创建一个日志记录器（Logger）并且没有设置级别，那它将会继承在包<SPAN xmlns="">com.foo</SPAN>中创建的日志记录器（Logger）的级别。如果在<SPAN xmlns="">com.foo</SPAN>中没有创建日志记录器（Logger）的话,那么在<SPAN xmlns="">com.foo.bar</SPAN>中创建的日志记录器（Logger）将继承<SPAN xmlns="">root</SPAN> 日志记录器（Logger）的级别，root日志记录器（Logger）经常被实例化而可用，它的级别为<SPAN xmlns="">DEBUG</SPAN>。 </A>
<P></P></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">有很多方法可以创建一个日志记录器（Logger），下面方法可以取回root日志记录器:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >Logger logger = Logger.getRootLogger();</PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">还可以这样创建一个新的日志记录器:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >Logger logger = Logger.getLogger("MyLogger");</PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">比较常用的用法，就是根据类名实例化一个静态的全局日志记录器:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >static Logger logger = Logger.getLogger(test.class);</PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">所有这些创建的叫"logger"的日志记录器都可以用下面方法设置级别:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >logger.setLevel((Level)Level.WARN);</PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">可以使用7个级别中的任何一个; Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, Level.ALL and Level.OFF. </A></P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H3 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.2.Appender</A></H3></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">Appender</A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 控制日志怎样输出。下面列出一些可用的Appender(log4j API中所描述的 </A><A href="http://jakarta.apache.org/log4j/docs/api/index.html" target=_top xmlns="">http://jakarta.apache.org/log4j/docs/api/index.html</A>): </P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<OL type=1 xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">ConsoleAppender:</SPAN>使用用户指定的布局(layout) 输出日志事件到System.out或者 System.err。默认的目标是System.out。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">DailyRollingFileAppender</SPAN> 扩展FileAppender，因此多个日志文件可以以一个用户选定的频率进行循环日志记录。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">FileAppender</SPAN> 把日志事件写入一个文件 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">RollingFileAppender</SPAN> 扩展FileAppender备份容量达到一定大小的日志文件。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">WriterAppender</SPAN>根据用户的选择把日志事件写入到Writer或者OutputStream。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">SMTPAppender</SPAN> 当特定的日志事件发生时，一般是指发生错误或者重大错误时，发送一封邮件。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">SocketAppender</SPAN> 给远程日志服务器（通常是网络套接字节点）发送日志事件（LoggingEvent）对象。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">SocketHubAppender</SPAN> 给远程日志服务器群组（通常是网络套接字节点）发送日志事件（LoggingEvent）对象。</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">SyslogAppender</SPAN>给远程异步日志记录的后台精灵程序(daemon)发送消息。 </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns="">TelnetAppender</SPAN> 一个专用于向只读网络套接字发送消息的log4j appender。 </P></LI></OL></DIV>
<P xmlns="http://www.w3.org/1999/xhtml">还可以实现 <SPAN xmlns=""><EM>Appender</EM></SPAN> 接口，创建以自己的方式进行日志输出的Appender。 </P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H4 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.2.1.使用ConsoleAppender</A></H4></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">ConsoleAppender可以用这种方式创建：</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >ConsoleAppender appender = new ConsoleAppender(new PatternLayout());</PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">创建了一个控制台appender，具有一个默认的PatternLayout。它使用了默认的<SPAN xmlns="">System.out</SPAN> 输出。 </A></P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H4 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.2.2.使用FileAppender</A></H4></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">FileAppender可以用这种方式创建:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >FileAppender appender = null; </PRE><PRE >try {</PRE><PRE >     appender = new FileAppender(new PatternLayout(),"filename"); </PRE><PRE >} catch(Exception e) {}</PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">上面用到的构造函数:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >FileAppender(Layout layout, String filename) </PRE><PRE >实例化一个FileAppender并且打开变量"filename"指定的文件。        </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">另一个有用的构造函数是：</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >FileAppender(Layout layout, String filename, boolean append)</PRE><PRE >实例化一个FileAppender并且打开变量"filename"指定的文件。        </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">这个构造函数还可以选择是否对指定的文件进行追加的方式输出。如果没有指定值，那么默认的方式就是追加。 </A></P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H4 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.2.3.使用WriterAppender</A></H4></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">WriterAppender可以用这种方式创建:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >WriterAppender appender = null;</PRE><PRE >try { </PRE><PRE >   appender = new WriterAppender(new PatternLayout(),new FileOutputStream("filename"));</PRE><PRE >} catch(Exception e) {}        </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">这个WriterAppender使用的构造函数带有PatternLayout和OutputStream参数，在这种情况下， FileOutputStream用于向一个文件输出。当然，它还具有其他可用的构造函数。 </A></P></DIV></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H3 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.3.Layout</A></H3></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">Appender必须使用一个与之相关联的 <SPAN xmlns="">Layout</SPAN>，这样它才能知道怎样格式化它的输出。当前，log4j具有三种类型的Layout: </A></P>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<OL type=1 xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">HTMLLayout</A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 格式化日志输出为HTML表格。 </A></P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">PatternLayout</A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 根据指定的 <SPAN xmlns=""><EM>转换模式</EM></SPAN>格式化日志输出，或者如果没有指定任何转换模式，就使用默认的转换模式。 </A></P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml">SimpleLayout</A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 以一种非常简单的方式格式化日志输出，它打印级别 <SPAN xmlns="">Level</SPAN>，然后跟着一个破折号“-“ ，最后才是日志消息。 </A></P></LI></OL></DIV></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H3 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.4.基本示例</A></H3></DIV></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H4 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.4.1.SimpleLayout和 FileAppender</A></H4></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">这里是一个非常简单的例子，程序实现了SimpleLayout和FileAppender:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >import org.apache.log4j.Level;</PRE><PRE >import org.apache.log4j.Logger;</PRE><PRE >import org.apache.log4j.SimpleLayout;</PRE><PRE >import org.apache.log4j.FileAppender;</PRE><PRE >public class simpandfile {   </PRE><PRE >    static Logger logger = Logger.getLogger(simpandfile.class);</PRE><PRE >    public static void main(String args[]) {</PRE><PRE >        SimpleLayout layout = new SimpleLayout();</PRE><PRE >        FileAppender appender = null; </PRE><PRE >        try {</PRE><PRE >             appender = new FileAppender(layout,"output1.txt",false);</PRE><PRE >        } catch(Exception e) {}</PRE><PRE >        logger.addAppender(appender); </PRE><PRE >        logger.setLevel((Level) Level.DEBUG);</PRE><PRE >        logger.debug("Here is some DEBUG");</PRE><PRE >        logger.info("Here is some INFO");</PRE><PRE >        logger.warn("Here is some WARN");</PRE><PRE >        logger.error("Here is some ERROR");</PRE><PRE >        logger.fatal("Here is some FATAL");   </PRE><PRE >     }</PRE><PRE >}        </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">你可以下载: </A>simpandfile.java。 还可以查看它的输出： output1.txt. </P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H4 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.4.2.HTMLLayout和 WriterAppender</A></H4></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">这里是一个非常简单的例子，程序实现了 HTMLLayout和WriterAppender:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >import java.io.*;</PRE><PRE >import org.apache.log4j.Level;</PRE><PRE >import org.apache.log4j.Logger;</PRE><PRE >import org.apache.log4j.HTMLLayout;</PRE><PRE >import org.apache.log4j.WriterAppender;</PRE><PRE >public class htmlandwrite {</PRE><PRE >   static Logger logger = Logger.getLogger(htmlandwrite.class);</PRE><PRE >   public static void main(String args[]) {</PRE><PRE >      HTMLLayout layout = new HTMLLayout();</PRE><PRE >      WriterAppender appender = null;</PRE><PRE >      try {</PRE><PRE >         FileOutputStream output = new FileOutputStream("output2.html");</PRE><PRE >         appender = new WriterAppender(layout,output);</PRE><PRE >      } catch(Exception e) {}</PRE><PRE >      logger.addAppender(appender);</PRE><PRE >      logger.setLevel((Level) Level.DEBUG);</PRE><PRE >      logger.debug("Here is some DEBUG");</PRE><PRE >      logger.info("Here is some INFO");</PRE><PRE >      logger.warn("Here is some WARN");</PRE><PRE >      logger.error("Here is some ERROR");</PRE><PRE >      logger.fatal("Here is some FATAL");   </PRE><PRE >   }</PRE><PRE >}        </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">你可以下载: </A>simpandfile.java. 还可以查看它的输出：output1.txt. </P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H4 xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">3.4.3.PatternLayout和 ConsoleAppender</A></H4></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">这里是一个非常简单的例子，程序实现了PatternLayout和ConsoleAppender:</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >import org.apache.log4j.Level;</PRE><PRE >import org.apache.log4j.Logger;</PRE><PRE >import org.apache.log4j.PatternLayout;</PRE><PRE >import org.apache.log4j.ConsoleAppender;</PRE><PRE >public class consandpatt {</PRE><PRE >   static Logger logger = Logger.getLogger(consandpatt.class);</PRE><PRE >   public static void main(String args[]) {</PRE><PRE >      // Note, %n is newline</PRE><PRE >      String pattern =  "Milliseconds since program start: %r %n";</PRE><PRE >      pattern += "Classname of caller: %C %n";</PRE><PRE >      pattern += "Date in ISO8601 format: %d{ISO8601} %n";</PRE><PRE >      pattern += "Location of log event: %l %n";</PRE><PRE >      pattern += "Message: %m %n %n"; </PRE><PRE >      PatternLayout layout = new PatternLayout(pattern);</PRE><PRE >      ConsoleAppender appender = new ConsoleAppender(layout);</PRE><PRE >      logger.addAppender(appender);</PRE><PRE >      logger.setLevel((Level) Level.DEBUG);</PRE><PRE >      logger.debug("Here is some DEBUG");</PRE><PRE >      logger.info("Here is some INFO");</PRE><PRE >      logger.warn("Here is some WARN");</PRE><PRE >      logger.error("Here is some ERROR");</PRE><PRE >      logger.fatal("Here is some FATAL");</PRE><PRE >   }</PRE><PRE >}        </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">你可以下载:</A>simpandfile.java. 还可以查看它的输出： output2.txt. </P></DIV></DIV></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H2 style="CLEAR: both" xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">4.使用外部配置文件</A></H2></DIV></DIV>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">Log4j经常与外部日志文件联合使用，这样很多可选项不必硬编码在软件中。使用外部配置文件的优点就是修改可选项不需要重新编译程序。唯一的缺点就是，由于用到<SPAN xmlns=""><EM>io</EM></SPAN> 指令，速度稍微有些减慢。 </A></P>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">有两个方法可以用来指定外部配置文件：文本文件或者XML文件。既然现在所有事情都写成XML文件，那么该教程就重点讲解XML文件方法，但是也包含相关文本文件的例子。首先，看看下面的XML配置文件示例：</A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >&lt;?xml version="1.0" encoding="UTF-8" ?&gt;</PRE><PRE >&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;</PRE><PRE >&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;</PRE><PRE >    &lt;appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"&gt;</PRE><PRE >      &lt;layout class="org.apache.log4j.SimpleLayout"/&gt;</PRE><PRE >    &lt;/appender&gt;</PRE><PRE >    &lt;root&gt;</PRE><PRE >      &lt;priority value ="debug" /&gt;</PRE><PRE >      &lt;appender-ref ref="ConsoleAppender"/&gt;</PRE><PRE >    &lt;/root&gt;</PRE><PRE >&lt;/log4j:configuration&gt;     </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">文件以标准的XML声明作为开始，后面跟着指出DTD（文档类型定义）的DOCTYPE声明，它定义了XML文件的结构，例如，什么元素可以嵌入在其他元素中等等。上面文件在log4j发行版的<TT xmlns="">src/java/org/apache/log4j/xml</TT>目录中。 接着看看封装所有元素的 <SPAN xmlns="">log4j:configuration</SPAN> 元素，它在DOCTYPE声明中被指定为根元素。嵌入在根元素中有两个结构： </A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >  &lt;appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"&gt;</PRE><PRE >    &lt;layout class="org.apache.log4j.SimpleLayout"/&gt;</PRE><PRE >  &lt;/appender&gt;          </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">这里创建一个名叫"ConsoleAppender"的 <SPAN xmlns=""><EM>Appender</EM></SPAN>，注意，你可以选择任何名字，该示例之所以选择"ConsoleAppender"，完全是为了示例的设计。接着这个appender类以全名形式给出，经常用规范（fully qualified）类名。 <SPAN xmlns=""><EM>Appender</EM></SPAN>必须具有一个指定的 <SPAN xmlns=""><EM>name</EM></SPAN>和<SPAN xmlns=""><EM>class</EM></SPAN>。嵌入在 <SPAN xmlns=""><EM>Appender</EM></SPAN>之内的是 <SPAN xmlns=""><EM>layout</EM></SPAN>元素，这里它被指定为SimpleLayout。 <SPAN xmlns=""><EM>Layout</EM></SPAN> 必须具有一个 <SPAN xmlns=""><EM>class</EM></SPAN>属性。 </A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >  &lt;root&gt;</PRE><PRE >    &lt;priority value ="debug" /&gt;</PRE><PRE >    &lt;appender-ref ref="ConsoleAppender"/&gt;</PRE><PRE >  &lt;/root&gt;          </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">root元素必须存在且不能被子类化。示例中的优先级被设置为"debug"，设置appender饱含一个<SPAN xmlns=""><EM>appender-ref</EM></SPAN>元素。还有更多的属性或元素可以指定。查看log4j发行版中的<TT xmlns="">src/java/org/apache/log4j/xml/log4j.dtd</TT>以了解关于XML配置文件结构的更多信息。可以用下面这种方法把配置信息文件读入到Java程序中: </A></P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >DOMConfigurator.configure("configurationfile.xml");    </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml"><SPAN xmlns=""><A xmlns="http://www.w3.org/1999/xhtml"><EM xmlns="">DOMConfigurator</EM></A></SPAN><A xmlns="http://www.w3.org/1999/xhtml"> 用一棵DOM树来初始化log4j环境。这里是示例中的XML配置文件：</A>plainlog4jconfig.xml。这里是执行该配置文件的程序: files/externalxmltest.java: </P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >import org.apache.log4j.Logger;</PRE><PRE >import org.apache.log4j.xml.DOMConfigurator;</PRE><PRE >public class externalxmltest {</PRE><PRE >   static Logger logger = Logger.getLogger(filetest.class);</PRE><PRE >   public static void main(String args[]) {</PRE><PRE >      DOMConfigurator.configure("xmllog4jconfig.xml");</PRE><PRE >      logger.debug("Here is some DEBUG");</PRE><PRE >      logger.info("Here is some INFO");</PRE><PRE >      logger.warn("Here is some WARN");</PRE><PRE >      logger.error("Here is some ERROR");</PRE><PRE >      logger.fatal("Here is some FATAL");</PRE><PRE >   }</PRE><PRE >}    </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml">这里是一个实现带有<SPAN xmlns=""><EM>PatternLayout</EM></SPAN>的<SPAN xmlns=""><EM>FileAppender</EM></SPAN>的日志记录器Logger的XML配置文件: </P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >&lt;?xml version="1.0" encoding="UTF-8" ?&gt;</PRE><PRE >&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;</PRE><PRE >&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;</PRE><PRE >  &lt;appender name="appender" class="org.apache.log4j.FileAppender"&gt;</PRE><PRE >    &lt;param name="File" value="Indentify-Log.txt"/&gt;</PRE><PRE >    &lt;param name="Append" value="false"/&gt;</PRE><PRE >    &lt;layout class="org.apache.log4j.PatternLayout"&gt;</PRE><PRE >      &lt;param name="ConversionPattern" value="%d [%t] %p - %m%n"/&gt;</PRE><PRE >    &lt;/layout&gt;</PRE><PRE >  &lt;/appender&gt;</PRE><PRE >  &lt;root&gt;</PRE><PRE >    &lt;priority value ="debug"/&gt;</PRE><PRE >    &lt;appender-ref ref="appender"/&gt;</PRE><PRE >  &lt;/root&gt;</PRE><PRE >&lt;/log4j:configuration&gt;    </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml">你可以从这里下载示例: xmllog4jconfig2.xml。 想要得到更多的使用XML文件配置log4j环境的例子，请查看log4j发行版的目录<TT xmlns="">src/java/org/apache/log4j/xml/examples/</TT> 。 </P>
<P xmlns="http://www.w3.org/1999/xhtml">这就是上面讨论的文本文件形式的配置文件:</P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE ># initialise root logger with level DEBUG and call it BLAHlog4j.rootLogger=DEBUG,</PRE><PRE > BLAH# add a ConsoleAppender to the logger BLAHlog4j.appender.BLAH=</PRE><PRE >org.apache.log4j.ConsoleAppender# set set that layout to be SimpleLayoutlog4j.appender.BLAH.layout=</PRE><PRE >org.apache.log4j.SimpleLayout    </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml">从这里可以下载: plainlog4jconfig.txt。这就是执行该配置文件的程序: </P>
<TABLE width="90%" bgColor=#e0e0e0 border=0 xmlns="">
<TBODY>
<TR>
<TD><PRE >import org.apache.log4j.Logger;</PRE><PRE >import org.apache.log4j.PropertyConfigurator;</PRE><PRE >public class externalplaintest {</PRE><PRE >   static Logger logger = Logger.getLogger(externalplaintest.class);</PRE><PRE >   public static void main(String args[]) {</PRE><PRE >      PropertyConfigurator.configure("plainlog4jconfig.xml");</PRE><PRE >      logger.debug("Here is some DEBUG");</PRE><PRE >      logger.info("Here is some INFO");</PRE><PRE >      logger.warn("Here is some WARN");</PRE><PRE >      logger.error("Here is some ERROR");</PRE><PRE >      logger.fatal("Here is some FATAL");</PRE><PRE >   }</PRE><PRE >}    </PRE></TD></TR></TBODY></TABLE>
<P xmlns="http://www.w3.org/1999/xhtml">你可以下载使用该配置文件的示例： <TT xmlns="">externalplaintest.java</TT>。想要获得更多的使用文本文件配置log4j环境的例子，请查看log4j发行版中的目录<TT xmlns="">examples</TT>。 </P>
<P xmlns="http://www.w3.org/1999/xhtml">使用外部配置文件的例子就简单的讨论到这里，现在应该可以肯定你已经有能力独立学习更多的log4j发行版和测试版中提供的例子。</P></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<DIV xmlns="http://www.w3.org/1999/xhtml">
<H2 style="CLEAR: both" xmlns="http://www.w3.org/1999/xhtml"><A xmlns="http://www.w3.org/1999/xhtml">5.参考资料 (以及一些有参考价值的链接)</A></H2></DIV></DIV>
<DIV xmlns="http://www.w3.org/1999/xhtml">
<UL type=disc xmlns="">
<LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><A href="http://jakarta.apache.org/log4j/docs/manual.html" target=_top xmlns="">http://jakarta.apache.org/log4j/docs/manual.html</A></P>
<P xmlns="http://www.w3.org/1999/xhtml">log4j的简明介绍 - Ceki G- 2002年3月</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><A href="http://www.vipan.com/htdocs/log4jhelp.html" target=_top xmlns="">http://www.vipan.com/htdocs/log4jhelp.html</A></P>
<P xmlns="http://www.w3.org/1999/xhtml">不要用System.out.println！用Log4j - Vipan Singla </P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><A href="http://www.opensymphony.com/guidelines/logging.jsp" target=_top xmlns="">http://www.opensymphony.com/guidelines/logging.jsp</A></P>
<P xmlns="http://www.w3.org/1999/xhtml">LOG4J / OpenSymphony日志记录入门</P>
</LI><LI xmlns="http://www.w3.org/1999/xhtml">
<P xmlns="http://www.w3.org/1999/xhtml"><A href="http://builder.com.com/article.jhtml?id=u00820020124kev01.htm" target=_top xmlns="">http://builder.com.com/article.jhtml?id=u00820020124kev01.htm</A></P>
<P xmlns="http://www.w3.org/1999/xhtml">给你的Java应用程序添加日志记录 - Kevin Brown<BR></P></LI></UL></DIV></DIV>
<P >Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1032154</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200831633247819</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200831633247819</guid>
    <pubDate>Wed, 16 Apr 2008 15:32:47 +0800</pubDate>
    <dcterms:modified>2008-04-16T15:32:47+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[ANT-build.xml文件详解 (转)]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220083154053276</link>
    <description><![CDATA[<div><P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant的优点</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant是Apache软件基金会JAKARTA目录中的一个子项目，它有以下的优点。<BR>跨平台性。Ant是存Java语言编写的，所示具有很好的跨平台性。<BR>操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant通过调用target树，就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>时XML格式的文件，所以和容易维护和书写，而且结构很清晰。<BR>Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点，它很容易集成到一些开发环</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>境中去。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant 开发</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant的构建文件<BR>当开始一个新的项目时，首先应该编写Ant构建文件。构建文件定义了构建过程，并被团队开发</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>中每个人使用。Ant构建文件默认命名为build.xml，也可以取其他的名字。只不过在运行的时候</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>把这个命名当作参数传给Ant。构建文件可以放在任何的位置。一般做法是放在项目顶层目录中</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>，这样可以保持项目的简洁和清晰。下面是一个典型的项目层次结构。<BR>(1)&nbsp;src存放文件。<BR>(2)&nbsp;class存放编译后的文件。<BR>(3)&nbsp;lib存放第三方JAR包。<BR>(4)&nbsp;dist存放打包，发布以后的代码。<BR>Ant构建文件是XML文件。每个构建文件定义一个唯一的项目(Project元素)。每个项目下可以定</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>义很多目标(target元素)，这些目标之间可以有依赖关系。当执行这类目标时，需要执行他们所</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>依赖的目标。<BR>每个目标中可以定义多个任务，目标中还定义了所要执行的任务序列。Ant在构建目标时必须调</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>用所定义的任务。任务定义了Ant实际执行的命令。Ant中的任务可以为3类。<BR>（1）&nbsp;核心任务。核心任务是Ant自带的任务。<BR>（2）&nbsp;可选任务。可选任务实来自第三方的任务，因此需要一个附加的JAR文件。<BR>（3）&nbsp;用户自定义的任务。用户自定义的任务实用户自己开发的任务。<BR>1.&lt;project&gt;标签<BR>&nbsp; 每个构建文件对应一个项目。&lt;project&gt;标签时构建文件的根标签。它可以有多个内在属性，</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>就如代码中所示，其各个属性的含义分别如下。<BR>(1)&nbsp;default表示默认的运行目标，这个属性是必须的。<BR>(2)&nbsp;basedir表示项目的基准目录。<BR>(3)&nbsp;name表示项目名。<BR>(4)&nbsp;description表示项目的描述。<BR>每个构建文件都对应于一个项目，但是大型项目经常包含大量的子项目，每一个子项目都可以有</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>自己的构建文件。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>2.&lt;target&gt;标签 <BR>一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target标签。例</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>如，有一个target用于编译程序，另一个target用于声称可执行文件。在生成可执行文件之前必</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>须先编译该文件，因策可执行文件的target依赖于编译程序的target。Target的所有属性如下。<BR>(1).name表示标明，这个属性是必须的。<BR>(2).depends表示依赖的目标。<BR>(3)if表示仅当属性设置时才执行。<BR>(4)unless表示当属性没有设置时才执行。<BR>(5)description表示项目的描述。<BR>Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中target出现顺序依次执行</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>每个target。在执行之前，首先需要执行它所依赖的target。程序中的名为run的target的</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>depends属性compile，而名为compile的target的depends属性是prepare，所以这几个target执</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>行的顺序是prepare-&gt;compile-&gt;run。<BR>一个target只能被执行一次，即使有多个target依赖于它。如果没有if或unless属性，target总</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>会被执行。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>3.&lt;mkdir&gt;标签<BR>该标签用于创建一个目录，它有一个属性dir用来指定所创建的目录名，其代码如下：<BR>&lt;mkdir dir=”＄{class.root}”/&gt;<BR>通过以上代码就创建了一个目录，这个目录已经被前面的property标签所指定。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>4&lt;jar&gt;标签<BR>该标签用来生成一个JAR文件，其属性如下。<BR>(1)&nbsp;destfile表示JAR文件名。<BR>(2)&nbsp;basedir表示被归档的文件名。<BR>(3)&nbsp;includes表示别归档的文件模式。<BR>(4)&nbsp;exchudes表示被排除的文件模式。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>5．&lt;javac标签&gt;<BR>该标签用于编译一个或一组java文件，其属性如下。<BR>(1).srcdir表示源程序的目录。<BR>(2).destdir表示class文件的输出目录。<BR>(3).include表示被编译的文件的模式。<BR>(4).excludes表示被排除的文件的模式。<BR>(5).classpath表示所使用的类路径。<BR>(6).debug表示包含的调试信息。<BR>(7).optimize表示是否使用优化。<BR>(8).verbose 表示提供详细的输出信息。<BR>(9).fileonerror表示当碰到错误就自动停止。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>6．&lt;java&gt;标签<BR>该标签用来执行编译生成的.class文件，其属性如下。<BR>(1).classname 表示将执行的类名。<BR>(2).jar表示包含该类的JAR文件名。<BR>(3).classpath所表示用到的类路径。<BR>(4).fork表示在一个新的虚拟机中运行该类。<BR>(5).failonerror表示当出现错误时自动停止。<BR>(6).output 表示输出文件。<BR>(7).append表示追加或者覆盖默认文件。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>7.&lt;delete&gt;标签<BR>该标签用于删除一个文件或一组文件，去属性如下。<BR>(1)/file表示要删除的文件。<BR>(2).dir表示要删除的目录。<BR>(3).includeEmptyDirs 表示指定是否要删除空目录，默认值是删除。<BR>(4).failonerror 表示指定当碰到错误是否停止，默认值是自动停止。<BR>(5).verbose表示指定是否列出所删除的文件，默认值为不列出。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>8.&lt;copy&gt;标签<BR>该标签用于文件或文件集的拷贝，其属性如下。<BR>(1).file 表示源文件。<BR>(2).tofile 表示目标文件。<BR>(3).todir 表示目标目录。<BR>(4).overwrite 表示指定是否覆盖目标文件，默认值是不覆盖。<BR>(5).includeEmptyDirs 表示制定是否拷贝空目录，默认值为拷贝。<BR>(6).failonerror 表示指定如目标没有发现是否自动停止，默认值是停止。<BR>(7).verbose 表示制定是否显示详细信息，默认值不显示。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant的数据类型<BR>在构建文件中为了标识文件或文件组，经常需要使用数据类型。数据类型包含在</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>org.apache.tool.ant.types包中。下面镜简单介绍构建文件中一些常用的数据类型。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>1.&nbsp;argument 类型<BR>&nbsp;由Ant构建文件调用的程序，可以通过&lt;arg&gt;元素向其传递命令行参数，如apply,exec和java任</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>务均可接受嵌套&lt;arg&gt;元素，可以为各自的过程调用指定参数。以下是&lt;arg&gt;的所有属性。<BR>(1).values 是一个命令参数。如果参数种有空格，但又想将它作为单独一个值，则使用此属性</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>。<BR>(2).file表示一个参数的文件名。在构建文件中，此文件名相对于当前的工作目录。<BR>(3).line表示用空格分隔的多个参数列表。<BR>(4).path表示路径。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>2.ervironment 类型<BR>&nbsp; 由Ant构建文件调用的外部命令或程序，&lt;env&gt;元素制定了哪些环境变量要传递给正在执行的系</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>统命令，&lt;env&gt;元素可以接受以下属性。<BR>(1).file表示环境变量值得文件名。此文件名要被转换位一个绝对路径。<BR>(2).path表示环境变量的路径。Ant会将它转换为一个本地约定。<BR>(3).value 表示环境变量的一个直接变量。<BR>(4).key 表示环境变量名。<BR>注意&nbsp; file path 或 value只能取一个。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>3.filelist类型<BR>&nbsp;Filelist 是一个支持命名的文件列表的数据类型，包含在一个filelist类型中的文件不一定是</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>存在的文件。以下是其所有的属性。<BR>(1).dir是用于计算绝对文件名的目录。<BR>(2).files 是用逗号分隔的文件名列表。<BR>(3).refid 是对某处定义的一个&lt;filelist&gt;的引用。<BR>注意&nbsp; dir 和 files 都是必要的，除非指定了refid(这种情况下，dir和files都不允许使用)。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>4.fileset类型<BR>Fileset 数据类型定义了一组文件，并通常表示为&lt;fileset&gt;元素。不过，许多ant任务构建成了</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>隐式的fileset,这说明他们支持所有的fileset属性和嵌套元素。以下为fileset 的属性列表。<BR>(1).dir表示fileset 的基目录。<BR>(2).casesensitive的值如果为false，那么匹配文件名时，fileset不是区分大小写的，其默认</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>值为true.<BR>(3).defaultexcludes 用来确定是否使用默认的排除模式，默认为true。<BR>(4).excludes 是用逗号分隔的需要派出的文件模式列表。<BR>(5).excludesfile 表示每行包含一个排除模式的文件的文件名。<BR>(6).includes 是用逗号分隔的，需要包含的文件模式列表。<BR>(7).includesfile 表示每行包括一个包含模式的文件名。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>5.patternset 类型 <BR>Fileset 是对文件的分组，而patternset是对模式的分组，他们是紧密相关的概念。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>&lt;patternset&gt;支持4个属性：includes excludex includexfile 和 excludesfile,与fileset相</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>同。Patternset 还允许以下嵌套元素：include,exclude,includefile 和 excludesfile.</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>6.filterset 类型<BR>Filterset定义了一组过滤器，这些过滤器将在文件移动或复制时完成文件的文本替换。<BR>主要属性如下：<BR>(1).begintoken 表示嵌套过滤器所搜索的记号，这是标识其开始的字符串。<BR>(2).endtoken表示嵌套过滤器所搜索的记号这是标识其结束的字符串。<BR>(3).id是过滤器的唯一标志符。<BR>(4).refid是对构建文件中某处定义一个过滤器的引用。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>7.Path类型 <BR>Path元素用来表示一个类路径，不过它还可以用于表示其他的路径。在用作揖个属性时，路经中</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>的各项用分号或冒号隔开。在构建的时候，此分隔符将代替当前平台中所有的路径分隔符，其拥</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>有的属性如下。<BR>(1).location 表示一个文件或目录。Ant在内部将此扩展为一个绝对路径。<BR>(2).refid 是对当前构建文件中某处定义的一个path的引用。<BR>(3).path表示一个文件或路径名列表。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>8.mapper类型<BR>Mapper类型定义了一组输入文件和一组输出文件间的关系，其属性如下。<BR>(1).classname 表示实现mapper类的类名。当内置mapper不满足要求时，用于创建定制mapper.<BR>(2).classpath表示查找一个定制mapper时所用的类型路径。<BR>(3).classpathref是对某处定义的一个类路径的引用。<BR>(4).from属性的含义取决于所用的mapper.<BR>(5).to属性的含义取决于所用的mapper.<BR>(6).type属性的取值为identity，flatten glob merge&nbsp; regexp&nbsp; 其中之一，它定义了要是用的</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>内置mapper的类型。</FONT></P>
<P style="FONT-SIZE: 10pt"><BR><FONT face=宋体>Ant 的运行<BR>安装好Ant并且配置好路径之后，在命令行中切换到构建文件的目录，输入Ant命令就可以运行</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant.若没有指定任何参数，Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>构建文件。如果使用了 –find 选项，Ant 就会在上级目录中找构建文件，直至到达文件系统得</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>跟目录。如果构建文件的名字不是build.xml ，则Ant运行的时候就可以使用 –buildfile file </FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>,这里file 指定了要使用的构建文件的名称，示例如下：<BR>Ant<BR>如下说明了表示当前目录的构建文件为build.xml 运行 ant 执行默认的目标。</FONT></P>
<P style="FONT-SIZE: 10pt"><FONT face=宋体>Ant –buildfile&nbsp; test.xml<BR>使用当前目录下的test.xml 文件运行Ant ,执行默认的目标</FONT></P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220083154053276</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220083154053276</guid>
    <pubDate>Tue, 15 Apr 2008 16:00:53 +0800</pubDate>
    <dcterms:modified>2008-04-15T16:00:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[恭喜河南建业]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200831310242668</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2008.4.13&nbsp;郑州航海路体育场。河南四五队凭借着下半时张璐和何滨的进球，以2-0击败了卫冕冠军长春亚泰队，爆出了开赛以来的一大冷门。继上轮客场1：1逼平大连实德后，建业又一次扮演了巨人杀手！</P>
<P><FONT face=黑体>建业进球视频&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://s.sohu.com/20080413/n256265888.shtml">http://s.sohu.com/20080413/n256265888.shtml</A></FONT></P>
<P><A href="http://img.blog.163.com/photo/08UG3o1stNCJ8aeVqXshCw==/633881647553052957.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/08UG3o1stNCJ8aeVqXshCw==/633881647553052957.jpg"></A></P>
<P><FONT face=黑体><A href="http://img.blog.163.com/photo/cioE-3xO9BPY_bJb35synQ==/926052673378618145.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/cioE-3xO9BPY_bJb35synQ==/926052673378618145.jpg"></A></FONT></P>
<P><A href="http://img.blog.163.com/photo/vKlqeqzPkHWTJdkg6XyHHw==/926052673378618148.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/vKlqeqzPkHWTJdkg6XyHHw==/926052673378618148.jpg"></A></P>
<P><A href="http://img.blog.163.com/photo/g3Q2myGJF1ViQKunXMTyPA==/632755747645941832.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/g3Q2myGJF1ViQKunXMTyPA==/632755747645941832.jpg"></A><A href="http://img.blog.163.com/photo/L-bR0c5LGJ6vrCscWP2mZQ==/632755747645941825.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/L-bR0c5LGJ6vrCscWP2mZQ==/632755747645941825.jpg"></A><A href="http://img.blog.163.com/photo/L_0yunjht5-OXE6PKFeC2A==/632755747645941817.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/L_0yunjht5-OXE6PKFeC2A==/632755747645941817.jpg"></A><A href="http://img.blog.163.com/photo/CGcV5NbO5Gc-9Y6PNg57Lw==/926052673378618163.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/CGcV5NbO5Gc-9Y6PNg57Lw==/926052673378618163.jpg"></A><A href="http://img.blog.163.com/photo/XKryzFfZbNrUYBSxWqf2rQ==/926052673378618160.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/XKryzFfZbNrUYBSxWqf2rQ==/926052673378618160.jpg"></A><A href="http://img.blog.163.com/photo/T_22TBoC2TZh5jNnpoMCCg==/926052673378618157.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/T_22TBoC2TZh5jNnpoMCCg==/926052673378618157.jpg"></A><A href="http://img.blog.163.com/photo/bdScubFPPNroZfaRRRlxdQ==/926052673378618152.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/bdScubFPPNroZfaRRRlxdQ==/926052673378618152.jpg"></A></P>
<P><FONT face=黑体>上赛季河南建业的表现（转自<FONT face=Arial> 搜狐体育</FONT>）：</FONT></P>
<P>---------------------------------------------------------------------------------------------------------------------------------------</P>
<P>论实力，河南队只能排在中超的中下，很难想象他们在与强队交锋时会有好的战绩，但在上个赛季，河南队却交出了一分令人倍感惊诧的答卷。联赛前两轮，河南队连续0：0逼平北京和上海，小试牛刀；之后的河南队魔鬼主场的威力开始显现，1：1战平卫冕冠军山东队，取得中超第一个进球；2：1力克八星冠军大连队，拿到了升入顶级联赛的第一个三分，河南队的主场发飙给人留下了深刻的印象，也让诸强队吃尽了苦头。</P>
<P>　　随着联赛的深入，河南队的真正实力得以体现，接连在同级别球队身上丢分迫使他们不得不为保级而战，但几场漂亮的阻击自救战却打得漂亮。联赛第19轮，河南客场面对风头正劲的山东队，顽强完成大逆转，拿到保级路上关键的3分，也打破了对手重当领头羊的美梦；而河南队最为惊艳的表现则出现在联赛第28轮，由于他们之后赛程困难，保级形势很不乐观，此时的对手又是领头羊长春亚泰，很多人认为河南危亦，可最终的结果令人意外，河南队主场3：2掀翻对手，完成自救的同时也顺便上演了阻击好戏，也因此博得“专克领头羊”的美誉。</P>
<P>---------------------------------------------------------------------------------------------------------------------------------------------新赛季，河南队请来了性格主帅贾秀全，在对球队进行重组时，贾秀全更加注重完善球队的年龄结构，他从大连海昌引进了刘宇、邹游，从上海申花引进了周亚君、顾操，都是1985年以后出生的年轻球员，再加球队原有的这一年龄段球员，贾秀全在河南四五构建了一支以08国奥适龄球员为主的球队。此外，贾秀全还买来了道格拉斯、吉奥森、奥比以及前波兰国脚奥利萨德贝4名强力外援，河南队已经有了质的提升。</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200831310242668</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200831310242668</guid>
    <pubDate>Sun, 13 Apr 2008 22:24:02 +0800</pubDate>
    <dcterms:modified>2008-04-21T23:03:54+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[有点兴奋]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200831182351157</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp; 今天，周五，下午没什么事。去参观了296的枪械基地。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 兴奋，从来没有见过如此多的枪械，什么AK，95，各类狙击应有尽有，琳琅满目。顺手操起一把狙击步枪，瞄了半天，又提起玩CS时最喜欢的AK47找了找手感，感觉实在是太酷了！车间里堆满了一车一车的各类冲锋枪，工人在有条不紊的装配着......醒目的位置挂着毛主席，邓小平，江泽民视察296的巨幅画像，入口处是胡总书记的题词——这就是亚洲最大的枪械基地！</P>
<P>&nbsp;&nbsp;&nbsp; 玩了半天，又到了基地的地下靶场，又一阵兴奋感涌向心头。有点遗憾，来的晚了，实枪员准备下班，放两枪的愿望未能实现。真想偷偷用手机拍两张照片秀秀，出于纪律考虑，就此搁置。</P>
<P>&nbsp;&nbsp; 可能这辈子就这一次机会与枪械如此近距离的接触了，伤感ing</P>
<P>&nbsp;&nbsp;&nbsp; </P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200831182351157</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200831182351157</guid>
    <pubDate>Fri, 11 Apr 2008 20:23:51 +0800</pubDate>
    <dcterms:modified>2008-04-11T21:47:38+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[又是一年三月三]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220083903825280</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好雨知时节，当今乃发生。4月8日，农历戊子年三月初三上午，新郑市迎来一年一度的盛大节日，戊子年黄帝故里拜祖大典在春风喜雨中隆重举行。来自海内外的各界嘉宾两万余人亲临盛典、同拜先祖，仰怀中华文明，祈福北京奥运，共祝盛世和谐。 </P>
<P><A href="http://img.blog.163.com/photo/p8sxaV79xUhg1O1U6qgInA==/3978648795805489218.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/p8sxaV79xUhg1O1U6qgInA==/3978648795805489218.jpg"></A></P>
<P>&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;全国人大常委会副委员长、中国和平统一促进会副会长周铁农，全国政协副主席、中国和平统一促进会副会长黄孟复，十届全国人大常委会副委员长热地，十届全国政协副主席、中华炎黄文化研究会名誉会长张思卿，原中央军委委员、空军原司令员乔清晨应邀参加大典。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;新党主席郁慕明等应中共河南省委邀请参加大典。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;中国和平统一促进会和黄埔军校同学会党组书记、中国和平统一促进会秘书长梁金泉，中华炎黄文化研究会第一副会长张文彬，国务院台湾事务办公室常务副主任郑立中，云南省政协主席王学仁，贵州省政协主席黄瑶等出席大典。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;河南省委、省人大、省政府、省政协领导徐光春、郭庚茂、陈全国、王全书、李克、孔玉芳、叶冬松、叶青纯、曹维新、王文超、刘怀廉、颜纪雄、李柏拴、王菊梅、张程锋、铁代生、储亚平、徐济超、宋璇涛、王训智、靳绥东、邓永俭、袁祖亮、王平、李英杰、龚立群、张亚忠，以及省高级人民法院院长张立勇、省人民检察院检察长蔡宁等参加了大典。 
</P><P><A href="http://img.blog.163.com/photo/thXRlVkSmooo7yPGZup0uw==/1433270581411277877.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/thXRlVkSmooo7yPGZup0uw==/1433270581411277877.jpg"></A>
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 庄严肃穆的黄帝像 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;本次拜祖大典由河南省政协、中华炎黄文化研究会主办，郑州市政府、郑州市政协和新郑市政府承办，是近年来规模最大、规格最高、最为隆重的一次。为了贯彻落实十七大精神，大力弘扬中华民族优秀文化，传承民族国脉的精神纽带，表达对北京奥运会的美好祝愿，本次大典确立了“共建中华精神家园、祈福北京奥运盛会”的主题。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;纷飞的细雨中，杨柳吐绿，鲜花盛开，装扮一新的新郑处处洋溢着欢庆的气氛。数万名故里儿女一大早就不约而同走上街头，等候在8公里长的迎亲线路两旁，喜迎海内外黑头发黄皮肤的炎黄子孙回“家”拜祖。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;9时，乘坐着海内外嘉宾的车队驶下京珠高速公路新郑路口，道路两旁顿时锣鼓齐鸣，“欢迎回家”的欢呼声一浪高过一浪。热烈祥和的喜庆场面以及故里儿女的热情好客和期盼，让车内许多离开故土多年的海外游子激动得热泪盈眶。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;9时10分，车队通过郑韩故城东城墙口，设在这里的迎亲门端庄大气，金色的底色上布满祥云图案，醒目的“迎亲”二字直入眼帘。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;9时16分，车队经过炎黄广场，300架舞狮和着欢快激昂的乐曲尽情腾跃，赢得嘉宾们啧啧称赞，他们纷纷举起相机和录像机，记录下这难忘的画面。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;9时20分，车队到达昌运门。停车后，领导和嘉宾们健步走下车，列队前行。新郑市委书记赵武安迎上前来，朗声说道：“尊敬的首长，尊敬的各位嘉宾，欢迎您来到黄帝故里！” 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;在900面红色盘鼓、300面红色姓氏旗和1000多名身着大红色服装的演员们的映衬下，中华姓氏广场成了红色的海洋、欢乐的海洋，演员们激情表演着《中华鼓魂》，表达着中华民族热烈奔放、激昂豪迈的情怀。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;汉阙前，新郑市市长吴忠华郑重报告：“戊子年黄帝故里拜祖大典已准备就绪，请领导和嘉宾入场！”接着，迎候在这里身着古典服装的礼仪人员捧上饱含故里人民盛情的美酒，敬献给领导和嘉宾，并为他们佩戴上黄帝丝巾。在向主司仪行传统而庄重的沐浴仪式后，领导和嘉宾们怀着崇敬、虔诚的心情走向拜祖广场。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;拜祖广场上人山人海，彩旗飘飞，广场正前方的黄帝塑像庄严肃穆，气宇轩昂。省委常委、郑州市委书记王文超在致欢迎辞时说，今天，来自世界各地的炎黄子孙同聚轩辕故里，恭拜始祖黄帝，共建中华精神家园，祈福北京奥运盛会，这是全球华人的盛大节日，是56个民族融合团结的兴邦盛典，是盛世中国兴旺繁荣的和谐盛典。我谨代表拜祖大典组委会和730多万郑州人民，向大家表示最热烈的欢迎和最诚挚的敬意！ 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;9时50分，中华炎黄文化研究会第一副会长张文彬宣布戊子年黄帝故里拜祖大典开始。全体肃立，21声礼炮依次响起、声震长空。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;9时52分，在庄严的乐声中，周铁农、黄孟复、热地、张思卿，乔清晨、徐光春、郭庚茂，梁金泉、郑立中、王学仁、黄瑶分三组先后随礼兵上台向黄帝像敬献花篮。他们缓步走到花篮处整理缎带后，向黄帝塑像深深鞠躬致敬。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时，净手上香仪式开始。新党主席郁慕明，中华黄埔四海同心会参访团团长罗文山，陆军官校校友会参访团团长宁攸武，台湾知名人士康景文，台湾中国统一联盟主席王津平，中国十大慈善新闻人物周森，中国和平统一促进会理事、澳门创世企业集团有限公司董事长刘艺良，全国政协委员、香港太平绅士郭修圃，海峡两岸合作发展基金会董事长张世良先后走到台前，净手上香。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时11分，随着主司仪的宣布，现场全体人员向轩辕黄帝像行施拜礼，深深三鞠躬。气氛庄严凝重，肃穆深沉。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时12分，由河南省政协主席、中华炎黄文化研究会副会长王全书恭读拜祖文。王全书在向黄帝像深深鞠躬后，声音洪亮地宣读道：“维公元二零零八年四月八日，农历戊子年三月初三，中国人民政治协商会议河南省委员会主席、中华炎黄文化研究会副会长王全书，谨代表河南九千八百万人民和海内外炎黄子孙，在中华人文始祖轩辕黄帝故里——河南郑州新郑市，恭拜始祖轩辕黄帝曰：阳春三月，春雨喜降。具茨山麓，轩辕故乡。圣明睿智，光被遐荒。赫赫伟业，恩泽八方……海峡两岸，翘首盼望。精神家园，万世不忘。新郑拜祖，四海共襄。祈福奥运，伏维尚飨！” 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时18分，站立在颂歌台和祈福台上的340名颂歌演员，齐唱《黄帝颂》，庄重悠扬的歌声表达了中原儿女对先祖的崇敬景仰之情。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时22分，和着典雅肃穆的古乐，身着盛装的舞蹈演员开始了乐舞敬拜，曼妙的舞姿把人们的思绪带到了先辈们胼手胝足、披荆斩棘去开创基业的年代。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时26分，仪程进行第八项：天地人和，故土分赠。礼仪人员将采自黄帝故里始祖山的故乡土放入铜鼎中，手捧铜鼎将故土送上拜祖台。周铁农、黄孟复、徐光春将故土分送给来自世界各地的炎黄子孙代表。捧着故乡的泥土，游子们感慨万千，有的还激动地将盛放故土的铜鼎高举过头顶，向大家致意。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;10时30分，大典进行最后一项：祈福奥运。在距黄帝塑像50米处，是一座晶莹通透的祈福台，祈福台上，是一棵象征中华根脉、高达７米的祈福树，鹅黄色的祈福树在春风春雨中格外耀眼夺目。祈福树下，许海峰、陈龙灿、邓亚萍、熊倪、王丽萍、吴数德、李延军、梁艳、侯玉珠、李婷、罗微、王濛、韩晓鹏、顾俊、陈伟强、姚景远、李玉伟、庄晓岩、李对红、孙福明、龚智超、唐琳、郑李辉、陶璐娜、林伟宁、杨凌、钱红、陈晓敏、李娜等应邀参加拜祖大典的29名历届奥运冠军星光灿烂、凝神而立，昔日驰骋赛场、为国争光，今日带着更快更高更强的奥林匹克精神祈福北京奥运，他们纷纷在祈福树上挂上祈福牌的一刹那，神情自是格外神圣庄严。随后，奥运冠军们缓缓走向黄帝塑像，追思人文始祖的功德、感念中华民族的伟大，当《龙的传人》的音乐奏至高潮处，只见汉白玉黄帝像背景墙的上方，红黄蓝绿黑五色绸缎“飞流直下”，奥运五环的色彩在中华民族黄帝故里的土地上迎风飘扬，全场鼓乐齐鸣、颂歌飞扬、礼花怒放，拜祖大典现场沸腾了，在场的每一位嘉宾的脸上都洋溢着龙的传人的自豪和骄傲。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;上午10时36分，张文彬庄严宣布：戊子年黄帝故里拜祖大典典礼告成！ 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;从台湾归来的一位老将军指着昌运门上“昌运”二字，不禁感慨万千：“昌运，昌运，两岸统一，国家才能昌盛，民族才有旺运啊！”来自香港的胡珠先生激动地说，看到我们的祖国这么繁荣兴盛，这么美丽富强，大家都感到很骄傲。 拜祖大典向全世界表明了华夏儿女维护祖国统一和民族团结的坚强信心和决心，也展现了炎黄子孙实现百年奥运梦想的自豪和喜悦，更表达了亿万华人追求和谐幸福生活的美好愿望。 
</P><P>&nbsp;&nbsp;&nbsp;&nbsp;中国和平统一促进会代表团，台湾退役将军代表团以及来自澳大利亚、美国、印度、加拿大、法国、意大利、西班牙、奥地利、德国、荷兰、韩国、比利时、爱尔兰、匈牙利、印度尼西亚、新加坡、菲律宾、俄罗斯、塞尔维亚、黑山、马来西亚、泰国、日本、香港、澳门、台湾等158个国家和地区的世界华人企业家协会、世界杰出华商协会、华人联谊会、中国和平统一促进会等各类华人华侨商会，贸促会、文化促进会、同乡会、研究会、华侨华人社团联合会、台湾客家团、妇女团、澳门河南宗源联谊会、香港童军总会、香港工商专业协进会等87个社团组织和96个姓氏宗亲会、同乡会的嘉宾也出席了本次大典。</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220083903825280</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220083903825280</guid>
    <pubDate>Wed, 9 Apr 2008 12:38:25 +0800</pubDate>
    <dcterms:modified>2008-04-09T16:07:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[关于VO、PO的理解-java的(PO,VO,TO,BO,DAO,POJO)解释（转）]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/288758522008380042876</link>
    <description><![CDATA[<div><H3><A href="http://czjxdm.javaeye.com/blog/173812"></A>&nbsp;</H3>
<DIV >O/R Mapping 是 Object Relational <BR>Mapping（对象关系映射）的缩写。通俗点讲，就是将对象与关系数据库绑定，用对象来表示关系数据。在O/R <BR>Mapping的世界里，有两个基本的也是重要的东东需要了解，即<SPAN >VO</SPAN>，PO。 <BR>　　<SPAN >VO</SPAN>，值对象(Value Object)，PO，持久对象(Persisent <BR>Object)，它们是由一组属性和属性的get和set方法组成。从结构上看，它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。 <BR><BR>１．<SPAN >VO</SPAN>是用new关键字创建，由GC回收的。 <BR>　　PO则是向数据库中添加新数据时创建，删除数据库中数据时削除的。并且它只能存活在一个数据库连接中，断开连接即被销毁。 <BR><BR><BR>２．<SPAN >VO</SPAN>是值对象，精确点讲它是业务对象，是存活在业务层的，是业务逻辑使用的，它存活的目的就是为数据提供一个生存的地方。 <BR><BR>　　PO则是有状态的，每个属性代表其当前的状态。它是物理数据的对象表示。使用它，可以使我们的程序与物理数据解耦，并且可以简化对象数据与物理数据之间的转换。 <BR><BR>３．<SPAN >VO</SPAN>的属性是根据当前业务的不同而不同的，也就是说，它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。 <BR><BR>　　PO的属性是跟数据库表的字段一一对应的。 <BR><BR>PO对象需要实现序列化接口。 <BR>------------------------------------------------- <BR>PO是持久化对象，它只是将物理数据实体的一种对象表示，为什么需要它？因为它可以简化我们对于物理实体的了解和耦合，简单地讲，可以简化对象的数据转换为物理数据的编程。<SPAN >VO</SPAN>是什么？它是值对象，准确地讲，它是业务对象，是生活在业务层的，是业务逻辑需要了解，需要使用的，再简单地讲，它是概念模型转换得到的。 <BR><BR>首先说PO和<SPAN >VO</SPAN>吧，它们的关系应该是相互独立的，一个<SPAN >VO</SPAN>可以只是PO的部分，也可以是多个PO构成，同样也可以等同于一个PO（当然我是指他们的属性）。正因为这样，PO独立出来，数据持久层也就独立出来了，它不会受到任何业务的干涉。又正因为这样，业务逻辑层也独立开来，它不会受到数据持久层的影响，业务层关心的只是业务逻辑的处理，至于怎么存怎么读交给别人吧！不过，另外一点，如果我们没有使用数据持久层，或者说没有使用 hibernate，那么PO和<SPAN >VO</SPAN>也可以是同一个东西，虽然这并不好。 <BR>---------------------------------------------------- <BR><SPAN >java</SPAN>的(PO,<SPAN >VO</SPAN>,TO,BO,DAO,POJO)解释 <BR><BR>PO(persistant object) 持久对象 <BR>在o/r映射的时候出现的概念，如果没有o/r映射，没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的<SPAN >java</SPAN>对象。最简单的PO就是对应数据库中某个表中的一条记录，多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。 <BR><BR><BR><SPAN >VO</SPAN>(value object) 值对象 <BR>通常用于业务层之间的数据传递，和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。 <BR><BR>TO(Transfer Object)，数据传输对象 <BR>在应用程序不同tie(关系)之间传输的对象 <BR><BR>BO(business object) 业务对象 <BR>从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的<SPAN >java</SPAN>对象,通过调用DAO方法,结合PO,<SPAN >VO</SPAN>进行业务操作。 <BR><BR><BR>POJO(plain ordinary <SPAN >java</SPAN> object) 简单无规则<SPAN >java</SPAN>对象 <BR>纯的传统意义的<SPAN >java</SPAN>对象。就是说在一些Object/Relation <BR>Mapping工具中，能够做到维护数据库表记录的persisent <BR>object完全是一个符合<SPAN >Java</SPAN> <BR>Bean规范的纯<SPAN >Java</SPAN>对象，没有增加别的属性和方法。我的理解就是最基本的<SPAN >Java</SPAN> <BR>Bean，只有属性字段及setter和getter方法！。 <BR><BR>DAO(data access object) 数据访问对象 <BR>是一个sun的一个标准j2ee设计模式，这个模式中有个接口就是DAO，它负持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和PO结合使用，DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合<SPAN >VO</SPAN>, <BR>提供数据库的CRUD操作... <BR><BR>O/R Mapper 对象/关系 映射 <BR>定义好所有的mapping之后，这个O/R <BR>Mapper可以帮我们做很多的工作。通过这些mappings,这个O/R <BR>Mapper可以生成所有的关于对象保存，删除，读取的SQL语句，我们不再需要写那么多行的DAL代码了。 <BR><BR><BR>实体Model(实体模式) <BR>DAL(数据访问层) <BR>IDAL(接口层) <BR>DALFactory(类工厂) <BR>BLL(业务逻辑层) <BR>BOF Business Object Framework 业务对象框架 <BR>SOA Service Orient Architecture 面向服务的设计 <BR>EMF Eclipse Model Framework <BR>Eclipse建模框架 <BR>---------------------------------------- <BR><BR>PO：全称是 <BR>persistant object持久对象 <BR>最形象的理解就是一个PO就是数据库中的一条记录。 <BR>好处是可以把一条记录作为一个对象处理，可以方便的转为其它对象。 <BR>BO：全称是 <BR>business object:业务对象 <BR>主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 <BR>比如一个简历，有教育经历、工作经历、社会关系等等。 <BR>我们可以把教育经历对应一个PO，工作经历对应一个PO，社会关系对应一个PO。 <BR>建立一个对应简历的BO对象处理简历，每个BO包含这些PO。 <BR>这样处理业务逻辑时，我们就可以针对BO去处理。 <BR><SPAN >VO</SPAN> ： <BR>value object值对象 <BR>ViewObject表现层对象 <BR>主要对应界面显示的数据对象。对于一个WEB页面，或者SWT、SWING的一个界面，用一个<SPAN >VO</SPAN>对象对应整个界面的值。 <BR>DTO ： <BR>Data Transfer Object数据传输对象 <BR>主要用于远程调用等需要大量传输对象的地方。 <BR>比如我们一张表有100个字段，那么对应的PO就有100个属性。 <BR>但是我们界面上只要显示10个字段， <BR>客户端用WEB service来获取数据，没有必要把整个PO对象传递到客户端， <BR>这时我们就可以用只有这10个属性的DTO来传递结果到客户端，这样也不会暴露服务端表结构.到达客户端以后，如果用这个对象来对应界面显示，那此时它的身份就转为<SPAN >VO</SPAN> <BR>POJO ： <BR>plain ordinary <SPAN >java</SPAN> object 简单<SPAN >java</SPAN>对象 <BR>个人感觉POJO是最常见最多变的对象，是一个中间对象，也是我们最常打交道的对象。 <BR><BR>一个POJO持久化以后就是PO <BR>直接用它传递、传递过程中就是DTO <BR>直接用来对应表示层就是<SPAN >VO</SPAN> <BR>DAO： <BR>data access object数据访问对象 <BR>这个大家最熟悉，和上面几个O区别最大，基本没有互相转化的可能性和必要. <BR>主要用来封装对数据库的访问。通过它可以把POJO持久化为PO，用PO组装出来<SPAN >VO</SPAN>、DTO <BR><BR><BR>----------------------------------------------------------------- <BR>PO:persistant <BR>object持久对象,可以看成是与数据库中的表相映射的<SPAN >java</SPAN>对象。最简单的PO就是对应数据库中某个表中的一条记录，多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作. <BR><BR><BR><BR><SPAN >VO</SPAN>:value <BR>object值对象。通常用于业务层之间的数据传递，和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递. <BR><BR><BR>DAO:data access <BR>object数据访问对象，此对象用于访问数据库。通常和PO结合使用，DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作. <BR><BR><BR>BO:business <BR>object业务对象,封装业务逻辑的<SPAN >java</SPAN>对象,通过调用DAO方法,结合PO,<SPAN >VO</SPAN>进行业务操作; <BR><BR>POJO:plain ordinary <SPAN >java</SPAN> object <BR>简单无规则<SPAN >java</SPAN>对象,我个人觉得它和其他不是一个层面上的东西,<SPAN >VO</SPAN>和PO应该都属于它. <BR><BR>--------------------------------------------- <BR><SPAN >VO</SPAN>：值对象、视图对象 <BR>PO：持久对象 <BR>QO：查询对象 <BR>DAO：数据访问对象 <BR>DTO：数据传输对象 <BR>---------------------------------------- <BR>struts 里的 ActionForm 就是个<SPAN >VO</SPAN>; <BR>hibernate里的 实体bean就是个PO,也叫POJO; <BR>hibernate里的Criteria 就相当于一个QO; <BR>在使用hibernate的时候我们会定义一些查询的方法,这些方法写在接口里,可以有不同的实现类.而这个接口就可以说是个DAO. <BR>个人认为QO和DTO差不多. <BR>---------------------------------------- <BR>PO或叫BO，与数据库最接近的一层，是ORM中的O，基本上是数据库字段对应BO中的一个属性，为了同步与安全性考虑，最好只给DAO或者Service调用，而不要用packcode,backingBean,或者BO调。 <BR>DAO，数据访问层，把<SPAN >VO</SPAN>，backingBean中的对象可以放入。。。。 <BR>DTO，很少用，基本放入到DAO中，只是起到过渡的作用。 <BR>QO，是把一些与持久性查询操作与语句放入。。 <BR><SPAN >VO</SPAN>，V层中用到的基本元素与方法等放其中。如果要其调用BO，则要做BO转换<SPAN >VO</SPAN>，<SPAN >VO</SPAN>转换BO操作。<SPAN >VO</SPAN>的好处是其页面的元素属性多于BO，可起到很好的作用。。。。 </DIV>
<DIV >-=========================================================================</DIV>
<DIV >PO可以严格对应数据库表，一张表对映一个PO。 <BR>BO则是业务逻辑处理对象，我的理解是它装满了业务逻辑的处理，在业务逻辑复杂的应用中有用。 <BR><SPAN ><FONT style="BACKGROUND-COLOR: #ffff00">VO</FONT></SPAN>：value object值对象、view object视图对象 <BR>PO：持久对象 <BR>QO：查询对象 <BR>DAO：数据访问对象——同时还有DAO模式 <BR>DTO：数据传输对象——同时还有DTO模式</DIV></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/288758522008380042876</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/288758522008380042876</guid>
    <pubDate>Tue, 8 Apr 2008 12:00:42 +0800</pubDate>
    <dcterms:modified>2008-04-08T12:00:42+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[清明]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220083494443464</link>
    <description><![CDATA[<div><P><FONT color=#999999 size=4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 清明时节雨纷纷,</FONT></P>
<P><FONT color=#999999 size=4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 路上行人欲断魂。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 借问酒家何处有？</FONT></P>
<P><FONT color=#999999 size=4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 牧童遥指杏花村。</FONT></P>
<P><FONT color=#999999></FONT>&nbsp;</P>
<P>清明节到了， 如果你死后，墓志铭打算写点啥？<BR>1.一居室，求合租，面议。<BR>2.小事招魂，大事挖坟。<BR>3.我觉得我还可以抢救一下！<BR>4.提供鞭尸服务，一次100！<BR>5.基因重组中，请稍候二十年<BR>6.单挑冥王哈迪斯中，征求组队!<BR>7.当你看清这行字的时候：朋友，你踩到我了。<BR>8.老子终于不用怕鬼了！<BR>9.给爷笑一个，要不爷给你笑一个？<BR>10.陪聊，提供夜间上门服务。<BR>11.还看，你丫也会有这一天的<BR>12.我從前是個胖子，現在和所有躺著的人一樣有骨感。<BR>13.强力推荐这个给我挖坑的，电话：xxxxxxxxx<BR>14.曾经很黄很暴力，现在很黑很安静<BR>15.谢谢来访，改日登门回拜.</P>
<P>出门在外莫忘了前辈孙志刚同志！</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220083494443464</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220083494443464</guid>
    <pubDate>Fri, 4 Apr 2008 09:44:43 +0800</pubDate>
    <dcterms:modified>2008-04-06T10:41:33+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[恭喜表妹]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200822510263623</link>
    <description><![CDATA[<div>恭喜表妹以382的优异成绩考上 郑州大学 排名全国首位的化学专业硕士研究生！公费，没得说！</div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200822510263623</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200822510263623</guid>
    <pubDate>Tue, 25 Mar 2008 22:26:36 +0800</pubDate>
    <dcterms:modified>2008-03-25T22:26:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[无题]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220082164522896</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 全国两会开的沸沸扬扬,可是我觉的与自己一点关系都没有. 3.22台湾公投马上临近,一不谈对台用兵,二不谈调整经济政策! 不喜政治,也搞不清是什么两会,政治协商?人民代表大会?</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 哎,股票和中国足球,最伤心的两件事,玩不起你就不要玩了,学费是高昂的!哎,已经面临着破产的边缘!不提也罢</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 国魂来重庆出差陆续一年多了,项目还没做完. 反正在学校真无聊,就下去一起做,也学点东西.下山,下山,我要明天下山! 友谊万岁!</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220082164522896</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220082164522896</guid>
    <pubDate>Sun, 16 Mar 2008 16:05:22 +0800</pubDate>
    <dcterms:modified>2008-03-16T16:05:22+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[河南建业08年主场赛程]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200821402519689</link>
    <description><![CDATA[<div><P>第一阶段 </P>
<P>　　4月5日&nbsp;&nbsp;河南四五VS辽宁&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P>　　4月12日&nbsp;河南四五VS长春亚泰&nbsp;</P>
<P>　　4月26日&nbsp;河南四五VS浙江绿城&nbsp;</P>
<P>　　5月10日&nbsp;河南四五VS天津泰达&nbsp;</P>
<P>　　5月17日&nbsp;河南四五VS长沙金德&nbsp;</P>
<P>　　注:</P>
<P>　　主场开赛时间全为</P>
<P>　　19:30</P>
<P>　　第二阶段</P>
<P>　　6月28日&nbsp;&nbsp;河南四五VS深圳</P>
<P>　　7月2日&nbsp;&nbsp;&nbsp;河南四五VS山东鲁能&nbsp;&nbsp;</P>
<P>　　7月12日&nbsp;&nbsp;河南四五VS广州医药&nbsp;&nbsp;</P>
<P>　　7月19日&nbsp;&nbsp;河南四五VS北京国安&nbsp;</P>
<P>　　注:</P>
<P>　　主场开赛时间全为</P>
<P>　　19:30</P>
<P>　　第三阶段</P>
<P>　　9月20日&nbsp;&nbsp;河南四五VS大连实德&nbsp;&nbsp;</P>
<P>　　10月2日&nbsp;&nbsp;河南四五VS上海申花&nbsp;&nbsp;&nbsp;</P>
<P>　　10月19日&nbsp;河南四五VS青岛中能&nbsp;&nbsp;</P>
<P>　　10月29日&nbsp;河南四五VS成都谢菲联</P>
<P>　　注:</P>
<P>　　主场开赛时间全为</P>
<P>　　19:30</P>
<P>　　第四阶段</P>
<P>　　11月23日&nbsp;河南四五VS武汉光谷</P>
<P>　　11月30日&nbsp;河南四五VS西安国际</P>
<P>　　注:</P>
<P>　　主场开赛时间全为</P>
<P>　　20:00</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200821402519689</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200821402519689</guid>
    <pubDate>Fri, 14 Mar 2008 12:25:19 +0800</pubDate>
    <dcterms:modified>2008-03-14T12:25:19+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[乱成一团]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/288758522008246442405</link>
    <description><![CDATA[<div><P><FONT style="BACKGROUND-COLOR: #cce8cf">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上午开会,生哥如实的给我们报了春节回家的票,并答应将元旦的那次说好的聚餐再补上.生哥人真好!</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #cce8cf">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 谈到论文,刚好济南有个会议约稿截止到3.25.&nbsp;&nbsp; 建议我赶紧投.哎, 国际会议,还要翻译成英文,就这几天 难啊!这可怎么办?最近这几天还要补Java.,还要搬实验室 真是乱成一团!</FONT></P>
<P><FONT style="BACKGROUND-COLOR: #cce8cf">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好消息是生哥又要出差几个月,再也不用开会,完全自由啦!这下可以不用请示直接下山了</FONT></P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/288758522008246442405</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/288758522008246442405</guid>
    <pubDate>Tue, 4 Mar 2008 18:44:02 +0800</pubDate>
    <dcterms:modified>2008-03-04T20:01:45+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[hi~2008]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/2887585220082155217202</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在来学校的路上，碰到了雨雪天，不幸感冒了。坚持自然疗法，什么事都不干，挺了三天。先恶补了《越</P>
<P>狱》，在BT上看到一步片子《奋斗》，名字很好，好多人都在看，就随波逐流的看了起来。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前面的看起来还可以，陆涛在高强的丧礼上感慨发言很深刻！“我现在脑子有点乱。以前从没想过自己的</P>
<P>一生有何价值，要如何度过。只是追时髦、玩酷，以为是有性格。但是谁也没有你酷，你说死就死了……谁也没有你有性格，谁也没有你酷。你的死突然提醒我，生命原来是这样的脆弱，死亡和我们如此的接近。我要回去好好想想，什么是生命中最重要的。我要想，如何度过我的一生。我...... ”吸引人一个劲看下去。大家毕业后各自养家糊口，努力打拼。尤其是向南，华子经历了许多事情，逐渐成熟！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是看到最后越看越烦，就强忍着恶心看到底吧，最讨厌的人是陆涛：没有责任感。 先不说他对米莱如</P>
<P>何如何。就说那个田园牧歌的项目，他在拍卖的时候竟然敢提高预算1亿5千万拍下那块地，根本没有考虑别人的想法，不尊重和遵守上司和集团的决定。就知道孤注一掷，真是混蛋。挂在嘴边的一句话就是”我要....!我要....!给我....!“从不想到给予别人什么回报，最讨厌这样的人！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 《奋斗》这部电视剧题材真好，看过后就会明白这样的一个道理：如果你不奋斗，你有可能什么都得不到；但是你如果奋斗了，也有可能不会得到你所想要的。最终，你只能走自己想走的路，用时间和失败的教训来指导自己。这才是奋斗的真正意义。 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2008，我许了三个愿望，会为之奋斗的！我不是十全十美的人，希望能满足两个吧&nbsp; </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hi~2008！&nbsp; </P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/2887585220082155217202</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/2887585220082155217202</guid>
    <pubDate>Sat, 1 Mar 2008 17:52:17 +0800</pubDate>
    <dcterms:modified>2008-03-01T17:52:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[做人是一种境界]]></title>	
    <link>http://cheng-wan-li.blog.163.com/blog/static/28875852200809835801</link>
    <description><![CDATA[<div><P>莫名其妙的牙疼,疼的莫名其妙!</P>
<P>连疼几天,上火, 感冒,坏牙都有可能,难受啊</P>
<P>&nbsp;</P>
<P>下午打球,抑制不住情绪,差点搞出事来,这么大年龄了,还是冲动,不应该</P></div>]]></description>
	    <author><![CDATA[万里有云]]></author>
	    <comments>http://cheng-wan-li.blog.163.com/blog/static/28875852200809835801</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://cheng-wan-li.blog.163.com/blog/static/28875852200809835801</guid>
    <pubDate>Wed, 9 Jan 2008 20:03:05 +0800</pubDate>
    <dcterms:modified>2008-01-10T11:13:53+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>