﻿<?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/tedeyang/category/4617.html</link><description>智慧之冰山</description><language>zh-cn</language><lastBuildDate>Fri, 11 Apr 2008 12:57:13 GMT</lastBuildDate><pubDate>Fri, 11 Apr 2008 12:57:13 GMT</pubDate><ttl>60</ttl><item><title>spring的ContextLoaderListener与DispatcherServlet在WebApplicationContext上的细微区别</title><link>http://www.blogjava.net/tedeyang/archive/2008/04/09/191628.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Wed, 09 Apr 2008 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2008/04/09/191628.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/191628.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2008/04/09/191628.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/191628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/191628.html</trackback:ping><description><![CDATA[
		<p>我们知道spring在web.xml中可以有三种方式来配置其xml路径：<br />org.springframework.web.servlet.DispatcherServlet<br />org.springframework.web.context.ContextLoaderListener<br />org.springframework.web.context.ContextLoaderServlet<br />当使用第一种方式配置时，spring载入的WebApplicationContext是隶属于此Servlet的（所以spring可以配置多个分别拥有各自环境的DispatcherServlet），因此其他servlet无法获取到该Context。这一现象在buffalo配置时曾经出现（无法找到服务bean）。分析了buffalo和spring的源码后，将xml在ContextLoaderListener配置才得以解决。</p>
