﻿<?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/mrcold/</link><description>Collect By Finding All The Way ......</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 08:54:38 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 08:54:38 GMT</pubDate><ttl>60</ttl><item><title>《编程珠玑》读书笔记——代码实现</title><link>http://www.blogjava.net/mrcold/archive/2010/09/05/331085.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Sun, 05 Sep 2010 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/09/05/331085.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/331085.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/09/05/331085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/331085.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/331085.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: //前序中序求后序&nbsp;#include&lt;iostream&gt;#include&lt;string&gt;using&nbsp;namespace&nbsp;std;void&nbsp;cc(int&nbsp;s,int&nbsp;e);char&nbsp;a[26],b[26];int&nbsp;main(){&nbsp;&nbsp;&nbsp;&...&nbsp;&nbsp;<a href='http://www.blogjava.net/mrcold/archive/2010/09/05/331085.html'>阅读全文</a><img src ="http://www.blogjava.net/mrcold/aggbug/331085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-09-05 16:08 <a href="http://www.blogjava.net/mrcold/archive/2010/09/05/331085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JFreeChart</title><link>http://www.blogjava.net/mrcold/archive/2010/06/01/322421.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Tue, 01 Jun 2010 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/06/01/322421.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322421.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/06/01/322421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322421.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322421.html</trackback:ping><description><![CDATA[<font style="background-color: #00ffff"><br />
http://www.jfree.org/jfreechart/<br />
<br />
JFreeChart</font> 目前是最好的java图形解决方案，基本能够解决目前的图形方面的需求，主要包括如下几个方面： <br />
&nbsp;&nbsp;&nbsp;&nbsp; pie&nbsp;&nbsp; charts&nbsp;&nbsp; (2D&nbsp;&nbsp; and&nbsp;&nbsp; 3D) ：饼图（平面和立体） <br />
&nbsp;&nbsp;&nbsp;&nbsp; bar&nbsp;&nbsp; charts&nbsp;&nbsp; (regular&nbsp;&nbsp; and&nbsp;&nbsp; stacked,&nbsp;&nbsp; with&nbsp;&nbsp; an&nbsp;&nbsp; optional&nbsp;&nbsp; 3D&nbsp;&nbsp; effect) ：柱状图 <br />
&nbsp;&nbsp;&nbsp;&nbsp; line&nbsp;&nbsp; and&nbsp;&nbsp; area&nbsp;&nbsp; charts ：曲线图 <br />
&nbsp;&nbsp;&nbsp;&nbsp; scatter&nbsp;&nbsp; plots&nbsp;&nbsp; and&nbsp;&nbsp; bubble&nbsp;&nbsp; charts <br />
&nbsp;&nbsp;&nbsp;&nbsp; time&nbsp;&nbsp; series,&nbsp;&nbsp; high/low/open/close&nbsp;&nbsp; charts&nbsp;&nbsp; and&nbsp;&nbsp; candle&nbsp;&nbsp; stick&nbsp;&nbsp; charts ：时序图 <br />
&nbsp;&nbsp;&nbsp;&nbsp; combination&nbsp;&nbsp; charts ：复合图 <br />
&nbsp;&nbsp;&nbsp;&nbsp; Pareto&nbsp;&nbsp; charts <br />
&nbsp;&nbsp;&nbsp;&nbsp; Gantt&nbsp;&nbsp; charts ：甘特图 <br />
&nbsp;&nbsp;&nbsp;&nbsp; wind&nbsp;&nbsp; plots,&nbsp;&nbsp; meter&nbsp;&nbsp; charts&nbsp;&nbsp; and&nbsp;&nbsp; symbol&nbsp;&nbsp; charts <br />
&nbsp;&nbsp;&nbsp;&nbsp; wafer&nbsp;&nbsp; map&nbsp;&nbsp; charts <br />
&nbsp;&nbsp;&nbsp;&nbsp; ( 态图表,饼图(二维和三维)&nbsp;&nbsp; ,&nbsp;&nbsp; 柱状图&nbsp;&nbsp; ( 水平,垂直),线图,点图,时间变化图,甘特图,&nbsp;&nbsp; 股票行情图,混和图,&nbsp;&nbsp; 温度计图,&nbsp;&nbsp; 刻度图等常用商用图表)<img src ="http://www.blogjava.net/mrcold/aggbug/322421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-06-01 10:37 <a href="http://www.blogjava.net/mrcold/archive/2010/06/01/322421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts1.x和2.X的一些区别</title><link>http://www.blogjava.net/mrcold/archive/2010/06/01/322411.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Tue, 01 Jun 2010 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/06/01/322411.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322411.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/06/01/322411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322411.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322411.html</trackback:ping><description><![CDATA[<h3>Struts 从1.1都升成2了，要记录一下,学习起来会方便一些: <br />
<br />
1. Struts2 与 Struts1 似乎没什么血缘关系了，承自于 WebWork，直害 WebWork 不再推出新版本了，原先的 WebWork 使用者只需顺其然，即是水道渠成；相反 Struts1 的开发经验对于 Struts2 却没有太大的帮助。 <br />
<br />
2. Struts1 的核心控制器是 ActionServlet，而 Struts2 的核心控制器是 FilterDispatcher。Struts2 的业务 Action 会在运行时生成 Action 代理。 <br />
<br />
3. Struts1 的 Action 须继承抽象 Action 类，侵入了 Servlet API；而 Struts2 的 Action 可以实现 ActionSupport，或者只要一个纯净的 POJO 来充当，完全与 Servlet 绝缘。也因此带来测试性 Struts2 要比 Struts1 强，可把 Struts TestCase 扔到一旁去了。 <br />
<br />
4. Struts1 在运行时一个 Action 只会生成一个实例，而 Struts2 中的 Action 会应对每个请求生成新的实例，在线程安全性方面，Struts1 要多些考虑。 <br />
<br />
5. Struts1 依靠 ActionForm 来接受数据，它也是依赖于 Servlet API ，并非普通的 JavaBean，而 Struts2 可在 Action 属性中获取请求的属性，当然也能封装在一个独立的 POJO 中。不过提醒一下，在 Struts1.3 中也可以用 POJO 来接受请求属性，但使用起来有点烦琐。 <br />
<br />
6. Struts2 使用了新的 OGNL 的表达式语言，可以访问值栈，在对集合和索引属性的支持上功能更强大。 <br />
<br />
7. Struts1 的配置文件只需 struts-config.xml；Struts2 的配置文件有 struts.xml 和 struts.properties。struts.properties 中有两个 struts.devMode = fase 和 struts.configuration.xml.reload = true 很可爱，分别设置当前是开发还是生产模式，以及 struts.xml 改变后是否自动重新加载，免去了改配置手工重启应用的必须步骤。 <br />
<br />
8. Struts2 Action 的 execute() 无参，返回的是一个字符串，不像 Struts1 Action 的 execute() 有一大串且不说，光是返回 ActionForward，就让这个 Action 与 Struts1 脱不了干系；还是 Struts2 来得聪明，只返回个中性的 String，反正名字吗，猛然间这个 Action 也成 POJO 了，复用性增强了，难怪专门有一书，名为《POJO In Action》。 <br />
<br />
9. Struts1 的视图只支持 JSP，这也不怪它，只怨出身太早，那时就只有 JSP 一种表现层。相比，Struts2 更有艳福，能贴近于 FreeMarker、Velocity、XSLT、PDF 等视图技术。 <br />
<br />
10. Struts2 提供了功能强大复杂的标签库，统一化为 "s" 前缀。并顺应时代潮流地加入了 AJAX 的支持。还提供了更友好的验证功能。 <br />
</h3><img src ="http://www.blogjava.net/mrcold/aggbug/322411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-06-01 09:39 <a href="http://www.blogjava.net/mrcold/archive/2010/06/01/322411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>写文件的乱码问题</title><link>http://www.blogjava.net/mrcold/archive/2010/05/27/322052.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Thu, 27 May 2010 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/05/27/322052.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322052.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/05/27/322052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322052.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322052.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">FileOutputStream&nbsp;fileOutputStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(file);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;writer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;OutputStreamWriter(fileOutputStream,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF8</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.write(content);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.close();&nbsp;</span></div>
统一为UTF8编码。<img src ="http://www.blogjava.net/mrcold/aggbug/322052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-05-27 16:32 <a href="http://www.blogjava.net/mrcold/archive/2010/05/27/322052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用HttpClient对Web Service调用</title><link>http://www.blogjava.net/mrcold/archive/2010/05/27/322051.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Thu, 27 May 2010 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/05/27/322051.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322051.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/05/27/322051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322051.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322051.html</trackback:ping><description><![CDATA[<p>用到的jar包有：<br />
&nbsp;&nbsp;&nbsp;&nbsp;commons-codec-1.3.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;commons-httpclient-3.0.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;commons-logging-1.0.4.jar<br />
<br />
<br />
具体流程大致这样：<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;soapRequestData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;?xml&nbsp;version=\</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;encoding=\</span><span style="color: #000000">"</span><span style="color: #000000">utf</span><span style="color: #000000">-</span><span style="color: #000000">8</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">?&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;soap12:Envelope&nbsp;xmlns:xsi=\</span><span style="color: #000000">"</span><span style="color: #000000">http:</span><span style="color: #008000">//</span><span style="color: #008000">www.w3.org/2001/XMLSchema-instance\"&nbsp;xmlns:xsd=\"</span><span style="color: #008000; text-decoration: underline">http://www.w3.org/2001/XMLSchema</span><span style="color: #008000">\"&nbsp;xmlns:soap12=\"</span><span style="color: #008000; text-decoration: underline">http://www.w3.org/2003/05/soap-envelope</span><span style="color: #008000">\"&gt;"&nbsp;+</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;soap12:Body&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&lt;qqCheckOnline&nbsp;xmlns=\</span><span style="color: #000000">"</span><span style="color: #000000">http:</span><span style="color: #008000">//</span><span style="color: #008000">WebXml.com.cn/\"&gt;"&nbsp;+</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&lt;qqCode&gt;349104641&lt;/qqCode&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&lt;/qqCheckOnline&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&lt;/soap12:Body&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/soap12:Envelope&gt;</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(soapRequestData);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">PostMethod&nbsp;postMethod&nbsp;=&nbsp;new&nbsp;PostMethod("</span><span style="color: #008000; text-decoration: underline">http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl</span><span style="color: #008000">");</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;PostMethod&nbsp;postMethod&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PostMethod(</span><span style="color: #000000">"</span><span style="color: #000000">http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;然后把Soap请求数据添加到PostMethod中</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;soapRequestData.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ByteArrayInputStream(b,</span><span style="color: #000000">0</span><span style="color: #000000">,b.length);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;RequestEntity&nbsp;re&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamRequestEntity(is,b.length,</span><span style="color: #000000">"</span><span style="color: #000000">application/soap+xml;&nbsp;charset=utf-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;postMethod.setRequestEntity(re);&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">最后生成一个HttpClient对象，并发出postMethod请求</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;HttpClient&nbsp;httpClient&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HttpClient();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;statusCode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;httpClient.executeMethod(postMethod);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;soapResponseData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;postMethod.getResponseBodyAsString();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(soapResponseData);</span></div>
<br />
<br />
<br />
动态构造调用串的话如下实现：<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;tns;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;methodName;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;wsdlLocation;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;soapResponseData;</span></div>
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_70_683_Open_Image" onclick="this.style.display='none'; Codehighlighter1_70_683_Open_Text.style.display='none'; Codehighlighter1_70_683_Closed_Image.style.display='inline'; Codehighlighter1_70_683_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_70_683_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_70_683_Closed_Text.style.display='none'; Codehighlighter1_70_683_Open_Image.style.display='inline'; Codehighlighter1_70_683_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;invoke(Map</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,&nbsp;String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;patameterMap)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_70_683_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_70_683_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostMethod&nbsp;postMethod&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PostMethod(wsdlLocation);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;soapRequestData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;buildRequestData(patameterMap);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bytes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;soapRequestData.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;inputStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ByteArrayInputStream(bytes,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.length);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RequestEntity&nbsp;requestEntity&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamRequestEntity(inputStream,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.length,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">application/soap+xml;&nbsp;charset=utf-8</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postMethod.setRequestEntity(requestEntity);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpClient&nbsp;httpClient&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HttpClient();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;statusCode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;httpClient.executeMethod(postMethod);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapResponseData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;postMethod.getResponseBodyAsString();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;statusCode;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img id="Codehighlighter1_753_1579_Open_Image" onclick="this.style.display='none'; Codehighlighter1_753_1579_Open_Text.style.display='none'; Codehighlighter1_753_1579_Closed_Image.style.display='inline'; Codehighlighter1_753_1579_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_753_1579_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_753_1579_Closed_Text.style.display='none'; Codehighlighter1_753_1579_Open_Image.style.display='inline'; Codehighlighter1_753_1579_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;buildRequestData(Map</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,&nbsp;String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;patameterMap)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_753_1579_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_753_1579_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;soapRequestData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;?xml&nbsp;version=\</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;encoding=\</span><span style="color: #000000">"</span><span style="color: #000000">utf</span><span style="color: #000000">-</span><span style="color: #000000">8</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">?&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;soap12:Envelope&nbsp;xmlns:xsi=\</span><span style="color: #000000">"</span><span style="color: #000000">http:</span><span style="color: #008000">//</span><span style="color: #008000">www.w3.org/2001/XMLSchema-instance\"&nbsp;xmlns:xsd=\"</span><span style="color: #008000; text-decoration: underline">http://www.w3.org/2001/XMLSchema</span><span style="color: #008000">\"&nbsp;xmlns:soap12=\"</span><span style="color: #008000; text-decoration: underline">http://www.w3.org/2003/05/soap-envelope</span><span style="color: #008000">\"&gt;");</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;soap12:Body&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;methodName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;xmlns=\</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;+&nbsp;tns&nbsp;+&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;nameSet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;patameterMap.keySet();<br />
<img id="Codehighlighter1_1296_1395_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1296_1395_Open_Text.style.display='none'; Codehighlighter1_1296_1395_Closed_Image.style.display='inline'; Codehighlighter1_1296_1395_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1296_1395_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1296_1395_Closed_Text.style.display='none'; Codehighlighter1_1296_1395_Open_Image.style.display='inline'; Codehighlighter1_1296_1395_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(String&nbsp;name&nbsp;:&nbsp;nameSet)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1296_1395_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1296_1395_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;patameterMap.get(name)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;name&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;methodName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/soap12:Body&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soapRequestData.append(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/soap12:Envelope&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;soapRequestData.toString();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><img src ="http://www.blogjava.net/mrcold/aggbug/322051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-05-27 16:30 <a href="http://www.blogjava.net/mrcold/archive/2010/05/27/322051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于static的滥用</title><link>http://www.blogjava.net/mrcold/archive/2010/05/27/322050.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Thu, 27 May 2010 08:24:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/05/27/322050.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322050.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/05/27/322050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322050.html</trackback:ping><description><![CDATA[<p>最近发掘越来越习惯于使用静态的方法和属性，也由此犯了许多错误。简直是滥用。<br />
<br />
如在一个servlet中，声明了userId这种静态属性。势必会导致多用户访问时操作同一个userId对象，引发并发性问题。<br />
<br />
对于这种不同用户会产生不同值的属性，千万不能定义成static。<br />
<br />
static只使用于，对与所有用户来说，值都能够保持一致的属性。比如Hibernate Factory中的数据库连接对象等等。这样还能够提高效率，因为static属性只在类初始化时进行一次初始化。</p><img src ="http://www.blogjava.net/mrcold/aggbug/322050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-05-27 16:24 <a href="http://www.blogjava.net/mrcold/archive/2010/05/27/322050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中AutoBoxing对-128~127整型的特殊处理</title><link>http://www.blogjava.net/mrcold/archive/2010/05/27/322046.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Thu, 27 May 2010 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/05/27/322046.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322046.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/05/27/322046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322046.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_39_152_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_152_Open_Text.style.display='none'; Codehighlighter1_39_152_Closed_Image.style.display='inline'; Codehighlighter1_39_152_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_39_152_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_39_152_Closed_Text.style.display='none'; Codehighlighter1_39_152_Open_Image.style.display='inline'; Codehighlighter1_39_152_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_39_152_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_39_152_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;Integer&nbsp;a&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;Integer&nbsp;b&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;a</span><span style="color: #000000">=</span><span style="color: #000000">16</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;b</span><span style="color: #000000">=</span><span style="color: #000000">16</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;System.out.println(a&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;b);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;System.out.println(a.equals(b));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
输出true&nbsp; true<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_39_142_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_142_Open_Text.style.display='none'; Codehighlighter1_39_142_Closed_Image.style.display='inline'; Codehighlighter1_39_142_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_39_142_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_39_142_Closed_Text.style.display='none'; Codehighlighter1_39_142_Open_Image.style.display='inline'; Codehighlighter1_39_142_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_39_142_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_39_142_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />Integer&nbsp;a&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />Integer&nbsp;b&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />a</span><span style="color: #000000">=</span><span style="color: #000000">128</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />b</span><span style="color: #000000">=</span><span style="color: #000000">128</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />System.out.println(a&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;b);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />System.out.println(a.equals(b));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
输出false true<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_39_159_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_159_Open_Text.style.display='none'; Codehighlighter1_39_159_Closed_Image.style.display='inline'; Codehighlighter1_39_159_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_39_159_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_39_159_Closed_Text.style.display='none'; Codehighlighter1_39_159_Open_Image.style.display='inline'; Codehighlighter1_39_159_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_39_159_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_39_159_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />Integer&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">5</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />Integer&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">5</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />System.out.println(a&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;b);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />System.out.println(a.equals(b));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
输出false ture<br /><img src ="http://www.blogjava.net/mrcold/aggbug/322046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-05-27 16:19 <a href="http://www.blogjava.net/mrcold/archive/2010/05/27/322046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java的String池</title><link>http://www.blogjava.net/mrcold/archive/2010/05/27/322023.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Thu, 27 May 2010 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2010/05/27/322023.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/322023.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2010/05/27/322023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/322023.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/322023.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_18_212_Open_Image" onclick="this.style.display='none'; Codehighlighter1_18_212_Open_Text.style.display='none'; Codehighlighter1_18_212_Closed_Image.style.display='inline'; Codehighlighter1_18_212_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_18_212_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_18_212_Closed_Text.style.display='none'; Codehighlighter1_18_212_Open_Image.style.display='inline'; Codehighlighter1_18_212_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_18_212_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_18_212_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_66_143_Open_Image" onclick="this.style.display='none'; Codehighlighter1_66_143_Open_Text.style.display='none'; Codehighlighter1_66_143_Closed_Image.style.display='inline'; Codehighlighter1_66_143_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_66_143_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_66_143_Closed_Text.style.display='none'; Codehighlighter1_66_143_Open_Image.style.display='inline'; Codehighlighter1_66_143_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_66_143_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_66_143_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fun(s);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(s);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;fun(String&nbsp;s)<br />
<img id="Codehighlighter1_180_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_180_209_Open_Text.style.display='none'; Codehighlighter1_180_209_Closed_Image.style.display='inline'; Codehighlighter1_180_209_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_180_209_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_180_209_Closed_Text.style.display='none'; Codehighlighter1_180_209_Open_Image.style.display='inline'; Codehighlighter1_180_209_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_180_209_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_180_209_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">aaaa</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />｝</span></div>
</span>由于JavaString池的特性，即String不可修改，修改即抛弃旧的，重新创建新的。所以上述代码输出为空。如果改为StringBuffer等其他类，则输出为"aaaa"。<img src ="http://www.blogjava.net/mrcold/aggbug/322023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2010-05-27 14:00 <a href="http://www.blogjava.net/mrcold/archive/2010/05/27/322023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IBM DW 的Json入门</title><link>http://www.blogjava.net/mrcold/archive/2009/12/07/304970.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Mon, 07 Dec 2009 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2009/12/07/304970.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/304970.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2009/12/07/304970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/304970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/304970.html</trackback:ping><description><![CDATA[JSON 入门指南<br />
http://www.ibm.com/developerworks/cn/web/wa-lo-json/<br />
<br />
<span style="color: #999999">掌握 Ajax，第 10 部分: </span>使用 JSON 进行数据传输<br />
<a href="http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/">http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/</a><br />
<br />
<span style="color: #999999">掌握 Ajax，第 11 部分: </span>服务器端的 JSON<br />
http://www.ibm.com/developerworks/cn/web/wa-ajaxintro11.html<img src ="http://www.blogjava.net/mrcold/aggbug/304970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2009-12-07 10:37 <a href="http://www.blogjava.net/mrcold/archive/2009/12/07/304970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Json基本知识</title><link>http://www.blogjava.net/mrcold/archive/2009/12/07/304966.html</link><dc:creator>胖胖泡泡</dc:creator><author>胖胖泡泡</author><pubDate>Mon, 07 Dec 2009 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/mrcold/archive/2009/12/07/304966.html</guid><wfw:comment>http://www.blogjava.net/mrcold/comments/304966.html</wfw:comment><comments>http://www.blogjava.net/mrcold/archive/2009/12/07/304966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mrcold/comments/commentRss/304966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mrcold/services/trackbacks/304966.html</trackback:ping><description><![CDATA[&nbsp;因为<span class="hilite2">JSON</span> 是 javascript 的一个子集，所以，在javascript 中使用<span class="hilite2">JSON</span>是非常简单的。<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;myJSONObject&nbsp;=&nbsp;{</span><span class="string">"bindings"</span><span>:&nbsp;[&nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<span class="string">"ircEvent"</span><span>:&nbsp;</span><span class="string">"PRIVMSG"</span><span>,&nbsp;</span><span class="string">"method"</span><span>:&nbsp;</span><span class="string">"newURI"</span><span>,&nbsp;</span><span class="string">"regex"</span><span>:&nbsp;</span><span class="string">"^http://.*"</span><span>},&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<span class="string">"ircEvent"</span><span>:&nbsp;</span><span class="string">"PRIVMSG"</span><span>,&nbsp;</span><span class="string">"method"</span><span>:&nbsp;</span><span class="string">"deleteURI"</span><span>,&nbsp;</span><span class="string">"regex"</span><span>:&nbsp;</span><span class="string">"^delete.*"</span><span>},&nbsp;&nbsp;</span></span>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<span class="string">"ircEvent"</span><span>:&nbsp;</span><span class="string">"PRIVMSG"</span><span>,&nbsp;</span><span class="string">"method"</span><span>:&nbsp;</span><span class="string">"randomURI"</span><span>,&nbsp;</span><span class="string">"regex"</span><span>:&nbsp;</span><span class="string">"^random.*"</span><span>}&nbsp;&nbsp;</span></span>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;]&nbsp;&nbsp;</span>
    <li><span>};&nbsp;&nbsp;</span> </li>
