﻿<?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-lizongbo 的 编程学习-随笔分类-java 积累</title><link>http://www.blogjava.net/lizongbo/category/7902.html</link><description>http://618119.com</description><language>zh-cn</language><lastBuildDate>Sat, 27 Oct 2007 03:45:15 GMT</lastBuildDate><pubDate>Sat, 27 Oct 2007 03:45:15 GMT</pubDate><ttl>60</ttl><item><title>新注册了个独立域名，使用独立的blog</title><link>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Tue, 16 Oct 2007 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/153162.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/153162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/153162.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 新注册了个独立域名，使用独立的blog了。<br><br>http://618119.com<br><br>新的blog rss订阅地址： http://feed.feedsky.com/lizongbo<br><br>从最早的 http://blog.csdn.net/lizongbo,<br><br>到 http://blog.donews.com/lizongbo<br><br>再到http://www.blogjava.net/lizongbo<br><br>现在终于拥有自己的域名和独立的blog了。&nbsp;&nbsp;<a href='http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html'>阅读全文</a><img src ="http://www.blogjava.net/lizongbo/aggbug/153162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-10-16 09:46 <a href="http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在 PLSQL Developer 中进行文本导入的操作步骤</title><link>http://www.blogjava.net/lizongbo/archive/2007/01/17/94397.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 17 Jan 2007 04:44:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/01/17/94397.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/94397.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/01/17/94397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/94397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/94397.html</trackback:ping><description><![CDATA[
		<span class="bold">在 PLSQL Developer 中进行文本导入的操作步骤。</span>
		<br />
		<br />