<img src ="http://www.blogjava.net/tedeyang/aggbug/191628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2008-04-09 09:29 <a href="http://www.blogjava.net/tedeyang/archive/2008/04/09/191628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bug记录：mysql生成id后获取出错</title><link>http://www.blogjava.net/tedeyang/archive/2008/04/07/191323.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Mon, 07 Apr 2008 09:48:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2008/04/07/191323.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/191323.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2008/04/07/191323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/191323.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/191323.html</trackback:ping><description><![CDATA[今天同事给我看一段代码，是我前年写的。<br />他发现了一个bug。<br />代码的作用是用jdbc向mysql中插入一条主键自增的数据，然后使用mysql的select last_insert_id()语法获取生成的主键值。<br /><strong>问题出在两次sql执行用的不是同一个数据库连接，而从数据源里获取了两次</strong>。<br />我们都知道，<strong>mysql的last_insert_id()函数是针对connection的</strong>，所以这是个严重bug。<br />之前两年负载小，所以数据源大概每次都返回同一个connection，于是bug被遮盖住了。最近服务器压力增加，两次连接就可能不是同一个了。<br />因此last_insert_id()得到的主键值出错！<br /><br />那时候我怎么会获取两次连接来执行一个方法里的两句sql，包括我在内所有人都莫名其妙。错误比较明显，这项目已经交接给他们了，不过出于对我的信任，还是屁颠屁颠来问我：获取两个连接是不是还有其他特殊考虑？我苦思冥想了一会，答曰：忘了。<img height="20" src="http://www.blogjava.net/Emoticons/hitwall.gif" width="25" border="0" /><br /><br />没想到我曾经养过的臭虫还到处潜伏着，等着我出丑呢。<img src ="http://www.blogjava.net/tedeyang/aggbug/191323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2008-04-07 17:48 <a href="http://www.blogjava.net/tedeyang/archive/2008/04/07/191323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读取本机动态ip到远程网页</title><link>http://www.blogjava.net/tedeyang/archive/2007/12/10/166584.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Mon, 10 Dec 2007 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2007/12/10/166584.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/166584.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2007/12/10/166584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/166584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/166584.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如何通过自己的ADSL使家里的电脑成为服务器呢？像花生壳这样的应用可以帮助你动态解析ip，不过这个程序太庞大了，根本没有必要。下面介绍我的做法：条件：  上网方式：ADSL   台式机：linux  中继网页：在某虚拟主机申请一个免费空间，需要支持动态脚本（php、jsp等）方案：  在本机运行一个Java程序，定时读取本机的外网IP，自动向中继网页用GET方式提交该数据。中继网页保存IP记录在内...&nbsp;&nbsp;<a href='http://www.blogjava.net/tedeyang/archive/2007/12/10/166584.html'>阅读全文</a><img src ="http://www.blogjava.net/tedeyang/aggbug/166584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2007-12-10 10:38 <a href="http://www.blogjava.net/tedeyang/archive/2007/12/10/166584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>经典的JAVA编程规范</title><link>http://www.blogjava.net/tedeyang/archive/2006/10/26/javarule.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Thu, 26 Oct 2006 14:35:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/10/26/javarule.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/77489.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/10/26/javarule.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/77489.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/77489.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java																																																																				语言编程规范																																																																																...&nbsp;&nbsp;<a href='http://www.blogjava.net/tedeyang/archive/2006/10/26/javarule.html'>阅读全文</a><img src ="http://www.blogjava.net/tedeyang/aggbug/77489.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-10-26 22:35 <a href="http://www.blogjava.net/tedeyang/archive/2006/10/26/javarule.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何用XDoclet 1 生成Hibernate pojo 的 composite-id</title><link>http://www.blogjava.net/tedeyang/archive/2006/10/14/75140.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Sat, 14 Oct 2006 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/10/14/75140.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/75140.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/10/14/75140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/75140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/75140.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 使用   Hibernate时,可以由POJO生产出hbm.xml映射文件和数据库,前提是必须在POJO中使用XDoclet.的@Hibernate.Tags插件.(或JDK5的注解)		与XDoclet 1 不同,XDoclet 2在Codehaus.org上,		! XDoclet 2显式地支持复合主键.		简单的使用介绍在Hibernate的文档中可见:  http://www....&nbsp;&nbsp;<a href='http://www.blogjava.net/tedeyang/archive/2006/10/14/75140.html'>阅读全文</a><img src ="http://www.blogjava.net/tedeyang/aggbug/75140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-10-14 16:41 <a href="http://www.blogjava.net/tedeyang/archive/2006/10/14/75140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>p6spy的bug?匿名字段查询结果神秘消失</title><link>http://www.blogjava.net/tedeyang/archive/2006/04/24/p6spybug.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Mon, 24 Apr 2006 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/04/24/p6spybug.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/42841.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/04/24/p6spybug.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/42841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/42841.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Bug 1 p6spy查询怪现象<br><br>SELECT DISTINCT convert(char(10),date_ssqqr,111),convert(char(10),date_ssqzr,111) FROM mid_nsr_sbxm WHERE id_nsr='3204'<br><br>这句sql在p6spy中执行后返回的log是 "= 2006/01/01",而<br><br>SELECT DISTINCT convert(char(10),date_ssqqr,111),date_ssqzr  FROM mid_nsr_sbxm WHERE id_nsr='3204'<br><br>执行后返回 "= 2006/01/01, date_ssqzr = 2006-03-31 00:00:00.0",而<br><br>SELECT DISTINCT date_ssqqr,date_ssqzr  FROM mid_nsr_sbxm WHERE id_nsr='3204'<br><br>返回 "date_ssqqr = 2006-03-01 00:00:&nbsp;&nbsp;<a href='http://www.blogjava.net/tedeyang/archive/2006/04/24/p6spybug.html'>阅读全文</a><img src ="http://www.blogjava.net/tedeyang/aggbug/42841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-04-24 16:03 <a href="http://www.blogjava.net/tedeyang/archive/2006/04/24/p6spybug.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CHM！体验J2SE中文API的快感</title><link>http://www.blogjava.net/tedeyang/archive/2006/04/17/41416.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Mon, 17 Apr 2006 01:41:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/04/17/41416.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/41416.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/04/17/41416.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/41416.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/41416.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JDK中文API文档从去年开始就由SUN组织人员翻译,目前已经翻译完成了所有基础类库（java.*）和部分扩展类库（javax.*）<br />详见：http://gceclub.sun.com.cn/chinese_java_docs.html。按照sun的计划，今年5月底就能完成所有翻译工作，届时将提供打包下载（言外之意：现在只有请您在线阅读啦）。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前天在Matrix看到有人发布了3月的API文档的CHM版本，满心欢喜。可惜下载回来后却不能正确解压缩，很是郁闷了一会。在网上又找了几遍也一无所获。那就自己动手干！<br />首先下载Webzip 6（很惊讶Webzip 6和5年前的版本相比有了巨大的进步&mdash;&mdash;能够这样良性发展的共享软件在国内是太少了），将<a href="http://gceclub.sun.com.cn/download/Java_Docs/html/zh_CN/api/">http://gceclub.sun.com.cn/download/Java_Docs/html/zh_CN/api/</a>目录下的所有文件一股脑的下载到本地，再用Ultraedit将未注册的Webzip生成的版权信息隐藏，之后再用FAR将其组织编译成CHM格式，前后花了3个多小时，总算大功告成！(Generated time :2006-04-16)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 细细翻阅这份酝酿了两年多，翻译了8个月的未完文档，感觉质量是不错的，翻译得很流畅直白，比看英文文档舒服多了。相信从此以后，&ldquo;学java，看JDK文档&rdquo;这句话对所有中国程序员而言都不是空话了。以前，我只有在需要时才会去苦查JDK文档，But now! 无聊时翻翻还真是一种享受阿。哈哈。再也不用买什么手册式的参考书了，快哉！</p><img src ="http://www.blogjava.net/tedeyang/aggbug/41416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-04-17 09:41 <a href="http://www.blogjava.net/tedeyang/archive/2006/04/17/41416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>groovy游览</title><link>http://www.blogjava.net/tedeyang/archive/2006/03/26/37431.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Sat, 25 Mar 2006 18:04:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/03/26/37431.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/37431.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/03/26/37431.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/37431.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/37431.html</trackback:ping><description><![CDATA[<p>今晚在groovy.codehaus.org整整看了6个小时，总算把Groovy的语法、语义、特性等等基本特性全过了一遍，感觉不错。</p>
<p>closure(闭包)一节花了很长时间，因为我之前并没有使用过闭包这样的语法，只在BeanShell中看过文档，但也没有进行实践，对此很陌生。幸好codehaus上关于闭包的介绍非常详细、到位，看起来比较顺。But,在用jEdit的SuperScript插件运行范例时却发现很多例子都不能正常运行，很糟糕！</p>
<p>后来开始安装groovy的完整版本，又发现了一个bug：在我的winxp上，我是把java_home环境变量设置为JDK的目录的，运行groovy.bat时报错说java_home所对应的目录无效！怎么可能！？今天装的ant不是运行得好好的！之后又发现把Java_home改成JRE的目录就行。于是去看groovyStart.bat文件，发现问题出在这一行：</p>
<p>%COMMAND_COM% /C DIR &quot;%JAVA_HOME%&quot; 2&gt;&amp;1 | %FIND_EXE% /I /C &quot;%JAVA_HOME%&quot; &gt;nul</p>
<p>不管三七二十一，把这段判断java_home的代码注释掉，再运行groovysh.bat，一切正常，OK！<br /></p>
<p>又到maillist逛了逛，cvs了Grail，看看examples/groovyServlet/GSQL/Gpath.....<br /></p>
<p>于是对Groovy的前途充满了希望，可惜eclipse插件还在开发中...</p><img src ="http://www.blogjava.net/tedeyang/aggbug/37431.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-03-26 02:04 <a href="http://www.blogjava.net/tedeyang/archive/2006/03/26/37431.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Groovy or Beanshell ？</title><link>http://www.blogjava.net/tedeyang/archive/2006/03/23/37001.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Thu, 23 Mar 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/03/23/37001.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/37001.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/03/23/37001.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/37001.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/37001.html</trackback:ping><description><![CDATA[<p>突然想起Groovy的效率问题。</p>
<p>我不知道怎么样才能完整正确的测试一门语言的效率，于Groovy也不能说精通，于是就打算看看别人对此的评价。</p>
<p>国内似乎只有emu做过这样的评论： <a href="http://www.blogjava.net/emu/archive/2005/05/18/4784.html">http://www.blogjava.net/emu/archive/2005/05/18/4784.html</a>。emu的结果表明Groovy在数组和整数运算时比java要慢10`30倍。</p>
<p>emu的测试是很片面的，我还不放心。而且似乎很多人对效率问题不太关心－－这大概是Java程序员的习惯吧：Java比C慢得多，还不是活得很滋润么！呵呵。</p>
<p>于是想去看看国外的牛人怎么样评价Groovy。</p>
<p>Richard Monson-Haefel 认为Groovy是&ldquo;沉睡的巨人&rdquo;：<a href="http://rmh.blogs.com/weblog/2006/02/groovy_the_slee.html">http://rmh.blogs.com/weblog/2006/02/groovy_the_slee.html</a></p>
<p><strong>马上 Ed Burnette</strong> 就开始跳出来说&ldquo;BeanShell比Groovy更帅！我推荐使用小而强大的BeanShell&rdquo;：<a href="http://blogs.zdnet.com/Burnette/?p=22">http://blogs.zdnet.com/Burnette/?p=22</a>&nbsp;</p>
<p>这真是说到我的心里了，呵呵。</p>
<p>如果BeanShell也能象Groovy般得到广大的关注，想必会更加美好。</p><img src ="http://www.blogjava.net/tedeyang/aggbug/37001.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-03-23 11:19 <a href="http://www.blogjava.net/tedeyang/archive/2006/03/23/37001.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习中，来报个到。</title><link>http://www.blogjava.net/tedeyang/archive/2006/02/17/31151.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Fri, 17 Feb 2006 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/02/17/31151.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/31151.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/02/17/31151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/31151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/31151.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公司早就决定全部转型到J2EE平台，但由于领导层和广大同事对J2EE的不了解，直到现在才有点重视技术升级&mdash;&mdash;大概还是我们不停鼓吹的缘故。两个java程序员和朱照华在一起商量使用什么框架，我推荐了ibatis作为数据库操作层，spring作为业务层和mvc层，jsp作为表现层。都没意见，不过唐要用struts做mvc，我有点头大；而听说技术总监周好像想用Tapestry，晕。</p><img src ="http://www.blogjava.net/tedeyang/aggbug/31151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-02-17 10:40 <a href="http://www.blogjava.net/tedeyang/archive/2006/02/17/31151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ibais的动态sql必须要注明比较的属性</title><link>http://www.blogjava.net/tedeyang/archive/2006/02/09/30054.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Thu, 09 Feb 2006 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/02/09/30054.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/30054.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/02/09/30054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/30054.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/30054.html</trackback:ping><description><![CDATA[<p>之前这个动态sql一直没有效果，</p>
<p>&lt;statement id=&quot;searchBookByName&quot; parameterClass=&quot;book&quot; resultClass=&quot;book&quot;&gt;<br />&nbsp;&nbsp; SELECT * FROM book <br />&nbsp;&nbsp; &lt;dynamic prepend=&quot;where&quot;&gt;<br />&nbsp;&nbsp;&nbsp; &lt;isNotNull&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; name like #name#<br />&nbsp;&nbsp;&nbsp; &lt;/isNotNull&gt; <br />&nbsp;&nbsp; &lt;/dynamic&gt;<br />&nbsp; &lt;/statement&gt;</p>
<p>测试时我把book的name设为null，用p6spy查看输出的sql为：</p>
<p>SELECT * FROM book&nbsp; &nbsp;&nbsp; where &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; name like ''</p>
<p>后来在官方文档上看到&ldquo;property － 被比较的属性（必选）&rdquo;，于是改成</p>
<p>&lt;statement id=&quot;searchBookByName&quot; parameterClass=&quot;book&quot; resultClass=&quot;book&quot;&gt;<br />&nbsp;&nbsp; SELECT * FROM book <br />&nbsp;&nbsp; &lt;dynamic prepend=&quot;where&quot;&gt;<br />&nbsp;&nbsp;&nbsp; <font color="#ff0000"><strong>&lt;isNotNull propety=&quot;name&quot;&gt;</strong></font><br />&nbsp;&nbsp;&nbsp;&nbsp; name like #name#<br />&nbsp;&nbsp;&nbsp; &lt;/isNotNull&gt; <br />&nbsp;&nbsp; &lt;/dynamic&gt;<br />&nbsp; &lt;/statement&gt;</p>
<p>果然正常了。</p>
<p>ps:如果在dtd中有这个检查或者ibatis解析这样的xml会报错，我就不用疑惑两天了。</p>
<p>特此为记！</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/tedeyang/aggbug/30054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-02-09 17:06 <a href="http://www.blogjava.net/tedeyang/archive/2006/02/09/30054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php下扩展模块的配置</title><link>http://www.blogjava.net/tedeyang/archive/2006/01/18/28572.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Wed, 18 Jan 2006 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/01/18/28572.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/28572.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/01/18/28572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/28572.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/28572.html</trackback:ping><description><![CDATA[
		<div class="title">
				<h1>php下扩展php_curl.dll的安装 </h1>
				<div align="left"> </div>
		</div>
		<div class="content">
				<p>版本：php4.43<br />已经内置有php_curl.dll,在ext目录下,此DLL用于支持SSL和zlib.<br />在php.ini中找到有extension=php_curl.dll, 去掉前面的注释.<br />设置extension_dir是正确的但重启apahce老是报错，说找不到动态链接库,<br /></p>
				<p>解决办法：<br /><br />最后把<span lang="EN-US"><font face="宋体" size="2">libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll </font></span>都拷贝到system32目录下,重启apache即可.<br />（或者将php所在目录和extensions目录加入到环境变量path中）</p>
		</div>
