﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-超哥说欢迎留言</title><link>http://www.blogjava.net/chaor/</link><description>超哥说欢迎留言，超哥说欢迎调错，超哥说欢迎批评，超哥说欢迎指正，超哥说*&amp;%%^$^%#$%$#@



读者说，你丫闭嘴！让不让人看了！再穷叨叨，抽你丫的！！
</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:53:21 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:53:21 GMT</pubDate><ttl>60</ttl><item><title>理想</title><link>http://www.blogjava.net/chaor/archive/2006/03/17/35812.html</link><dc:creator>超人</dc:creator><author>超人</author><pubDate>Fri, 17 Mar 2006 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/chaor/archive/2006/03/17/35812.html</guid><wfw:comment>http://www.blogjava.net/chaor/comments/35812.html</wfw:comment><comments>http://www.blogjava.net/chaor/archive/2006/03/17/35812.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/chaor/comments/commentRss/35812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chaor/services/trackbacks/35812.html</trackback:ping><description><![CDATA[好久没有来过我的空间了，这个空间给浪费了，懒得写。<br />今天有些想法，就留两句吧。<br />昨天浏览了一下《蒋介石传》美国人写的。经过GCD同意出版的，所以对我来讲它没有任何的政治意义。<br />我只是从个人发展的角度去看他。<br />蒋介石家境并不好，很小就死了父亲。父亲死后更是艰难，经常受当地富人和官府的欺负。所以蒋是坚决反封建的……：）<br />这些都不是重点，重点是蒋20岁之前就已经坚定了他的人生观，价值观。<br />它在日本求学时一日三餐就三个窝头，可是他坚持下来了。<br />当他在日本见到孙中山时就已经坚决了他以后的道路，方向，在也没有改动过。<br />我们姑且不论对与错，（我们也没有资格讨论）看看我现在吧，再过几年就30多了。人生还是没有明确的目标，没有方向。<br />我真的很羡慕那些有信念，并为其坚贞不渝的人，<br />像谭嗣同，像恺撒大帝，像夏明翰…………<br />我为什么就不能树立一个甚至可以为此付出生命的理想呢！<br />这是怎么回事啊？<br />我得理想呢？我的伟大目标怎么不见了？<br />我以前是有理想，有目标的 上学前的理想是————当官<br />我记得小时候爷爷奶奶教育我时就是好好学习，长大当官，至于当官后干吗？不知道！为什么当官？不知道。<br />不过这个理想持续到小学一年级就被推翻了。<br />上学后老师就说好好学习，以后当科学家或者以后实现共产主义，我靠 这个帽子相——当的大啊。更是扯淡的理想。就为了当个科学家来好好学习？<br />虽然把当官推翻了，可是当科学家与共产主义都没有能够占领我心中理想的高地。<br />上了高中就基本上彻底没有理想了。有的老师竟会说，好好学习吧，上了大学你忙就可以尽情的玩了。<br />呵呵，多诱人的蛋糕啊。可是没有人告诉我吃完蛋糕后有力气了，应该干点啥！<img src ="http://www.blogjava.net/chaor/aggbug/35812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chaor/" target="_blank">超人</a> 2006-03-17 12:45 <a href="http://www.blogjava.net/chaor/archive/2006/03/17/35812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>commons-digester-1.7.jar 的使用</title><link>http://www.blogjava.net/chaor/archive/2005/11/30/21975.html</link><dc:creator>超人</dc:creator><author>超人</author><pubDate>Wed, 30 Nov 2005 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/chaor/archive/2005/11/30/21975.html</guid><wfw:comment>http://www.blogjava.net/chaor/comments/21975.html</wfw:comment><comments>http://www.blogjava.net/chaor/archive/2005/11/30/21975.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/chaor/comments/commentRss/21975.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chaor/services/trackbacks/21975.html</trackback:ping><description><![CDATA[<P>commons-digester-1.7.jar</P>
<P>1、功能简述：解析xml文件；</P>
<P>&nbsp;</P>
<P>2、环境配置：所需要用到的jar包÷</P>
<P>　　Digester的运行依赖下列包：</P>
<P>一个遵循Jaxp(1.1版本及以后)的XML解析器 xerces.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P>Jakarta commons beanutils包 commons-beanutils.jar (1.5版本及以后)</P>
<P>Jakarta commons collections包 commons-collections-3.1.jar(2.1版本及以后)</P>
<P>Jakarta commons logging包 commons-logging-1.0.4.jar(1.0.2版本及以后)<BR>　<BR>一个简单的例子　　<BR>3、使用限制：无平台限制（没有测试过）</P>
<P><BR>4、是否可进行封装：可以进行封装，但我没试过</P>
<P><BR>5、调用思路：<BR>&nbsp;&nbsp; 读取配置文件时使用。</P>
<P><BR>6、代码示例：</P>
<P>本代码囊括了xml的大多数基本情况包括属性值(如：penson的id）单一节点值（如：name），混合节点值（如：email）</P>
<P>&nbsp;</P>
<P>***********Example.xml**********<BR>&lt;address-book&gt;<BR>&nbsp; &lt;person id="1" category="acquaintance" try="would be ignored"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;name&gt;Gonzo&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;email type="business"&gt;gonzo@muppets.com&lt;/email&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;gender result="the whole tag would be ignored"&gt;male&lt;/gender&gt;<BR>&nbsp; &lt;/person&gt;<BR>&nbsp; &lt;person id="2" category="rolemodel"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;name&gt;Kermit&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;email type="business"&gt;kermit@muppets.com&lt;/email&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;email type="home"&gt;kermie@acme.com&lt;/email&gt;<BR>&nbsp; &lt;/person&gt;<BR>&lt;/address-book&gt;**********Person.java************<BR>import java.util.HashMap;<BR>import java.util.Iterator;<BR>public class Person {<BR>&nbsp; private int id;<BR>&nbsp; private String category;<BR>&nbsp; private String name;<BR>&nbsp; private HashMap emails = new HashMap();<BR>&nbsp; //下面的两个方法的名字中set以后的部分，与&lt;person&gt;的属性名字对映。当从xml文件中识别出&lt;person&gt;的属性时，如果有要求(即调用过addSetProperties方法),Digester会依据这种对映关系自动调用相应的方法。<BR>&nbsp; public void setId(int id) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.id = id;<BR>&nbsp; }<BR>&nbsp; public void setCategory(String category) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.category = category;<BR>&nbsp; }<BR>&nbsp; //对name而言，因为其值来自&lt;name&gt;标签的内容而非属性值，需要用addCallMethod指定识别&lt;name&gt;后的要调用此方法(想自动调用也要可以，需要addBeanPropertySetter，参见第下一个例子)。<BR>&nbsp; public void setName(String name) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.name = name;<BR>&nbsp; }<BR>&nbsp; //同name，此时还要一一指定addEmail的参数值的来源。<BR>&nbsp; public void addEmail(String type, String address) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; emails.put(type, address);<BR>&nbsp; }<BR>&nbsp; public void print() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Person #" + id);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("&nbsp; category=" + category);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("&nbsp; name=" + name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(Iterator i = emails.keySet().iterator(); i.hasNext(); ) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String type = (String) i.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String address = (String) emails.get(type);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("&nbsp; email (type " + type + ") : " + address);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>}<BR>**********AddressBook.java***********<BR>import java.util.LinkedList;<BR>import java.util.Iterator;<BR>public class AddressBook {<BR>&nbsp;&nbsp;&nbsp; LinkedList people = new LinkedList();<BR>&nbsp;&nbsp;&nbsp; public void addPerson(Person p) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; people.addLast(p);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; public void print() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Address book has " + people.size() + " entries"); </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(Iterator i = people.iterator(); i.hasNext(); ) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Person p = (Person) i.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.print();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR>************AddressBookDigester*********<BR>import org.apache.commons.digester.Digester;<BR>/**<BR>&nbsp;* Usage: java Example1 example.xml<BR>&nbsp;*/<BR>public class AddressBookDigester {<BR>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (args.length != 1) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usage();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String filename = args[0];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 创建一个Digester实例<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Digester d = new Digester();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 创建AddressBook实例，并将其压入栈顶。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddressBook book = new AddressBook();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.push(book);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 增加规则<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addRules(d);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 处理输入的xml文件<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.io.File srcfile = new java.io.File(filename);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.parse(srcfile);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(java.io.IOException ioe) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Error reading input file:" + ioe.getMessage());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(org.xml.sax.SAXException se) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Error parsing input file:" + se.getMessage());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 将解析出的地址数据打印出来<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; book.print();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; private static void addRules(Digester d) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 当遇到&lt;person&gt;时，创建类Person的一个实例，并将其压入栈顶<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addObjectCreate("address-book/person", Person.class);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 将&lt;person&gt;标签的属性(attribute)与栈顶Person类对象的属性(property)设置方法根据各自的名字进行映射，(例如，将标签属性id与属性设置方法setId进行映射，将标签属性category与属性设置方法setCategory进行映射)，然后将属性的值作参数传递给执行相应的方法。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 如果某标签属性没法通过名字找到相应的属性设置方法，则此标签属性被忽略(如example.xml中第一个&lt;person&gt;的try属性)。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addSetProperties("address-book/person");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 调用第二栈顶对象(AddressBook实例)的addPerson方法，以栈对象(Person实例)的对象为参数<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addSetNext("address-book/person", "addPerson");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 当遇到&lt;person&gt;的子元素&lt;name&gt;时，调用栈顶对象(Person实例)的setName方法。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 此处addCallMethod方法的第一参数是规则，第二个参数是方法的名字，第三个是参数的数量(为0时，表示只有一个参数，且参数的值是元素的内容)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addCallMethod("address-book/person/name", "setName", 0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 当遇到&lt;person&gt;的子元素&lt;email&gt;时，调用栈顶对象(Person实例)的addEmail方法,addEmail方法有两个参数，取值分别来自&lt;email&gt;的属性type的值和&lt;email&gt;本身的内容。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 此处addCallParam方法的第一参数是规则，第二个参数是指明被调用方法(addEmail)参数的序号，第三个是参数为字符串时指属性的名字)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addCallMethod("address-book/person/email", "addEmail", 2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addCallParam("address-book/person/email", 0, "type");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.addCallParam("address-book/person/email", 1);<BR>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; private static void usage() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Usage: java Example1 example.xml");<BR>&nbsp;&nbsp;&nbsp; }<BR>}</P>
<P>Address book has 2 entries<BR>Person #1<BR>&nbsp; category=acquaintance<BR>&nbsp; name=Gonzo<BR>&nbsp; email (type business) : <A href="mailto:gonzo@muppets.com">gonzo@muppets.com</A><BR>Person #2<BR>&nbsp; category=rolemodel<BR>&nbsp; name=Kermit<BR>&nbsp; email (type business) : <A href="mailto:kermit@muppets.com">kermit@muppets.com</A><BR>&nbsp; email (type home) : <A href="mailto:kermie@acme.com">kermie@acme.com</A><BR></P><img src ="http://www.blogjava.net/chaor/aggbug/21975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chaor/" target="_blank">超人</a> 2005-11-30 15:47 <a href="http://www.blogjava.net/chaor/archive/2005/11/30/21975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大幅度所附</title><link>http://www.blogjava.net/chaor/archive/2005/11/25/21426.html</link><dc:creator>超人</dc:creator><author>超人</author><pubDate>Fri, 25 Nov 2005 06:58:00 GMT</pubDate><guid>http://www.blogjava.net/chaor/archive/2005/11/25/21426.html</guid><wfw:comment>http://www.blogjava.net/chaor/comments/21426.html</wfw:comment><comments>http://www.blogjava.net/chaor/archive/2005/11/25/21426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chaor/comments/commentRss/21426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chaor/services/trackbacks/21426.html</trackback:ping><description><![CDATA[ffdfdsa gdfgdgdg dgffgfdgfdhffbffgfdfd 大幅度所附fd大幅度发地方地方<img src ="http://www.blogjava.net/chaor/aggbug/21426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chaor/" target="_blank">超人</a> 2005-11-25 14:58 <a href="http://www.blogjava.net/chaor/archive/2005/11/25/21426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>