主菜单--〉工具--&gt;文本导入器。<br />
选择文本文件，进行相关配置，可以生成一个导入数据的配置文件。<br />
保存为 xxx.def<br />
样本为：<br /><br /><div class="msgheader"><div class="right"><a href="http://10.108.20.100:8000/forum/viewthread.php?tid=223&amp;extra=page%3D1###" class="smalltxt" onclick="copycode($('code0'));">[Copy to clipboard]</a></div>CODE:</div><div class="msgborder" id="code0">[General]<br />
ID=Import Definition<br />
Version=1<br />
Header=False<br />
SingleLineRecord=True<br />
QuoteChar="<br />
TableOwner=SMK<br />
OracleTable=ZNEW20070109<br />
OverwriteDuplicates=True<br />
CommitCount=100<br />
EmptyTable=False<br /><br />
[ODBC]<br />
DSN=<br />
UserName=<br />
Command=<br />
Kind=0<br /><br />
[Fields]<br />
Field=0<br />
FieldStart=0<br />
FieldStartValue=0<br />
FieldEnd=2<br />
FieldEndValue=,<br />
OracleSQL=<br />
OracleField=FTRANSACTIONID (VARCHAR2)<br />
OracleType=0<br />
ODBCField=<br />
ODBCFieldNo=0<br />
ODBCType=0<br />
ODBCCType=0<br />
ODBCLength=0<br />
OracleParamNo=0<br /><br />
Field=1<br />
FieldStart=0<br />
FieldStartValue=0<br />
FieldEnd=2<br />
FieldEndValue=,<br />
OracleSQL=<br />
OracleField=FFEETERMINAL (VARCHAR2)<br />
OracleType=0<br />
ODBCField=<br />
ODBCFieldNo=0<br />
ODBCType=0<br />
ODBCCType=0<br />
ODBCLength=0<br />
OracleParamNo=0<br /><br />
Field=2<br />
FieldStart=0<br />
FieldStartValue=0<br />
FieldEnd=2<br />
FieldEndValue=,<br />
OracleSQL=<br />
OracleField=FDESTADDR (VARCHAR2)<br />
OracleType=0<br />
ODBCField=<br />
ODBCFieldNo=0<br />
ODBCType=0<br />
ODBCCType=0<br />
ODBCLength=0<br />
OracleParamNo=0<br /><br />
Field=3<br />
FieldStart=0<br />
FieldStartValue=0<br />
FieldEnd=2<br />
FieldEndValue=,<br />
OracleSQL=to_date('#', 'yyMMddHH24MISS')<br />
OracleField=FSUBMITTIME (DATE)<br />
OracleType=2<br />
ODBCField=<br />
ODBCFieldNo=0<br />
ODBCType=0<br />
ODBCCType=0<br />
ODBCLength=0<br />
OracleParamNo=0<br /><br />
Field=4<br />
FieldStart=0<br />
FieldStartValue=0<br />
FieldEnd=2<br />
FieldEndValue=,<br />
OracleSQL=to_date('#', 'yyMMddHH24MISS')<br />
OracleField=FDELIVERTIME (DATE)<br />
OracleType=2<br />
ODBCField=<br />
ODBCFieldNo=0<br />
ODBCType=0<br />
ODBCCType=0<br />
ODBCLength=0<br />
OracleParamNo=0<br /><br /></div><img src ="http://www.blogjava.net/lizongbo/aggbug/94397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-01-17 12:44 <a href="http://www.blogjava.net/lizongbo/archive/2007/01/17/94397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>   Spring BeanDoc 的 使用！ </title><link>http://www.blogjava.net/lizongbo/archive/2006/06/13/52588.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Tue, 13 Jun 2006 14:50:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/06/13/52588.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/52588.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/06/13/52588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/52588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/52588.html</trackback:ping><description><![CDATA[
		<p>   Spring BeanDoc 使用<br /><br />   Spring BeanDoc 是一个根据spring的bean配置文件生成文档的工具。</p>
		<p>1.下载：<br />spring-beandoc-0.7.0:<br /><a href="http://opensource.atlassian.com/confluence/spring/download/attachments/993/spring-beandoc-0.7.0.tgz?version=1">http://opensource.atlassian.com/confluence/spring/download/attachments/993/spring-beandoc-0.7.0.tgz?version=1</a></p>
		<p>参考： <a href="http://opensource.atlassian.com/confluence/spring/display/BDOC/Home">http://opensource.atlassian.com/confluence/spring/display/BDOC/Home</a><br />graphviz-2.8:</p>
		<p>
				<a href="http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.8.exe">http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.8.exe</a>
				<br />参考： <a href="http://www.graphviz.org/Download_windows.php">http://www.graphviz.org/Download_windows.php</a><br />apache-ant-1.6.5:<br /><a href="http://www.eu.apache.org/dist/ant/binaries/apache-ant-1.6.5-bin.zip">http://www.eu.apache.org/dist/ant/binaries/apache-ant-1.6.5-bin.zip</a></p>
		<p>2.安装，解压spring-beandoc-0.7.0.tgz和apache-ant-1.6.5-bin.zip到d:/Java/<br />设置环境变量：<br />ANT_HOME=D:\java\apache-ant-1.6.5<br />Path=D:\jdk1.5.0_06\bin;D:\java\apache-ant-1.6.5\bin;........<br />运行graphviz-2.8.exe，安装到D:\Programs\ATT。</p>
		<p>3.到D:\java\spring-beandoc-0.7.0\src\org\springframework\beandoc\output\i18n下<br />增加中文资源文件labels_zh.properties ，然后对照翻译，<br />#-----------------------------------------<br /># @since 1.0</p>
		<p>i18n-generated=beandoc \u751F\u6210\u4E86<br />i18n-filelist=files making up this application context<br />i18n-description=\u63CF\u8FF0<br />i18n-attributes=\u5C5E\u6027<br />i18n-constructorargs=\u6784\u9020\u53C2\u6570<br />i18n-allTitle=\u6240\u6709 Beans<br />i18n-summaryTitle=beans\u6458\u8981<br />i18n-detailTitle=beans\u8BE6\u60C5<br />i18n-innerbean=\u533F\u540D\u5185\u90E8bean <br />i18n-home=\u9996\u9875<br />i18n-summary=\u6458\u8981<br />i18n-detail=\u8BE6\u60C5<br />i18n-abstractbean=\u62BD\u8C61 bean<br />i18n-deps=\u4F9D\u8D56, \u5C5E\u6027\u503C \u548C \u65B9\u6CD5 \u6CE8\u5165<br />i18n-backtotop=\u9000\u56DE\u5230\u9876\u90E8<br />i18n-name=\u540D\u5B57<br />i18n-bean=bean<br />i18n-argtypes=\u53C2\u6570\u7C7B\u578B</p>
		<p>#-----------------------------------------</p>
		<p>再到D:\java\spring-beandoc-0.7.0\下运行build.bat。</p>
		<p>4.到D:\java\spring-beandoc-0.7.0\samples\<br />编辑beandoc.properties，</p>
		<p>第50行改为：i18n.locale=zh<br />第60行改为：compiler.dotExe=d:/Programs/ATT/GraphViz/bin/dot.exe</p>
		<p>5.清空 D:\java\spring-beandoc-0.7.0\samples\jpetstore和 D:\java\spring-beandoc-0.7.0\samples\petclinic,复制spring配置文件<br />到D:\java\spring-beandoc-0.7.0\samples\jpetstore</p>
		<p>6.然后运行D:\java\spring-beandoc-0.7.0\samples\runbeandoc-cli.bat<br />需要带参数：<br />D:\java\SPRING~1.0\samples&gt;runbeandoc-cli.bat beandoc.properties</p>
		<p>7.然后打开D:\java\spring-beandoc-0.7.0\target\sample-output\index.html.<br />就可以看到生成好的文档了。<br /><br /></p>
