﻿<?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-石头JAVA摆地摊儿</title><link>http://www.blogjava.net/ghyghost/</link><description>JAVA所有的讨论-要一点一点的进步</description><language>zh-cn</language><lastBuildDate>Sun, 21 Jun 2026 05:54:31 GMT</lastBuildDate><pubDate>Sun, 21 Jun 2026 05:54:31 GMT</pubDate><ttl>60</ttl><item><title>JSON简用</title><link>http://www.blogjava.net/ghyghost/archive/2009/05/13/270308.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Tue, 12 May 2009 16:26:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2009/05/13/270308.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/270308.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2009/05/13/270308.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/270308.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/270308.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_2_65_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_65_Open_Text.style.display='none'; Codehighlighter1_2_65_Closed_Image.style.display='inline'; Codehighlighter1_2_65_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2_65_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_65_Closed_Text.style.display='none'; Codehighlighter1_2_65_Open_Image.style.display='inline'; Codehighlighter1_2_65_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_65_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2_65_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;language</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;import</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java.util.*</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;pageEncoding</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">utf-8</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="Content-Type"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="text/html;&nbsp;charset=utf-8"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="json2.js"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_286_1336_Open_Image" onclick="this.style.display='none'; Codehighlighter1_286_1336_Open_Text.style.display='none'; Codehighlighter1_286_1336_Closed_Image.style.display='inline'; Codehighlighter1_286_1336_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_286_1336_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_286_1336_Closed_Text.style.display='none'; Codehighlighter1_286_1336_Open_Image.style.display='inline'; Codehighlighter1_286_1336_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_286_1336_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_286_1336_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;ajaxObject;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;username;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;password;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;createAjax()<br />
<img id="Codehighlighter1_353_538_Open_Image" onclick="this.style.display='none'; Codehighlighter1_353_538_Open_Text.style.display='none'; Codehighlighter1_353_538_Closed_Image.style.display='inline'; Codehighlighter1_353_538_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_353_538_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_353_538_Closed_Text.style.display='none'; Codehighlighter1_353_538_Open_Image.style.display='inline'; Codehighlighter1_353_538_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_353_538_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_353_538_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(window.ActiveXObject)<br />
<img id="Codehighlighter1_387_451_Open_Image" onclick="this.style.display='none'; Codehighlighter1_387_451_Open_Text.style.display='none'; Codehighlighter1_387_451_Closed_Image.style.display='inline'; Codehighlighter1_387_451_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_387_451_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_387_451_Closed_Text.style.display='none'; Codehighlighter1_387_451_Open_Image.style.display='inline'; Codehighlighter1_387_451_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_387_451_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_387_451_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajaxObject&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;ActiveXObject(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">Microsoft.XMLHTTP</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(window.XMLHttpRequest)<br />
<img id="Codehighlighter1_490_536_Open_Image" onclick="this.style.display='none'; Codehighlighter1_490_536_Open_Text.style.display='none'; Codehighlighter1_490_536_Closed_Image.style.display='inline'; Codehighlighter1_490_536_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_490_536_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_490_536_Closed_Text.style.display='none'; Codehighlighter1_490_536_Open_Image.style.display='inline'; Codehighlighter1_490_536_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_490_536_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_490_536_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajaxObject&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;XMLHttpRequest();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;showText()<br />
<img id="Codehighlighter1_563_1001_Open_Image" onclick="this.style.display='none'; Codehighlighter1_563_1001_Open_Text.style.display='none'; Codehighlighter1_563_1001_Closed_Image.style.display='inline'; Codehighlighter1_563_1001_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_563_1001_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_563_1001_Closed_Text.style.display='none'; Codehighlighter1_563_1001_Open_Image.style.display='inline'; Codehighlighter1_563_1001_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_563_1001_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_563_1001_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;username&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.getElementById(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">username</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).value;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;password&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.getElementById(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">password</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).value;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;createUserInfoJSON&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;JSON.stringify(</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;createUserInfo(username,&nbsp;password));<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;createAjax();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.onreadystatechange&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;backCall;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.open(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">GET</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">write</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">true</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.setRequestHeader(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">Content-Type</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">application/x-www-form-urlencoded</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.send(createUserInfoJSON);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;backCall()<br />
<img id="Codehighlighter1_1024_1224_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1024_1224_Open_Text.style.display='none'; Codehighlighter1_1024_1224_Closed_Image.style.display='inline'; Codehighlighter1_1024_1224_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1024_1224_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1024_1224_Closed_Text.style.display='none'; Codehighlighter1_1024_1224_Open_Image.style.display='inline'; Codehighlighter1_1024_1224_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1024_1224_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1024_1224_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(ajaxObject.readyState&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">==</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">4</span><span style="color: #000000; background-color: #f5f5f5">)<br />
<img id="Codehighlighter1_1064_1222_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1064_1222_Open_Text.style.display='none'; Codehighlighter1_1064_1222_Closed_Image.style.display='inline'; Codehighlighter1_1064_1222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1064_1222_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1064_1222_Closed_Text.style.display='none'; Codehighlighter1_1064_1222_Open_Image.style.display='inline'; Codehighlighter1_1064_1222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1064_1222_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1064_1222_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(ajaxObject.status&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">==</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">200</span><span style="color: #000000; background-color: #f5f5f5">)<br />
<img id="Codehighlighter1_1108_1217_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1108_1217_Open_Text.style.display='none'; Codehighlighter1_1108_1217_Closed_Image.style.display='inline'; Codehighlighter1_1108_1217_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1108_1217_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1108_1217_Closed_Text.style.display='none'; Codehighlighter1_1108_1217_Open_Image.style.display='inline'; Codehighlighter1_1108_1217_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1108_1217_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1108_1217_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;xmlString&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;ajaxObject.responseText;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">response&nbsp;Text&nbsp;is:\n</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">+</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;xmlString)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;createUserInfo(username,&nbsp;password)<br />
<img id="Codehighlighter1_1271_1332_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1271_1332_Open_Text.style.display='none'; Codehighlighter1_1271_1332_Closed_Image.style.display='inline'; Codehighlighter1_1271_1332_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1271_1332_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1271_1332_Closed_Text.style.display='none'; Codehighlighter1_1271_1332_Open_Image.style.display='inline'; Codehighlighter1_1271_1332_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_1271_1332_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1271_1332_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">this</span><span style="color: #000000; background-color: #f5f5f5">.username&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;username;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">this</span><span style="color: #000000; background-color: #f5f5f5">.password&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;password;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />username:</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="username"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="username"</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />password:</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="password"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="password"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="showText()"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="click&nbsp;me!"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.BufferedReader;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.IOException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.PrintWriter;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServlet;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServletRequest;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServletResponse;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;net.sf.json.JSONObject;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_331_1168_Open_Image" onclick="this.style.display='none'; Codehighlighter1_331_1168_Open_Text.style.display='none'; Codehighlighter1_331_1168_Closed_Image.style.display='inline'; Codehighlighter1_331_1168_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_331_1168_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_331_1168_Closed_Text.style.display='none'; Codehighlighter1_331_1168_Open_Image.style.display='inline'; Codehighlighter1_331_1168_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;write&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;HttpServlet&nbsp;</span><span id="Codehighlighter1_331_1168_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_331_1168_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_350_364_Open_Image" onclick="this.style.display='none'; Codehighlighter1_350_364_Open_Text.style.display='none'; Codehighlighter1_350_364_Closed_Image.style.display='inline'; Codehighlighter1_350_364_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_350_364_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_350_364_Closed_Text.style.display='none'; Codehighlighter1_350_364_Open_Image.style.display='inline'; Codehighlighter1_350_364_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;write()&nbsp;</span><span id="Codehighlighter1_350_364_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_350_364_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_390_412_Open_Image" onclick="this.style.display='none'; Codehighlighter1_390_412_Open_Text.style.display='none'; Codehighlighter1_390_412_Closed_Image.style.display='inline'; Codehighlighter1_390_412_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_390_412_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_390_412_Closed_Text.style.display='none'; Codehighlighter1_390_412_Open_Image.style.display='inline'; Codehighlighter1_390_412_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;destroy()&nbsp;</span><span id="Codehighlighter1_390_412_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_390_412_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">.destroy();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
<img id="Codehighlighter1_532_536_Open_Image" onclick="this.style.display='none'; Codehighlighter1_532_536_Open_Text.style.display='none'; Codehighlighter1_532_536_Closed_Image.style.display='inline'; Codehighlighter1_532_536_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_532_536_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_532_536_Closed_Text.style.display='none'; Codehighlighter1_532_536_Open_Image.style.display='inline'; Codehighlighter1_532_536_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;</span><span id="Codehighlighter1_532_536_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_532_536_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
<img id="Codehighlighter1_657_1114_Open_Image" onclick="this.style.display='none'; Codehighlighter1_657_1114_Open_Text.style.display='none'; Codehighlighter1_657_1114_Closed_Image.style.display='inline'; Codehighlighter1_657_1114_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_657_1114_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_657_1114_Closed_Text.style.display='none'; Codehighlighter1_657_1114_Open_Image.style.display='inline'; Codehighlighter1_657_1114_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException,&nbsp;IOException&nbsp;</span><span id="Codehighlighter1_657_1114_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_657_1114_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;buffer&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 src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getReader();<br />
<img id="Codehighlighter1_816_844_Open_Image" onclick="this.style.display='none'; Codehighlighter1_816_844_Open_Text.style.display='none'; Codehighlighter1_816_844_Closed_Image.style.display='inline'; Codehighlighter1_816_844_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_816_844_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_816_844_Closed_Text.style.display='none'; Codehighlighter1_816_844_Open_Image.style.display='inline'; Codehighlighter1_816_844_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((line&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;reader.readLine())&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_816_844_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_816_844_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer.append(line);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(buffer.toString());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;json&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;JSONObject.fromObject(buffer.toString());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;responseText&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">username=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;json.getString(</span><span style="color: #000000">"</span><span style="color: #000000">username</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">&nbsp;password=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;json.getString(</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.getWriter().print(responseText);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1161_1165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1161_1165_Open_Text.style.display='none'; Codehighlighter1_1161_1165_Closed_Image.style.display='inline'; Codehighlighter1_1161_1165_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1161_1165_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1161_1165_Closed_Text.style.display='none'; Codehighlighter1_1161_1165_Open_Image.style.display='inline'; Codehighlighter1_1161_1165_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_1161_1165_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1161_1165_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
别忘了下载一些JAR文件，www.json.org中有详细的资料。
<img src ="http://www.blogjava.net/ghyghost/aggbug/270308.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2009-05-13 00:26 <a href="http://www.blogjava.net/ghyghost/archive/2009/05/13/270308.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax+JavaScript+DOM解析XML并动态创建table</title><link>http://www.blogjava.net/ghyghost/archive/2009/05/12/270299.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Tue, 12 May 2009 15:01:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2009/05/12/270299.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/270299.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2009/05/12/270299.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/270299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/270299.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;%&nbsp;@&nbsp;page&nbsp;</span><span style="color: #ff0000">language&nbsp;</span><span style="color: #0000ff">=&nbsp;"java"</span><span style="color: #ff0000">&nbsp;import&nbsp;</span><span style="color: #0000ff">=&nbsp;"java.util.*"</span><span style="color: #ff0000">&nbsp;pageEncoding&nbsp;</span><span style="color: #0000ff">=&nbsp;"utf-8"</span><span style="color: #ff0000">&nbsp;%&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">&nbsp;DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;html&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;head&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;meta&nbsp;</span><span style="color: #ff0000">http&nbsp;-&nbsp;equiv&nbsp;</span><span style="color: #0000ff">=&nbsp;"Content-Type"</span><span style="color: #ff0000">&nbsp;content&nbsp;</span><span style="color: #0000ff">=&nbsp;"text/html;&nbsp;charset=utf-8"</span><span style="color: #ff0000">&nbsp;/&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;script&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />var&nbsp;ajaxObject;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />function&nbsp;createAjax()<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;if&nbsp;(window.ActiveXObject)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajaxObject&nbsp;=&nbsp;new&nbsp;ActiveXObject("Microsoft.XMLHTTP");<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;else&nbsp;if(window.XMLHttpRequest)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ajaxObject&nbsp;=&nbsp;new&nbsp;XMLHttpRequest();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />function&nbsp;showText()<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;createAjax();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.onreadystatechange&nbsp;=&nbsp;backCall;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.open("GET",&nbsp;"userInfo.xml",&nbsp;true);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;ajaxObject.send(null);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />function&nbsp;backCall()<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;if&nbsp;(ajaxObject.readyState&nbsp;==&nbsp;4)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ajaxObject.status&nbsp;==&nbsp;200)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tableClear&nbsp;=&nbsp;document.getElementById("mytable").childNodes;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;tableClear</span><span style="color: #ff0000">.length;&nbsp;i&nbsp;++&nbsp;)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;temp&nbsp;</span><span style="color: #0000ff">=&nbsp;tableClear[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">document.getElementById("mytable").removeChild(temp);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;xmlString&nbsp;</span><span style="color: #0000ff">=&nbsp;ajaxObject.responseXML;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;beanString&nbsp;</span><span style="color: #0000ff">=&nbsp;xmlString.getElementsByTagName("bean")[0];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;className&nbsp;</span><span style="color: #0000ff">=&nbsp;beanString.getAttribute("class");<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">document.getElementById("className").innerText&nbsp;</span><span style="color: #0000ff">=&nbsp;document.getElementById("className").innerText&nbsp;</span><span style="color: #ff0000">+&nbsp;className;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;autowire&nbsp;</span><span style="color: #0000ff">=&nbsp;beanString.getAttribute("autowire");<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">document.getElementById("autowire").innerText&nbsp;</span><span style="color: #0000ff">=&nbsp;document.getElementById("autowire").innerText&nbsp;</span><span style="color: #ff0000">+&nbsp;autowire;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;propertyString&nbsp;</span><span style="color: #0000ff">=&nbsp;xmlString.getElementsByTagName("property")[0];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;propertyName&nbsp;</span><span style="color: #0000ff">=&nbsp;propertyString.getAttribute("name");<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">document.getElementById("property").innerText&nbsp;</span><span style="color: #0000ff">=&nbsp;document.getElementById("property").innerText&nbsp;</span><span style="color: #ff0000">+&nbsp;propertyName;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;propsString&nbsp;</span><span style="color: #0000ff">=&nbsp;xmlString.getElementsByTagName("props")[0];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;propString&nbsp;</span><span style="color: #0000ff">=&nbsp;propsString.getElementsByTagName("prop");<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">for(var&nbsp;i&nbsp;</span><span style="color: #0000ff">=&nbsp;0;&nbsp;</span><span style="color: #ff0000">i&nbsp;&lt;&nbsp;propString.length;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;++&nbsp;)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tempPropString&nbsp;</span><span style="color: #0000ff">=&nbsp;propString[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;newRow&nbsp;</span><span style="color: #0000ff">=&nbsp;document.getElementById("mytable").insertRow();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;mytd1&nbsp;</span><span style="color: #0000ff">=&nbsp;newRow.insertCell();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">var&nbsp;mytd2&nbsp;</span><span style="color: #0000ff">=&nbsp;&nbsp;newRow.insertCell();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">mytd1.innerHTML&nbsp;</span><span style="color: #0000ff">=&nbsp;tempPropString.getAttribute("key");<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">mytd2.innerHTML&nbsp;</span><span style="color: #0000ff">=&nbsp;tempPropString.childNodes[0].nodeValue;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&lt;&nbsp;/&nbsp;script&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;head&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;body&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;div&nbsp;</span><span style="color: #ff0000">id&nbsp;</span><span style="color: #0000ff">=&nbsp;"className"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />className&nbsp;:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;div&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;div&nbsp;</span><span style="color: #ff0000">id&nbsp;</span><span style="color: #0000ff">=&nbsp;"autowire"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />autowire&nbsp;:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;div&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;div&nbsp;</span><span style="color: #ff0000">id&nbsp;</span><span style="color: #0000ff">=&nbsp;"property"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />property&nbsp;:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;div&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;div&nbsp;</span><span style="color: #ff0000">id&nbsp;</span><span style="color: #0000ff">=&nbsp;"propertyName"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;div&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;div&nbsp;</span><span style="color: #ff0000">id&nbsp;</span><span style="color: #0000ff">=&nbsp;"mydiv"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;table&nbsp;</span><span style="color: #ff0000">id&nbsp;</span><span style="color: #0000ff">=&nbsp;"mytable"</span><span style="color: #ff0000">&nbsp;width&nbsp;</span><span style="color: #0000ff">=&nbsp;"90%"</span><span style="color: #ff0000">&nbsp;border&nbsp;</span><span style="color: #0000ff">=&nbsp;"1px"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;table&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;div&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;input&nbsp;</span><span style="color: #ff0000">type&nbsp;</span><span style="color: #0000ff">=&nbsp;"button"</span><span style="color: #ff0000">&nbsp;onclick&nbsp;</span><span style="color: #0000ff">=&nbsp;"showText()"</span><span style="color: #ff0000">&nbsp;value&nbsp;</span><span style="color: #0000ff">=&nbsp;"click&nbsp;me!"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />name&nbsp;</span><span style="color: #0000ff">=&nbsp;"button"</span><span style="color: #ff0000">&nbsp;/&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;body&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;/&nbsp;html&nbsp;</span><span style="color: #0000ff">&gt;</span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;beans&nbsp;PUBLIC&nbsp;"-//SPRING//DTD&nbsp;BEAN//EN"&nbsp;"&nbsp;http://www.springframework.org/dtd/spring-beans.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;管理触发器&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="org.springframework.scheduling.quartz.SchedulerFactoryBean"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;autowire</span><span style="color: #0000ff">="no"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="quartzProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="org.quartz.scheduler.instanceId"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instance_1<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="org.quartz.scheduler.rmi.export"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">false</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="org.quartz.scheduler.rmi.proxy"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">false</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="org.quartz.threadPool.class"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.quartz.simpl.SimpleThreadPool<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="org.quartz.threadPool.threadCount"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="org.quartz.jobStore.class"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.quartz.simpl.RAMJobStore<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span></div>
<img src ="http://www.blogjava.net/ghyghost/aggbug/270299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2009-05-12 23:01 <a href="http://www.blogjava.net/ghyghost/archive/2009/05/12/270299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Head First设计模式-QQ群号：23998319</title><link>http://www.blogjava.net/ghyghost/archive/2009/01/16/251547.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 16 Jan 2009 03:22:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2009/01/16/251547.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/251547.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2009/01/16/251547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/251547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/251547.html</trackback:ping><description><![CDATA[不对设计模式感兴趣的朋友就不要加了，感谢：）
<img src ="http://www.blogjava.net/ghyghost/aggbug/251547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2009-01-16 11:22 <a href="http://www.blogjava.net/ghyghost/archive/2009/01/16/251547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式-快餐简解-【抽象工厂模式-与-工厂方法模式区别】-网上抓文总结</title><link>http://www.blogjava.net/ghyghost/archive/2008/11/25/242531.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Tue, 25 Nov 2008 06:06:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/11/25/242531.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/242531.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/11/25/242531.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/242531.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/242531.html</trackback:ping><description><![CDATA[<p>　　最近网友一直在讨论这个问题，搜索引擎过后网上抓文总结如下：<br />
<br />
　　工厂方法UML图：<br />
　　<img alt="" src="http://www.blogjava.net/images/blogjava_net/ghyghost/35864/o_factory_method.gif" border="0" /><br />
　　抽象工厂UML图：<br />
　　<img alt="" src="http://www.blogjava.net/images/blogjava_net/ghyghost/35864/o_abstract_factory.gif" border="0" /><br />
<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
对于java来说，你能见到的大部分抽象工厂模式都是这样的： <br />
它的里面是一堆工厂方法，每个工厂方法返回某种类型的对象。 </p>
<p>比如说工厂可以生产鼠标和键盘。那么抽象工厂的实现类（它的某个具体子类）的对象都可以生产鼠标和键盘，但可能工厂A生产的是罗技的键盘和鼠标，工厂B是微软的。 </p>
<p>这样A和B就是工厂，对应于抽象工厂； <br />
每个工厂生产的鼠标和键盘就是产品，对应于工厂方法； </p>
<p>用了工厂方法模式，你替换生成键盘的工厂方法，就可以把键盘从罗技换到微软。但是用了抽象工厂模式，你只要换家工厂，就可以同时替换鼠标和键盘一套。如果你要的产品有几十个，当然用抽象工厂模式一次替换全部最方便（这个工厂会替你用相应的工厂方法） </p>
<p>所以说抽象工厂就像工厂，而工厂方法则像是工厂的一种产品生产线 <br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
&#8220;抽象工厂&#8221;模式依赖于&#8220;工厂方法&#8221;模式的。因此，抽象工厂强调的是前面的动词&#8220;抽象&#8221;，也就是说，你将工厂方法模式中的工厂方法抽象出来的那个"动作或设计"就是&#8220;抽象工程&#8221;模式了。<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
factory method针对的是一个产品等级结构&nbsp;&nbsp; <br />
abstract factory是面向多个产品等级结构的<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
工厂方法模式：一个抽象产品类，可以派生出多个具体产品类。&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个抽象工厂类，可以派生出多个具体工厂类。&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个具体工厂类只能创建一个具体产品类的实例。&nbsp; <br />
抽象工厂模式：多个抽象产品类，每个抽象产品类可以派生出多个具体产品类。&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个抽象工厂类，可以派生出多个具体工厂类。&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个具体工厂类可以创建多个具体产品类的实例。&nbsp; <br />
&nbsp;&nbsp; <br />
区别：工厂方法模式只有一个抽象产品类，而抽象工厂模式有多个。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工厂方法模式的具体工厂类只能创建一个具体产品类的实例，而抽象工厂模式可以创建多个。<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
&nbsp;&nbsp; 1.如果一个后花园只种蔬菜类,那么就用简单工厂就可以了. <br />
&nbsp;&nbsp; 2.如果后花园蔬菜品种繁多.得用工厂方法才可以,把共有的东西抽象出来. <br />
&nbsp;&nbsp; 3.如果要扩大后花园的规模,比如一个在北方,一个在南方,这样工厂方法就无法实现了,就应当用抽象工厂,把各种各样的植物,又组成一个后花园. <br />
所以我个人认为,简单工厂是一个工厂只生产一类的产品,面对的是具体的类,工厂方法是可以生产不同的产品,把公共的方法抽象出来,然后进行创建各种各样的产品.抽象工厂把几种产品划出共同的东西,把相互依赖的对象抽象出来,只要实现这些接口就可以得到不同的产品. <br />
具体例子: <br />
1.简单工厂: </p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;ICar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BMWCar&nbsp;:&nbsp;ICar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BMWCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BenzCar&nbsp;:&nbsp;ICar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BenzCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Driver&nbsp;<br />
{&nbsp;<br />
&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;ICar&nbsp;DriverCar(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;carType)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">&nbsp;(carType)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">BMWCar</span><span style="color: #000000">"</span><span style="color: #000000">:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BMWCar();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">BenzCar</span><span style="color: #000000">"</span><span style="color: #000000">:&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BenzCar();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">:&nbsp;</span><span style="color: #0000ff">throw</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Exception();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Client&nbsp;<br />
{&nbsp;<br />
&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()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ICar&nbsp;myCar&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Driver.DriverCar(</span><span style="color: #000000">"</span><span style="color: #000000">BenzCar</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myCar.run();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}</span></div>
<br />
心得:优点是只要实现共有的接口就可以实现不同车跑的方式.但缺点就是要判断哪一种车,造成要修改Driver 类<br />
2.工厂方法: <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;ICar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BMWCar&nbsp;:&nbsp;ICar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BMWCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BenzCar&nbsp;:&nbsp;ICar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BenzCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">abstract</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Driver&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">abstract</span><span style="color: #000000">&nbsp;ICar&nbsp;DriverCar();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BMWDriver&nbsp;:&nbsp;Driver&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;ICar&nbsp;&nbsp;&nbsp;DriverCar()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BMWCar();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
<br />
}&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BenzDriver&nbsp;:&nbsp;Driver&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;ICar&nbsp;DriverCar()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BenzCar();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Client&nbsp;<br />
{&nbsp;<br />
&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()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Driver&nbsp;myDriver&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BenzDriver();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ICar&nbsp;myCar&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myDriver.DriverCar();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myCar.run();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}</span></div>
<br />
<p>心得:优点是符合了开放-封闭原则(OCP),从整体上还看不出什么缺点.</p>
<p>3.抽象工厂: </p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;IBusinessCar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;ISportCar&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BMWBusinessCar&nbsp;:&nbsp;IBusinessCar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BMWCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BenzBusinessCar&nbsp;:&nbsp;IBusinessCar&nbsp;<br />
{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BenzBusinessCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BMWSportCar:ISportCar&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
{&nbsp;<br />
Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BMWSportCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BenzSportCar:ISportCar&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()&nbsp;<br />
{<br />
<br />
Console.WriteLine(</span><span style="color: #000000">"</span><span style="color: #000000">BenzSportCar&nbsp;run</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;IDriver&nbsp;<br />
{&nbsp;<br />
IBusinessCar&nbsp;BusinessCarDriver();&nbsp;<br />
ISportCar&nbsp;SportCarDriver();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BMWDriver:IDriver&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;IBusinessCar&nbsp;BusinessCarDriver()&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BMWBusinessCar();&nbsp;<br />
}&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;ISportCar&nbsp;SportCarDriver()&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BMWSportCar();&nbsp;<br />
}&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;BenzDriver:IDriver&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;IBusinessCar&nbsp;BusinessCarDriver()&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BenzBusinessCar();&nbsp;<br />
}&nbsp;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;ISportCar&nbsp;SportCarDriver()&nbsp;<br />
{&nbsp;<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BenzSportCar();&nbsp;<br />
}&nbsp;<br />
}<br />
<br />
<br />
</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Client&nbsp;<br />
{&nbsp;<br />
&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()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDriver&nbsp;myDriver&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BenzDriver();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ISportCar&nbsp;myCar&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myDriver.SportCarDriver();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myCar.run();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Read();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}</span></div>
<br />
<br />
心得:抽象方法似乎达到了完美境界.把开奔驰的司机和开宝马的司机的公共方法抽象出来,并对不同的司机创建不同的类,到时候不管是开什么车的司机随你添加.它们唯一的共同点都是开车.
<img src ="http://www.blogjava.net/ghyghost/aggbug/242531.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-11-25 14:06 <a href="http://www.blogjava.net/ghyghost/archive/2008/11/25/242531.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小孙这个小王八发给我的</title><link>http://www.blogjava.net/ghyghost/archive/2008/08/26/224475.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Tue, 26 Aug 2008 06:05:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/08/26/224475.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/224475.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/08/26/224475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/224475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/224475.html</trackback:ping><description><![CDATA[<p>Elminstre 14:02:54<br />
1，看看自己具有哪个大明星的脸型　http://www.play-analogia.com/cgi-bin/index/<br />
2，超有意思的Flash网站，虚拟办公　http://agencynet.com<br />
3，亲自动手给美女画纹身　http://www.crustydemons.co.uk/UK/tattoo_parlour/index.html<br />
4，输入文字就发出声音！　http://www.putonghuaonline.com<br />
&nbsp;只支持繁体中文，同时也是学习普通话和粤语的好地方<br />
5，在线做个通缉令　http://www.glassgiant.com/wanted/<br />
6，制作属于自己的卡通大头像吧　http://cartoon.msn.com.cn<br />
7，在你的照片上添加有趣对话　http://www.bubblesnaps.com<br />
8，这个网站提供各种有趣的在线拼图　http://www.thebroth.com<br />
9，很逼真！模仿XP系统操作的网站　http://www.kingnare.com<br />
10，原来制作带阴影的LOGO如此容易　http://msig.info/web2.php<br />
11，教你打领带　http://www.tieknot.com/dalingdai.html<br />
12，系鞋带的N种方法　http://www.fieggen.com/shoelace/lacingmethods.htm#2trillion<br />
13，咱也弄个自己的徽章玩玩　http://www.says-it.com/seal/index.php<br />
14，在线素描　http://flashface.ctapt.de<br />
15，各种动画图标制做　http://ajaxload.info<br />
16，各种字体图片制做　http://cooltext.com<br />
17，http://www.pollyglotto.com/index8.php<br />
超牛的语音翻译，输入文字里面的人自动给你以语音的形式翻译出来，有趣的是他眼睛跟你你鼠标转，遗憾的是不是免费的！<br />
18,你今天印书了么？免费将你的博客翻印成书　http://www.mrprint.cn/?UN=f1208b59454a9a744055&amp;ShowType=0<br />
19，做个德国身份证玩玩　http://onlinewahn.de/generator/<br />
20，自己做个图来让别人拼　http://www.flash-gear.com/puzzle/<br />
21，在线媒体提取工具　http://solor.cn<br />
22，DiY网络拼图　http://www.webpuzzle.cn<br />
23，2G网络硬盘，仿windows操作系统　http://www1.pc2n.com<br />
24.在线媒体转换工具　http://media-convert.com<br />
它支持大量的文件格式之间的互相转换，包括视频、音频、PPT文档、Word文档、表格文档、图片等等数十种之多。比如你可以把mp3转换成wav，把png转换成gif，把word文件转换成txt文件<br />
25.在线保存，分享和交流网页，博客，新闻　http://www.hinale.com<br />
为您的一篇文章嵌入Hinale按钮，更方便用户保存和交流您的文章<br />
26.blog 搜索引擎　http://www.gnoos.com.au<br />
27.[ ImageCrop ]　http://www.imagecrop.com<br />
功能相对简单，它其实是一款为MSN、Yahoo Messager等制作头像的剪裁工具，因此，它的特色在于内置了专用尺寸模板，比如MSN、论坛头像75&#215;75或85&#215;85的尺寸等等。当然也可以自定义大小。<br />
28.[ Online Image Editor ]　http://www.online-image-editor.com<br />
支持JPG、PNG、GIF及BMP格式的图像，具备可转换颜色模式，添加边框，转换图像格式等功能，内置10个滤镜效果。<br />
29.[ GifWorks ]Gif动画处理工具　http://gifworks.com<br />
可生成动画效果的文字，不过不支持中文。可编辑的图像格式只有Gif类型，允许上传最大单个文件为400K。具备30多种滤镜效果、3 种优化工具及旋转、剪裁等常用图像编辑功能<br />
30.[ Colorcombos ]　http://www.colorcombos.com<br />
是一个网页配色自动探测工具，你只需输入网站地点，它就会帮你把该网站当前的网页配色方案展示出来，并提供相应的色值<br />
31.[ PhotoShow ]　http://www.photoshow.com<br />
是一个新型的图片展示服务，利用Flash技术构建。事实上，也可以把它当作如<br />
[ ibloks ] http://www.wappblog.com/entry/200.html<br />
[ Eyespot ] http://www.wappblog.com/entry/108.html<br />
等这样的混合工具，它可把图片及音乐混合，做成一段效果非常酷的流媒体。<br />
32.[ Imagesquash ]　http://www.imagesquash.com<br />
又是一个图片转换工具，它可以根据按上传图片大小的百分比进行缩小，可转换图片格式为Jpeg、Gif及PNG，可改变图片质量。<br />
33.[ 在线ping你的博客 ]　http://pingoat.com<br />
34.[ iBloks ]　是一个多媒体混合工具，它能把照片及音乐混合成一段视频http://www.ibloks.com<br />
35.[ Web2.0 STYLr ]　是一个web2.0 Logo制作工具http://web2.0stylr.com/stylr.aspx<br />
36.[ Web2.0 Logo Creator ]　http://msig.info/web2.php<br />
是一个专门用来制作web2.0网站logo的在线工具，制作出的logo具备了几个web2.0元素，比如倒影、beta标志等等，在有些地方可能不能打开这个网站，可以去http://www.cnproxy.com/webproxy.asp，通过代理打开！！<br />
37.爱因斯坦写汉字　http://www.sbfun.org/einstein/index.php<br />
38.[ Crusty Demons ]　http://www.crustydemons.co.uk/UK/tattoo_parlour/index.html]<br />
是一个在线的纹身视频制作工具，可自定义纹身图案、文字内容和纹身位置，完成后会生成一段视频，并且可下载图片或者发送给朋友<br />
39.[ Ponyfish ]　http://www.ponyfish.com<br />
是一个在线Feed创建工具<br />
40.[ SubAdjust-Web ]　http://dev.pdvel.com/subadjust/index.php<br />
是一个用来调整DVD字幕的在线工具，你可以通过<br />
[ SubAdjust-Web ]　http://dev.pdvel.com/subadjust/index.php<br />
来调整DIVX字幕的时间，以便使其与DVD视频同步，另外还可以用来在SubRip和MirroDVD字幕两种格式之间互换。<br />
41.在线favicon图标制作　http://tools.dynamicdrive.com/favicon/<br />
42.[ converticon.com ]　http://converticon.com<br />
是一个在线ico文件和png文件互相转化工具<br />
43.[ krun.ch ]　http://krun.ch<br />
提供了本地文件和网络文件的压缩和解压四种功能，压缩或解压缩后的文件可以下载到本地。另外它提供了zip、rar和gzip压缩文件格式供选择<br />
44.[ 在线做个徽章 ]　http://www.says-it.com/seal/index.php<br />
45.在这里，你可以在线做个以自己照片做硬币人物的硬币图片，好酷哦！！<br />
http://onlinewahn.de/generator/m-maker.htm<br />
46.想想自己的照片被外文报纸刊登在头版头条该是多么风光，在这里就可以轻松实现　http://onlinewahn.de/generator/z-maker.htm<br />
47.一个在线生成flash菜单的网站，对站长很有帮助.　http://www.hostsun.com/gr/flash_generators.php<br />
48.对有些做了IP限制的网站，可能无法访问，可以使用这个代理访问.　http://www.cnproxy.com<br />
49.在线图片处理，网通　http://www.iephotoshop.com<br />
　电信　http://www1.iephotoshop.com<br />
50.你可以制作出很有专业水准的动态logo，有很多的样式供你选择 http://www.logomaker.cn<br />
Elminstre 14:03:06<br />
51.Flash头像　http://www.dookyweb.com/avatars.swf<br />
52.印象派涂鸦板　http://jacksonpollock.org<br />
53.在线网页截屏工具，在浏览器地址栏输入下面的代码就可以了。<br />
http://images.websnapr.com/?url=thw.568idc.com红色部分换成你想要截的网页的地址<br />
54.另外两个好用在线网页截屏工具　http://www.browsrcamp.com/　和　http://snap.otag.cn/screenshot.aspx<br />
55.可以突破网吧的下载限制进行下载　http://thw.568idc.com/serve/xiazai.html<br />
56.跳转FLASH生成工具　http://www.dfxy.org/tiao/<br />
57.[krun.ch]　http://krun.ch<br />
是一个在线压缩工具，它提供了本地文件上传压缩和解压、网络文件的压缩和解压四种功能，压缩或解压缩后的文件可以下载到本地或者通过Email发送。另外它提供了zip、rar和gzip压缩文件格式供选择。<br />
58.在线生成纯css代码实现的圆角矩形的网站,对网站制作者很有用的东西http://www.spiffycorners.com<br />
59.itfontMaker——字体制作　http://pentacom.jp/soft/ex/font/edit.html<br />
60.钱币生成器http://www.onlinewahn.de/generator/m-maker.htm<br />
61.图片仓库 http://pic.sdodo.com/<br />
61.1.图片缩放裁切工具http://pic.sdodo.com/tool/picadjust/<br />
61.2.大头贴DIY工具　http://pic.sdodo.com/tool/hphoto/<br />
61.3.给图片加字工具http://pic.sdodo.com/tool/addword/<br />
61.4.邮箱地址小图标工具　http://pic.sdodo.com/tool/mailpic/<br />
61.5.给图片加小标签　http://pic.sdodo.com/tool/piclabel/<br />
62.在线FLASH动画制作http://www.dfilm.com/index_movie_start.html<br />
63.图片生成网页图标　http://www.chami.com/html-kit/services/favicon/<br />
64.由蝌蚪网络提供的Gmail注册入口http://cnc.kedooo.net/gmail/<br />
65.最全的邮件 /MSN/BLOG图片生成器　http://www.eoool.com/<br />
66.收藏夹图标生成器　http://www.html-kit.com/e/favicon.cgi<br />
67.在线域名LOGO生成http://phorum.com.tw/Generator.aspx<br />
68.免费3D banner在线制做网站　http://www.3dtextmaker.com/cgi-bin/3dtext.pl<br />
69.输入图片就能查看字体http://www.myfonts.com/WhatTheFont<br />
70.sitemap网站地图制作工具http://www.seo.net.cn/sitemap/<br />
71.检测空间商好坏的方法　http://uptime.netcraft.com/up/<br />
72.查看该域名IP主机下的其他域名http://whois.webhosting.info/<br />
73.生成email图片http://www.nhacks.com/email/index.php<br />
74.世界网络里面有很多不错的测试http://www.linkwan.com/gb/broadmeter<br />
75.几个大城市的地图搜索　http://map.zhongsou.com<br />
76.图片标签快速生成工具　http://www.eoool.com/<br />
77.查询在google所有服务器中的PR值　http://www.iwebtool.com/pagerank_checker?domain=www.chinayoob.com<br />
78.免费加入140个搜索引擎http://freehosting.hostrave.com/p/ledbetter/submitware/index.php<br />
79.在线生成多种样式的LOGO　http://sherlocco.com/create.asp<br />
80.街道路牌签名生成器http://www.streetsigngenerator.com/<br />
81.blog标签图片80&#215;15/80&#215;31制作　http://button.blogflux.com/<br />
82.在线生成漫画小图像的站http://www.abi-station.com/tchinese/<br />
83.生成邮址图片\条形码生成\印章http://www.makepic.com/<br />
84.QQ在线状态代码生成　http://is.qq.com/webpresence/code.shtml<br />
85.身份证号码在线生成器-韩国/台湾　http://i972.net/~gen/<br />
86.条形码在线生成器http://www.gzbonny.com/asp/barcode.asp<br />
87.聊天工具在线状态生成器http://www.onlinestatus.org/usage.php<br />
88.在线字体生成工具　http://www.youmade.com/font/<br />
89.LOGO在线制作　http://www.logomaker.cn/<br />
90.在线制作卡通头像　http://cartoon.msn.com.cn/<br />
91.网站综合信息查询http://www.webmasterhome.cn/<br />
92.在线制作按钮(多种款式)http://www.buttonator.com<br />
93.在线建立您的Web 2.0网站LOGO　http://web2.0stylr.com<br />
94.在线生成彩字(爱狗狗吧)　http://www.igogo8.com/<br />
95.live个性图标在线制作　http://linux-fans.com/email/live/live.php<br />
96.在线(IE版)图像处理工具　http://www1.iephotoshop.com/<br />
97.ajax载入效果　http://ajaxload.info/<br />
98.报纸头条图片生成器　http://www.onlinewahn.de/generator/z-maker.htm<br />
99.杂志封面生成器　http://www.funonit.com/funny_jokes/fake_magazine<br />
100.MD5加密破解查询　http://www.md5.org.cn/<br />
101.网站历史页面查询　http://www.archive.org/web/web.php<br />
102.批量查询未注册域名　http://www.moniker.com/domains/batch_reg.jsp<br />
103.Javascript与html互转工具　http://www.jz123.cn/js.html<br />
104.昆虫网——来自大自然的声音 http://resource.kpcn.org/kctp/index.htm<br />
105.透明FLASH——flash素材 http://www.leiyu668.com/flash/transparent<br />
106.能连续拍摄25张视频照片的网站 http://www.25shots.com/v2/<br />
107.徐志摩诗文网——好诗的人有福了 http://www.xzmsw.com/</p>
<p>108.晚饭花——和所有朋友保持联系！ http://www.wanfanhua.com/</p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/224475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-08-26 14:05 <a href="http://www.blogjava.net/ghyghost/archive/2008/08/26/224475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2ME中的TextBox实例</title><link>http://www.blogjava.net/ghyghost/archive/2008/06/18/208966.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 18 Jun 2008 11:03:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/06/18/208966.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/208966.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/06/18/208966.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/208966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/208966.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt">留个纪念：<br />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff"><span style="font-size: 12pt">package</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;j2me;<br />
<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Command;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.CommandListener;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Display;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Displayable;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.List;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.TextBox;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.TextField;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.midlet.MIDlet;<br />
</span><span style="color: #0000ff">import</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.midlet.MIDletStateChangeException;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;j2me1&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;MIDlet&nbsp;</span><span style="color: #0000ff">implements</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;CommandListener&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Display&nbsp;display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="font-size: 12pt"><span style="color: #000000">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;j2me1()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub</span></span><span style="color: #008000"><br />
</span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;destroyApp(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;arg0)&nbsp;</span><span style="color: #0000ff">throws</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;MIDletStateChangeException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span></span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
<span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt"><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;pauseApp()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span></span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
<span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12pt"><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;startApp()&nbsp;</span><span style="color: #0000ff">throws</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;MIDletStateChangeException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Display.getDisplay(</span><span style="color: #0000ff">this</span></span><span style="font-size: 12pt"><span style="color: #000000">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextBox&nbsp;edit&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TextBox(</span><span style="color: #000000">"</span><span style="color: #000000">edit&nbsp;tile</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">10</span></span><span style="font-size: 12pt"><span style="color: #000000">,&nbsp;TextField.ANY);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">最大值是：</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span></span><span style="font-size: 12pt"><span style="color: #000000">&nbsp;edit.getMaxSize());<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edit.addCommand(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Command(</span><span style="color: #000000">"</span><span style="color: #000000">确定</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Command.OK,&nbsp;</span><span style="color: #000000">1</span></span><span style="font-size: 12pt"><span style="color: #000000">));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edit.setCommandListener(</span><span style="color: #0000ff">this</span></span><span style="font-size: 12pt"><span style="color: #000000">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.setCurrent(edit);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span><span style="color: #000000"><span style="font-size: 12pt">&nbsp;commandAction(Command&nbsp;command,&nbsp;Displayable&nbsp;displayable)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(((TextBox)&nbsp;displayable).getString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></span></div>
<img src ="http://www.blogjava.net/ghyghost/aggbug/208966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-06-18 19:03 <a href="http://www.blogjava.net/ghyghost/archive/2008/06/18/208966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2ME中的List实例</title><link>http://www.blogjava.net/ghyghost/archive/2008/06/18/208964.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 18 Jun 2008 10:56:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/06/18/208964.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/208964.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/06/18/208964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/208964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/208964.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt">&nbsp;留个纪念：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 10pt; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff"><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">package</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;j2me;<br />
<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;java.io.IOException;<br />
<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Choice;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Command;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.CommandListener;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Display;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Displayable;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.Image;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.lcdui.List;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.midlet.MIDlet;<br />
</span><span style="color: #0000ff">import</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;javax.microedition.midlet.MIDletStateChangeException;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;j2me1&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;MIDlet&nbsp;</span><span style="color: #0000ff">implements</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;CommandListener&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Display&nbsp;display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;j2me1()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub</span></span></span></span><span style="color: #008000"><br />
</span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;destroyApp(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;arg0)&nbsp;</span><span style="color: #0000ff">throws</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;MIDletStateChangeException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span></span></span></span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
<span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;pauseApp()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span></span></span></span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
<span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;startApp()&nbsp;</span><span style="color: #0000ff">throws</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;MIDletStateChangeException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Display.getDisplay(</span><span style="color: #0000ff">this</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #008000">&nbsp;Form&nbsp;form&nbsp;=&nbsp;new&nbsp;Form("标题");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #008000">&nbsp;form.setTicker(new&nbsp;Ticker("我的ticker"));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #008000">&nbsp;form.addCommand(new&nbsp;Command("提交",&nbsp;"提交长",&nbsp;Command.OK,&nbsp;1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #008000">&nbsp;form.addCommand(new&nbsp;Command("取消",&nbsp;"取消长",&nbsp;Command.BACK,&nbsp;1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;form.setCommandListener(new&nbsp;j2me1_commandlistener_impl());</span></span></span></span><span style="color: #008000"><br />
</span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Image.createImage(</span><span style="color: #000000">"</span><span style="color: #000000">/res/new.PNG</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;(IOException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</span></span></span></span><span style="color: #008000"><br />
</span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;List(</span><span style="color: #000000">"</span><span style="color: #000000">ghyghost's&nbsp;list</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">,&nbsp;Choice.MULTIPLE);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.append(</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">,&nbsp;img);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.append(</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">,&nbsp;img);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.append(</span><span style="color: #000000">"</span><span style="color: #000000">3</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">,&nbsp;img);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.append(</span><span style="color: #000000">"</span><span style="color: #000000">4</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">,&nbsp;img);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.setSelectedIndex(</span><span style="color: #000000">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">true</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.addCommand(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Command(</span><span style="color: #000000">"</span><span style="color: #000000">提交</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">提交长</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Command.OK,&nbsp;</span><span style="color: #000000">1</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.setCommandListener(</span><span style="color: #0000ff">this</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.setCurrent(list);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;commandAction(Command&nbsp;command,&nbsp;Displayable&nbsp;displayable)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(command&nbsp;</span><span style="color: #000000">==</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;List.SELECT_COMMAND)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">c&nbsp;==&nbsp;List.SELECT_COMMAND</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(command.getLabel());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">index&nbsp;=</span><span style="color: #000000">"</span></span></span></span><span style="color: #000000"><br />
<span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="color: #000000"><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">+</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;((List)&nbsp;displayable).getSelectedIndex());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">String&nbsp;=</span><span style="color: #000000">"</span></span></span></span><span style="color: #000000"><br />
<span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="color: #000000"><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">+</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;((List)&nbsp;displayable).getString(((List)&nbsp;displayable)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getSelectedIndex()));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">else</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">button&nbsp;click</span><span style="color: #000000">"</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">button&nbsp;name&nbsp;is：</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;command.getLabel());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(command.getLabel());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">index&nbsp;=</span><span style="color: #000000">"</span></span></span></span><span style="color: #000000"><br />
<span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="color: #000000"><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">+</span></span></span></span><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;((List)&nbsp;displayable).getSelectedIndex());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">String&nbsp;=</span><span style="color: #000000">"</span></span></span></span><span style="color: #000000"><br />
<span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="color: #000000"><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">+</span></span></span></span><span style="color: #000000"><span style="font-size: 8pt"><span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;((List)&nbsp;displayable).getString(((List)&nbsp;displayable)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getSelectedIndex()));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></span></span></span></div>
<img src ="http://www.blogjava.net/ghyghost/aggbug/208964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-06-18 18:56 <a href="http://www.blogjava.net/ghyghost/archive/2008/06/18/208964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的double相加的怪事</title><link>http://www.blogjava.net/ghyghost/archive/2008/06/16/208309.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Mon, 16 Jun 2008 05:50:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/06/16/208309.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/208309.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/06/16/208309.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/208309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/208309.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt">标题 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 在Java中实现浮点数的精确计算 &nbsp; &nbsp; &nbsp; &nbsp; AYellow（原作） &nbsp; 修改 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; 关键字 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Java &nbsp; 浮点数 &nbsp; 精确计算 &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 问题的提出：&nbsp;&nbsp;&nbsp;<br />
<clk>&nbsp; 编译运行下面这个程序会看到什么？ &nbsp; </clk><br />
&nbsp; public &nbsp; class &nbsp; Test{ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; void &nbsp; main(String &nbsp; args[]){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(0.05+0.01); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(1.0-0.42); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(4.015*100); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(123.3/100); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; }; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 你没有看错！结果确实是 &nbsp; <br />
&nbsp; 0.060000000000000005 &nbsp; <br />
&nbsp; 0.5800000000000001 &nbsp; <br />
&nbsp; 401.49999999999994 &nbsp; <br />
&nbsp; 1.2329999999999999 &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; Java中的简单浮点数类型float和double不能够进行运算。不光是Java，在其它很多编程语言中也有这样的问题。在大多数情况下，计算的结果是准确的，但是多试几次（可以做一个循环）就可以试出类似上面的错误。现在终于理解为什么要有BCD码了。 &nbsp; <br />
&nbsp; 这个问题相当严重，如果你有9.999999999999元，你的计算机是不会认为你可以购买10元的商品的。 &nbsp; <br />
&nbsp; 在有的编程语言中提供了专门的货币类型来处理这种情况，但是Java没有。现在让我们看看如何解决这个问题。 &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 四舍五入 &nbsp; <br />
&nbsp; 我们的第一个反应是做四舍五入。Math类中的round方法不能设置保留几位小数，我们只能象这样（保留两位）： &nbsp; <br />
&nbsp; public &nbsp; double &nbsp; round(double &nbsp; value){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; Math.round(value*100)/100.0; &nbsp; <br />
&nbsp; } &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 非常不幸，上面的代码并不能正常工作，给这个方法传入4.015它将返回4.01而不是4.02，如我们在上面看到的 &nbsp; <br />
&nbsp; 4.015*100=401.49999999999994 &nbsp; <br />
&nbsp; 因此如果我们要做到精确的四舍五入，不能利用简单类型做任何运算 &nbsp; <br />
&nbsp; java.text.DecimalFormat也不能解决这个问题： &nbsp; <br />
&nbsp; System.out.println(new &nbsp; java.text.DecimalFormat("0.00").format(4.025)); &nbsp; <br />
&nbsp; 输出是4.02 &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; BigDecimal &nbsp; <br />
&nbsp; 在《Effective &nbsp; Java》这本书中也提到这个原则，float和double只能用来做科学计算或者是工程计算，在商业计算中我们要用java.math.BigDecimal。BigDecimal一共有4个够造方法，我们不关心用BigInteger来够造的那两个，那么还有两个，它们是： &nbsp; <br />
&nbsp; BigDecimal(double &nbsp; val) &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Translates &nbsp; a &nbsp; double &nbsp; into &nbsp; a &nbsp; BigDecimal. &nbsp; &nbsp; <br />
&nbsp; BigDecimal(String &nbsp; val) &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Translates &nbsp; the &nbsp; String &nbsp; repre &nbsp; sentation &nbsp; of &nbsp; a &nbsp; BigDecimal &nbsp; into &nbsp; a &nbsp; BigDecimal. &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 上面的API简要描述相当的明确，而且通常情况下，上面的那一个使用起来要方便一些。我们可能想都不想就用上了，会有什么问题呢？等到出了问题的时候，才发现上面哪个够造方法的详细说明中有这么一段： &nbsp; <br />
&nbsp; Note: &nbsp; the &nbsp; results &nbsp; of &nbsp; this &nbsp; constructor &nbsp; can &nbsp; be &nbsp; somewhat &nbsp; unpredictable. &nbsp; One &nbsp; might &nbsp; assume &nbsp; that &nbsp; new &nbsp; BigDecimal(.1) &nbsp; is &nbsp; exactly &nbsp; equal &nbsp; to &nbsp; .1, &nbsp; but &nbsp; it &nbsp; is &nbsp; actually &nbsp; equal &nbsp; to &nbsp; .1000000000000000055511151231257827021181583404541015625. &nbsp; This &nbsp; is &nbsp; so &nbsp; because &nbsp; .1 &nbsp; cannot &nbsp; be &nbsp; represented &nbsp; exactly &nbsp; as &nbsp; a &nbsp; double &nbsp; (or, &nbsp; for &nbsp; that &nbsp; matter, &nbsp; as &nbsp; a &nbsp; binary &nbsp; fraction &nbsp; of &nbsp; any &nbsp; finite &nbsp; length). &nbsp; Thus, &nbsp; the &nbsp; long &nbsp; value &nbsp; that &nbsp; is &nbsp; being &nbsp; passed &nbsp; in &nbsp; to &nbsp; the &nbsp; constructor &nbsp; is &nbsp; not &nbsp; exactly &nbsp; equal &nbsp; to &nbsp; .1, &nbsp; appearances &nbsp; nonwithstanding. &nbsp; &nbsp; <br />
&nbsp; The &nbsp; (String) &nbsp; constructor, &nbsp; on &nbsp; the &nbsp; other &nbsp; hand, &nbsp; is &nbsp; perfectly &nbsp; predictable: &nbsp; new &nbsp; BigDecimal(".1") &nbsp; is &nbsp; exactly &nbsp; equal &nbsp; to &nbsp; .1, &nbsp; as &nbsp; one &nbsp; would &nbsp; expect. &nbsp; Therefore, &nbsp; it &nbsp; is &nbsp; generally &nbsp; recommended &nbsp; that &nbsp; the &nbsp; (String) &nbsp; constructor &nbsp; be &nbsp; used &nbsp; in &nbsp; preference &nbsp; to &nbsp; this &nbsp; one. &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 原来我们如果需要精确计算，非要用String来够造BigDecimal不可！在《Effective &nbsp; Java》一书中的例子是用String来够造BigDecimal的，但是书上却没有强调这一点，这也许是一个小小的失误吧。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 解决方案 &nbsp; <br />
&nbsp; 现在我们已经可以解决这个问题了，原则是使用BigDecimal并且一定要用String来够造。 &nbsp; <br />
&nbsp; 但是想像一下吧，如果我们要做一个加法运算，需要先将两个浮点数转为String，然后够造成BigDecimal，在其中一个上调用add方法，传入另一个作为参数，然后把运算的结果（BigDecimal）再转换为浮点数。你能够忍受这么烦琐的过程吗？下面我们提供一个工具类Arith来简化操作。它提供以下静态方法，包括加减乘除和四舍五入： &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; double &nbsp; add(double &nbsp; v1,double &nbsp; v2) &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; double &nbsp; sub(double &nbsp; v1,double &nbsp; v2) &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; double &nbsp; mul(double &nbsp; v1,double &nbsp; v2) &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; double &nbsp; div(double &nbsp; v1,double &nbsp; v2) &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; double &nbsp; div(double &nbsp; v1,double &nbsp; v2,int &nbsp; scale) &nbsp; <br />
&nbsp; public &nbsp; static &nbsp; double &nbsp; round(double &nbsp; v,int &nbsp; scale) &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 附录 &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; 源文件Arith.java： &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; import &nbsp; java.math.BigDecimal; &nbsp; <br />
&nbsp; /** &nbsp; <br />
&nbsp; &nbsp; * &nbsp; 由于Java的简单类型不能够精确的对浮点数进行运算，这个工具类提供精 &nbsp; <br />
&nbsp; &nbsp; * &nbsp; 确的浮点数运算，包括加减乘除和四舍五入。 &nbsp; <br />
&nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; public &nbsp; class &nbsp; Arith{ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //默认除法运算精度 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; private &nbsp; static &nbsp; final &nbsp; int &nbsp; DEF_DIV_SCALE &nbsp; = &nbsp; 10; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //这个类不能实例化 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; private &nbsp; Arith(){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /** &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 提供精确的加法运算。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v1 &nbsp; 被加数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v2 &nbsp; 加数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @return &nbsp; 两个参数的和 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; double &nbsp; add(double &nbsp; v1,double &nbsp; v2){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b1 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v1)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b2 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v2)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; b1.add(b2).doubleValue(); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /** &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 提供精确的减法运算。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v1 &nbsp; 被减数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v2 &nbsp; 减数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @return &nbsp; 两个参数的差 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; double &nbsp; sub(double &nbsp; v1,double &nbsp; v2){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b1 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v1)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b2 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v2)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; b1.subtract(b2).doubleValue(); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /** &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 提供精确的乘法运算。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v1 &nbsp; 被乘数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v2 &nbsp; 乘数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @return &nbsp; 两个参数的积 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; double &nbsp; mul(double &nbsp; v1,double &nbsp; v2){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b1 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v1)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b2 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v2)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; b1.multiply(b2).doubleValue(); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /** &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 提供（相对）精确的除法运算，当发生除不尽的情况时，精确到 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 小数点以后10位，以后的数字四舍五入。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v1 &nbsp; 被除数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v2 &nbsp; 除数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @return &nbsp; 两个参数的商 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; double &nbsp; div(double &nbsp; v1,double &nbsp; v2){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; div(v1,v2,DEF_DIV_SCALE); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /** &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 提供（相对）精确的除法运算。当发生除不尽的情况时，由scale参数指 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 定精度，以后的数字四舍五入。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v1 &nbsp; 被除数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v2 &nbsp; 除数 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; scale &nbsp; 表示表示需要精确到小数点以后几位。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @return &nbsp; 两个参数的商 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; double &nbsp; div(double &nbsp; v1,double &nbsp; v2,int &nbsp; scale){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(scale&lt;0){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw &nbsp; new &nbsp; IllegalArgumentException( &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "The &nbsp; scale &nbsp; must &nbsp; be &nbsp; a &nbsp; positive &nbsp; integer &nbsp; or &nbsp; zero"); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b1 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v1)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b2 &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v2)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /** &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; 提供精确的小数位四舍五入处理。 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; v &nbsp; 需要四舍五入的数字 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @param &nbsp; scale &nbsp; 小数点后保留几位 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * &nbsp; @return &nbsp; 四舍五入后的结果 &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; */ &nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public &nbsp; static &nbsp; double &nbsp; round(double &nbsp; v,int &nbsp; scale){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(scale&lt;0){ &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw &nbsp; new &nbsp; IllegalArgumentException( &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "The &nbsp; scale &nbsp; must &nbsp; be &nbsp; a &nbsp; positive &nbsp; integer &nbsp; or &nbsp; zero"); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; b &nbsp; = &nbsp; new &nbsp; BigDecimal(Double.toString(v)); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BigDecimal &nbsp; one &nbsp; = &nbsp; new &nbsp; BigDecimal("1"); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; <br />
&nbsp; };&nbsp;&nbsp; <br />
</span>
<img src ="http://www.blogjava.net/ghyghost/aggbug/208309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-06-16 13:50 <a href="http://www.blogjava.net/ghyghost/archive/2008/06/16/208309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2ME术语</title><link>http://www.blogjava.net/ghyghost/archive/2008/06/14/207873.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Sat, 14 Jun 2008 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/06/14/207873.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/207873.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/06/14/207873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/207873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/207873.html</trackback:ping><description><![CDATA[<p>ITU：International Triathlon Union 国际电信联盟</p>
<p>PDA：personal digital assistant 个人数字助理</p>
<p>3G：3rd Generation 第3代数字通信</p>
<p>J2ME：Java 2 Platform Micro Edition JAVA2平台微型版本</p>
<p>JCP：Java Community Process JAVA社区组织</p>
<p>JSR：Java Specification Requests JAVA规范请求</p>
<p>TCK：Technology Compatibility Kit 兼容性测试包</p>
<p>CLDC:Connected Limited Device Configuration 连接有限设备配置</p>
<p>GPS：Global Positioning System 全球定位系统</p>
<p>CDC：Connected Device Configuration 连接设备配置</p>
<p>CVM：C Virtual Machine C虚拟机</p>
<p>KVM：K Virtual Machine K虚拟机</p>
<p>LCDUI：Limited Configuration Device UI 有限配置设备用户界面</p>
<p>WTK：Wireless Toolkit 无线开发包</p>
<p>MIDP：Mobile Information Device Profile 移动信息设备配置文件(简表)</p>
<p>JTWI：Java Technology for the Wireless Industry 无线工业JAVA标准</p>
<p>WAP：Wireless Application Protocol 无线应用协议</p>
<p>OTA：Over-the-Air 空中下载</p>
<p>AMS：application management software 应用管理器</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/207873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-06-14 13:54 <a href="http://www.blogjava.net/ghyghost/archive/2008/06/14/207873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA&amp;J2EE FAQ[转]很好的教学资料</title><link>http://www.blogjava.net/ghyghost/archive/2008/05/23/202400.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 23 May 2008 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/05/23/202400.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/202400.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/05/23/202400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/202400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/202400.html</trackback:ping><description><![CDATA[<div class="blog_content" style="font-size: 8pt">
<p>Java FAQ <br />
&nbsp;<br />
目录：<br />
Q1.1 什么是Java、Java2、JDK？JDK后面的1.3、1.4版本号又是怎么回事？<br />
Q1.2 什么是JRE/J2RE？<br />
Q1.3 学习Java用什么工具比较好？<br />
Q1.4&nbsp; 学习Java有哪些好的参考书？<br />
Q1.5&nbsp; Java和C++哪个更好？<br />
Q1.6&nbsp; 什么是J2SE/J2EE/J2ME？<br />
Q2.1&nbsp; 我写了第一个Java程序，应该如何编译/运行？<br />
Q2.2&nbsp; 我照你说的做了，但是出现什么&#8220;'javac' 不是内部或外部命令，也不是可运行的<br />
程序或批处理文件。&#8221;。<br />
Q2.3&nbsp; 环境变量怎么设置？<br />
Q2.4&nbsp; 我在javac xxx.java的时候显示什么&#8220;unreported exception java.io.IOExcepti<br />
on;&#8221;。<br />
Q2.5&nbsp; javac xxx.java顺利通过了，但是java xxx的时候显示什么&#8220;NoClassDefFoundErr<br />
or&#8221;。<br />
Q2.6&nbsp; 我在java xxx的时候显示&#8220;Exception in thread "main" java.lang.NoSuchMetho<br />
dError: main&#8221;。<br />
Q2.7&nbsp; 在java xxx的时候显示&#8220;Exception in thread "main" java.lang.NullPointerEx<br />
ception&#8221;。<br />
Q2.8 package是什么意思？怎么用？<br />
Q2.9 我没有声明任何package会怎么样？<br />
Q2.10 在一个类中怎么使用其他类？<br />
Q2.11 我用了package的时候显示"NoClassDefFoundError"，但是我把所有package去掉的<br />
时候能正常运行。<br />
Q2.12 我想把java编译成exe文件，该怎么做？<br />
Q2.13 我在编译的时候遇到什么"deprecated API"，是什么意思？<br />
Q3.1 我怎么给java程序加启动参数，就像dir /p/w那样？<br />
Q3.2 我怎么从键盘输入一个int/double/字符串？<br />
Q3.3 我怎么输出一个int/double/字符串？<br />
Q3.4 我发现有些书上直接用System.in输入，比你要简单得多。<br />
Q3.5 我怎么从文件输入一个int/double/字符串？<br />
Q3.6 我想读写文件的指定位置，该怎么办？<br />
Q3.7 怎么判断要读的文件已经到了尽头？<br />
Q4.1&nbsp; java里面怎么定义宏？<br />
Q4.2&nbsp; java里面没法用const。<br />
Q4.3&nbsp; java里面也不能用goto。<br />
Q4.4&nbsp; java里面能不能重载操作符？<br />
Q4.5&nbsp; 我new了一个对象，但是没法delete掉它。<br />
Q4.6&nbsp; 我想知道为什么main方法必须被声明为public static？为什么在main方法中不能调<br />
用非static成员？<br />
Q4.7&nbsp; throw和throws有什么不同？<br />
Q4.8&nbsp; 什么是异常？<br />
Q4.9&nbsp; final和finally有什么不同？<br />
Q5.1&nbsp; extends和implements有什么不同？<br />
Q5.2&nbsp; java怎么实现多继承？<br />
Q5.3 abstract是什么？<br />
Q5.4 public,protected,private有什么不同？<br />
Q5.5 Override和Overload有什么不同？<br />
Q5.6 我继承了一个方法，但现在我想调用在父类中定义的方法。<br />
Q5.7 我想在子类的构造方法中调用父类的构造方法，该怎么办？<br />
Q5.8 我在同一个类中定义了好几个构造方法并且想在一个构造方法中调用另一个。<br />
Q5.9 我没有定义构造方法会怎么样？<br />
Q5.10 我调用无参数的构造方法失败了。<br />
Q5.11 我该怎么定义类似于C++中的析构方法（destructor）？<br />
Q5.12 我想将一个父类对象转换成一个子类对象该怎么做？<br />
Q5.13 其实我不确定a是不是B的实例，能不能分情况处理？<br />
Q5.14 我在方法里修改了一个对象的值，但是退出方法后我发现这个对象的值没变！<br />
Q6.1 java能动态分配数组吗？<br />
Q6.2 我怎么知道数组的长度？<br />
Q6.3 我还想让数组的长度能自动改变，能够增加/删除元素。<br />
Q&nbsp;&nbsp;&nbsp;&nbsp; 什么是链表？为什么要有ArrayList和LinkedList两种List？<br />
Q6.5 我想用队列/栈。<br />
Q6.6 我希望不要有重复的元素。<br />
Q6.7 我想遍历集合/Map。<br />
Q6.8 我还要能够排序。<br />
Q6.9 但是我想给数组排序。<br />
Q6.10 我想按不同方式排序。<br />
Q6.11 Map有什么用？<br />
Q6.12 set方法没问题，但是get方法返回的是Object。<br />
Q6.13 ArrayList和Vector有什么不同？HashMap和Hashtable有什么不同？<br />
Q6.14 我要获得一个随机数。<br />
Q6.15 我比较两个String总是false，但是它们明明都是"abc" ！<br />
Q6.16 我想修改一个String但是在String类中没找到编辑方法。<br />
Q6.17 我想处理日期/时间。</p>
<p>一、准备篇</p>
<p>Q1.1 什么是Java、Java2、JDK？JDK后面的1.3、1.4版本号又是怎么回事？<br />
答：Java是一种通用的，并发的，强类型的，面向对象的编程语言（摘自Java规范第二版<br />
）。<br />
JDK是Sun公司分发的免费Java开发工具包，正式名称为J2SDK(Java2 Software Develop K<br />
it)。<br />
包括基本的java工具包和标准类库。<br />
到目前(2003年7月)为止，Java有3个主要版本，即1.0，1.1，2.0；<br />
JDK有1.0，1.1，1.2，1.3，1.4五个版本。<br />
从JDK1.2起，Sun公司觉得Java改变足够大而将java语言版本号提升为2.0。<br />
不同的JDK主要在于提供的类库不同。作为学习你可以下载最新的JDK1.4.2。<br />
真正开发时则应考虑向前兼容，比如1.3。下载请去<a href="http://java.sun.com/">http://java.sun.com</a>。<br />
JDK1.5预计将在2004年推出，届时其中将包含若干崭新的特性。</p>
<p>Q1.2 什么是JRE/J2RE？<br />
答：J2RE是Java2 Runtime Environment，即Java运行环境，有时简称JRE。<br />
如果你只需要运行Java程序或Applet，下载并安装它即可。<br />
如果你要自行开发Java软件，请下载JDK。在JDK中附带有JRE。<br />
注意由于Microsoft对Java的支持不完全，请不要使用IE自带的虚拟机来运行Applet，务必<br />
安装一个JRE或JDK。</p>
<p>Q1.3 学习Java用什么工具比较好？<br />
答：作者建议首先使用JDK+文本编辑器，这有助你理解下列几个基础概念：path，classp<br />
ath，package <br />
并熟悉基本命令：javac和java。并且下载和你的JDK版本一致的API帮助。<br />
如果你不确定类或函数的用法，请先查阅API而不是发贴求助。<br />
当你熟悉Java之后，你可以考虑开始使用一个IDE。<br />
作者推荐eclipse，下载网址<a href="http://www.eclipse.org/">http://www.eclipse.org</a>。因为eclispe是免费的，插件化的<br />
。<br />
eclispe的主要缺点是缺乏一个可视化的桌面程序开发工具，<br />
幸运的是IBM在2003年11月已经将部分代码捐给eclipse组织，可以预计这个缺点很快就会<br />
得到弥补。<br />
无论如何，请不要使用Microsoft的VJ++！众所周知Microsoft从来就没有认真支持过Java<br />
。<br />
最后但并非最不重要，要有一本好的参考书，并且英文要过关。</p>
<p>Q1.4&nbsp; 学习Java有哪些好的参考书？<br />
答：作者首先推荐Thinking in Java，中文名《Java编程思想》，有中文版。<br />
目前的最新版本是第三版。<br />
在<a href="http://64.78.49.204/">http://64.78.49.204</a>可以免费下载英文版。<br />
该书第一章介绍了很多面向对象的编程思想，作为新手应当认真阅读。<br />
除此以外，O'relly出版社和Wrox出版社的书也不错。作者本人不喜欢大陆作者的书。<br />
也许你觉得英文太难，但是网上大多数资料都是英文的。另外，你需要经常查阅API，而那<br />
也是英文的。</p>
<p>Q1.5&nbsp; Java和C++哪个更好？<br />
答：这个问题是一个很不恰当的问题。你应该问：Java和C++哪个更适用于我的项目？<br />
Java的优点和缺点一样明显。<br />
跨平台是Java的主要优点，但代价是运行速度的下降。<br />
VC和Windows平台有良好的集成和足够快的速度，但是也只能局限在Windows平台上。<br />
和C++相比，Java学起来更快，开发人员不会碰到很多容易出错的特性。<br />
但是VB程序员甚至只需要拼装模块就可以了。</p>
<p>Q1.6&nbsp; 什么是J2SE/J2EE/J2ME？<br />
答：J2SE就是一般的Java。<br />
J2ME是针对嵌入式设备的，比如支持Java的手机，它有自己的JRE和SDK。<br />
J2EE是一组用于企业级程序开发的规范和类库，它使用J2SE的JRE。</p>
<p>二、命令篇</p>
<p>Q2.1&nbsp; 我写了第一个Java程序，应该如何编译/运行？<br />
答：首先请将程序保存为xxx.java文件，注意你可能需要修改文件后缀名。<br />
然后在dos窗口下使用javac xxx.java命令，你会发现该目录下多了一个xxx.class文件，</p>
<p>再使用java xxx命令，你的java程序就开始运行了。</p>
<p>Q2.2&nbsp; 我照你说的做了，但是出现什么&#8220;'javac' 不是内部或外部命令，也不是可运行的<br />
程序或批处理文件。&#8221;。<br />
答：你遇到了path问题。操作系统在一定的范围(path)内搜索javac.exe，但是没能找到。</p>
<p>请编辑你的操作系统环境变量，新增一个JAVA_HOME变量，设为你JDK的安装目录，<br />
再编辑Path变量，加上一项 %JAVA_HOME%\bin。<br />
然后保存并新开一个dos窗口，你就可以使用javac和java命令了。</p>
<p>Q2.3&nbsp; 环境变量怎么设置？<br />
答：请向身边会设的人咨询。</p>
<p>Q2.4&nbsp; 我在javac xxx.java的时候显示什么&#8220;unreported exception java.io.IOExcepti<br />
on;&#8221;。<br />
答：参见Q4.8以了解java中的异常机制。</p>
<p>Q2.5&nbsp; javac xxx.java顺利通过了，但是java xxx的时候显示什么&#8220;NoClassDefFoundErr<br />
or&#8221;。<br />
答：1. 你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你直接或间接<br />
使用的class文件，但是未能找到。<br />
首先请确认你没有错敲成java xxx.class，<br />
其次，检查你的CLASSPATH环境变量，其实你并不需要设置该变量，<br />
但如果你设置了该变量又没有包含.（代表当前目录）的项，<br />
你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项. 或干脆删掉这个变量。</p>
<p>2. 如果你使用了并非JDK自带的标准包，比如javax.servlet.*包，也会遇到这个问题，请<br />
将相应的jar文件加入classpath。<br />
3. 如果你在java源文件中定义了package，请参见Q2.11。</p>
<p><br />
Q2.6&nbsp; 我在java xxx的时候显示&#8220;Exception in thread "main" java.lang.NoSuchMetho<br />
dError: main&#8221;。<br />
答：首先，在你的程序中每个java文件有且只能有一个public类，<br />
这个类的类名必须和文件名的大小写完全一样。<br />
其次，在你要运行的类中有且只能有一个public static void main(String[] args)方法<br />
，<br />
这个方法就是你的主程序。</p>
<p><br />
Q2.7&nbsp; 在java xxx的时候显示&#8220;Exception in thread "main" java.lang.NullPointerEx<br />
ception&#8221;。<br />
答：在程序中你试图在值为null的对象变量上调用方法，请检查你的程序确保你的对象被恰当的初始化。<br />
参见Q4.8以了解java中的异常机制。</p>
<p><br />
Q2.8 package是什么意思？怎么用？<br />
答：为了唯一标识每个类并分组，java使用了package的概念。<br />
每个类都有一个全名，例如String的全名是java.lang.String，其中java.lang是包名，S<br />
tring是短名。按照java命名惯例，包名是全部小写的，而类名的第一个字母是大写的。<br />
这样，如果你自行定义了同样名字的类String，你可以把它放在mypackage中，<br />
通过使用全名mypackage.String和java.lang.String来区分这两个类。<br />
同时，将逻辑上相关的类放在同一个包中，可以使程序结构更为清楚。<br />
为了定义包，你要做的就是在java文件开头加一行&#8220;package mypackage;&#8221;。<br />
注意包没有嵌套或包含关系，mypackage包和mypackage.mysubpackage包对JRE来说是并列的两个包（虽然开发者可<br />
能暗示包含关系）。</p>
<p>Q2.9 我没有声明任何package会怎么样？<br />
答：你的类被认为放在默认包中。这时全名和短名是一致的。</p>
<p>Q2.10 在一个类中怎么使用其他类？<br />
答：如果你使用java.lang包或者默认包中的类，不用做任何事。<br />
如果你的类位于mypackage包中，并且要调用同一包中的其他类，也不用做任何事。<br />
如果你使用其他包中的类，在package声明之后，类声明之前使用import otherpackage1.Class<br />
1; 或 import otherpackage2.*;&nbsp; <br />
这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。<br />
如果短名间有重名冲突，必须使用全名来区分。<br />
注意在使用其他包中的类时，你只能使用public的类和接口，参见Q5.4。</p>
<p>Q2.11 我用了package的时候显示"NoClassDefFoundError"，但是我把所有package去掉的<br />
时候能正常运行。<br />
答：将你的java文件按包名组织存放。<br />
比如你的工作目录是/work，你的类是package1.Class1，那么将它存放为/work/package1<br />
/Class1.java。<br />
如果没有声明包，那么直接放在/work下。<br />
在/work下执行javac package1/class1.java，再执行java package1.class1，你会发现一<br />
切正常。<br />
另外，如果你的类的个数已经多到了你需要使用包来组织的话，你可以考虑开始使用IDE。</p>
<p>Q2.12 我想把java编译成exe文件，该怎么做？<br />
答：JDK只能将java源文件编译为class文件。<br />
class文件是一种跨平台的字节码，必须依赖平台相关的JRE来运行。Java以此来实现跨平<br />
台性。<br />
有些开发工具可以将java文件编译为exe文件。作者反对这种做法，因为这样就取消了跨平<br />
台性。<br />
如果你确信你的软件只在Windows平台上运行，你可以考虑使用C++/C#来编程。</p>
<p>Q2.13 我在编译的时候遇到什么"deprecated API"，是什么意思？<br />
答：所谓deprecated是指已经过时，但是为了向前兼容起见仍然保留的方法。<br />
这些方法可能会在以后取消支持。你应当改用较新的方法。<br />
在API里面会说明你应当用什么方法来代替之。</p>
<p>三、I/O篇</p>
<p>Q3.1 我怎么给java程序加启动参数，就像dir /p/w那样？<br />
答：还记得public static void main(String[] args)吗？这里的args就是你的启动参数<br />
。<br />
在运行时你输入java package1.class1 arg1 arg2，args中就会有两个String，第一个是<br />
arg1，第二个是arg2。</p>
<p>Q3.2 我怎么从键盘输入一个int/double/字符串？<br />
答：java的I/O操作比C++要复杂一点。如果要从键盘输入，样例代码如下：<br />
BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );</p>
<p>String s = cin.readLine();<br />
这样你就获得了一个字符串，如果你需要数字的话再使用：<br />
int n = Integer.parseInt( s ); 或者 double d = Double.parseDouble( s );<br />
来将字符串"534"转换成int或double。</p>
<p>Q3.3 我怎么输出一个int/double/字符串？<br />
答：使用System.out.println(n)或者System.out.println("Hello")等等。</p>
<p>Q3.4 我发现有些书上直接用System.in输入，比你要简单得多。<br />
答：java使用unicode，是双字节。而System.in是单字节的stream。<br />
如果你要输入双字节文字比如中文，请使用作者的做法。</p>
<p>Q3.5 我怎么从文件输入/输出一个int/double/字符串？<br />
答：类似于从键盘输入，只不过换成<br />
BufferedReader fin = new BufferedReader( new FileReader(" myFileName " ) );<br />
PrintWriter fout = new PrintWriter( new FileWriter(" myFileName " ) );<br />
另外如果你还没下载API，请开始下载并阅读java.io包中的内容。</p>
<p>Q3.6 我想读写文件的指定位置，该怎么办？<br />
答：java.io.RandomAccessFile可以满足你的需要。</p>
<p>Q3.7 怎么判断要读的文件已经到了尽头？<br />
答：在Reader的read方法中明确说明返回-1表示流的结尾。</p>
<p>四、 关键字篇</p>
<p>Q4.1&nbsp; java里面怎么定义宏？<br />
答：java不支持宏，因为宏代换不能保证类型安全。<br />
如果你需要定义常量，可以将它定义为某个类的static final成员。参见Q4.2和Q4.6。</p>
<p><br />
Q4.2&nbsp; java里面没法用const。<br />
答：你可以用final关键字。例如 final int m = 9。被声明为final的变量不能被再次赋<br />
值。唯一的例外是所谓blank final，如下例所示：<br />
public class MyClass1 {<br />
&nbsp;&nbsp;&nbsp; private final int a = 3;<br />
&nbsp;&nbsp;&nbsp; private final int b; // blank final</p>
<p>&nbsp;&nbsp;&nbsp; public MyClass1() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = 5; // 不合法，final变量不能被再次赋值。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = 4; // 合法，这是b第一次被赋值。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = 6; // 不合法，b不能被再次赋值。<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
final也可以用于声明方法或类，被声明为final的方法或类不能被继承。<br />
注意const是java的保留字以备扩充。</p>
<p>Q4.3&nbsp; java里面也不能用goto。<br />
答：甚至在面向过程的语言中你也可以完全不用goto。请检查你的程序流程是否合理。</p>
<p>如果你需要从多层循环中迅速跳出，java增强了（和C++相比）break和continue的功能，<br />
支持label。<br />
例如：<br />
outer : <br />
while( ... )<br />
{<br />
inner :<br />
for( ... )<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...&nbsp;&nbsp; break inner; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... continue outer; ...<br />
}<br />
}<br />
和const一样，goto也是java的保留字以备扩充。</p>
<p>Q4.4&nbsp; java里面能不能重载操作符？<br />
答：不能。String的+号是唯一一个内置的重载操作符。你可以通过定义接口和方法来实现<br />
类似功能。</p>
<p>Q4.5&nbsp; 我new了一个对象，但是没法delete掉它。<br />
答：java有自动内存回收机制，即所谓Garbarge Collection。你不需要删除对象。你再也<br />
不用担心指针错误，内存溢出了。</p>
<p>Q4.6&nbsp; 我想知道为什么main方法必须被声明为public static？为什么在main方法中不能调<br />
用非static成员？<br />
答：声明为public是为了这个方法可以被外部调用，详情见Q5.4。<br />
static是为了将某个成员变量/方法关联到类（class）而非实例（instance）。<br />
你不需要创建一个对象就可以直接使用这个类的static成员，因而在static成员中不能调<br />
用非static成员，因为后者是关联到对象实例（instance）的。<br />
在A类中调用B类的static成员可以使用B.staticMember的写法。<br />
注意一个类的static成员变量是唯一的，被所有该类对象所共享的，在多线程程序设计中尤其要谨慎小心。<br />
类的static成员是在类第一次被JRE装载的时候初始化的。<br />
你可以使用如下方法来使用非static成员：<br />
public class A<br />
{<br />
&nbsp;&nbsp;&nbsp; private void someMethod() //非static成员<br />
&nbsp;&nbsp;&nbsp; {}<br />
&nbsp;&nbsp;&nbsp; public static void main(String args)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A a = new A();&nbsp; //创建一个对象实例<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.someMethod();&nbsp; //现在你可以使用非static方法了<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><br />
Q4.7&nbsp; throw和throws有什么不同？<br />
答：throws用于方法声明中，声明一个方法会抛出哪些异常。而throw是在方法体中实际执行抛出异常的<br />
动作。<br />
如果你在方法中throw一个异常，却没有在方法声明中声明之，编译器会报错。<br />
注意Error和RuntimeException的子类是例外，无需特别声明。</p>
<p>Q4.8&nbsp; 什么是异常？<br />
答：异常最早在Ada语言中引入，用于在程序中动态处理错误并恢复。<br />
你可以在方法中拦截底层异常并处理之，也可以抛给更高层的模块去处理。<br />
你也可以抛出自己的异常指示发生了某些不正常情况。常见的拦截处理代码如下：<br />
try<br />
{<br />
......//以下是可能发生异常的代码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...... //异常被你或低层API抛出，执行流程中断并转向拦截代码。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...... <br />
}<br />
catch(Exception1 e) //如果Exception1是Exception2的子类并要做特别处理，应排在前<br />
面<br />
{<br />
&nbsp; //发生Exception1时被该段拦截<br />
}<br />
catch(Exception2 e)<br />
{<br />
&nbsp; //发生Exception2时被该段拦截<br />
}<br />
finally //这是可选的<br />
{<br />
&nbsp;&nbsp; //无论异常是否发生，均执行此段代码<br />
&nbsp;&nbsp; //即使在catch段中又向外抛出了新的exception，finally段也会得到执行。<br />
}</p>
<p>Q4.9&nbsp; final和finally有什么不同？<br />
答：final请见Q4.2。finally用于异常机制，参见Q4.8。</p>
<p>五、 面向对象篇</p>
<p>Q5.1&nbsp; extends和implements有什么不同？<br />
答：对于class而言，extends用于（单）继承一个类（class），而implements用于实现一个接口（interf<br />
ace）。<br />
interface的引入是为了部分地提供多继承的功能。<br />
在interface中只需声明方法头，而将方法体留给实现的class来做。<br />
这些实现的class的实例完全可以当作interface的实例来对待。<br />
在interface之间也可以声明为extends（多继承）的关系。<br />
注意一个interface可以extends多个其他interface。</p>
<p>Q5.2&nbsp; java怎么实现多继承？<br />
答：java不支持显式的多继承。<br />
因为在显式多继承的语言例如c++中，会出现子类被迫声明祖先虚基类构造函数的问题，</p>
<p>而这是违反面向对象的封装性原则的。<br />
java提供了interface和implements关键字来部分地实现多继承。参见Q5.1。</p>
<p>Q5.3 abstract是什么？<br />
答：被声明为abstract的方法无需给出方法体，留给子类来实现。<br />
而如果一个类中有abstract方法，那么这个类也必须声明为abstract。<br />
被声明为abstract的类无法实例化，尽管它可以定义构造方法供子类使用。</p>
<p>Q5.4 public,protected,private有什么不同？<br />
答：这些关键字用于声明类和成员的可见性。<br />
public成员可以被任何类访问，<br />
protected成员限于自己和子类访问，<br />
private成员限于自己访问。<br />
Java还提供了第四种的默认可见性，一般称为package private，当没有任何public,protected,private修饰符时，成员<br />
是同一包内可见。<br />
类可以用public或默认来修饰。<br />
</p>
<div>
<p>Q5.5 Override和Overload有什么不同？<br />
答：Override是指父类和子类之间方法的继承关系，这些方法有着相同的名称和参数类型<br />
。<br />
Overload是指同一个类中不同方法（可以在子类也可以在父类中定义）间的关系，<br />
这些方法有着相同的名称和不同的参数类型。</p>
<p><br />
Q5.6 我继承了一个方法，但现在我想调用在父类中定义的方法。<br />
答：用super.xxx()可以在子类中调用父类方法。</p>
<p>Q5.7 我想在子类的构造方法中调用父类的构造方法，该怎么办？<br />
答：在子类构造方法的第一行调用super(...)即可。</p>
<p>Q5.8 我在同一个类中定义了好几个构造方法并且想在一个构造方法中调用另一个。<br />
答：在构造方法第一行调用this(...)。</p>
<p>Q5.9 我没有定义构造方法会怎么样？<br />
答：自动获得一个无参数的构造方法。</p>
<p>Q5.10 我调用无参数的构造方法失败了。<br />
答：如果你至少定义了一个构造方法，就不再有自动提供的无参数的构造方法了。<br />
你需要另外显式定义一个无参数的构造方法。<br />
另外一种可能是你的构造方法或者类不是public的，参见Q5.4了解java中的可见性。</p>
<p>Q5.11 我该怎么定义类似于C++中的析构方法（destructor）？<br />
答：提供一个void finalize()方法。在Garbarge Collector回收该对象时会调用该方法。</p>
<p>注意实际上你很难判断一个对象会在什么时候被回收。作者从未感到需要用到该方法。</p>
<p><br />
Q5.12 我想将一个父类对象转换成一个子类对象该怎么做？<br />
答：强制类型转换。如<br />
public void meth(A a)<br />
{<br />
B b = (B)a;<br />
}<br />
如果a实际上并不是B的实例，会抛出ClassCastException。所以请确保a确实是B的实例。</p>
<p><br />
Q5.13 其实我不确定a是不是B的实例，能不能分情况处理？<br />
答：可以使用instanceof操作符。例如<br />
if( a instanceof B )<br />
{<br />
B b = (B)a;<br />
}<br />
else<br />
{<br />
...<br />
}</p>
<p>Q5.14 我在方法里修改了一个对象的值，但是退出方法后我发现这个对象的值没变！<br />
答：很可能你把传入参数重赋了一个新对象，例如下列代码就会造成这种错误：<br />
public void fun1(A a) //a是局部参数，指向了一个外在对象。<br />
{<br />
a = new A(); //a指向了一个新对象，和外在对象脱钩了。如果你要让a作为传出变量，<br />
不要写这一句。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.setAttr(attr);//修改了新对象的值，外在对象没有被修改。<br />
}<br />
基本类型也会出现这种情况。例如：<br />
public void fun2(int a)<br />
{<br />
a = 10;//只作用于本方法，外面的变量不会变化。<br />
}</p>
<p>六、java.util篇</p>
<p>Q6.1 java能动态分配数组吗？<br />
答：可以。例如int n = 3; Language[] myLanguages = new Language[n];</p>
<p>Q6.2 我怎么知道数组的长度？<br />
答：用length属性。如上例中的&nbsp; myLanguages.length 就为 3。</p>
<p>Q6.3 我还想让数组的长度能自动改变，能够增加/删除元素。<br />
答：用顺序表--java.util.List接口。<br />
你可以选择用ArrayList或是LinkedList，前者是数组实现，后者是链表实现。<br />
例如：&nbsp; List list = new ArrayList(); 或是 List list = new LinkedList();&nbsp; 。</p>
<p>Q&nbsp;&nbsp;&nbsp; 什么是链表？为什么要有ArrayList和LinkedList两种List？<br />
答：请补习数据结构。</p>
<p>Q6.5 我想用队列/栈。<br />
答：用java.util.LinkedList。</p>
<p>Q6.6 我希望不要有重复的元素。<br />
答：用集合--java.util.Set接口。例如：Set set = new HashSet()。</p>
<p>Q6.7 我想遍历集合/Map。<br />
答：用java.util.Iterator。参见API。</p>
<p>Q6.8 我还要能够排序。<br />
答：用java.util.TreeSet。例如：Set set = new TreeSet()。放进去的元素会自动排序<br />
。<br />
你需要为元素实现Comparable接口，还可能需要提供equals()方法，compareTo()方法，h<br />
ashCode()方法。</p>
<p>Q6.9 但是我想给数组排序。<br />
答：java.util.Arrays类包含了sort等实用方法。</p>
<p>Q6.10 我想按不同方式排序。<br />
答：为每种方式定义一个实现了接口Comparator的排序类并和Arrays或TreeSet综合运用。</p>
<p><br />
Q6.11 Map有什么用？<br />
答：存储key-value的关键字-值对，你可以通过关键字来快速存取相应的值。</p>
<p>Q6.12 set方法没问题，但是get方法返回的是Object。<br />
答：强制类型转换成你需要的类型。参见Q5.12。</p>
<p>Q6.13 ArrayList和Vector有什么不同？HashMap和Hashtable有什么不同？<br />
答：ArrayList和HashMap是多线程不安全的，在多个线程中访问同一个ArrayList对象可能<br />
会引起冲突并导致错误。<br />
而Vector和Hashtable是多线程安全的，即使在多个线程中同时访问同一个Vector对象也不<br />
会引起差错。<br />
看起来我们更应该使用Vector和Hashtable，但是实际上Vector和Hashtable的性能太差，<br />
所以如果你不在多线程中使用的话，还是应该用ArrayList和HashMap。</p>
<p>Q6.14 我要获得一个随机数。<br />
答：使用java.util.Random类。</p>
<p>Q6.15 我比较两个String总是false，但是它们明明都是"abc" ！<br />
答：比较String一定要使用equals或equalsIgnoreCase方法，不要使用 == ！<br />
==比较的是两个引用（变量）是否指向了同一个对象，而不是比较其内容。</p>
<p>Q6.16 我想修改一个String但是在String类中没找到编辑方法。<br />
答：使用StringBuffer类。<br />
String str = "......."; //待处理的字符串<br />
StringBuffer buffer = new StringBuffer(str); //使用该字符串初始化一个StringBuf<br />
fer<br />
buffer.append("..."); //调用StringBuffer的相关API来编辑字符串<br />
String str2 = buffer.toString(); //获得编辑后的字符串。<br />
另外，如果你需要将多个字符串连接起来，请尽量避免使用+号直接连接，而是使用Strin<br />
gBuffer.append()方法。</p>
<p>Q6.17 我想处理日期/时间。<br />
答：使用java.util.Date类。你可以使用java.text.SimpleDateFormat类来在String和Da<br />
te间互相转换。<br />
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //规<br />
定日期格式<br />
Date date = formatter.parse("2003-07-26 18:30:35"); //将符合格式的String转换为<br />
Date<br />
String s = formatter.format(date); //将Date转换为符合格式的String<br />
关于定义日期格式的详细信息请参见API。<br />
&nbsp;</p>
<p>J2EE FAQ <br />
&nbsp;<br />
目录：</p>
<p>一、准备篇<br />
Q1.1&nbsp;&nbsp; 什么是J2EE？它和普通的Java有什么不同？<br />
Q1.2&nbsp;&nbsp; J2EE好学吗？<br />
Q1.3&nbsp;&nbsp; J2EE有什么用？<br />
Q1.4&nbsp;&nbsp; 学J2EE有前途吗？<br />
Q1.5&nbsp;&nbsp; 据说J2EE的性能不如.NET好，是真的吗？<br />
Q1.6&nbsp;&nbsp; 听你说了这么多，我想学着玩玩。<br />
Q1.7&nbsp;&nbsp; 学习J2EE该怎么开始？<br />
Q1.8&nbsp;&nbsp; 我下了一个J2EE服务器但是不会配置。<br />
Q1.9&nbsp;&nbsp; 我发现你没有提到Tomcat。</p>
<p>二、 Servlet/JSP篇<br />
Q2.1&nbsp;&nbsp; 什么是Servlet？<br />
Q2.2&nbsp;&nbsp; 我怎么获得Http请求里的参数？<br />
Q2.3&nbsp;&nbsp; 我怎么返回结果？<br />
Q2.4&nbsp;&nbsp; sendRedirect()和forward()有什么不同？<br />
Q2.5&nbsp;&nbsp; 我写了一个Servlet程序，怎么运行它？<br />
Q2.6&nbsp;&nbsp; EAR和WAR有什么不同？<br />
Q2.7&nbsp;&nbsp; EAR格式是怎样的？<br />
Q2.8&nbsp;&nbsp; WAR格式是怎样的？<br />
Q2.9&nbsp;&nbsp; 我的普通HTML文件/JSP文件应当放在哪里？<br />
Q2.10&nbsp; 我访问不到servlet，甚至连HTML文件都访问不到！<br />
Q2.11&nbsp; 我能访问HTML但是访问不到servlet。<br />
Q2.12&nbsp; 什么是JSP？它和Servlet有什么区别？<br />
Q2.13&nbsp; 我的JSP显示的汉字是乱码。<br />
Q2.14&nbsp; 为什么使用gb18030而不是gb2312？<br />
Q2.15&nbsp; 在JSP里面怎么引用Java Bean。<br />
Q2.16&nbsp; 我想在servlet间传递数据。<br />
Q2.17&nbsp; 怎么调用cookie？<br />
Q2.18&nbsp; 怎么在JSP里面实现文件下载？<br />
Q2.19&nbsp; 怎么实现文件上传？<br />
Q2.20&nbsp; 我想让页面自动刷新，比如聊天室。<br />
Q2.21&nbsp; 我想让用户登录以后才能访问页面。<br />
Q2.22&nbsp; 我想要能注册用户。<br />
Q2.23&nbsp; 怎么在JSP中访问数据库？<br />
Q2.24&nbsp; 什么是JSTL？</p>
<p>一、准备篇</p>
<p>Q1.1&nbsp; 什么是J2EE？它和普通的Java有什么不同？<br />
答：J2EE全称为Java2 Platform, Enterprise Edition。<br />
&#8220;J2EE平台本质上是一个分布式的服务器应用程序设计环境——一个Java环境，它提供了<br />
：<br />
&#183;宿主应用的一个运行基础框架环境。<br />
&#183;一套用来创建应用的Java扩展API。&#8221;</p>
<p>Q1.2&nbsp; J2EE好学吗？<br />
答：J2EE是很多技术的集合体，并且还在成长中。<br />
你会遇到很多专有名词：比如(X)HTML，Servlet/JSP，JDBC，JMS，JNDI，EJB，XML，Web<br />
Service&#8230;&#8230;。<br />
尤其是XML和Web Service正在快速成长。幸运的是，你不需要等到学会所有技术后再开始<br />
编程。<br />
大体上J2EE可以分成3个主要应用方式：Servlet/JSP，EJB，Web Service 和一些支撑技术<br />
例如JDBC和JNDI。<br />
你可以一个一个的学。</p>
<p>Q1.3 J2EE有什么用？<br />
答：用来建设大型的分布式企业级应用程序。或者用更时髦的名词说就是&#8220;电子商务&#8221;应<br />
用程序。<br />
这些企业可能大到拥有中心数据库服务器，Web服务器集群和遍布全国的办公终端，也可能<br />
小到只不过想做一个网站。但是你肯定听过&#8220;杀鸡焉用牛刀&#8221;的古训。</p>
<p>Q1.4 学J2EE有前途吗？<br />
答：在这一市场目前只有一种技术可以和J2EE竞争，那就是Microsoft的.NET。<br />
相对来说.NET要&#8220;新&#8221;一些而J2EE要&#8220;老&#8221;一些。这也意味着.NET更易用一点而J2EE更成<br />
熟一点。<br />
但是.NET只能用于Windows平台（Microsoft声称要开发C#在Linux上的虚拟机但是尚未兑现<br />
该诺言）。<br />
在过去几年，.NET的市场份额并不理想。不过Microsoft还有Longhorn这一杀手锏，鹿死谁<br />
手还很难说。</p>
<p>Q1.5 据说J2EE的性能不如.NET好，是真的吗？<br />
答：在Sun公司提供的样例程序Pet Store上，Microsoft声称不如相同的.NET程序好。<br />
而Sun公司反驳说这一程序不能真正体现J2EE的性能，并且指责Microsoft在数据库上做了<br />
优化。<br />
作者没有学习过.NET因而不能妄下断言。<br />
无论如何，大型分布式程序中的性能瓶颈通常首先来自于错误的设计。</p>
<p>Q1.6 听你说了这么多，我想学着玩玩。<br />
答：除非你想靠它当饭吃或者作为技术储备，否则请不要浪费你的时间。<br />
Flash要好玩得多。计算机游戏就更加好玩了。</p>
<p>Q1.7 学习J2EE该怎么开始？<br />
答：首先，下载一个免费的J2EE服务器。其次，去java.sun.com下载J2EE的API。第三，找<br />
一本好的参考书。最后，找一个顺手的IDE。<br />
J2EE服务器。你可以用Sun的J2EE SDK（免费），或者Weblogic（性能最好，但是太大，而<br />
且作者不推荐盗版行为），<br />
或者JBoss（免费，就是文档太少），或者JRun（开发版免费，作者用这个）。<br />
参考书作者感觉Wrox的《J2EE服务器端高级编程》不错，但是太老（作者手头的是2001年<br />
中文版）。<br />
（似乎很多人不喜欢这本书......所以你得自己判断它是否适合你。）<br />
你还需要去下载一些最新的技术资料（当然肯定是英文的）。<br />
IDE如果你的机器配置够好（内存至少512M以上，256M或以下请勿考虑），可以用IBM的WS<br />
AD，不然就继续用Eclipse或者其他。<br />
你也可以经常去水木清华的Java版逛逛，但是在发贴前先看看精华区里有没有你要的答案<br />
。</p>
<p>Q1.8 我下了一个J2EE服务器但是不会配置。<br />
答：请认真阅读随机指导文档，不同的服务器的配置都不一样，作者爱莫能助。</p>
<p>Q1.9 我发现你没有提到Tomcat。<br />
答：Tomcat只是一个Web服务器，更准确地说主要只是一个Web Container。<br />
如果你想要学习EJB的话，Tomcat无法满足你的需要。</p>
<p>二、 Servlet/JSP篇</p>
<p>Q2.1 什么是Servlet？<br />
答：一个Servlet是一个Java类。它处理Http(s)请求并作出响应，包括返回一个HTML页面<br />
或转交给其他URL处理。<br />
Servlet必须运行在一个Web Container例如Tomcat中。<br />
Servlet必须是javax.servlet.http.HttpServlet的子类，<br />
你可以继承doGet()或者doPost()方法，两者分别对应于Http(s)中的Get请求和Post请求。</p>
<p><br />
Q2.2 我怎么获得Http请求里的参数？<br />
答：HttpRequest的getParameter()方法。例如：String paramValue = request.getPara<br />
meter("paramName");</p>
<p>Q2.3 我怎么返回结果？<br />
答：你可以利用相关API打开一个输出流，并向流中直接写入一个HTML页面。<br />
但是作者完全不赞成这样做。一方面这样做会很罗嗦。<br />
另一方面从Model-View-Controller模式（在《J2EE核心模式》中被归为Front Controlle<br />
r模式）的观点来看，<br />
你应当提供一些HTML或者JSP作为视图（view），而Servlet则根据请求参数决定转到哪一<br />
个视图。<br />
你可以利用response.sendRedirect(...)方法或request.getDispatcher(...).forward()<br />
方法来实现。</p>
<p>Q2.4 sendRedirect()和forward()有什么不同？<br />
答：sendRedirect()是向浏览器发送一个redirect通知，浏览器向新的URL发送一个新的请<br />
求。<br />
而forward是在服务器端直接将请求转到新的URL，对于浏览器是透明的。<br />
换而言之，sendRedirect()应当将共享数据放在session中，forward应当将共享数据放在<br />
request中（当然你也可以放在session中，但放在request中可以有效减小session中的数<br />
据量，从而改善性能）。<br />
前者浏览器的地址栏显示的是新的URL，后者浏览器的地址栏显示的是Servlet的URL。<br />
因而当刷新目标URL时，两者会造成一些差别。</p>
<p>Q2.5 我写了一个Servlet程序，怎么运行它？<br />
答：开发J2EE程序有一个部署（deploy）的概念，实际上是开发——部署——运行的三部<br />
曲。<br />
大多数服务器支持Hot deploy。你只需要在相应的Application目录（具体路径依赖于服务<br />
器）下面<br />
建立一个符合WAR或EAR格式（参见Q2.7，Q2.8）的目录，启动服务器，就可以通过浏览器<br />
访问了。<br />
特别的，你的Servlet的class文件应当放在/WEB-INF/classes目录中。<br />
注意J2EE SDK不支持Hot deploy，你需要通过它的deploy tool来部署。<br />
Tomcat只支持WAR格式。</p>
<p>Q2.6 EAR和WAR有什么不同？<br />
答：EAR是一个完整的J2EE应用程序，包括Web部分和EJB部分。<br />
WAR只是其中的Web部分。</p>
<p>Q2.7 EAR格式是怎样的？<br />
答：一个EAR可以包含任意多个WAR或EJB JAR，并且包含一个META-INF的目录。<br />
在/META-INF中包含了一个application.xml，其中描述了这个EAR包含哪些模块，以及安全<br />
性配置。<br />
细节请看参考书。</p>
<p>Q2.8 WAR格式是怎样的？<br />
答：一个WAR包含一个WEB-INF的目录，这个目录下包含classes目录，lib目录和web.xml。</p>
<p>/WEB-INF/classes存放按package组织的class文件，/WEB-INF/lib目录存放jar文件，<br />
web.xml描述了很多东西，请读参考书。</p>
<p>Q2.9 我的普通HTML文件/JSP文件应当放在哪里？<br />
答：放在除了/WEB-INF以外的其他地方。</p>
<p>感谢antegg网友对于安全性的提醒：<br />
如果你想直接用<a href="http://url/***.jsp">http://url/***.jsp</a>的方式来访问，就要像上面说得那样放。<br />
但是这样的做法是不安全的，安全的做法是把所有的JSP页面放在/WEB-INF目录下面，并且</p>
<p>通过WEB-CONTAINER来访问。</p>
<p>作者意见:<br />
我更喜欢用filter来做安全性检查。<br />
在MVC模式中，JSP只是一个视图而已，一般无需特别担忧安全性。和普通的html放在一起<br />
也利于维护。</p>
<p>Q2.10 我访问不到servlet，甚至连HTML文件都访问不到！<br />
答：<br />
第一你没启动服务器。<br />
第二你敲错了端口。<br />
第三你没有正确配置context-path。<br />
第四你的服务器不支持auto reload或者你关闭了这一选项，你得重启服务器或重新部署W<br />
AR。<br />
第五确认你没有把HTML放在/WEB-INF目录下，那是访问不到的。</p>
<p>Q2.11 我能访问HTML但是访问不到servlet。<br />
答：请检查你的web.xml文件。确保你正确定义了&lt;servlet&gt;和&lt;servlet-mapping&gt;元素。</p>
<p>前者标识了一个servlet，后者将一个相对于context-path的URL映射到一个servlet。<br />
在Tomcat中你可以通过/context-path/servlet/package/servletname的形式访问servlet<br />
，<br />
但是这只是Tomcat的便捷访问方式，并不是正式规范。<br />
细节请看参考书。</p>
<p>Q2.12&nbsp; 什么是JSP？它和Servlet有什么区别？<br />
答：你可以将JSP当做一个可扩充的HTML来对待。<br />
虽然在本质上JSP文件会被服务器自动翻译为相应的Servlet来执行。<br />
可以说Servlet是面向Java程序员而JSP是面向HTML程序员的，除此之外两者功能完全等价<br />
。</p>
<p>Q2.13&nbsp; 我的JSP显示的汉字是乱码。<br />
答：在你的JSP开头加上一行 &lt;%@ page contentType="text/html; charset=gb18030"%&gt;</p>
<p>如果你已经声明了page我想你知道该怎么修改。</p>
<p>Q2.14&nbsp; 为什么使用gb18030而不是gb2312？<br />
答：gb18030是继gb2312之后的下一代汉字编码标准，最终将过渡到Unicode。</p>
<p>Q2.15&nbsp; 在JSP里面怎么引用Java Bean。<br />
答：首先，确认你要引用的类在/WEB-INF/classes下或在/WEB-INF/lib的某个jar内。<br />
其次，在JSP里加一行 &lt;jsp:useBean id="..." scope="..." class="..."/&gt;<br />
具体解释请看参考书。</p>
<p>Q2.16&nbsp; 我想在servlet间传递数据。<br />
答：利用session。在Servlet/JSP中，你可以在4个地方保存数据。<br />
1) page，本页面。<br />
2) session，用来存放客户相关的信息，比如购物车，对应接口为javax.servlet.http.H<br />
ttpSession。<br />
session机制实际上是cookie和URL Rewriting的抽象，服务器会自动使用cookie或URL Re<br />
writing来实现。<br />
3) request，可以在forward()时传递信息，对应接口为javax.servlet.http.HttpReques<br />
t。<br />
4) application，或称context，存放全局信息，对应接口为javax.servlet.ServletCont<br />
ext。</p>
<p>Q2.17&nbsp; 怎么调用cookie？<br />
答：作者建议使用session，你总是会遇到某些禁用cookie的用户。这时session会自动使<br />
用URL重写来实现。</p>
<p>Q2.18&nbsp; 怎么在JSP里面实现文件下载？<br />
答：实际上这是一个HTML的问题。答案是一个超链接&lt;a&gt;。</p>
<p>Q2.19&nbsp; 怎么实现文件上传？<br />
答：客户端是HTML问题，在form中设置method为post，enctype为multi-part/form-data，<br />
加一个&lt;input type="file"&gt;。<br />
而在接收的servlet中只是一个I/O问题，你可以使用jakarta的file-upload库。</p>
<p>Q2.20&nbsp; 我想让页面自动刷新，比如聊天室。<br />
答：这是一个HTML问题，在&lt;head&gt;部分中加一条&lt;meta http-equiv="refresh" content="<br />
5" url="..."&gt;。<br />
这是所谓的Client-pull，客户端刷新技术。<br />
相对的还有Server-push，服务器端刷新技术，但是这一技术由于要占用服务器端资源而会<br />
在大量访问时出现瓶颈现象，参见<a href="http://216.239.33.104/search?q=cache:autUfoakirY">http://216.239.33.104/search?q=cache:autUfoakirY</a><br />
J:www.kfunigraz.ac.at/edvndwww/books/books/javaenterprise/servlet/ch06_03.htm+<br />
server-push+servlet&amp;hl=zh-CN&amp;ie=UTF-8</p>
<p>Q2.21&nbsp; 我想让用户登录以后才能访问页面。<br />
答：使用声明式安全措施。<br />
你只需要在web.xml中定义安全角色（Role），并定义受保护的URL集合只能由特定Role访<br />
问。<br />
大多数服务器支持基于数据库的用户映射，你只要在相应数据库中建立两张表并配置服务<br />
器就可以了。<br />
注意J2EE SDK不支持基于数据库的用户映射。<br />
细节请看参考书和服务器文档。<br />
不过在商业环境中，J2EE所提供的声明式安全措施仍然偏弱。一般商业程序会使用数据库<br />
存储user-role-privilege模型来达到安全性要求，细节请询问你的构架设计师。</p>
<p>Q2.22&nbsp; 我想要能注册用户。<br />
答：参看Q2.21。在接受注册请求的Servlet中执行写入数据库操作即可。</p>
<p>Q2.23&nbsp; 怎么在JSP中访问数据库？<br />
答：标准做法是使用DAO模式，定义一个Java bean来访问数据库并在JSP中使用。<br />
然而，当你的数据库模式很简单时，你可以使用JSTL中的&lt;sql:query&gt;标签来快速访问。</p>
<p>在一般的J2EE项目中，JSP处于表示层（展现层），需要先后通过业务层和集成层才会访问<br />
到数据库，所以这个问题确实只会在很小的程序中才会遇到。</p>
<p>Q2.24&nbsp; 什么是JSTL？<br />
答：JSTL是Jsp Standard Tag Library的缩写。这是一组通用标签并将成为JSP 2.0的一部<br />
分。<br />
其中包含赋值&lt;c:set&gt;，分支&lt;c:if&gt;，循环&lt;c:forEach&gt;，查询数据库&lt;sql:query&gt;，更新数<br />
据库&lt;sql:update&gt;<br />
等。目前你需要像添加自定义标签库一样来添加JSTL，但是可以预计JSP 2.0会将JSTL作为<br />
组成部分。<br />
标签库可以在<a href="http://jakarta.apache.org/">http://jakarta.apache.org</a>下载。注意JSTL需要在支持JSP 1.2或更高版本<br />
的容器下运行。<br />
帮助文件可以阅读sun的JSTL正式规范。</p>
</div>
</div>
<img src ="http://www.blogjava.net/ghyghost/aggbug/202400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-05-23 14:29 <a href="http://www.blogjava.net/ghyghost/archive/2008/05/23/202400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在hibernate中实现oracle的自动增长[转]</title><link>http://www.blogjava.net/ghyghost/archive/2008/05/23/202387.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 23 May 2008 05:30:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/05/23/202387.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/202387.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/05/23/202387.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/202387.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/202387.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-size: 10pt">在hibernate中实现oracle的自动增长 <br />
<br />
http://kuangbaoxu.javaeye.com/blog/192434<br />
<br />
关键字: hibernate oracle sequence native <br />
根据hibernate的文档，有两种方式实现实体对象的主键自动增长。 <br />
第一种：设置ID的增长策略是sequence，同时指定sequence的名字，最好每个表建一个sequence，此种做法就如同MS-SQL,MY-SQL中的自动增长一样，不需要创建触发器，具体的oracle数据库脚本及hibernate配置文件如下： <br />
<br />
<br />
[1]oracle数据表的创建脚本： <br />
Java代码</span></span></span></span></p>
<span style="font-size: 12pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-size: 10pt">CREATE TABLE DEPARTMENT (&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ID NUMBER(19,0) DEFAULT '0' NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; NAME VARCHAR2(255) NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; DESCRIPTION CLOB&nbsp;&nbsp; <br />
);&nbsp;&nbsp; <br />
ALTER TABLE DEPARTMENT ADD CONSTRAINT PRIMARY_0 PRIMARY KEY(ID) ENABLE;&nbsp;&nbsp; <br />
ALTER TABLE DEPARTMENT ADD CONSTRAINT UK_DEPARTMENT_1 UNIQUE (NAME);&nbsp;&nbsp; <br />
&nbsp; <br />
CREATE SEQUENCE DEPARTMENT_ID_SEQ MINVALUE 10000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;&nbsp; <br />
<br />
创建DEPARTMENT表，并为DEPARTMENT表创建一个单独的SEQUENCE，名字为SEQUENCE_ID_SEQ，并不需要创建触发器。 <br />
<br />
[2]hibernate映射文件的配置： <br />
Java代码 <br />
<br />
&lt;?xml version="1.0"?&gt;&nbsp;&nbsp; <br />
&lt;!DOCTYPE hibernate-mapping PUBLIC&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//Hibernate/Hibernate Mapping DTD 3.0//EN"&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;&nbsp;&nbsp; <br />
&lt;hibernate-mapping package="com.liyanframework.demo.domain"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;class name="Department" table="DEPARTMENT"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" column="ID"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="sequence"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="sequence"&gt;DEPARTMENT_ID_SEQ&lt;/param&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/generator&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="name" column="NAME" type="string" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="description" column="DESCRIPTION" type="text" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/class&gt;&nbsp;&nbsp; <br />
&lt;/hibernate-mapping&gt;&nbsp; <br />
<br />
在hibernate映射文件中，对ID的生成策略选择sequence，指定sequence的名字DEPARTMENT_ID_SEQ就可以了，当你保存新对象的时候，hibernate会自动取得DEPARTMENT_ID_SEQ.NEXTVAL作为新对象的ID保存到数据库，所以不需要再使用触发器再来生成新记录的ID。 <br />
<br />
<br />
第二种：设置ID的增长策略是native，但是需要创建一个名字为hibernate_sequence（这个名字好像是hibernate默认的sequence名字，不创建会出错的）的全局使用的sequence，然后再对每一个表的ID生成的时候，使用触发器，取得hibernate_sequence.CURRVAL作为新记录的ID，具体的oracle数据库脚本及hibernate配置文件如下： <br />
<br />
<br />
[1]oracle数据表的创建脚本： <br />
Java代码 <br />
<br />
<br />
CREATE TABLE STAFF (&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ID NUMBER(19,0) DEFAULT '0' NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; NAME VARCHAR2(255) NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; AGE NUMBER(3,0) NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; BIRTHDAY DATE NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; SALARY NUMBER(10,2) NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; LEVELNESS FLOAT NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; CREATETIME TIMESTAMP NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ENABLE CHAR(2) DEFAULT 'Y' NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; STATUS VARCHAR2(64) NOT NULL,&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; DEPARTMENT_ID NUMBER(19,0)&nbsp;&nbsp; <br />
);&nbsp;&nbsp; <br />
ALTER TABLE STAFF ADD CONSTRAINT PRIMARY_1 PRIMARY KEY(ID) ENABLE;&nbsp;&nbsp; <br />
ALTER TABLE STAFF ADD CONSTRAINT STAFF_IBFK_0 FOREIGN KEY(DEPARTMENT_ID) REFERENCES DEPARTMENT(ID) ENABLE;&nbsp;&nbsp; <br />
ALTER TABLE STAFF ADD CONSTRAINT UK_STAFF_1 UNIQUE (NAME);&nbsp;&nbsp; <br />
CREATE INDEX IDX_STAFF_STATUS ON STAFF(STATUS);&nbsp;&nbsp; <br />
&nbsp; <br />
CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 90000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;&nbsp;&nbsp; <br />
&nbsp; <br />
CREATE OR REPLACE TRIGGER STAFF_ID_TRG BEFORE INSERT ON STAFF&nbsp;&nbsp; <br />
FOR EACH ROW&nbsp;&nbsp; <br />
BEGIN&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; IF INSERTING AND :NEW.ID IS NULL THEN&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT HIBERNATE_SEQUENCE.CURRVAL INTO :NEW.ID FROM DUAL;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; END IF;&nbsp;&nbsp; <br />
END;&nbsp; <br />
<br />
创建STAFF表，但是并没有为STAFF创建相应的主键sequence，而是创建了一个名字为HIBERNATE_SEQUENCE的sequence，然后创建一个触发器STAFF_ID_TRG，当执行INSERT操作时，hibernate会先执行一次HIBERNATE_SEQUENCE.NEXTVAL，所以在触发器中只需要取得HIBERNATE_SEQUENCE.CURRVAL作为新记录的ID。 <br />
<br />
[2]hibernate映射文件的配置： <br />
Java代码 <br />
<br />
<br />
&lt;?xml version="1.0"?&gt;&nbsp;&nbsp; <br />
&lt;!DOCTYPE hibernate-mapping PUBLIC&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//Hibernate/Hibernate Mapping DTD 3.0//EN"&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;&nbsp;&nbsp; <br />
&lt;hibernate-mapping package="com.liyanframework.demo.domain"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;class name="Staff" table="STAFF"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" column="ID"&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="native" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="name" column="NAME" type="string" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="age" column="AGE" type="integer" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="birthday" column="BIRTHDAY" type="date" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="salary" column="SALARY" type="big_decimal" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="level" column="LEVELNESS" type="float" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="createTime" column="CREATETIME" type="timestamp" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="enable" column="ENABLE" type="character" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="status" column="STATUS" type="string" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;many-to-one name="department" column="DEPARTMENT_ID" class="Department" /&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/class&gt;&nbsp;&nbsp; <br />
&lt;/hibernate-mapping&gt;&nbsp; <br />
<br />
在hibernate映射文件中，对ID的生成策略选择native，hibernate会根据你数据库的触发器来生成新记录的ID。 <br />
</span></span></span></span><u><br />
<span style="font-size: 12pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-size: 10pt">比较两种做法，第二种做法也就是hibernate在代码中，实现了oracle中的触发器功能。对于不同的情况，选择不懂的做法。如果新的系统，新建的oracle数据库，推荐使用第一种做法，简单，容易移植到其他支持自动增长的数据库；如果是老的系统，需要把其他数据库转换为oracle的，那就要用第二种了，使用native的方式，可以不改动配置文件，兼容oracle和mysql之类带有自动增长的数据库。</span></span></span></span></u><span style="font-size: 12pt"><span style="font-family: 宋体"><span style="font-size: 8pt"><span style="font-size: 10pt"> <br />
</span></span></span></span>
<img src ="http://www.blogjava.net/ghyghost/aggbug/202387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-05-23 13:30 <a href="http://www.blogjava.net/ghyghost/archive/2008/05/23/202387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JSTL将 \n 替换成 之N种解决方案[转自网络]</title><link>http://www.blogjava.net/ghyghost/archive/2008/05/20/201543.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Mon, 19 May 2008 23:03:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/05/20/201543.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/201543.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/05/20/201543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/201543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/201543.html</trackback:ping><description><![CDATA[<p>工作需要，需要用JSTL将从数据库取出的多行文本中的 \n 替换成 &lt;br /&gt;。</p>
<p><strong>一、将取出的多行文本放在&lt;pre&gt;&lt;/pre&gt;标签里</strong></p>
<p>　　优点：简单，用HTML解决了问题</p>
<p>　　缺点：pre 好象不认CSS样式，这个标签尽忠职守地&#8220;保持原样&#8221;，连CSS也不认了，这个缺点是致命的</p>
<p><strong>二、纯JSTL方式 &lt;c:out value="${fn:replace(content, '\n', '&lt;br /&gt;')}" /&gt;</strong></p>
<p>　　一运行，会抛出N多错误。</p>
<p><strong>三、JSTL + JSP scriptlet</strong></p>
<p>&lt;%<br />
request.setAttribute("x_n", "\n");<br />
%&gt;</p>
<p>&lt;c:out value="${fn:replace(content, x_n, '&lt;br /&gt;')}" /&gt;</p>
<p>　　优点：简单，易懂，修改方便</p>
<p>　　缺点：引用了JSP scriptlet，对于有&#8220;洁癖&#8221;的程序员是不能容忍的；代码较多。</p>
<p><strong>四、JSTL + JavaBean</strong></p>
<p>　　也无新意，不过这样一写，scriptlet没有了，不过修改的话要修改类文件了。</p>
<p><strong>五、使用监听器</strong></p>
<p>　　优点：在应用初始化时在application作用域中将 \n 作为一个attribute，代码少，节约资源</p>
<p>　　缺点：需要配置XML，修改时需要在类中修改。</p>
<p><strong>六、使用自定义标签</strong></p>
<p>　　自定义一个db2html标签，&lt;c:out value="${fnx:db2html(content)}" /&gt;</p>
<p>　　优点：使用简单，</p>
<p>　　缺点：配置较多。麻烦。</p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/201543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-05-20 07:03 <a href="http://www.blogjava.net/ghyghost/archive/2008/05/20/201543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Tomcat6的JNDI配置Oracle9i连接池</title><link>http://www.blogjava.net/ghyghost/archive/2008/03/23/188065.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Sun, 23 Mar 2008 11:48:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/03/23/188065.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/188065.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/03/23/188065.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/188065.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/188065.html</trackback:ping><description><![CDATA[1.打开Tomcat 6.0\conf\context.xml文件，编辑成如下代码形式：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version='1.0'&nbsp;encoding='utf-8'</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Resource&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/pinyou"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type</span><span style="color: #0000ff">="javax.sql.DataSource"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driverClassName</span><span style="color: #0000ff">="oracle.jdbc.OracleDriver"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #0000ff">="jdbc:oracle:thin:@127.0.0.1:1521:ghyghost"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username</span><span style="color: #0000ff">="sa"</span><span style="color: #ff0000">&nbsp;password</span><span style="color: #0000ff">="123"</span><span style="color: #ff0000">&nbsp;maxActive</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;maxIdle</span><span style="color: #0000ff">="10"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxWait</span><span style="color: #0000ff">="-1"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span></div>
<br />
2.然后在web.xml文件中的web-app节点下加入如下代码形式：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">resource-ref</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">pinyou&nbsp;connection&nbsp;oracle9i</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">res-ref-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jdbc/ghyghost</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">res-ref-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">res-type</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">javax.sql.DataSource</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">res-type</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">resource-ref</span><span style="color: #0000ff">&gt;</span></div>
<br />
3.新建一个JSP文件如下：<br />
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="utf-8"%&gt;<br />
&lt;%@ page import="javax.sql.*"%&gt;<br />
&lt;%@ page import="javax.naming.*"%&gt;<br />
&lt;%@ page import="java.sql.*"%&gt;<br />
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&lt;%<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Context envContext = (Context) new InitialContext()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lookup("java:/comp/env");<br />
&nbsp;&nbsp;&nbsp;&nbsp;DataSource ds = (DataSource) envContext.lookup("jdbc/pinyou"); //查找配置</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;Connection conn = ds.getConnection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;Statement st = conn.createStatement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;ResultSet rs = st.executeQuery("select pyid from pyinfo");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;while (rs.next()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(rs.getString("pyid") + "&lt;br&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;} catch (NamingException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;%&gt;<br />
&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;<br />
</p>
<br />
4.别忘了将ORACLE的JDBC驱动放入到TOMCAT的lib目录中。<br />
<br />
OVER!~
<img src ="http://www.blogjava.net/ghyghost/aggbug/188065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-03-23 19:48 <a href="http://www.blogjava.net/ghyghost/archive/2008/03/23/188065.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]oracle9i使用OMS备份数据</title><link>http://www.blogjava.net/ghyghost/archive/2008/03/21/187740.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 21 Mar 2008 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/03/21/187740.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/187740.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/03/21/187740.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/187740.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/187740.html</trackback:ping><description><![CDATA[<p>转自：http://www.cnblogs.com/PerfectStar/archive/2005/12/30/308364.html<br />
<br />
在oracle 9i中可以方便的把数据导出为文件，或者从文件导入。通过oracle的管理服务器（oracle management server，oms）可以方便的实现，整个操作过程中有很多地方需要解释说明，但是完整的指导资料不多。各大论坛上很多所谓的高手，对该主题的回答往往是，高手是不用oms的，用exp/impl吧。如果你执意追问，他多半会告诉你，其实我也不知道。如果有一份文档可以傻瓜式的指导他们如何来做，大多数人会欣喜若狂且若无其事的下载保存，回去慢慢研究。对于这样自以为高手的人，只送他们两个字：鄙视。</p>
<p>&nbsp;&nbsp;&nbsp; 使用Enterprise Manager Console登陆的时候，会有两个选项：独立启动和登陆到Oracle Management Server。前者可以让我们执行一些普通的管理工作，比如管理帐户、数据库对象等，只有后者才能为我们提供备份的功能。不过在登陆到oms之前，你必须首先安装oms服务。</p>
<p>&nbsp;&nbsp;&nbsp; 启动oracle universal installer，查看已安装产品，展开oracle主目录--oraHome92，如果没有oracle9i management and integration，表示你尚未安装。安装方法是：</p>
<p>&nbsp;&nbsp;&nbsp; 在oracle universal installer的可用产品列表中，选择安装oracle 9i management and integration?oracle management server即可。</p>
<p>&nbsp;&nbsp;&nbsp; 安装完成后，你需要配置一个管理资料库，启动：Configuration and Migration tools?Enterprise Manager Configuration Assistant。在配置操作中选择配置本地的oracle management server?创建一个新的资料库档案?典型。系统将会创建一个名为oemrep的数据库，保存管理信息，其中你需要指定sys和system帐号的密码。</p>
<p>&nbsp;&nbsp;&nbsp; 安装完成后，启动manage server服务，windows下你可以到后台服务中直接启动，它的名字是OracleOraHome92ManagementServer。同时请保证其他自动启动的oracle服务也是启动的。</p>
<p>&nbsp;&nbsp;&nbsp; 然后可以用Enterprise Manaer Console登陆了，帐号sysman&nbsp;&nbsp;&nbsp; 密码oem_temp。第一次登陆后系统会要求你输入新的sysman密码。如果在登陆的时候出现&#8221;身份证明不正确&#8221;的提示，请确认你使用的登陆帐号是sysman，如果帐号无误却始终出现该错误，请删除刚才建立的资料库，重新建一个。</p>
<p>&nbsp;&nbsp;&nbsp; 如果你使用windows，备份数据之前，首先需要建立一个操作系统的用户，专门用于oracle备份，比如建立用户oracle_back，隶属于Administrator组和ora_dba组。然后需要在本地策略中给该用户赋一个批处理权限。方法是：</p>
<p>&nbsp;&nbsp;&nbsp; 控制面板?管理工具?本地安全策略?本地策略?用户权利指派?作为批处理作业登陆，在该权限下面增加刚才建立的oracle_back用户。</p>
<p>&nbsp;&nbsp;&nbsp; 回到Enterprise Manager Console，打开配置?首选项?首选身份证明，在目标名中找到你的机器名，同时它的目标类型为节点，在下面的身份证明中输入oracle_back和它的密码。然后找到你要备份的数据库名，它的目标类型是数据库，在身份证明中输入dba帐号。Ok，现在你可以备份数据了。在任意一张表中点右键，选择数据管理?导出，你就可以在作业中看到这个任务。 </p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/187740.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-03-21 17:10 <a href="http://www.blogjava.net/ghyghost/archive/2008/03/21/187740.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在TOMCAT中解决中文文件名问题，中文URL参数问题-转</title><link>http://www.blogjava.net/ghyghost/archive/2008/01/09/174066.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 09 Jan 2008 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2008/01/09/174066.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/174066.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2008/01/09/174066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/174066.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/174066.html</trackback:ping><description><![CDATA[<p><font size="3">1、把这句加到你的jsp文件最开头（这里是解决中文不能显示的问题）：<br />
〈%@&nbsp; page&nbsp; language="java"&nbsp; contentType="text/html;&nbsp; charset=gb2312"&nbsp; %〉</font></p>
<p><font size="3"><br />
2、</font><font size="3">然后改tomcat的server.xml文件（这里是解决含有中文的文件、图片的不能下载、显示的问题）：<br />
&lt;Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true"&nbsp; URIEncoding="UTF-8"/&gt;</font></p>
<p><font size="3">URIEncoding="UTF-8"&nbsp;&nbsp;&nbsp; 加上这句就可以识别中文文件了，也就是不光可以在jsp中显示中文，还可以下载显示！</font></p>
<p><font size="3">另外对URI中含有中文，可以在URIEncoding="UTF-8"之后加上useBodyEncodingForURI="true" ！</font></p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/174066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2008-01-09 17:18 <a href="http://www.blogjava.net/ghyghost/archive/2008/01/09/174066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个典型的Spring的applicationcontext.xml配置文件</title><link>http://www.blogjava.net/ghyghost/archive/2007/12/07/166031.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 07 Dec 2007 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/12/07/166031.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/166031.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/12/07/166031.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/166031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/166031.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&lt;beans&nbsp;&nbsp;&nbsp;&nbsp;xmlns="http://www.springframework.org/schema/beans"&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi="http://www.w3.org/200...&nbsp;&nbsp;<a href='http://www.blogjava.net/ghyghost/archive/2007/12/07/166031.html'>阅读全文</a><img src ="http://www.blogjava.net/ghyghost/aggbug/166031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-12-07 14:29 <a href="http://www.blogjava.net/ghyghost/archive/2007/12/07/166031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网上同感抓文-Spring的运行机会误解</title><link>http://www.blogjava.net/ghyghost/archive/2007/11/10/159518.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Sat, 10 Nov 2007 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/11/10/159518.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/159518.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/11/10/159518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/159518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/159518.html</trackback:ping><description><![CDATA[<p><span style="color: #5508ff"><span><span style="color: #800000"><strong>（第1种方法）xxAction继承BaseAction,BaseAction注入了一个CommonManager，BaseAction.commonSave()方法调用了commonManager。<br />
本来想xxAction调用父类的commonSave方法将会导致commonManager为null的错误，因为jvm去初始化BaseAction时并不会去注入CommonManger。 <br />
其实解决这个问题只需要在子类xxAction bean配置文件中加上commonManager这个property，然后把父类BaseAction的commonManager 改为protected就 Ok了。这样初始化子类的时候会注入commonManager，调用commonSave方法也就不会抛出npe了。<br />
（第2种方法）配置文件中把xxAction 加上parent的配置也是可以的，这样会把父类的所有property都注入</strong></span></span></span><span style="color: #5508ff"><br />
</span>&nbsp;<br />
<br />
<span style="color: #ff0000"><strong>配置了二三天的SSH多层整合（UI层，业务层，持久化层，DAO层完全分离），根本没有想象中像&#8220;简单版本&#8220;的SSH整合的那么顺利，使用的MYECLIPSE6.0.1最新版本还是存在cglib2.2.3的版本冲突，删除即可。<br />
孙同事在我原来出错的代码上加入parent属性后，顺利调试成功，在网上找了这方面的资料，在http://eyejava.javaeye.com/category/25998?list=1&amp;category=5530中真有和我遇到同样问题的情况，而且有解决方法，就是上面的文章。<br />
<br />
留个纪念！！<br />
</strong></span><br />
<span style="color: #cc99ff"><strong>SSH多层整合虽然松藕合，但配置上环境上走的困难走太多了。555555555555555</strong></span></p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/159518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-11-10 10:34 <a href="http://www.blogjava.net/ghyghost/archive/2007/11/10/159518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>收藏起来：Web网页中使用Media Player播放MPG视频的代码，并且支持JavaScript控制播放，暂停等功能</title><link>http://www.blogjava.net/ghyghost/archive/2007/11/07/158841.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 07 Nov 2007 07:54:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/11/07/158841.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/158841.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/11/07/158841.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/158841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/158841.html</trackback:ping><description><![CDATA[<span style="color: #33cccc"><strong><span style="color: #800080"><strong>&lt;OBJECT id="MediaPlayer1" width="220" height="176" align=baseline border=0 classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"&gt;<br />
&lt;PARAM NAME="AudioStream" VALUE="-1"&gt;<br />
&lt;PARAM NAME="AutoSize" VALUE="0"&gt;<br />
&lt;PARAM NAME="AutoStart" VALUE="0"&gt;<br />
&lt;PARAM NAME="AnimationAtStart" VALUE="0"&gt;<br />
&lt;PARAM NAME="AllowScan" VALUE="0"&gt;<br />
&lt;PARAM NAME="AllowChangeDisplaySize" VALUE="-1"&gt;<br />
&lt;PARAM NAME="AutoRewind" VALUE="0"&gt;<br />
&lt;PARAM NAME="Balance" VALUE="0"&gt;<br />
&lt;PARAM NAME="BaseURL" VALUE=""&gt;<br />
&lt;PARAM NAME="BufferingTime" VALUE="5"&gt;<br />
&lt;PARAM NAME="CaptioningID" VALUE=""&gt;<br />
&lt;PARAM NAME="ClickToPlay" VALUE="0"&gt;<br />
&lt;PARAM NAME="CursorType" VALUE="0"&gt;<br />
&lt;PARAM NAME="CurrentPosition" VALUE="-1"&gt;<br />
&lt;PARAM NAME="CurrentMarker" VALUE="0"&gt;<br />
&lt;PARAM NAME="DefaultFrame" VALUE="datawindow"&gt;<br />
&lt;PARAM NAME="DisplayBackColor" VALUE="0"&gt;<br />
&lt;PARAM NAME="DisplayForeColor" VALUE="16777215"&gt;<br />
&lt;PARAM NAME="DisplayMode" VALUE="0"&gt;<br />
&lt;PARAM NAME="DisplaySize" VALUE="4"&gt;<br />
&lt;PARAM NAME="Enabled" VALUE="-1"&gt;<br />
&lt;PARAM NAME="EnableContextMenu" VALUE="-1"&gt;<br />
&lt;PARAM NAME="EnablePositionControls" VALUE="-1"&gt;<br />
&lt;PARAM NAME="EnableFullScreenControls" VALUE="0"&gt;<br />
&lt;PARAM NAME="EnableTracker" VALUE="-1"&gt;<br />
&lt;PARAM NAME="InvokeURLs" VALUE="-1"&gt;<br />
&lt;PARAM NAME="Language" VALUE="-1"&gt;<br />
&lt;PARAM NAME="Mute" VALUE="0"&gt;<br />
&lt;PARAM NAME="PlayCount" VALUE="0"&gt;<br />
&lt;PARAM NAME="PreviewMode" VALUE="0"&gt;<br />
&lt;PARAM NAME="Rate" VALUE="1"&gt;<br />
&lt;PARAM NAME="SAMILang" VALUE=""&gt;<br />
&lt;PARAM NAME="SAMIStyle" VALUE=""&gt;<br />
&lt;PARAM NAME="SAMIFileName" VALUE=""&gt;<br />
&lt;PARAM NAME="SelectionStart" VALUE="-1"&gt;<br />
&lt;PARAM NAME="SelectionEnd" VALUE="-1"&gt;<br />
&lt;PARAM NAME="SendOpenStateChangeEvents" VALUE="-1"&gt;<br />
&lt;PARAM NAME="SendWarningEvents" VALUE="-1"&gt;<br />
&lt;PARAM NAME="SendErrorEvents" VALUE="-1"&gt;<br />
&lt;PARAM NAME="SendKeyboardEvents" VALUE="0"&gt;<br />
&lt;PARAM NAME="SendMouseClickEvents" VALUE="0"&gt;<br />
&lt;PARAM NAME="SendMouseMoveEvents" VALUE="0"&gt;<br />
&lt;PARAM NAME="SendPlayStateChangeEvents" VALUE="-1"&gt;<br />
&lt;PARAM NAME="ShowCaptioning" VALUE="0"&gt;<br />
&lt;PARAM NAME="ShowControls" VALUE="-1"&gt;<br />
&lt;PARAM NAME="ShowAudioControls" VALUE="-1"&gt;<br />
&lt;PARAM NAME="ShowDisplay" VALUE="0"&gt;<br />
&lt;PARAM NAME="ShowGotoBar" VALUE="0"&gt;<br />
&lt;PARAM NAME="ShowPositionControls" VALUE="0"&gt;<br />
&lt;PARAM NAME="ShowStatusBar" VALUE="0"&gt;<br />
&lt;PARAM NAME="ShowTracker" VALUE="-1"&gt;<br />
&lt;PARAM NAME="TransparentAtStart" VALUE="0"&gt;<br />
&lt;PARAM NAME="VideoBorderWidth" VALUE="0"&gt;<br />
&lt;PARAM NAME="VideoBorderColor" VALUE="0"&gt;<br />
&lt;PARAM NAME="VideoBorder3D" VALUE="0"&gt;<br />
&lt;PARAM NAME="Volume" VALUE="0"&gt;<br />
&lt;PARAM NAME="WindowlessVideo" VALUE="0"&gt;<br />
&lt;PARAM NAME="Filename" VALUE="first.mpg"&gt;<br />
&nbsp;&lt;/OBJECT&gt;</strong><br />
</span></strong></span><br />
<span style="color: #333399">由于WEB功能的需要，需要在页面中显示MPG视频，网络中虽然这样的代码很多，但大多都是不支持JavaScript控制的clsid，不负有心人，终于在网络上搜索到能播放MPG文件并且支持JavaScript控制播放器的代码了，而且支持进度条，播放，暂停控制按钮，还有音量。<br />
<br />
</span><span style="color: #ff0000"><strong>^^</strong></span>
<img src ="http://www.blogjava.net/ghyghost/aggbug/158841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-11-07 15:54 <a href="http://www.blogjava.net/ghyghost/archive/2007/11/07/158841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网上抓文-Hibernate一对多双向关联及inverse的作用</title><link>http://www.blogjava.net/ghyghost/archive/2007/10/24/155659.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 24 Oct 2007 11:31:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/10/24/155659.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/155659.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/10/24/155659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/155659.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/155659.html</trackback:ping><description><![CDATA[<p>来源：thinkGhoster的专栏 - CSDNBlog</p>
<p>　　在测试Hibernate的一对多双向关联映射时，碰到很有趣的问题，跟inverse属性直接相关。</p>
<p>1、People.hbm.xml</p>
<p>＜hibernate-mapping default-lazy="false"＞ <br />
＜class name="com.persistent.People" table="people"＞ <br />
＜id name="id" column="peopleId" unsaved-value="0"＞ <br />
＜generator class="increment"＞ <br />
＜/generator＞ <br />
＜/id＞ <br />
＜property name="name" column="name"＞＜/property＞ <br />
＜set name="addresses" cascade="save-update"＞<br />
＜key column="peopleId" not-null="true" /＞<br />
＜one-to-many class="com.persistent.Address"/＞<br />
＜/set＞ <br />
＜/class＞<br />
＜/hibernate-mapping＞</p>
<p>2、Address.hbm.xml</p>
<p>＜hibernate-mapping＞<br />
＜class name="com.persistent.Address" table="address"＞ <br />
＜id name="id" column="addressId" unsaved-value="0"＞<br />
＜generator class="increment"＞<br />
＜/generator＞<br />
＜/id＞ <br />
＜many-to-one name="people" column="peopleId" insert="false" update="false"＞＜/many-to-one＞ <br />
＜property name="addressName" column="addressName"＞＜/property＞ <br />
＜property name="codeNumber" column="codeNumber"＞＜/property＞ <br />
＜/class＞ <br />
＜/hibernate-mapping＞<br />
3、People.java和Address.java</p>
<p>public class People ...{ <br />
private long id; <br />
private String name; <br />
private Set addresses = new HashSet(); <br />
...<br />
}</p>
<p>public class Address ...{ <br />
private long id; <br />
private People people; <br />
private String addressName; <br />
private String codeNumber; <br />
...<br />
} </p>
<p>4、数据库结构</p>
<p>people表：{peopleId,name}</p>
<p>address表：{addressId,peopleId,addressName,codeNumber}</p>
<p>5、测试代码</p>
<p>People people = new People(); <br />
people.setName("linda"); <br />
Address address = new Address(); <br />
address.setAddressName("yunnan"); <br />
address.setCodeNumber("564123"); <br />
address.setPeople(people); <br />
people.getAddresses().add(address); <br />
Session session = HibernateSessionFactory.getSession(); <br />
session.beginTransaction(); <br />
session.save(people); <br />
session.getTransaction().commit(); </p>
<p>6、运行结果</p>
<p>　　上面测试代码运行起来正确：</p>
<p>Hibernate: select max(peopleId) from people<br />
Hibernate: select max(addressId) from address<br />
Hibernate: insert into people (name, peopleId) values (?, ?)<br />
Hibernate: insert into address (addressName, codeNumber, peopleId, addressId) values (?, ?, ?, ?)<br />
Hibernate: update address set peopleId=? where addressId=?</p>
<p>　　如果将People.hbm.xml映射改写一下：</p>
<p>＜set name="addresses" cascade="save-update" inverse="true"＞<br />
＜key column="peopleId" not-null="true" /＞<br />
＜one-to-many class="com.persistent.Address"/＞<br />
＜/set＞</p>
<p>　　不同之处在于添加了inverse="true"，结果：</p>
<p>Hibernate: select max(peopleId) from people<br />
Hibernate: select max(addressId) from address<br />
Hibernate: insert into people (name, peopleId) values (?, ?)<br />
Hibernate: insert into address (addressName, codeNumber, addressId) values (?, ?, ?)</p>
<p>　　可以看到，peopleId并没有写入到关联的address当中，数据库address表中相应记录的peopleId字段为空。</p>
<p>7、分析</p>
<p>　　在Hibernate中，术语inverse是反转的意思，在关联关系中，inverse="false"为主控方，由主控方负责维护对象的关联关系。所以上面的映射文件改动之后，address为主控方，people为被控方，但是测试代码只进行了一个保存操作session.save(people)，这是针对people的，因此无法正确级联保存address。而原来的映射文件中（虽然没有明确指明，Hibernate默认inverse="false"），people为主控方，因此保存people时它会保证关联的address的正确保存。</p>
<p>　　也就是说，Hibernate仅仅按照主控方对象的状态的变化来同步更新数据库。按照原来的映射文件，people.getAddresses().add(address)，即主控方对象的状态发生了改变，因此数据库会跟着对象状态的变化来同步更新数据库；而address.setPeople(people)，即被控方对象的状态发生了改变，它是不能触发对象和数据库的同步更新的。<br />
</p>
<img src ="http://www.blogjava.net/ghyghost/aggbug/155659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-10-24 19:31 <a href="http://www.blogjava.net/ghyghost/archive/2007/10/24/155659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网上找的-hibernate检索策略</title><link>http://www.blogjava.net/ghyghost/archive/2007/09/10/143890.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Mon, 10 Sep 2007 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/09/10/143890.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/143890.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/09/10/143890.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/143890.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/143890.html</trackback:ping><description><![CDATA[连接查询：<br />
&nbsp;&nbsp;&nbsp;关系型数据库之所以强大，其中一个原因就是可以统一使用表来管理同类数据信息，并且可以在相关数据之间建立关系。作为支持关系型数据库的SQL语句来说，自然要对全面发挥这种强大功能提供支持，这个支持就是连接查询。同样作为一种关系型数据库的持久层框架，Hibernate也对连接查询提供了丰富的支持，在Hibernate中通过HQL与QBC两种查询方式都可以支持连接查询。下面这一部分我们将通过这两种查询技术，来详细讨论有关Hibernate对连接查询支持的各个细节。在讲解连接查询之前，我们先来回忆一下在第一部分中讲解的有关实体关联关系的映射，在实体的配置文件中可以通过配置集合元素来指定对关联实体的映射以及检索策略。（请参考第一部分相关内容）因此我们可以在实体映射配置文件中，指定关联实体检索策略，对关联实体的检索策略可以指定为&#8220;延迟检索&#8221;，&#8220;立即检索&#8221;，&#8220;迫切左外连接检索&#8221;，如下所示对与Customer实体关联的Order实体设置延迟加载：&lt;set&nbsp;name=&#8221;orders&#8221;&nbsp;inverse=&#8221;true&#8221;&nbsp;lazy=&#8221;true&#8221;&gt;,这种在实体映射配置文件中设定的检索策略，称为默认检索策略，但是这种默认检索策略是可以被覆盖的，那就是在程序代码当中可以动态指定各种迫切检索策略来覆盖默认检索策略。<br />
1、&nbsp;&nbsp;&nbsp;&nbsp;迫切左外连接查询和左外连接查询：<br />
我们看以下代码，这段代码将覆盖映射文件中的检索策略，显示指定采用迫切左外连接查询。<br />
&nbsp;<br />
HQL查询方式：<br />
Query&nbsp;query=session.createQuery(&#8220;from&nbsp;Customer&nbsp;c&nbsp;left&nbsp;join&nbsp;fetch&nbsp;c.orders&nbsp;o&nbsp;where&nbsp;c.name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;&#8216;zhao%&#8217;&nbsp;&#8221;);<br />
List&nbsp;list=query.list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Customer&nbsp;customer=(Customer)list.get(i);<br />
}<br />
//QBC检索方式：<br />
List&nbsp;list=session.createCriteria(Customer.class).setFetchMode(&#8220;orders&#8221;,FetchMode.EAGER)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.add(Expression.like(&#8220;name&#8221;,&#8221;zhao%&#8221;,MatchMode.START).list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Customer&nbsp;customer=(Customer)list.get(i);<br />
}<br />
我们看到在HQL以及QBC查询中分别通过left&nbsp;join&nbsp;fetch和FetchMode.EAGER来指定采用迫切左外连接检索策略，当采用了迫切左外连接检索策略时，当进行检索时即执行查询的list()方法时，将会立即初始化用来容纳关联实体的集合对象元素，如果在实体映射配置文件中对关联实体设置了延迟加载，那么此时将会忽略延迟加载设置，而采用迫切左外连接策略，并且立即用关联实体对象填充集合对象元素，即使用Order对象填充Customer对象的orders集合。因此这种检索策略会马上创建关联实体对象，此时我想你一定会想到这种检索策略会同时检索出Customer和Order实体对象对应的数据，并且分别创建这两个对象。恭喜你答对了，因此上面代码会生成类似如下的SQL语句：<br />
Select&nbsp;*&nbsp;from&nbsp;customer&nbsp;c&nbsp;left&nbsp;join&nbsp;order&nbsp;o&nbsp;on&nbsp;c.id=o.id&nbsp;where&nbsp;c.name&nbsp;like&nbsp;&#8216;zhao%&#8217;;<br />
如果我们忽略了fetch关键字，就变成了左外连接查询，如下面代码：<br />
Query&nbsp;query=session.createQuery(&#8220;from&nbsp;Customer&nbsp;c&nbsp;left&nbsp;join&nbsp;c.orders&nbsp;o&nbsp;where&nbsp;c.name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;&#8216;zhao%&#8217;&nbsp;&#8221;);<br />
List&nbsp;list=query.list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Object[]&nbsp;objs=(Object[])list.get(i);<br />
&nbsp;Customer&nbsp;customer=(Customer)&nbsp;objs[0];<br />
&nbsp;order&nbsp;order=(Order)objs[1];<br />
}<br />
我们可以看到采用左外连接查询返回的结果集中包含的是对象数组，对象数组中的每个元素存放了一对相互关联的Customer对象和Order对象，而迫切左外连接会返回Customer对象，与Customer对象相关联的Order对象存放在Customer对象的集合元素对象中，这就是迫切左外连接和左外连接查询的其中一个区别（这两种检索生成的SQL语句是一样的），另一个区别是当使用左外连接时，对关联对象的检索会依照实体映射配置文件所指定的策略，而不会像迫切左外连接那样忽略它，比如此时对Customer对象关联的Order对象采用延迟加载，那么左外连接检索也会使用延迟加载机制检索Order对象。<br />
2、内连接，迫切内连接以及隐式内连接：<br />
&nbsp;若采用迫切内连接通过一下代码可以实现：<br />
Query&nbsp;query=session.createQuery(&#8220;from&nbsp;Customer&nbsp;c&nbsp;inner&nbsp;join&nbsp;fetch&nbsp;c.orders&nbsp;o&nbsp;where&nbsp;c.name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;&#8216;zhao%&#8217;&nbsp;&#8221;);<br />
List&nbsp;list=query.list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Customer&nbsp;customer=(Customer)list.get(i);<br />
}<br />
这段代码将会采用迫切内连接检索，对集合元素的检索策略以及返回结果集中的对象类型都采用与迫切左外连接一样的方式，我这里就不再赘述，另外QBC查询不支持迫切内连接检索。<br />
如果去掉fetch就是内连接检索，如下面代码：<br />
Query&nbsp;query=session.createQuery(&#8220;from&nbsp;Customer&nbsp;c&nbsp;innerjoin&nbsp;c.orders&nbsp;o&nbsp;where&nbsp;c.name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;&#8216;zhao%&#8217;&nbsp;&#8221;);<br />
List&nbsp;list=query.list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Object[]&nbsp;objs=(Object[])list.get(i);<br />
&nbsp;Customer&nbsp;customer=(Customer)&nbsp;objs[0];<br />
&nbsp;order&nbsp;order=(Order)objs[1];<br />
}<br />
内连接检索，对集合元素的检索策略以及返回结果集中的对象类型都采用与左外连接一样的方式，QBC查询也同样支持内连接检索，如下代码：<br />
List&nbsp;list=session.createCriteria(Customer.class)<br />
.add(Expression.like(&#8220;name&#8221;,&#8221;zhao%&#8221;,MatchMode.START))<br />
.createCriteria(&#8220;orders&#8221;)<br />
.add(Expression.like(&#8220;ordernumber&#8221;,&#8221;T&#8221;,MatchMode.START)).list();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上面代码等价于如下的HQL语句：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;c&nbsp;from&nbsp;Customer&nbsp;c&nbsp;join&nbsp;c.orders&nbsp;o&nbsp;where&nbsp;c.name&nbsp;like&nbsp;&#8216;zhao%&#8217;&nbsp;and&nbsp;o.ordernummber&nbsp;like&nbsp;&#8216;T%&#8217;;因此可以采用下面的方式访问结果集：<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Customer&nbsp;customer=(Customer)list.get(i);<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由此可见，采用内连接查询时,HQL与QBC查询有不同的默认行为，HQL会检索出成对的Customer和Order对象，而QBC仅会检索出Customer对象。如果QBC查询想检索出成对的Customer和Order对象，可以采用如下代码：<br />
List&nbsp;list=session.createCriteria(Customer.class)<br />
.createAlias(&#8220;orders&#8221;,&#8221;o&#8221;)<br />
.add(Expression.like(&#8220;this.name&#8221;,&#8221;zhao%&#8221;,MatchMode.START))<br />
.add(Expression.like(&#8220;ordernumber&#8221;,&#8221;T&#8221;,MatchMode.START))<br />
.returnMap()<br />
.list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;&nbsp;&nbsp;Map&nbsp;map=(Map)list.get(i);<br />
&nbsp;Customer&nbsp;customer=(Customer)map.get(&#8220;this&#8221;);<br />
&nbsp;order&nbsp;order=(Order)map.get(&#8220;o&#8221;);<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;o&#8221;和&#8221;this&#8221;分别是orders集合和Customer对象的别名。<br />
&nbsp;&nbsp;&nbsp;&nbsp;在HQL查询中，还有一种查询成为隐式内连接，我们看下面的HQL语句，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;From&nbsp;order&nbsp;o&nbsp;where&nbsp;o.customer.name&nbsp;like&nbsp;&#8217;&nbsp;zhao%&nbsp;&#8217;;这个语句通过o.customer.name访问与Order对象关联的Customer对象的name属性，尽管没有使用join关键字，其实隐式指定了采用内连接检索，它和下面这条HQL语句等价：<br />
From&nbsp;order&nbsp;o&nbsp;join&nbsp;o.customer&nbsp;c&nbsp;where&nbsp;c.name&nbsp;like&nbsp;&#8216;zhao%&#8217;;<br />
隐式内连接只适用于多对一和一对一关联，不适用于一对多和多对多关联，另外QBC查询不支持隐式内连接检索。<br />
3、右外连接检索：<br />
由于fetch关键字只能应用于innner&nbsp;join和left&nbsp;join，因此对于右外连接检索而言，就不存在所谓的迫切右外连接查询了，使用右外连接见如下代码：<br />
Query&nbsp;query=session.createQuery(&#8220;from&nbsp;Customer&nbsp;c&nbsp;right&nbsp;join&nbsp;c.orders&nbsp;o&nbsp;where&nbsp;c.name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;&#8216;zhao%&#8217;&nbsp;&#8221;);<br />
List&nbsp;list=query.list();<br />
for(int&nbsp;i=0;i&lt;list.size();i++){<br />
&nbsp;Object[]&nbsp;objs=(Object[])list.get(i);<br />
&nbsp;Customer&nbsp;customer=(Customer)&nbsp;objs[0];<br />
&nbsp;order&nbsp;order=(Order)objs[1];<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;右外连接检索,对集合元素的检索策略以及返回结果集中的对象类型都采用与左外连接一样的方式。<br />
4、交叉连接：<br />
&nbsp;对于不存在关联关系的两个实体对象，不能使用内连接查询，也不能使用外连接查询，此时可以使用具有SQL风格的交叉连接，如下面代码：<br />
Select&nbsp;c.ID,c.name,c.age,o.ID,o.ordernumber,o.customer_ID<br />
From&nbsp;Customer&nbsp;c,Order&nbsp;o;<br />
这个HQL语句将会执行交叉连接检索，而且将会返回customer表和order表的笛卡儿积关联结果。<br />
5、连接查询运行时检索策略总结：<br />
①、如果在HQL和QBC查询中没有指定检索策略，那么将会使用映射配置为件中指定的检索策略，但是这里有一个例外，那就是HQL检索总是会忽略实体映射配置文件中对关联实体指定的迫切左外连接检索策略，也就是说如果配置文件中指定对关联实体采用迫切走外连接检索，但是在HQL查询语句中没有指定这种检索策略，此时Hibernate将会忽略这种检索策略，而依然采用立即检索。因此如果希望采用迫切左外连接检索，就必须在HQL语句中明确指定。<br />
②、如果在HQL或者QBC检索中明确指定了检索策略，就会覆盖配置文件中的默认检索策略，在HQL查询中通过left&nbsp;join&nbsp;fetch和inner&nbsp;join&nbsp;fetch来明确指定检索策略，在QBC查询中通过FetchMode.DEFAULT,FetchMode.EAGER,FetchMode.LAZY来明确指定检索策略。<br />
①、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;目前的Hibernate的各种版本中，只允许在一个查询中迫切左外连接检索一个集合，即只允许存在一个一对多关联，但是允许存在多个一对一和多对多关联。
<img src ="http://www.blogjava.net/ghyghost/aggbug/143890.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-09-10 09:49 <a href="http://www.blogjava.net/ghyghost/archive/2007/09/10/143890.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于hibernate3.1延迟加载3句话</title><link>http://www.blogjava.net/ghyghost/archive/2007/09/07/143337.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 07 Sep 2007 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/09/07/143337.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/143337.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/09/07/143337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/143337.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/143337.html</trackback:ping><description><![CDATA[<span style="color: #00ccff"><span style="color: #ff0000"><strong>1.</strong></span><span style="color: #333399">hibernate 3.1的lazy默认值是true，需要注意。<br />
<br />
</span><span style="color: #ff0000"><strong>2.</strong></span><span style="color: #333399">针对这几天的代码：<br />
</span></span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;ActionForward&nbsp;execute(ActionMapping&nbsp;mapping,&nbsp;ActionForm&nbsp;form,<br />
<img id="Codehighlighter1_131_633_Open_Image" onclick="this.style.display='none'; Codehighlighter1_131_633_Open_Text.style.display='none'; Codehighlighter1_131_633_Closed_Image.style.display='inline'; Codehighlighter1_131_633_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_131_633_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_131_633_Closed_Text.style.display='none'; Codehighlighter1_131_633_Open_Image.style.display='inline'; Codehighlighter1_131_633_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;</span><span id="Codehighlighter1_131_633_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_131_633_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;hibernate.HibernateSessionFactory.getSession();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jishuchuangxinzhongxin&nbsp;jishuchuangxinzhongxin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Jishuchuangxinzhongxin)&nbsp;session<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.load(Jishuchuangxinzhongxin.</span><span style="color: #0000ff">class</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(Integer<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.valueOf((String)&nbsp;request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">id</span><span style="color: #000000">"</span><span style="color: #000000">))<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.intValue()));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(jishuchuangxinzhongxin.getBiaoti());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">jishuchuangxinzhongxin</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;jishuchuangxinzhongxin);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">show_jishuchuangxinzhongxin</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<span style="color: #333399">如果去掉&nbsp;&nbsp;System.out.println(jishuchuangxinzhongxin.getBiaoti());这句后，则findforward到JSP时就会出现错误，终其原因就是3.1默认就是延迟加载，在内部NEW了一个代理对象的引用。当加上&nbsp;&nbsp;System.out.println(jishuchuangxinzhongxin.getBiaoti());这句后，hibernate 3.1初始化代理对象中的各个属性，下一步session.close，虽然session是close关的，但JSP也可以访问游离对象，所以不出错。</span> <br />
<br />
<span style="color: red"><strong>3.</strong></span><span style="color: #333399">避免上2条的错误，解决办法有二：（1）设置class标记为lazy=false，即非延迟检索　（2）使用session.get方法来代替session.load方法。因为session.get方法是立即检索策略。</span> 
<img src ="http://www.blogjava.net/ghyghost/aggbug/143337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-09-07 10:46 <a href="http://www.blogjava.net/ghyghost/archive/2007/09/07/143337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java+sql server+CallableStatement调用存储过程三种情况</title><link>http://www.blogjava.net/ghyghost/archive/2007/05/20/118745.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Sun, 20 May 2007 12:45:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/05/20/118745.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/118745.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/05/20/118745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/118745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/118745.html</trackback:ping><description><![CDATA[<span style="COLOR: #ff0000">在JSP页面中进行测试，代码如下：</span><br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&lt;%</span><span style="COLOR: #000000">@&nbsp;page&nbsp;contentType</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">text/html;charset=gb2312</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&lt;%</span><span style="COLOR: #000000">@&nbsp;page&nbsp;</span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">java.sql.*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">html</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">body</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;%</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">com.microsoft.jdbc.sqlserver.SQLServerDriver</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.newInstance();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">pubs为你的数据库的</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;user&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sa</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;DriverManager.getConnection(url,&nbsp;user,&nbsp;password);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">不带参数的存储过程，并且返回结果集</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CallableStatement&nbsp;stmt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;conn.prepareCall(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{call&nbsp;ghy_proc}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.execute();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;stmt.getResultSet();<br><img id=Codehighlighter1_571_610_Open_Image onclick="this.style.display='none'; Codehighlighter1_571_610_Open_Text.style.display='none'; Codehighlighter1_571_610_Closed_Image.style.display='inline'; Codehighlighter1_571_610_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_571_610_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_571_610_Closed_Text.style.display='none'; Codehighlighter1_571_610_Open_Image.style.display='inline'; Codehighlighter1_571_610_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(rs.next())&nbsp;</span><span id=Codehighlighter1_571_610_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_571_610_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(rs.getString(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;br&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">带参数的存储过程，并且返回值</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;conn.prepareCall(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{call&nbsp;ghy_proc_return(?,?)}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.registerOutParameter(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;Types.INTEGER);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.registerOutParameter(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;Types.INTEGER);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.setInt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.setInt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.execute();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">加1的值是：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;stmt.getString(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;br&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">减1的值是：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;stmt.getString(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;br&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">带参数的存储过程，并且返回结果集</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;conn.prepareCall(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">{call&nbsp;ghy_proc_var(?)}</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.setInt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.execute();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;stmt.getResultSet();<br><img id=Codehighlighter1_1156_1291_Open_Image onclick="this.style.display='none'; Codehighlighter1_1156_1291_Open_Text.style.display='none'; Codehighlighter1_1156_1291_Closed_Image.style.display='inline'; Codehighlighter1_1156_1291_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1156_1291_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1156_1291_Closed_Text.style.display='none'; Codehighlighter1_1156_1291_Open_Image.style.display='inline'; Codehighlighter1_1156_1291_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(rs.next())&nbsp;</span><span id=Codehighlighter1_1156_1291_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1156_1291_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">job_id&nbsp;value&nbsp;is：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;rs.getString(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;br&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">job_desc&nbsp;value&nbsp;is：</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;rs.getString(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;br&gt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">body</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">html</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><span style="COLOR: #ff00ff">三个SQL Server 2000存储过程如下：<br></span><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">PROCEDURE</span><span style="COLOR: #000000">&nbsp;ghy_proc&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;jobs<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">GO</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">PROCEDURE</span><span style="COLOR: #000000">&nbsp;ghy_proc_return&nbsp;(</span><span style="COLOR: #008000">@max</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">int</span><span style="COLOR: #000000">&nbsp;output,</span><span style="COLOR: #008000">@min</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">int</span><span style="COLOR: #000000">&nbsp;output)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@max</span><span style="COLOR: #808080">=</span><span style="COLOR: #008000">@max</span><span style="COLOR: #808080">+</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">@min</span><span style="COLOR: #808080">=</span><span style="COLOR: #008000">@min</span><span style="COLOR: #808080">-</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">GO</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">PROCEDURE</span><span style="COLOR: #000000">&nbsp;ghy_proc_var&nbsp;&nbsp;(</span><span style="COLOR: #008000">@id</span><span style="COLOR: #000000">&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: #000000">int</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">AS</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #808080">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000">&nbsp;jobs&nbsp;</span><span style="COLOR: #0000ff">where</span><span style="COLOR: #000000">&nbsp;job_id</span><span style="COLOR: #808080">=</span><span style="COLOR: #008000">@id</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">GO</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><span style="COLOR: #00ff00"><strong>告诉自己：标准SQL语法和概念很重要，以后要强化这些。</strong></span>
<img src ="http://www.blogjava.net/ghyghost/aggbug/118745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-05-20 20:45 <a href="http://www.blogjava.net/ghyghost/archive/2007/05/20/118745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORA-12560: TNS: 协议适配器错误的解决方法（网上找的解决办法）</title><link>http://www.blogjava.net/ghyghost/archive/2007/05/04/115264.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Fri, 04 May 2007 00:52:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2007/05/04/115264.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/115264.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2007/05/04/115264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/115264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/115264.html</trackback:ping><description><![CDATA[<span style="COLOR: #99cc00"><font style="COLOR: #3366ff" size=2>造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个：<br><br><span style="COLOR: #ff6600">1.监听服务没有起起来</span><br>windows平台个一如下操作：开始---程序---管理工具---服务，打开服务面板，启动oraclehome92TNSlistener服务。<br><br><span style="COLOR: #ff6600">2.database instance没有起起来</span><br>windows平台如下操作：开始---程序---管理工具---服务，打开服务面板，启动oracleserviceXXXX,XXXX就是你的database SID.<br><br><span style="COLOR: #ff6600">3.注册表问题</span><br>regedit，然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID<br></font><br><strong>我用第三种办法解决的。</strong></span>
<img src ="http://www.blogjava.net/ghyghost/aggbug/115264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2007-05-04 08:52 <a href="http://www.blogjava.net/ghyghost/archive/2007/05/04/115264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Error reading data from static cursor cache的出错的其中一个原因</title><link>http://www.blogjava.net/ghyghost/archive/2006/08/17/64027.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 16 Aug 2006 23:41:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2006/08/17/64027.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/64027.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2006/08/17/64027.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/64027.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/64027.html</trackback:ping><description><![CDATA[
		<font color="#0066ff">
				<strong>环境：</strong>
		</font>
		<br />　　Eclipse3.2<br />　　MyEclipse5.0<br />　　Tomcat 5.5.12<br />　　MsSQL 2000 SP4<br />　　JDBC For MsSQL 2000 SP3<br /><br /><font color="#0066ff"><strong>代码：</strong></font><br />　　下面是我在<font color="#ff0000"><strong>JSP</strong></font>页面中的截取的代码：<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">                        ResultSet resultset </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> conn<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                                .executeQuery(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">select * from user_table where username=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                                </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> request.getParameter(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">username</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img id="Codehighlighter1_183_229_Open_Image" onclick="this.style.display='none'; Codehighlighter1_183_229_Open_Text.style.display='none'; Codehighlighter1_183_229_Closed_Image.style.display='inline'; Codehighlighter1_183_229_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_183_229_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_183_229_Closed_Text.style.display='none'; Codehighlighter1_183_229_Open_Image.style.display='inline'; Codehighlighter1_183_229_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />                        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (resultset.next()) </span><span id="Codehighlighter1_183_229_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_183_229_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                            out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">已经有此用户，请换名注册！~</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img id="Codehighlighter1_236_284_Open_Image" onclick="this.style.display='none'; Codehighlighter1_236_284_Open_Text.style.display='none'; Codehighlighter1_236_284_Closed_Image.style.display='inline'; Codehighlighter1_236_284_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_236_284_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_284_Closed_Text.style.display='none'; Codehighlighter1_236_284_Open_Image.style.display='inline'; Codehighlighter1_236_284_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />                        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_236_284_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_236_284_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                            out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">此用户名可以注册，请继续注册！~</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />                        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                        resultset.close();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                        conn.closeQuery();</span></div><br /><font color="#0066ff"><strong>说明：</strong></font><br />　　既然是查找数据库中是否有这个用户，那么必须先在注册页面中进行登记插入操作吧，插入操作没有什么错误。现在问题是在user_table表中有一个字段personal为text类型，存入的是个人用户信息，这时如果我在注册页面中不对这个textarea个人用户信息表单写入值的话，结果是数据库的那个personal字段为空的话，那么执行这个if(resultset.next())就出现错误提示：<br />　　<font color="#ff9900"><strong>Error reading data from static cursor cache<br /><br /></strong></font><font color="#000000"><strong><font color="#0066ff">解决：<br /></font></strong>　　我的解决办法很笨，改成varchar类型的了。<br /><br /></font><font color="#339966">如果有哪位朋友知道解决办法请告知，感谢！~</font><img src ="http://www.blogjava.net/ghyghost/aggbug/64027.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2006-08-17 07:41 <a href="http://www.blogjava.net/ghyghost/archive/2006/08/17/64027.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用代码来测试JAVA中数据类型的存储大小</title><link>http://www.blogjava.net/ghyghost/archive/2006/03/13/35012.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Mon, 13 Mar 2006 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2006/03/13/35012.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/35012.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2006/03/13/35012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/35012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/35012.html</trackback:ping><description><![CDATA[由于JAVA里没有sizeof函数，所以想办法解决一下。<BR><BR>感谢CSDN网友：dogod<BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_36_1906_Open_Image onclick="this.style.display='none'; Codehighlighter1_36_1906_Open_Text.style.display='none'; Codehighlighter1_36_1906_Closed_Image.style.display='inline'; Codehighlighter1_36_1906_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_36_1906_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_36_1906_Closed_Text.style.display='none'; Codehighlighter1_36_1906_Open_Image.style.display='inline'; Codehighlighter1_36_1906_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;abc&nbsp;</SPAN><SPAN id=Codehighlighter1_36_1906_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_36_1906_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_79_1903_Open_Image onclick="this.style.display='none'; Codehighlighter1_79_1903_Open_Text.style.display='none'; Codehighlighter1_79_1903_Closed_Image.style.display='inline'; Codehighlighter1_79_1903_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_79_1903_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_79_1903_Closed_Text.style.display='none'; Codehighlighter1_79_1903_Open_Image.style.display='inline'; Codehighlighter1_79_1903_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&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 id=Codehighlighter1_79_1903_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_79_1903_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">&nbsp;cr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">&nbsp;be&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">short</SPAN><SPAN style="COLOR: #000000">&nbsp;st&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;it&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">long</SPAN><SPAN style="COLOR: #000000">&nbsp;lg&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">float</SPAN><SPAN style="COLOR: #000000">&nbsp;ft&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">double</SPAN><SPAN style="COLOR: #000000">&nbsp;de&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">&nbsp;x;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;cot&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;byteSize&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;System.out.println("Float.size:&nbsp;"+Float.SIZE);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;System.out.println("Double.size:&nbsp;"+Double.SIZE);</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;&nbsp;(cr&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&lt;=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;&nbsp;cnt</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">char'sBits:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;&nbsp;(be&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&lt;=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;&nbsp;cnt</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">byte'sBits:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byteSize&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;&nbsp;(st&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&lt;=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;&nbsp;cnt</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">short'sBits:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;&nbsp;(it&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&lt;=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;&nbsp;cnt</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">int'sBits:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">;&nbsp;(lg&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;&lt;=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;&nbsp;cnt</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">long'sBits:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cnt);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;用字节流处理double</SPAN><SPAN style="COLOR: #008000"><BR><IMG id=Codehighlighter1_843_1223_Open_Image onclick="this.style.display='none'; Codehighlighter1_843_1223_Open_Text.style.display='none'; Codehighlighter1_843_1223_Closed_Image.style.display='inline'; Codehighlighter1_843_1223_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_843_1223_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_843_1223_Closed_Text.style.display='none'; Codehighlighter1_843_1223_Open_Image.style.display='inline'; Codehighlighter1_843_1223_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_843_1223_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_843_1223_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;buf&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ByteArrayOutputStream();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream&nbsp;out&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataOutputStream(buf);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.writeDouble(de);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream&nbsp;in&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataInputStream(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ByteArrayInputStream(<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf.toByteArray()));<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_1139_1203_Open_Image onclick="this.style.display='none'; Codehighlighter1_1139_1203_Open_Text.style.display='none'; Codehighlighter1_1139_1203_Closed_Image.style.display='inline'; Codehighlighter1_1139_1203_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1139_1203_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1139_1203_Closed_Text.style.display='none'; Codehighlighter1_1139_1203_Open_Image.style.display='inline'; Codehighlighter1_1139_1203_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;((x&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">)&nbsp;in.readByte())&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_1139_1203_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1139_1203_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;System.out.println("byte["+cot+"]:"+x);</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cot</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_1247_1284_Open_Image onclick="this.style.display='none'; Codehighlighter1_1247_1284_Open_Text.style.display='none'; Codehighlighter1_1247_1284_Closed_Image.style.display='inline'; Codehighlighter1_1247_1284_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1247_1284_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1247_1284_Closed_Text.style.display='none'; Codehighlighter1_1247_1284_Open_Image.style.display='inline'; Codehighlighter1_1247_1284_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1247_1284_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1247_1284_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">EOF!!!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">The&nbsp;Double's&nbsp;bit&nbsp;size&nbsp;is&nbsp;:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cot&nbsp;</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">&nbsp;byteSize);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;用字节流处理float</SPAN><SPAN style="COLOR: #008000"><BR><IMG id=Codehighlighter1_1379_1770_Open_Image onclick="this.style.display='none'; Codehighlighter1_1379_1770_Open_Text.style.display='none'; Codehighlighter1_1379_1770_Closed_Image.style.display='inline'; Codehighlighter1_1379_1770_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1379_1770_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1379_1770_Closed_Text.style.display='none'; Codehighlighter1_1379_1770_Open_Image.style.display='inline'; Codehighlighter1_1379_1770_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_1379_1770_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1379_1770_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cot&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;buf&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ByteArrayOutputStream();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream&nbsp;out&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataOutputStream(buf);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.writeFloat(ft);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream&nbsp;in&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;DataInputStream(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;ByteArrayInputStream(<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf.toByteArray()));<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_1686_1750_Open_Image onclick="this.style.display='none'; Codehighlighter1_1686_1750_Open_Text.style.display='none'; Codehighlighter1_1686_1750_Closed_Image.style.display='inline'; Codehighlighter1_1686_1750_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1686_1750_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1686_1750_Closed_Text.style.display='none'; Codehighlighter1_1686_1750_Open_Image.style.display='inline'; Codehighlighter1_1686_1750_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;((x&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">)&nbsp;in.readByte())&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_1686_1750_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1686_1750_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;System.out.println("byte["+cot+"]:"+x);</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cot</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_1794_1831_Open_Image onclick="this.style.display='none'; Codehighlighter1_1794_1831_Open_Text.style.display='none'; Codehighlighter1_1794_1831_Closed_Image.style.display='inline'; Codehighlighter1_1794_1831_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1794_1831_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1794_1831_Closed_Text.style.display='none'; Codehighlighter1_1794_1831_Open_Image.style.display='inline'; Codehighlighter1_1794_1831_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1794_1831_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1794_1831_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">EOF!!!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">The&nbsp;Float's&nbsp;bit&nbsp;size&nbsp;is&nbsp;:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cot&nbsp;</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">&nbsp;byteSize);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><img src ="http://www.blogjava.net/ghyghost/aggbug/35012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2006-03-13 13:33 <a href="http://www.blogjava.net/ghyghost/archive/2006/03/13/35012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jakarta-tomcat-5.0.28和Eclipse3.1和MyEclipse4.0GA和MSSQL2000SP4和JDK1.4.2配置JNDI辛苦完成档</title><link>http://www.blogjava.net/ghyghost/archive/2005/12/19/24629.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Mon, 19 Dec 2005 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2005/12/19/24629.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/24629.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2005/12/19/24629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/24629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/24629.html</trackback:ping><description><![CDATA[转载请注明作者：ghyghost(爱国人士)<BR>在学习J2EE中的JNDI时，发现书上讲的配置环境这方面内容几乎没有，在网上找了一些相关的资料也非常模糊，而且例子不是不准确，就是CONN为NULL这些怪事情，终于还在研究下搞定，步骤非常简单，但研究起来的确是一件吃辛苦的事情。嗯^_^<BR><BR>第一步要做的肯定是安装相应的软件吧。JDK先要安装，然后设置一下环境变量，下一步是eclipse3.1及myeclipse4.0GA和tomcat5.0.28及MSSQL2000。<BR><BR>第二步肯定是JDBC FOR MSSQL2000 SP3的安装及COPY相应的JAR文件到TOMCAT相应的目标目录，此处省略。<BR><BR>第三步就是设置了。<BR>　　进入eclipse3.1新建一个[Web Project]项目名字为JNDI_PROJECT,然后在package explorer窗口中JNDI_PROJECT项目中的WebRoot目录中新建一个JSP文件名字叫ghyghost.jsp(内容为默认)，然后将当前项目目录WebRoot目录中WEB-INF目录中的Web.xml文件全部内容改成如下的全部内容：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">web-app&nbsp;</SPAN><SPAN style="COLOR: #ff0000">version</SPAN><SPAN style="COLOR: #0000ff">="2.4"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;xmlns</SPAN><SPAN style="COLOR: #0000ff">="http://java.sun.com/xml/ns/j2ee"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;xmlns:xsi</SPAN><SPAN style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;xsi:schemaLocation</SPAN><SPAN style="COLOR: #0000ff">="http://java.sun.com/xml/ns/j2ee&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">resource-ref</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">res-ref-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">jdbc/JNDINAME</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">res-ref-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">res-type</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">javax.sql.DataSource</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">res-type</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">res-auth</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">Container</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">res-auth</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">resource-ref</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">web-app</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV><BR>注意到这句了吗：<SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">res-ref-name</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">jdbc/JNDINAME</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">res-ref-name</SPAN><SPAN style="COLOR: #0000ff">&gt;？？其中<SPAN style="COLOR: #000000">jdbc/JNDINAME中的JNDINAME就是你的JNDI的名字，相当于你的名字呀，很重要，这里看官先别改，设置与我一样就行。OK。！<BR></SPAN></SPAN><BR>这时在eclipse3.1中开始部属这个项目，并且启动TOMCAT服务器。进入G:\Tomcat\webapps这个目录后，发现有一个目录名字为JNDI_PROJECT的，就证明部属成功了。恭喜你。<BR>　　下一步要做的就是进入<FONT color=#ff1493>http://localhost:8080/admin</FONT>这个本地网址了，然后输入相应的用户名和密码后，在左边的树结构中发现有三个结点，分别是：Tomcat Server和Resources和User Definition这三个，这三个结点还有子结点，我们只关心第一个Tomcat Server这个结点，点击Service(Catalina)这个结点左边像“钥匙”的图标展开树形结构，再点击Host(localhost)这个结点左边像“钥匙”的图标展开树形结构，如果这时你看到有一个结点的名字是：Context(/abc)，再一次恭喜你，离成功很近了。<BR>　　那么我们就点击Context(/JNDI_PROJECT)结点左边像“钥匙”的图标再一次展开树形结构，里面的Resources结点中有结点Data Sources，非常棒，这个结点就是我们想要的结果。点击Data Sources这个结点，在网页界面的右边出现了界面，这时就会发现JNDI NAME下面有一个我们刚刚在XML定义的<FONT color=#0000ff>jdbc/JNDINAME</FONT> 链接，点击链接后，出现一个界面，我们只关心的是前五项，即： 
<DIV class=table-label-text align=left><LABEL for=jndi>JNDI Name:</LABEL> 这里面显示你的JNDI的名字，就像你的名字一样，叫你的名字就是你，不是别人。<LABEL for=url>因为前面我们在Web.XML文件中定义过了名字了，所以在这里就能显示出来。<BR>Data Source URL:</LABEL> 数据资源的URL，如果你写过JDBC很熟悉这个名词吧，呵呵。这里我们添上：jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs我们要连接的是pubs数据库，MSSQL2000中自带的。<BR>
<DIV class=table-label-text align=left>
<DIV class=table-label-text align=left><LABEL for=jdbcclass>JDBC Driver Class:</LABEL> 这个不用讲了吧，添入：com.microsoft.jdbc.sqlserver.SQLServerDriver<BR>
<DIV class=table-label-text align=left><LABEL for=username>User Name和Password是你在MSSQL2000企业管理器中设置的用户名和密码，在我这里用户名为sa密码为空，即不添。<BR><BR>转载请注明作者：ghyghost(爱国人士)<BR><BR>OK，到此，添过了上面五项内容后，点击SAVE提交表单，保存起来还要点击网页上面的Commit Changes按钮来更新一下系统设置。<BR><BR>到此我们在TOMCAT中的ADMIN中的设置就到此为至。<BR>--------------------------------------------------<BR>这一步开始进入ECLIPSE3.1中写JSP用JNDI连接数据库的代码了，测试代码如下：<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;page&nbsp;language</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">java</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">java.util.*</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;page&nbsp;</SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">javax.sql.*</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;page&nbsp;</SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">java.sql.*</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;page&nbsp;</SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">javax.naming.*</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;!</SPAN><SPAN style="COLOR: #000000">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">html</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">head</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">head</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">body</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">Context&nbsp;ctx&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;cnn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.sql.Statement&nbsp;stmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">;<BR><IMG id=Codehighlighter1_355_1315_Open_Image onclick="this.style.display='none'; Codehighlighter1_355_1315_Open_Text.style.display='none'; Codehighlighter1_355_1315_Closed_Image.style.display='inline'; Codehighlighter1_355_1315_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_355_1315_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_355_1315_Closed_Text.style.display='none'; Codehighlighter1_355_1315_Open_Image.style.display='inline'; Codehighlighter1_355_1315_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_355_1315_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_355_1315_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;InitialContext();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(ctx&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;Exception(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">initialize&nbsp;&nbsp;the&nbsp;Context&nbsp;&nbsp;failed</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">abc1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSource&nbsp;ds&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;(DataSource)&nbsp;ctx<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lookup(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">java:comp/env/jdbc/JNDINAME</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);//<FONT color=#ff0000>看见这句没？连接的JNDI的名字为：JNDINAME很重要</FONT><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">abc2</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(ds);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">abc3</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_697_754_Open_Image onclick="this.style.display='none'; Codehighlighter1_697_754_Open_Text.style.display='none'; Codehighlighter1_697_754_Closed_Image.style.display='inline'; Codehighlighter1_697_754_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_697_754_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_697_754_Closed_Text.style.display='none'; Codehighlighter1_697_754_Open_Image.style.display='inline'; Codehighlighter1_697_754_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(ds&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_697_754_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_697_754_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">throw</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;Exception(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">datasource&nbsp;&nbsp;is&nbsp;&nbsp;null</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">abc4</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG id=Codehighlighter1_798_1255_Open_Image onclick="this.style.display='none'; Codehighlighter1_798_1255_Open_Text.style.display='none'; Codehighlighter1_798_1255_Closed_Image.style.display='inline'; Codehighlighter1_798_1255_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_798_1255_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_798_1255_Closed_Text.style.display='none'; Codehighlighter1_798_1255_Open_Image.style.display='inline'; Codehighlighter1_798_1255_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_798_1255_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_798_1255_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">abc5</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;ds.getConnection();<BR><IMG id=Codehighlighter1_888_931_Open_Image onclick="this.style.display='none'; Codehighlighter1_888_931_Open_Text.style.display='none'; Codehighlighter1_888_931_Closed_Image.style.display='inline'; Codehighlighter1_888_931_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_888_931_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_888_931_Closed_Text.style.display='none'; Codehighlighter1_888_931_Open_Image.style.display='inline'; Codehighlighter1_888_931_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnn&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN id=Codehighlighter1_888_931_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_888_931_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">cn&nbsp;is&nbsp;NONONO!</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">abc6</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet.CONCUR_UPDATABLE);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;stmt.executeQuery(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">select&nbsp;*&nbsp;from&nbsp;jobs</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_1144_1205_Open_Image onclick="this.style.display='none'; Codehighlighter1_1144_1205_Open_Text.style.display='none'; Codehighlighter1_1144_1205_Closed_Image.style.display='inline'; Codehighlighter1_1144_1205_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1144_1205_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1144_1205_Closed_Text.style.display='none'; Codehighlighter1_1144_1205_Open_Image.style.display='inline'; Codehighlighter1_1144_1205_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;(rs.next())&nbsp;</SPAN><SPAN id=Codehighlighter1_1144_1205_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1144_1205_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(rs.getObject(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">job_id</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).toString());<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&gt;&nbsp;connection:</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;cnn);<BR><IMG id=Codehighlighter1_1277_1309_Open_Image onclick="this.style.display='none'; Codehighlighter1_1277_1309_Open_Text.style.display='none'; Codehighlighter1_1277_1309_Closed_Image.style.display='inline'; Codehighlighter1_1277_1309_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1277_1309_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1277_1309_Closed_Text.style.display='none'; Codehighlighter1_1277_1309_Open_Image.style.display='inline'; Codehighlighter1_1277_1309_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1277_1309_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1277_1309_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_1325_1486_Open_Image onclick="this.style.display='none'; Codehighlighter1_1325_1486_Open_Text.style.display='none'; Codehighlighter1_1325_1486_Closed_Image.style.display='inline'; Codehighlighter1_1325_1486_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_1325_1486_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1325_1486_Closed_Text.style.display='none'; Codehighlighter1_1325_1486_Open_Image.style.display='inline'; Codehighlighter1_1325_1486_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">finally</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_1325_1486_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1325_1486_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(rs&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(stmt&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(cnn&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnn.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(ctx&nbsp;</SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">body</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">html</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></LABEL></DIV></DIV></DIV></DIV><BR>输入完成JSP程序后，重新部属一下ABC这个项目，并启动TOMCAT服务器后，输入如下网址：<BR><BR>http://localhost:8080/JNDI_PROJECT/ghyghost.jsp<BR><BR>这时如果出现类似如下的内容就说明你的JNDI的实验做成功了。呵呵，<BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">abc1<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>abc2<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>org.apache.commons.dbcp.BasicDataSource@32ef2d&nbsp;abc3<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>abc4<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>abc5<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>abc6<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">5</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">6</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">7</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">8</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">9</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">10</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">11</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">12</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">13</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">14</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>connection:org.apache.commons.dbcp.PoolableConnection@7c7894&nbsp;</SPAN></DIV><BR>打字好累~~<BR><BR>　　　　　　　　　　　　　　　　　　　　　　　　转载请注明作者：ghyghost(爱国人士)<img src ="http://www.blogjava.net/ghyghost/aggbug/24629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2005-12-19 14:00 <a href="http://www.blogjava.net/ghyghost/archive/2005/12/19/24629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>返回“年月日”日期格式的简单代码</title><link>http://www.blogjava.net/ghyghost/archive/2005/12/15/24003.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Thu, 15 Dec 2005 04:22:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2005/12/15/24003.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/24003.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2005/12/15/24003.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/24003.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/24003.html</trackback:ping><description><![CDATA[<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.text.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.util.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_62_330_Open_Image onclick="this.style.display='none'; Codehighlighter1_62_330_Open_Text.style.display='none'; Codehighlighter1_62_330_Closed_Image.style.display='inline'; Codehighlighter1_62_330_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_62_330_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_62_330_Closed_Text.style.display='none'; Codehighlighter1_62_330_Open_Image.style.display='inline'; Codehighlighter1_62_330_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;ghytest&nbsp;</SPAN><SPAN id=Codehighlighter1_62_330_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_62_330_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_123_222_Open_Image onclick="this.style.display='none'; Codehighlighter1_123_222_Open_Text.style.display='none'; Codehighlighter1_123_222_Closed_Image.style.display='inline'; Codehighlighter1_123_222_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_123_222_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_123_222_Closed_Text.style.display='none'; Codehighlighter1_123_222_Open_Image.style.display='inline'; Codehighlighter1_123_222_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&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;String&nbsp;getYearMonthDayOfchina(String&nbsp;type)&nbsp;</SPAN><SPAN id=Codehighlighter1_123_222_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_123_222_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat&nbsp;ghyghost&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;SimpleDateFormat(type);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000">&nbsp;ghyghost.format(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;Date());<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_265_327_Open_Image onclick="this.style.display='none'; Codehighlighter1_265_327_Open_Text.style.display='none'; Codehighlighter1_265_327_Closed_Image.style.display='inline'; Codehighlighter1_265_327_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_265_327_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_265_327_Closed_Text.style.display='none'; Codehighlighter1_265_327_Open_Image.style.display='inline'; Codehighlighter1_265_327_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&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 id=Codehighlighter1_265_327_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_265_327_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(getYearMonthDayOfchina(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">yyyy年MM月dd日</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">));<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><img src ="http://www.blogjava.net/ghyghost/aggbug/24003.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2005-12-15 12:22 <a href="http://www.blogjava.net/ghyghost/archive/2005/12/15/24003.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML文本域属性设置</title><link>http://www.blogjava.net/ghyghost/archive/2005/11/16/20148.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Wed, 16 Nov 2005 13:00:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2005/11/16/20148.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/20148.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2005/11/16/20148.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/20148.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/20148.html</trackback:ping><description><![CDATA[<DIV id=divContent style="FONT-SIZE: 14px; BEHAVIOR: url(#default#download)">
<P>1、设置文本域的字体</P>
<P>&lt;TEXTAREA&nbsp;STYLE="font-size:9pt;font-family:verdana;color:#333333"&gt;输入内容&lt;/textarea&gt;</P>
<P>&nbsp;</P>
<P>2、设置文本域的背景色</P>
<P>&lt;TEXTAREA&nbsp;STYLE="background-color:#ffffff"&gt;输入内容&lt;/textarea&gt;</P>
<P>&nbsp;</P>
<P>3、文本域的虚线边框设置</P>
<P>&lt;TEXTAREA&nbsp;STYLE="border:1px&nbsp;dotted&nbsp;#6CABE7;"&gt;输入内容&lt;/textarea&gt;</P>
<P>&nbsp;</P>
<P>4、文本域的实线边框设置</P>
<P>&lt;TEXTAREA&nbsp;STYLE="border:1px&nbsp;solid&nbsp;#6CABE7;"&gt;输入内容&lt;/textarea&gt;</P>
<P>&nbsp;</P>
<P>5、文本域的点线边框设置</P>
<P>&lt;TEXTAREA&nbsp;STYLE="border:2px&nbsp;dotted&nbsp;#6CABE7;"&gt;输入内容&lt;/textarea&gt;</P>
<P>&nbsp;</P>
<P>6、&nbsp;设置文本域的背景图</P>
<P>&lt;TEXTAREA&nbsp;STYLE="background-attachment:&nbsp;fixed;&nbsp;background-image:&nbsp;url(背景图所处位置)"&gt;&lt;/textarea&gt;</P></DIV><img src ="http://www.blogjava.net/ghyghost/aggbug/20148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2005-11-16 21:00 <a href="http://www.blogjava.net/ghyghost/archive/2005/11/16/20148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP运行过程</title><link>http://www.blogjava.net/ghyghost/archive/2005/10/20/16084.html</link><dc:creator>石头JAVA摆地摊儿</dc:creator><author>石头JAVA摆地摊儿</author><pubDate>Thu, 20 Oct 2005 01:38:00 GMT</pubDate><guid>http://www.blogjava.net/ghyghost/archive/2005/10/20/16084.html</guid><wfw:comment>http://www.blogjava.net/ghyghost/comments/16084.html</wfw:comment><comments>http://www.blogjava.net/ghyghost/archive/2005/10/20/16084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ghyghost/comments/commentRss/16084.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ghyghost/services/trackbacks/16084.html</trackback:ping><description><![CDATA[当前台的用户通过浏览器访问服务器端的JSP动态网页时，由JSP的容器，比如TOMCAT来转化成Servlet，然后由Javac命令将Servlet编译成Class文件，，最后由Java命令进行解释，然后将生成的HTML代码传送到前端的浏览器中!。<img src ="http://www.blogjava.net/ghyghost/aggbug/16084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ghyghost/" target="_blank">石头JAVA摆地摊儿</a> 2005-10-20 09:38 <a href="http://www.blogjava.net/ghyghost/archive/2005/10/20/16084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>