<img src ="http://www.blogjava.net/tedeyang/aggbug/28572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-01-18 21:50 <a href="http://www.blogjava.net/tedeyang/archive/2006/01/18/28572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用p6spy加速jdbc调试</title><link>http://www.blogjava.net/tedeyang/archive/2006/01/06/26921.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Fri, 06 Jan 2006 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2006/01/06/26921.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/26921.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2006/01/06/26921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/26921.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/26921.html</trackback:ping><description><![CDATA[<p>在java中，我们使用JDBC来操作数据库。JDBC作为java对象和关系数据库之间的桥梁，在使用上很不方便。需要查看程序执行的SQL语句和执行时间时，一般的做法是写上一大把System.out.print()输出SQL和传入的参数，吃力不讨好。有了p6spy，这种局面可以大大改观。可以参考：<a href="http://blog.donews.com/huazii/archive/2005/08/12/506214.aspx">http://blog.donews.com/huazii/archive/2005/08/12/506214.aspx</a><br /><br /><span class="Title">p6spy相关资料：</span><br /><br /><span class="Title">何如在Weblogic 8.1中配置使用p6spy驱动的连接池：<br /></span>假设在此之前,Weblogic中已经配置好一个真实的sybase12.5数据库连接池syabse_pool,驱动名称为:com.sybase.jdbc2.jdbc.SybDriver,<br />连接URL为:jdbc:sybase:Tds:192.168.0.3:5000/datebaseName<br />&nbsp;下载p6spy，解压到D:\openSources\p6spy,保证目录下有p6spy.jar,spy.properties这两个文件。<br />2. 进入weblogic启动文件目录（譬如：D:\program\bea\user_projects\domains\mydomain），用文本编辑器打开startWeblogic.cmd文件,在set CLASSPATH=那一行末尾添加&ldquo;;D:\openSources\p6spy\p6spy.jar;D:\openSources\p6spy;&rdquo;，保存。<br />3. 双击startWeblogic.cmd启动,进入到控制台，按上文的驱动和url配置连接池和数据源。重启weblogic就可以了。</p>
<p>配置p6spy的关键就在于要了解应用服务器的启动过程，weblogic在启动时必须要能在classpath中找到p6spy.jar和spy.properties文件，其他服务器也同理。<br /><br /><span class="Title">如何使用SQL PROFILER增强p6spy：<br /></span><br />未完待续。。。</p><img src ="http://www.blogjava.net/tedeyang/aggbug/26921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2006-01-06 17:30 <a href="http://www.blogjava.net/tedeyang/archive/2006/01/06/26921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>轻而易举覆写三个常用方法，使用org.apache.commons.lang.builder包</title><link>http://www.blogjava.net/tedeyang/archive/2005/11/21/20724.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Mon, 21 Nov 2005 02:55:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2005/11/21/20724.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/20724.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2005/11/21/20724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/20724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/20724.html</trackback:ping><description><![CDATA[<P>&nbsp;</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.Serializable;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;org.apache.commons.lang.builder.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;BaseModel<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">implements</SPAN><SPAN style="COLOR: #000000">&nbsp;Serializable<BR><IMG id=Codehighlighter1_123_456_Open_Image onclick="this.style.display='none'; Codehighlighter1_123_456_Open_Text.style.display='none'; Codehighlighter1_123_456_Closed_Image.style.display='inline'; Codehighlighter1_123_456_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_123_456_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_123_456_Closed_Text.style.display='none'; Codehighlighter1_123_456_Open_Image.style.display='inline'; Codehighlighter1_123_456_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_123_456_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_123_456_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;String&nbsp;toString()<BR><IMG id=Codehighlighter1_158_253_Open_Image onclick="this.style.display='none'; Codehighlighter1_158_253_Open_Text.style.display='none'; Codehighlighter1_158_253_Closed_Image.style.display='inline'; Codehighlighter1_158_253_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_158_253_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_158_253_Closed_Text.style.display='none'; Codehighlighter1_158_253_Open_Image.style.display='inline'; Codehighlighter1_158_253_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_158_253_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_158_253_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;ToStringBuilder.reflectionToString(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">,&nbsp;ToStringStyle.MULTI_LINE_STYLE);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">boolean</SPAN><SPAN style="COLOR: #000000">&nbsp;equals(Object&nbsp;o)<BR><IMG id=Codehighlighter1_296_358_Open_Image onclick="this.style.display='none'; Codehighlighter1_296_358_Open_Text.style.display='none'; Codehighlighter1_296_358_Closed_Image.style.display='inline'; Codehighlighter1_296_358_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_296_358_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_296_358_Closed_Text.style.display='none'; Codehighlighter1_296_358_Open_Image.style.display='inline'; Codehighlighter1_296_358_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_296_358_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_296_358_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;EqualsBuilder.reflectionEquals(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">,&nbsp;o);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;hashCode()<BR><IMG id=Codehighlighter1_391_454_Open_Image onclick="this.style.display='none'; Codehighlighter1_391_454_Open_Text.style.display='none'; Codehighlighter1_391_454_Closed_Image.style.display='inline'; Codehighlighter1_391_454_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_391_454_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_391_454_Closed_Text.style.display='none'; Codehighlighter1_391_454_Open_Image.style.display='inline'; Codehighlighter1_391_454_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_391_454_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_391_454_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;HashCodeBuilder.reflectionHashCode(</SPAN><SPAN style="COLOR: #0000ff">this</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV>commons包实在是java程序员居家旅行、杀人越货必备的利器。<img src ="http://www.blogjava.net/tedeyang/aggbug/20724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2005-11-21 10:55 <a href="http://www.blogjava.net/tedeyang/archive/2005/11/21/20724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>善用搜索引擎－－使用某些网页特征的特征找到它</title><link>http://www.blogjava.net/tedeyang/archive/2005/11/16/20097.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Wed, 16 Nov 2005 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2005/11/16/20097.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/20097.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2005/11/16/20097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/20097.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/20097.html</trackback:ping><description><![CDATA[<p>资源页面中可能有这样的语句：<br />Index of /mp3<br />Index of /avi<br />等等。<br />用google中的高级搜索就可以找到资源页面的链接</p><img src ="http://www.blogjava.net/tedeyang/aggbug/20097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2005-11-16 16:48 <a href="http://www.blogjava.net/tedeyang/archive/2005/11/16/20097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdbc使用直接查询时结果集指针只能向前</title><link>http://www.blogjava.net/tedeyang/archive/2005/11/11/19345.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Fri, 11 Nov 2005 09:40:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2005/11/11/19345.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/19345.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2005/11/11/19345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/19345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/19345.html</trackback:ping><description><![CDATA[今天发现这个现象，不能使用ResultSet.last()方法，因为类型是 TYPE_FORWARD_ONLY。<BR>改用预查询就行。<img src ="http://www.blogjava.net/tedeyang/aggbug/19345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2005-11-11 17:40 <a href="http://www.blogjava.net/tedeyang/archive/2005/11/11/19345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jConfig关注</title><link>http://www.blogjava.net/tedeyang/archive/2005/11/09/18950.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Wed, 09 Nov 2005 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2005/11/09/18950.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/18950.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2005/11/09/18950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/18950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/18950.html</trackback:ping><description><![CDATA[<H3><A href="http://yangxg/TmWeb/tm?method=e&id=7">jConfig关注</A></H3>
<P>
<P>不知道是不是有必要用jConfig。好像自己用dom4j写个xml文件解析也是很方便的事情。</P>
<P>jConfig使用开始：<A href="http://www.jconfig.org/GettingStarted.html">http://www.jconfig.org/GettingStarted.html</A></P><img src ="http://www.blogjava.net/tedeyang/aggbug/18950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2005-11-09 11:25 <a href="http://www.blogjava.net/tedeyang/archive/2005/11/09/18950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TeracMiracle反编译成功</title><link>http://www.blogjava.net/tedeyang/archive/2005/11/09/18943.html</link><dc:creator>山巅</dc:creator><author>山巅</author><pubDate>Wed, 09 Nov 2005 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/tedeyang/archive/2005/11/09/18943.html</guid><wfw:comment>http://www.blogjava.net/tedeyang/comments/18943.html</wfw:comment><comments>http://www.blogjava.net/tedeyang/archive/2005/11/09/18943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tedeyang/comments/commentRss/18943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tedeyang/services/trackbacks/18943.html</trackback:ping><description><![CDATA[<H5>TM：中国人写的一个jsp版本的Blog程序，今天被我反编译完了，使用的是小颖反编译器（YingJAD－－jad1.5.7g）。这个程序运用了struts,hibernate,velocity等技术，我希望看完后能将我的jsp水平再提高点。仅限于研究目的，如果作者对我的反编译行为不满（几乎是肯定的，作者显然不想开源），请联系我。<BR><BR>Note：反编译并不能正确处理inner class，还是要自己改改生成的java文件。</H5><img src ="http://www.blogjava.net/tedeyang/aggbug/18943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tedeyang/" target="_blank">山巅</a> 2005-11-09 10:57 <a href="http://www.blogjava.net/tedeyang/archive/2005/11/09/18943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>