<img src ="http://www.blogjava.net/lizongbo/aggbug/52588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-06-13 22:50 <a href="http://www.blogjava.net/lizongbo/archive/2006/06/13/52588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>照虎画猫用三个星期写了个blog程序</title><link>http://www.blogjava.net/lizongbo/archive/2006/05/10/45362.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 10 May 2006 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/05/10/45362.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/45362.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/05/10/45362.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/45362.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/45362.html</trackback:ping><description><![CDATA[由于项目中有需求要一个blog功能,在大致看了下dlog4j和roller之后。<br /><br />通过使用blogjava和codelphi的blog的体会。<br />参考的.text的样子，决定照虎画猫自己写一个。<br />目前已经完成大部分功能。<br /><br />通过<a href="http://222.66.24.243/webblog/debug/init.jsp">http://222.66.24.243/webblog/debug/init.jsp</a>这个地址自动登录，然后进行blog管理。<br /><br />在 <a href="http://222.66.24.243/webblog/u/demouser">http://222.66.24.243/webblog/u/demouser</a> 察看效果。<br /><br />前台界面使用了jstl和oscache标签。开发时间大约一个星期<br />后台界面，采用的ajax的方式。开发时间大约两个星期。<br />页面风格样式主题照搬的codelphi的blog。<br /><br />由于现在数据量小，现在执行一个页面的时间大约是200毫秒，在oscache缓存之后是20毫秒。<br />暂时还推断不了数据量大了之后会不会出现csdn和donews那样的性能问题。<br />由于对页面缓存的时间是一个小时，只在回复文章的时候做了即时刷新缓存。<br />因此其它地方的修改，需要过段时间才能够看到效果。<br /><br /><br />欢迎大家帮忙测试，并欢迎在此发表意见。<br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/lizongbo/aggbug/45362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-05-10 10:16 <a href="http://www.blogjava.net/lizongbo/archive/2006/05/10/45362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于代码生成器反复生成代码的设计。</title><link>http://www.blogjava.net/lizongbo/archive/2006/04/26/43268.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 26 Apr 2006 06:08:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/04/26/43268.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/43268.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/04/26/43268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/43268.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/43268.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 受 charon@xxx 的回复的提示，结合myeclipse生成 pojo的思路，对我的代码生成器进行改进，作以下处理。<br>谢谢 charon@xxx 。&nbsp;&nbsp;<a href='http://www.blogjava.net/lizongbo/archive/2006/04/26/43268.html'>阅读全文</a><img src ="http://www.blogjava.net/lizongbo/aggbug/43268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-04-26 14:08 <a href="http://www.blogjava.net/lizongbo/archive/2006/04/26/43268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于代码生成器的设计</title><link>http://www.blogjava.net/lizongbo/archive/2006/04/25/43144.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Tue, 25 Apr 2006 14:47:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/04/25/43144.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/43144.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/04/25/43144.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/43144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/43144.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在此写一下我自己的代码生成器的设计和一点体会。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/lizongbo/archive/2006/04/25/43144.html'>阅读全文</a><img src ="http://www.blogjava.net/lizongbo/aggbug/43144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-04-25 22:47 <a href="http://www.blogjava.net/lizongbo/archive/2006/04/25/43144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring中使用proxool作数据源连接池的配置。</title><link>http://www.blogjava.net/lizongbo/archive/2006/04/07/39835.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Fri, 07 Apr 2006 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/04/07/39835.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/39835.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/04/07/39835.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/39835.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/39835.html</trackback:ping><description><![CDATA[很奇怪，很多人都说proxool很好，<br />但是搜索spring中配置proxool作 数据源连接池的资料却几乎找不到详细点的。<br /><br />因此自己整理如下：<br /><br />  先下载:<br />  <br />  http://surfnet.dl.sourceforge.net/sourceforge/proxool/proxool-0.9.0RC2.zip<br /><br /><br />  web.xml<br /><br />-------------------------<br /><br /><br />  &lt;servlet&gt;<br />    &lt;servlet-name&gt;proxoolServletConfigurator&lt;/servlet-name&gt;<br />    &lt;servlet-class&gt;org.logicalcobwebs.proxool.configuration.ServletConfigurator&lt;/servlet-class&gt;<br />    &lt;init-param&gt;<br />      &lt;param-name&gt;xmlFile&lt;/param-name&gt;<br />      &lt;param-value&gt;WEB-INF/proxool.xml&lt;/param-value&gt;<br />    &lt;/init-param&gt;<br />    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />  &lt;/servlet&gt;<br />  &lt;servlet&gt;<br />    &lt;servlet-name&gt;proxooladmin&lt;/servlet-name&gt;<br />    &lt;servlet-class&gt;org.logicalcobwebs.proxool.admin.servlet.AdminServlet&lt;/servlet-class&gt;<br />  &lt;/servlet&gt;<br />  &lt;servlet-mapping&gt;<br />    &lt;servlet-name&gt;proxooladmin&lt;/servlet-name&gt;<br />    &lt;url-pattern&gt;/proxooladmin&lt;/url-pattern&gt;<br />  &lt;/servlet-mapping&gt;<br /><br /><br />-------------------------<br /><br />  proxool.xml<br /><br />-------------------------<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;proxool-config&gt;<br />  &lt;proxool&gt;<br />    &lt;alias&gt;blogdb&lt;/alias&gt;<br />    &lt;driver-url&gt;jdbc:oracle:thin:@127.0.0.1:1521:ORADB&lt;/driver-url&gt;<br />    &lt;driver-class&gt;oracle.jdbc.driver.OracleDriver&lt;/driver-class&gt;<br />    &lt;driver-properties&gt;<br />      &lt;property name="user" value="lizongbo"/&gt;<br />      &lt;property name="password" value="password"/&gt;<br />    &lt;/driver-properties&gt;<br />    &lt;maximum-connection-count&gt;10&lt;/maximum-connection-count&gt;<br />    &lt;house-keeping-test-sql&gt;select 1 from dual&lt;/house-keeping-test-sql&gt;<br />  &lt;/proxool&gt;<br />&lt;/proxool-config&gt;<br /><br />spring里：<br />两种配置：<br />a:  &lt;!-- 与上面的proxool以及web.xml里结合使用--&gt;<br />    &lt;bean id="mainDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt;<br />    &lt;property name="driverClassName"&gt;<br />    &lt;value&gt;org.logicalcobwebs.proxool.ProxoolDriver&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="url"&gt;<br />    &lt;value&gt;proxool.blogdb&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;/bean&gt;<br /><br />b:&lt;!-- 单独的类似dbcp的使用--&gt;<br />  &lt;bean id="mainDataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close"&gt;<br />    &lt;property name="driver"&gt;<br />      &lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="driverUrl"&gt;<br />      &lt;value&gt;jdbc:oracle:thin:lizongbo/password@127.0.0.1:1521:ORADB&lt;/value&gt;     <br /> &lt;!--用户名和密码写在一起才调用成功,不然会报 调用无效的参数 错误，下面设置用户名和密码的property好像是无效的，其它数据库也是这样<br /> 比如mysql的也要把用户名和密码写在url里：&lt;property name="driverUrl" value="jdbc:mysql://localhost:3306/blogdb?user=lizongbo&amp;amp;password=lizongbo" /&gt;<br /> --&gt;<br />    &lt;/property&gt;<br />    &lt;property name="user"&gt; &lt;!-- 必须在这里也设置，但是 proxool却不使用它，或许是个bug--&gt;<br />      &lt;value&gt;lizongbo&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="password"&gt; &lt;!-- 必须在这里也设置，但是 proxool却不使用它，或许是个bug--&gt;<br />      &lt;value&gt;lizongbo&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="alias"&gt;<br />      &lt;value&gt;lizongbo&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="houseKeepingSleepTime"&gt;<br />      &lt;value&gt;90000&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="prototypeCount"&gt;<br />      &lt;value&gt;5&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="maximumConnectionCount"&gt;<br />      &lt;value&gt;100&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="minimumConnectionCount"&gt;<br />      &lt;value&gt;10&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="trace"&gt;<br />      &lt;value&gt;true&lt;/value&gt;<br />    &lt;/property&gt;<br />    &lt;property name="verbose"&gt;<br />      &lt;value&gt;true&lt;/value&gt;<br />    &lt;/property&gt;<br />  &lt;/bean&gt;<br /><br /><br />    <br /><img src ="http://www.blogjava.net/lizongbo/aggbug/39835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-04-07 14:17 <a href="http://www.blogjava.net/lizongbo/archive/2006/04/07/39835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于url编码问题的处理的几个方法的总结</title><link>http://www.blogjava.net/lizongbo/archive/2006/04/07/39833.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Fri, 07 Apr 2006 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/04/07/39833.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/39833.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/04/07/39833.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/39833.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/39833.html</trackback:ping><description><![CDATA[有同事讨论到关于url编码的问题。<br />因此总结以下几点方法供大家参考。<br />首先，对于post请求的时候，通过过滤器就可以搞定，以下的方法主要是针对get方式的乱码处理。<br /><br />1. 手工对字符串编码解码的方法为：<br />java.net.URLEncoder.encode("测试","UTF-8");<br />java.net.URLDecoder.decode("%E6%B5%8B%E8%AF%95%26%3Faaa","UTF-8");<br />这个方法适用于自己从原始字符串中进行解码处理。<br /><br />2. tomcat服务器的处理url编码的方法:<br /><br />修改tomcat的server.xml增加指定的编码，以代替tomcat默认的ISO-8859-1。<br />需要增加的参数为：URIEncoding，<br />比如下面的例子是制定解码使用UTF-8，<br />&lt;Connector port="8080"<br />maxThreads="800" minSpareThreads="25" maxSpareThreads="100"<br />enableLookups="false" redirectPort="8443" acceptCount="0"<br />debug="0" connectionTimeout="20000" URIEncoding="UTF-8"<br />disableUploadTimeout="true" /&gt;<br />如果用到了apache与tomcat 的整合，则还需要:<br />&lt;Connector port="8009" URIEncoding="UTF-8"<br />enableLookups="false" redirectPort="8443" debug="0"<br />protocol="AJP/1.3" maxThreads="1100" minSpareThreads="25" maxSpareThreads="100" acceptCount="0"/&gt;<br />（这个方法最简单方便，但是使用这种的方法之后，代码中就不需要也能有new String(strvalue.getBytes("ISO8859-1","GBK"); 这样的处理方式）<br /><br />3.对于已经部署的系统，可能已经有其他同事对编码使用了<br />new String(strvalue.getBytes("ISO8859-1","GBK"); <br />这样的方法作了处理，这个时候使用第二种方法就可能会影响到其它模块的正常使用，<br /><br />因此，我们可以自己重新解析queryString我封装了几个方法。使用重新封装的方法可以在不影响原来系统的情况下，正确的获得参数。<br /><br />封装的代码如下，供大家参考：<br /><br /><br /><br />/**<br />* 从请求的url字符串中解析参数，当request.getParameterValues()取得的参数值编码值不正确的时候可以使用该方法<br />* @param request HttpServletRequest<br />* @param paramName String<br />* @return String[] 返回多个同参数名的值<br />*/<br />public static String[] getParamsFromQueryString(HttpServletRequest request,<br />String paramName) {<br />return getParamsFromQueryString(request.getQueryString(), paramName);<br />}<br /><br />/**<br />* 从请求的url字符串中解析参数，当request.getParameterValues()取得的参数值编码值不正确的时候可以使用该方法<br />* @param request HttpServletRequest<br />* @param paramName String<br />* @return String[]<br />*/<br />public static String getParameterFromQueryString(HttpServletRequest request,<br />String paramName) {<br />return getParameterFromQueryString(request.getQueryString(), paramName);<br />}<br /><br />/**<br />* 从请求的url字符串中解析参数，当request.getParameter()取得的参数值编码值不正确的时候可以使用该方法<br />* @param queryString String<br />* @param paramName String<br />* @return String 只返回一个值<br />*/<br />public static String getParameterFromQueryString(String queryString,<br />String paramName) {<br />String[] s = getParamsFromQueryString(queryString, paramName);<br />if (s != null &amp;&amp; s.length &gt;= 1) {<br />return s[0];<br />}<br />return null;<br />}<br /><br />/**<br />* 从请求的url字符串中解析参数，当request.getParameter()取得的参数值编码值不正确的时候可以使用该方法<br />* @param queryString String<br />* @param paramName String<br />* @return String[] 返回多个同参数名的值<br />*/<br />public static String[] getParamsFromQueryString(String queryString,<br />String paramName) {<br />if (paramName == null || paramName.length() &lt; 1 || paramName == null ||<br />paramName.length() &lt; 1) {<br />return new String[0];<br />}<br />List rsl = new ArrayList();<br />String params[] = queryString.split("&amp;");<br />for (int i = 0; i &lt; params.length; i++) {<br />// System.out.println(params[i]);<br />if (params[i] != null &amp;&amp; params[i].startsWith(paramName + "=")) {<br />try {<br />rsl.add(java.net.URLDecoder.decode(params[i].substring(paramName.<br />length() +<br />1), "UTF-8")); //根据需要修改自己要使用的编码。<br />}<br />catch (UnsupportedEncodingException ex) {<br />}<br />}<br />}<br />return (String[]) rsl.toArray(new String[0]);<br />}<br /><br />public static void main(String[] args) {<br />//该例子演示解码。<br />//jsp和servlet中调用<br />// System.out.println(getParameterFromQueryString(request.getQueryString(), "q"));<br />//该例子示意的是gogole的url中的queryString。<br />System.out.println(getParameterFromQueryString(<br />"hl=zh-CN&amp;newwindow=1&amp;q=%E6%B5%8B%E8%AF%95%26%3Faaa&amp;meta=", "q"));<br />}<br /><br /><br /><img src ="http://www.blogjava.net/lizongbo/aggbug/39833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-04-07 14:10 <a href="http://www.blogjava.net/lizongbo/archive/2006/04/07/39833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 java (apache xmlrpc) ,delphi (delphi xml-rpc),javascript(jsolait)操作xmlrpc的几点注意事项</title><link>http://www.blogjava.net/lizongbo/archive/2006/03/18/36002.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Sat, 18 Mar 2006 15:49:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/03/18/36002.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/36002.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/03/18/36002.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/36002.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/36002.html</trackback:ping><description><![CDATA[
		<p>关于 java (apache xmlrpc) ,delphi (delphi xml-rpc),javascript(jsolait)操作xmlrpc的几点注意事项。</p>
		<p>(lizongbo原创，转载请注明出处。)<br />A. java操作xmlrpc.<br />可以使用 apache xmlrpc <a href="http://ws.apache.org/xmlrpc/">http://ws.apache.org/xmlrpc/</a></p>
		<p>1. org.apache.xmlrpc.XmlRpc.setDebug(true);可以打开调试模式，可以看到一些详细的xmlrpc解析处理日志。<br />2. 不支持值为null，支持的java类型为：Integer,Boolean,String,Double,java.util.Date(支持其子类),byte[],java.util.Vector,java.util.Hashtable<br />(<a href="http://ws.apache.org/xmlrpc/types.html">http://ws.apache.org/xmlrpc/types.html</a>  apache xmlrpc 对java类型作了扩展，但是如果要考虑其它编程语言的调用，不建议使用扩展的类型)</p>
		<p>
				<br />B. delphi操作xmlrpc的库是delphixml-rpc：<a href="http://sourceforge.net/projects/delphixml-rpc/">http://sourceforge.net/projects/delphixml-rpc/</a><br />(网上有人提到过codepunk，但是现在已经无法下载.http://www.codepunk.com/xmlrpc1_7_6.zip ,参考：<a href="http://www.delphibbs.com/keylife/iblog_comment.asp?xid=870">http://www.delphibbs.com/keylife/iblog_comment.asp?xid=870</a>)<br />于是选择了delphixml-rpc,实际使用中遇到以下一些问题，<br />1.汉字处理的问题。 delphi作客户端,  java作服务端,产生<br />Hello,&amp;#32;&amp;#20320;&amp;#22909;&amp;#32;,&amp;#32;test&amp;#32;&amp;#32;&amp;#27721;&amp;#23383;"不能够转换成"Hello, 你好 , test 汉字"<br />的问题, 解决方法如下:<br /> <br />xmlrpcparser<br />1554行，<br />CHR改成widechar <br />如下:<br />          THEN CurContent := CurContent + widechar (StrToIntDef ('$'+Copy (Name, 3, MaxInt), 32))<br />          ELSE CurContent := CurContent + widechar (StrToIntDef (Copy (Name, 2, MaxInt), 32));</p>
		<p>
				<br />对于sf上最新的xmlrpc包,则需要修改LibxmlPraser.pas对应地方的代码 <br />2.空字符串（非null）的解析问题。<br />java 的代码： Hashtable struct = new Hashtable(); <br />        struct.put("type", new Integer(0));<br />        struct.put ("id", "0"); //如果这样写 struct.put("id", ""); ,就会导致结构体错乱 ,取不到第一个 struct<br />解决办法，通过一个约定的字符串“nil”来表示空字符串。</p>
		<p>3. 使用ssl遇到的问题: <br />tomcat的 ssl配置为: <br />    &lt;Connector port="8083" <br />               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />               enableLookups="false" disableUploadTimeout="true" <br />               acceptCount="100" scheme="https" secure="true"<br />               clientAuth="false" sslProtocol="TLS" <br />           keystoreFile="conf/ca/.keystore" <br />           keystorePass="password"&gt;<br />     &lt;/Connector&gt;<br /> <br />而delphi的xmlrpc调用会出问题,因此需要修改源代码:<br />在XmlRpcClient.pas的第321行之后加上下面两行代码:<br /> <br />        IdSSLIOHandlerSocket.SSLOptions.Mode := sslmUnassigned;<br />        IdSSLIOHandlerSocket.SSLOptions.Method := sslvTLSv1;<br /> <br /> (如果tomcat使用了apr,则ssl配置是不一样的，这种情况下的delphi调用，我们没测试过)<br />4.乱码导致结构体解析失败<br /> <br />如果结构体的string里有不可识别的字符，会导致结构体解析失败，<br />因此，在传输的内容为不可预见的情况下（比如用户发送的千奇百怪的短消息），<br />建议用ｂｙｔｅ传送（实际工作中遇到这样的情况并总结出来的。）<br />服务端 ：struct.put ("msg", "测试短消息"); ---&gt; struct.put ("msgbyte", "测试短消息".getBytes()); <br />客户端delphi代码改用asBase64str方法来还原为string.</p>
		<p>
				<br />(以上均是实际工作中遇到的问题。 )</p>
		<p>C .jsolait的xmlrpc库是javascript的操作xmlrpc的，非常简单.<br /><br />多个参数的调用可以放在一个数组，也可以分别传入,同jdk1.5的可变参数(Variable Arguments)。<br />如果只传一个参数，而这个参数是个数组，需要这样写：</p>
		<p>var xmlrpc=null;<br /> try{<br />    var xmlrpc = importModule("xmlrpc");<br /> }catch(e){<br />    reportException(e);<br />    throw "importing of xmlrpc module failed.";<br /> }<br /> var addr = "<a href="http://lizongbo:808/lizongbo/xmlrpc">http://lizongbo:808/lizongbo/xmlrpc</a>";<br /> var methods = ["lizongbo.testOneArray"];<br /> var rslt;<br /> var params = new Array();<br /> params[0] = "0311112";<br /> params[1] = "awsasaas";<br /> params[2] = "awsasaas";<br /> try{<br />       var service = new xmlrpc.ServiceProxy(addr, methods);<br />       rslt = service.lzbrpc.testOneArray([params]);//用中括号括起来，否则会被解析为三个传入参数的调用<br />       ///service.lzbrpc.testOneArray(params) 等同于service.lzbrpc.testOneArray(params[0],params[1],params[2]);</p>
		<p>       返回结果里如果只有一个值，可以直接在用rslt，如果有多个值，<br />       比如下面这个结构体， 则可以用rslt.flag,rslt.info,rslt.struct.version来分别得到对应的值。<br />       （符合dom）<br />// var str="" + rslt.flag+' xx '+rslt.info+' yy '+rslt.struct.version ;<br />// 或者var str="" + rslt['flag']+' xx '+rslt['info']+' yy '+rslt['struct']['version'];<br />//得到的结果是"1 xx 成功 yy 123.beta "<br />参考 ： <a href="/mstar/archive/2005/06/07/5657.aspx">http://www.blogjava.net/mstar/archive/2005/06/07/5657.aspx</a></p>
		<p> </p>
		<p>D . 调试xmlrpc,有一个非常优秀的工具：<br /><a href="http://torrez.net/projects/konstructor/Konstructor.exe">http://torrez.net/projects/konstructor/Konstructor.exe</a><br />来自:<br /><a href="http://torrez.net/archives/xmlrpc_request_builder.php">http://torrez.net/archives/xmlrpc_request_builder.php</a></p>
		<p>缺点,只能够连接类似 <a href="http://lizongbo.com/xmlrpc">http://lizongbo.com/xmlrpc</a>的Endpoint<br />不支持https,也不支持除80外的其它端口</p>
		<p>(lizongbo原创，转载请注明出处。)<br /></p>
<img src ="http://www.blogjava.net/lizongbo/aggbug/36002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-03-18 23:49 <a href="http://www.blogjava.net/lizongbo/archive/2006/03/18/36002.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修复了DisplayTag 1.1的分页显示的一个bug。</title><link>http://www.blogjava.net/lizongbo/archive/2006/03/14/35298.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Tue, 14 Mar 2006 13:01:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/03/14/35298.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/35298.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/03/14/35298.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/35298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/35298.html</trackback:ping><description><![CDATA[<P>在一篇blog里我在回复里写了displaytag1.1大数据量分页显示的索引存在bug<A href="/zJun/archive/2006/02/27/32723.html"><BR>&nbsp;http://www.blogjava.net/zJun/archive/2006/02/27/32723.html</A><BR>后来下载源代码下来找到了修改bug的地方。<BR>并把代码发到 displaytag的jira里了，具体地址在：<A href="http://jira.codehaus.org/browse/DISPL-303"><BR>http://jira.codehaus.org/browse/DISPL-303</A>&nbsp;（有人已经提交这个bug了）<BR><BR><BR>org.displaytag.pagination.SmartListHelper.java<BR>把下面两个方法的代码改写如下：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; public int getFirstIndexForCurrentPage() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (this.currentPage - 1) * this.pageSize;<BR>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; /**<BR>&nbsp;&nbsp;&nbsp;&nbsp; * Returns the index into the master list of the last object that should appear on the current page that the user is<BR>&nbsp;&nbsp;&nbsp;&nbsp; * viewing.<BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return int<BR>&nbsp;&nbsp;&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp; protected int getLastIndexForCurrentPage() {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.partialList) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (getFirstIndexForCurrentPage()) +<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Math.min(this.pageSize - 1, this.fullList.size() - 1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return getLastIndexForPage(this.currentPage);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR><BR><BR>顺便记录 displaytag 1.1 使用Partial Lists大数据量分页的例子：</P>
<P>在近量不改动现有代码的基础上来使用displaytag结合数据库分页.</P>
<P>1.先设置总页数:</P>
<P>&lt;%<BR>&nbsp;&nbsp; Integer totalNum = new Integer(919);<BR>request.setAttribute("totalNum",totalNum);//设置总记录条数<BR>%&gt;</P>
<P>2.配置displaytag的 两个属性：partialList="true" size="totalNum"<BR>比如：<BR>&nbsp; &lt;display:table id="testtbid"&nbsp; name="requestScope.testlist" pagesize="20" partialList="true" size="totalNum"&gt;</P>
<P>3.在jsp中获得翻页信息的代码：</P>
<P>&lt;%</P>
<P>下面代码是取得翻页数</P>
<P>//如果没有为table设置 id那么就要写成ParamEncoder(null);<BR>&nbsp; String rpname = new org.displaytag.util.ParamEncoder("testtbid")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .encodeParameterName(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);<BR>&nbsp; System.out.println("当前页数：" + rpname + " = " +<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getParameter(rpname));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //然后根据当前页数去从数据库中取出相应数据。</P>
<P>&nbsp;</P>
<P>//see: <A href="http://displaytag.sourceforge.net/11/displaytag/apidocs/org/displaytag/tags/TableTagParameters.html">http://displaytag.sourceforge.net/11/displaytag/apidocs/org/displaytag/tags/TableTagParameters.html</A></P>
<P>%&gt;<BR>表格分页导航条里的分页链接个数默认是8个，可以通过下面的代码来更改<BR>//在&lt;display:table&gt;标签内<BR>&nbsp;&nbsp;&nbsp; &lt;display:setProperty name="paging.banner.group_size" value="20"/&gt;<BR>//&lt;/display:table&gt;</P>
<P>当然也可以通过实现 org.displaytag.pagination.PaginatedList接口来完成这个要求。<BR>更多信息，请参考：<BR><A href="http://displaytag.sourceforge.net/11/tut_externalSortAndPage.html">http://displaytag.sourceforge.net/11/tut_externalSortAndPage.html</A><BR><BR>利用内置el在displaytag里显示checkbox非常简单：<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;display:column title='select User' &gt;<BR>&nbsp;&lt;input type="checkbox" name="firstName"&nbsp; value="{testtbid.name}" /&gt;${testtbid.name}<BR>&lt;/display:column&gt;<BR></P><img src ="http://www.blogjava.net/lizongbo/aggbug/35298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-03-14 21:01 <a href="http://www.blogjava.net/lizongbo/archive/2006/03/14/35298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>出现 java.util.ConcurrentModificationException 时的解决办法。</title><link>http://www.blogjava.net/lizongbo/archive/2006/02/27/32587.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Mon, 27 Feb 2006 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/02/27/32587.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/32587.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/02/27/32587.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/32587.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/32587.html</trackback:ping><description><![CDATA[<P>在对一个map进行迭代遍历并删除一些符合条件的键值对的时候，容易出现</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; java.util.ConcurrentModificationException 这个异常。<BR>Exception in thread "main" java.util.ConcurrentModificationException<BR>&nbsp;at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)<BR>&nbsp;at java.util.HashMap$KeyIterator.next(HashMap.java:823)</P>
<P>解决办法如下：</P>
<P>import java.util.*;</P>
<P>public class TestMap {<BR>&nbsp; public TestMap() {<BR>&nbsp; }</P>
<P>&nbsp; public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp; java.util.Map m = new java.util.HashMap();<BR>&nbsp;&nbsp;&nbsp; m.put("aaa", "lizongbo ");<BR>&nbsp;&nbsp;&nbsp; m.put("bbb", " lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("ccc", "lizongbo&nbsp; ");<BR>&nbsp;&nbsp;&nbsp; m.put("ddd", "&nbsp; lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("eee", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("fff", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("ggg", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("adads", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("dffd", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("dcxv", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("lizongbo", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("ert", "lizongbo");<BR>&nbsp;&nbsp;&nbsp; m.put("544", "lizongbo ");<BR>&nbsp;&nbsp;&nbsp; Iterator iterator = m.keySet().iterator(); <BR>&nbsp;&nbsp;&nbsp; while (iterator.hasNext()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sessionId = (String) iterator.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ("ggg".equals(sessionId) || "lizongbo".equals(sessionId) ||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "544".equals(sessionId)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iterator.remove();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这行代码是关键。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.remove(sessionId);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; System.out.println(m.get("ggg"));<BR>&nbsp;&nbsp;&nbsp; System.out.println(m.get("lizongbo"));<BR>&nbsp;&nbsp;&nbsp; System.out.println(m.get("544"));<BR>&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 相关参考： <A href="http://ldfren.bosinet.com/archives/113.html">http://ldfren.bosinet.com/archives/113.html</A><BR><A href="http://gceclub.sun.com.cn/yuanchuang/week-14/iterator.html">http://gceclub.sun.com.cn/yuanchuang/week-14/iterator.html</A><BR><BR></P><img src ="http://www.blogjava.net/lizongbo/aggbug/32587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-02-27 10:12 <a href="http://www.blogjava.net/lizongbo/archive/2006/02/27/32587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>