</ol>
</div>
<br />
在上面的例子中，我们创建了只包含一个成员 <span><span><span class="string">"bindings" </span></span>的一个对象，<span><span class="string">bindings 则包含了一个由3个对象组成的数组。这3个对象都包含3个成员：</span></span><span><span class="string">"ircEvent"，</span><span> </span><span class="string">"method"</span><span>，</span><span class="string">"regex"。<br />
<br />
在javascript 中， 成员可以通过&#8220;点号&#8221;来获取。<br />
比如：<br />
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<ol class="dp-c">
    <li class="alt"><span><span>myJSONObject.bindings[0].method&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
<br />
通过eval() 函数可以将<span class="hilite2">JSON</span>字符串转化为对象。<br />
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;myObject&nbsp;=&nbsp;eval('('&nbsp;+&nbsp;myJSONtext&nbsp;+&nbsp;')');&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
<br />
eval 函数非常快，但是它可以编译任何 javascirpt 代码，这样的话就可能产生安全的问题。eval 的使用是基于传入的代码参数是可靠的假设的，有一些情况下，可能客户端是不可信任的。<br />
<br />
如果基于安全的考虑的话，最好是使用一个 </span></span><span class="hilite2">JSON</span> 解析器。 一个<span><span class="string"> </span></span><span class="hilite2">JSON</span> 解析器将只接受 <span class="hilite2">JSON</span> 文本。所以是更安全的。<br />
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;myObject&nbsp;=&nbsp;<span class="hilite2">JSON</span>.parse(myJSONtext,&nbsp;filter);&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
<br />
可选的 filter 参数将遍历每一个value key 值对， 并进行相关的处理。如：<br />
<br />
<span><span class="string">
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<ol class="dp-c">
    <li class="alt"><span><span>myData&nbsp;=&nbsp;<span class="hilite2">JSON</span>.parse(text,&nbsp;</span><span class="keyword">function</span><span>&nbsp;(key,&nbsp;value)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
    </span></span>
    <ol>
        <li class="alt"><span><span><span class="keyword">return</span><span>&nbsp;key.indexOf('date')&nbsp;&gt;=&nbsp;0&nbsp;?&nbsp;</span><span class="keyword">new</span><span>&nbsp;Date(value)&nbsp;:&nbsp;value;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp; </span></span></li>
    </ol>
    </li>
</ol>
</div>
</span></span><span><span class="string"><br />
</span></span><span><span class="string"><span><span>stringifier 函数的作用跟 parse 相反， 用来将一个js对象转换为 <span class="hilite2">JSON</span> 文本。</span></span></span></span><br />
<span><span class="string">
<div class="code_title">js 代码</div>
<div class="dp-highlighter">
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;myJSONText&nbsp;=&nbsp;<span class="hilite2">JSON</span>.stringifier(myObject);&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
</span></span></span></span><img src ="http://www.blogjava.net/mrcold/aggbug/304966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mrcold/" target="_blank">胖胖泡泡</a> 2009-12-07 10:26 <a href="http://www.blogjava.net/mrcold/archive/2009/12/07/304966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>