﻿<?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-随笔分类-初学JAVA</title><link>http://www.blogjava.net/rodney/category/2857.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 18:37:14 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 18:37:14 GMT</pubDate><ttl>60</ttl><item><title>JBuilder2006中的illegal character \12288错误</title><link>http://www.blogjava.net/rodney/archive/2006/04/21/42264.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 21 Apr 2006 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/21/42264.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/42264.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/21/42264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/42264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/42264.html</trackback:ping><description><![CDATA[
		<p>我用记事本打开一个以前的分页程序。把其中的一部份代码copy到我的现在的程序中，可是编译器提示illegal character \12288错误。我按它提示的错误找到发生错误的行。我用别的变量名试了一下是可以的。难道是这个变量名输入时用了中文的输入法。我check一下，可是还是没有解决。我又重新声明了一个与这个变量名一样的变量，把原来的注释起来。后来发现可以了，我再把现在的注释掉，用原来的变量，还是不行。我把它删除掉重新写了一遍包括空格也删除。OK，就可以了。我想可能还是有中文的输入字符或是空格。<br /></p>
		<p>以面的问题可真是不是问题的问题，如果遇到同样的问题的朋友看看是否也是犯了同样的错。<br /><br />最后发现是一个中文的空格，我在删除该变量时发现有一个空格的距离较大。</p>
<img src ="http://www.blogjava.net/rodney/aggbug/42264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-21 09:37 <a href="http://www.blogjava.net/rodney/archive/2006/04/21/42264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在&lt;form action=""&gt;中的action写要执行这个表单的是哪个文件时出的错误。</title><link>http://www.blogjava.net/rodney/archive/2006/04/17/41477.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Mon, 17 Apr 2006 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/17/41477.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/41477.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/17/41477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/41477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/41477.html</trackback:ping><description><![CDATA[
		<p>
				<b>
						<font style="BACKGROUND-COLOR: #525d76" color="#ffffff">type</font>
				</b> Status report</p>
		<p>
				<b>
						<font style="BACKGROUND-COLOR: #525d76" color="#ffffff">message</font>
				</b>
				<u>/zz3in1/SrvTest</u>
		</p>
		<p>
				<b>
						<font style="BACKGROUND-COLOR: #525d76" color="#ffffff">description</font>
				</b>
				<u>The requested resource (/zz3in1/SrvTest) is not available.<br /></u>这是为什呢？<br />用过了../../SrvTest 这个是不行的。././SrvTest这样可以。还有./SrvTest也可以。<br /></p>
<img src ="http://www.blogjava.net/rodney/aggbug/41477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-17 17:01 <a href="http://www.blogjava.net/rodney/archive/2006/04/17/41477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>取表格中的单元格的数据</title><link>http://www.blogjava.net/rodney/archive/2006/04/14/41069.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 14 Apr 2006 04:49:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/14/41069.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/41069.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/14/41069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/41069.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/41069.html</trackback:ping><description><![CDATA[用document.getElementById("01").innerHTML/innerText都可以。如：&lt;tr&gt;&lt;td id="01"&gt;Hello&lt;/td&gt;&lt;/tr&gt;要把Hello取出来就可以用document.getElementById("01").innerHTML/innerText。<br />但是用innerHTML与用innerText有什么区别吗？用innerHTML会把这个标记中的所有HTML标记与值取出来。innerText只会取最后的值。<img src ="http://www.blogjava.net/rodney/aggbug/41069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-14 12:49 <a href="http://www.blogjava.net/rodney/archive/2006/04/14/41069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDK1.5的设置</title><link>http://www.blogjava.net/rodney/archive/2006/04/11/40370.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Tue, 11 Apr 2006 01:10:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/11/40370.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/40370.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/11/40370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/40370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/40370.html</trackback:ping><description><![CDATA[如果你在安装oracle8i时，系统会自己给你安装一个JDK1.1的或1.2的。然后你安装JDK1.5后，在系统环境中设置了JAVA_HOME是JDK1.5的，path中也设置了javaroot\JDK1.5\bin可是你怎么样也不能用JDK1.5中的命令。C:\Documents and Settings\Administrator&gt;java<br />Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'<br />has value '1.1', but '1.2' is required.<br />改注册表HKEY_LOCAL_MACHINE   中的SOFTWARE--JavaSoft--Java Runtime Environment--CurrentVersion的值改成了1.5<br />系统会提示你：C:\Documents and Settings\Administrator&gt;java<br />Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'<br />has value '1.5', but '1.2' is required.这是为什么呢？因你的系统中安装了旧的版本JDK，而且有程序程序有使用到它。这时你只要在当前的用户系统环境下设置一个JAVA_HOME（可以不要）并且在系统环境的path的最前面加上javaroot\jdk1.5\bin。这样就OK了。你可以把DOS窗口关闭再开启。WINDOWS2K不要重启计算机。WINDOWS98的要重启。<img src ="http://www.blogjava.net/rodney/aggbug/40370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-11 09:10 <a href="http://www.blogjava.net/rodney/archive/2006/04/11/40370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>document对象详解</title><link>http://www.blogjava.net/rodney/archive/2006/04/10/40231.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Mon, 10 Apr 2006 06:07:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/10/40231.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/40231.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/10/40231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/40231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/40231.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">以下信息是转载<a href="http://www.aaunion.net/cn/blog/more.asp?name=magicmao&amp;id=687">http://www.aaunion.net/cn/blog/more.asp?name=magicmao&amp;id=687</a><br />document </span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">文挡对象<span lang="EN-US"> - JavaScript</span>脚本语言描述<span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">---------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">注<span lang="EN-US">:</span>页面上元素<span lang="EN-US">name</span>属性和<span lang="EN-US">JavaScript</span>引用的名称必须一致包括大小写<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">否则会提示你一个错误信息<span lang="EN-US"> "</span>引用的元素为空或者不是对象<span lang="EN-US">"<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">---------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 9pt; COLOR: #3366ff; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">对象属性<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.title<span style="mso-spacerun: yes">             </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">设置文档标题等价于<span lang="EN-US">HTML</span>的<span lang="EN-US">&lt;title&gt;</span>标签<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.bgColor<span style="mso-spacerun: yes">           </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">设置页面背景色<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.fgColor<span style="mso-spacerun: yes">           </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">设置前景色<span lang="EN-US">(</span>文本颜色<span lang="EN-US">)<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.linkColor<span style="mso-spacerun: yes">         </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">未点击过的链接颜色<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.alinkColor<span style="mso-spacerun: yes">       </span><span style="COLOR: green"><span style="mso-spacerun: yes"> </span>//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">激活链接<span lang="EN-US">(</span>焦点在此链接上<span lang="EN-US">)</span>的颜色<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.vlinkColor<span style="mso-spacerun: yes">        </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">已点击过的链接颜色<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.URL<span style="mso-spacerun: yes">               </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">设置<span lang="EN-US">URL</span>属性从而在同一窗口打开另一网页<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.fileCreatedDate<span style="mso-spacerun: yes">   </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">文件建立日期，只读属性<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.fileModifiedDate<span style="mso-spacerun: yes">  </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">文件修改日期，只读属性<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.fileSize<span style="mso-spacerun: yes">          </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">文件大小，只读属性<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.cookie<span style="mso-spacerun: yes">            </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">设置和读出<span lang="EN-US">cookie<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.charset<span style="mso-spacerun: yes">           </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">设置字符集 简体中文<span lang="EN-US">:gb2312<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">---------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 9pt; COLOR: #3366ff; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">对象方法<span lang="EN-US"><o:p></o:p></span></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.write()<span style="mso-spacerun: yes">                  </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">动态向页面写入内容<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.createElement(Tag)<span style="mso-spacerun: yes">       </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">创建一个<span lang="EN-US">html</span>标签对象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.getElementById(ID)<span style="mso-spacerun: yes">       </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">获得指定<span lang="EN-US">ID</span>值的对象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.getElementsByName(Name)<span style="mso-spacerun: yes">  </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">获得指定<span lang="EN-US">Name</span>值的对象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">---------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #3366ff; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">images</span>
				<span style="FONT-SIZE: 9pt; COLOR: #3366ff; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">集合<span lang="EN-US">(</span>页面中的图象<span lang="EN-US">)<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">a)</span>
				<span style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">通过集合引用<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images<span style="mso-spacerun: yes">             </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">对应页面上的<span lang="EN-US">&lt;img&gt;</span>标签<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images.length<span style="mso-spacerun: yes">      </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">对应页面上<span lang="EN-US">&lt;img&gt;</span>标签的个数<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images[0]<span style="mso-spacerun: yes">         </span><span style="COLOR: green"><span style="mso-spacerun: yes"> </span>//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">第<span lang="EN-US">1</span>个<span lang="EN-US">&lt;img&gt;</span>标签 </span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images[i]<span style="mso-spacerun: yes">         </span><span style="COLOR: green"><span style="mso-spacerun: yes"> </span>//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">第<span lang="EN-US">i-1</span>个<span lang="EN-US">&lt;img&gt;</span>标签<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">b)</span>
				<span style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">通过<span lang="EN-US">nane</span>属性直接引用<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;img name="oImage"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images.oImage<span style="mso-spacerun: yes">      </span><span style="COLOR: green">//document.images.name</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">属性<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">c)</span>
				<span style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">引用图片的<span lang="EN-US">src</span>属性<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images.oImage.src<span style="mso-spacerun: yes">  </span><span style="COLOR: green">//document.images.name</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">属性<span lang="EN-US">.src</span></span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">d)</span>
				<span style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">创建一个图象<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">var oImage<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">oImage = new Image()<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.images.oImage.src="/1.jpg"<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">//</span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">同时在页面上建立一个<span lang="EN-US">&lt;img&gt;</span>标签与之对应就可以显示<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;html&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;img name=oImage&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>var oImage<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>oImage = new Image()<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>document.images.oImage.src="/1.jpg"<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/script&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/html&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">----------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #3366ff; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">forms</span>
				<span style="FONT-SIZE: 9pt; COLOR: #3366ff; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">集合<span lang="EN-US">(</span>页面中的表单<span lang="EN-US">)<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">a)</span>
				<span style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">通过集合引用<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.forms<span style="mso-spacerun: yes">                 </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">对应页面上的<span lang="EN-US">&lt;form&gt;</span>标签<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.forms.length<span style="mso-spacerun: yes">          </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">对应页面上<span lang="EN-US">&lt;form&gt;</span>标签的个数<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.forms[0]<span style="mso-spacerun: yes">              </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">第<span lang="EN-US">1</span>个<span lang="EN-US">&lt;form&gt;</span>标签<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.forms[i]<span style="mso-spacerun: yes">              </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">第<span lang="EN-US">i-1</span>个<span lang="EN-US">&lt;form&gt;</span>标签<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.forms[i].length<span style="mso-spacerun: yes">      </span><span style="COLOR: green"><span style="mso-spacerun: yes"> </span>//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">第<span lang="EN-US">i-1</span>个<span lang="EN-US">&lt;form&gt;</span>中的控件数<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.forms[i].elements[j]<span style="mso-spacerun: yes">  </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">第<span lang="EN-US">i-1</span>个<span lang="EN-US">&lt;form&gt;</span>中第<span lang="EN-US">j-1</span>个控件<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">b)</span>
				<span style="FONT-SIZE: 9pt; COLOR: #339966; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">通过标签<span lang="EN-US">name</span>属性直接引用<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;form name="Myform"&gt;&lt;input name="myctrl"&gt;&lt;/form&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.Myform.myctrl<span style="mso-spacerun: yes">        </span><span style="COLOR: green"><span style="mso-spacerun: yes"> </span>//document.</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">表单名<span lang="EN-US">.</span>控件名<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">-----------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;html&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #999999; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;!--Text</span>
				<span style="FONT-SIZE: 9pt; COLOR: #999999; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">控件相关<span lang="EN-US">Script--&gt;<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;form name="Myform"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;input type="text" name="oText"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;input type="password" name="oPswd"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;form&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">//</span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">获取文本密码框的值<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.write(document.Myform.oText.value)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.write(document.Myform.oPswd.value)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/script&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/html&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">-----------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;html&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #999999; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;!--Select</span>
				<span style="FONT-SIZE: 9pt; COLOR: #999999; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">控件相关<span lang="EN-US">Script--&gt;<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;form name="Myform"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;select name="oSelect"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;option value="1"&gt;1&lt;/option&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;option value="2"&gt;2&lt;/option&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;option value="3"&gt;3&lt;/option&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/select&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/form&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>//</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">遍历<span lang="EN-US">select</span>控件的<span lang="EN-US">option</span>项<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>var length<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>length=document.Myform.oSelect.length<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>for(i=0;i&lt;length;i++)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>document.write(document.Myform.oSelect[i].value)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/script&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>//</span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">遍历<span lang="EN-US">option</span>项并且判断某个<span lang="EN-US">option</span>是否被选中<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>for(i=0;i&lt;document.Myform.oSelect.length;i++){<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>if(document.Myform.oSelect[i].selected!=true)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes"> </span>
						<span style="mso-spacerun: yes">  </span>document.write(document.Myform.oSelect[i].value)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>else<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>document.write("&lt;font color=red&gt;"+document.Myform.oSelect[i].value+"&lt;/font&gt;")<span style="mso-spacerun: yes">   </span><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/script&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>//</span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">根据<span lang="EN-US">SelectedIndex</span>打印出选中的<span lang="EN-US">option<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>//(0</span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">到<span lang="EN-US">document.Myform.oSelect.length-1)<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>i=document.Myform.oSelect.selectedIndex<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>document.write(document.Myform.oSelect[i].value)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/script&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<o:p> </o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;script language="javascript"&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>//</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">动态增加<span lang="EN-US">select</span>控件的<span lang="EN-US">option</span>项<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>var oOption = document.createElement("OPTION");<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>oOption.text="4";<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>oOption.value="4";<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
						<span style="mso-spacerun: yes">   </span>document.Myform.oSelect.add(oOption);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;/script&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;html&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">-----------------------------------------------------------------------<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">&lt;Div id="oDiv"&gt;Text&lt;/Div&gt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.all.oDiv<span style="mso-spacerun: yes">                      </span><span style="COLOR: green"><span style="mso-spacerun: yes"> </span>//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">引用图层<span lang="EN-US">oDiv<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.all.oDiv.style<span style="mso-spacerun: yes">                 </span><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.all.oDiv.style.display=""<span style="mso-spacerun: yes">      </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">图层设置为可视<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">document.all.oDiv.style.display="none"<span style="mso-spacerun: yes">  </span><span style="COLOR: green">//</span></span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">图层设置为隐藏<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">/*document.all</span>
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">表示<span lang="EN-US">document</span>中所有对象的集合<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">只有<span lang="EN-US">ie</span>支持此属性，因此也用来判断浏览器的种类<span lang="EN-US">*/<o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: teal; FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">----------------------------------------------------------------------- </span>
		</p>
<img src ="http://www.blogjava.net/rodney/aggbug/40231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-10 14:07 <a href="http://www.blogjava.net/rodney/archive/2006/04/10/40231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.sql.SQLExcetion 错误的URL</title><link>http://www.blogjava.net/rodney/archive/2006/04/05/39330.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Wed, 05 Apr 2006 04:02:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/05/39330.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/39330.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/05/39330.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/39330.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/39330.html</trackback:ping><description><![CDATA[我写了一个测试oracle8.1的连接程序。用thin的方式连接。URL：jdbc:oracle:thin:@127.0.0.1:1521:orc;这个URL是正确的。我在thin与@中间少写一个冒号。这是一个很低级的错误，以后要小心呀。<img src ="http://www.blogjava.net/rodney/aggbug/39330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-05 12:02 <a href="http://www.blogjava.net/rodney/archive/2006/04/05/39330.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC连接8种数据库的写法</title><link>http://www.blogjava.net/rodney/archive/2006/04/04/39165.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Tue, 04 Apr 2006 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/04/39165.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/39165.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/04/39165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/39165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/39165.html</trackback:ping><description><![CDATA[如果下面的连接有出现class没有找到的异常，有可能是没有加裁到驱动程序，还有一种是驱动不对。<br />1、Oracle8/8i/9i数据库（thin模式） <br />Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <br />String url="jdbc:oracle:thin:@localhost:1521:rcl"; //orcl为数据库的SID <br />String user="test"; <br />String password="test"; <br />Connection conn= DriverManager.getConnection(url,user,password);<br /><br />2、DB2数据库 <br /><br />Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); <br />String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 <br />String user="admin"; <br />String password=""; <br />Connection conn= DriverManager.getConnection(url,user,password);<br /><br />3、Sql Server7.0/2000数据库 <br /><br />Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); <br />String url="jdbc:microsoft:sqlserver://lin56:1433;DatabaseName=pubs"; <br />//mydb为数据库 <br />String user="sa"; <br />String password=""; <br />Connection conn= DriverManager.getConnection(url,user,password);<br /><br />4、Sybase数据库 <br /><br />Class.forName("com.sybase.jdbc.SybDriver").newInstance(); <br />String url =" jdbcybase:Tds:localhost:5007/myDB";//myDB为你的数据库名 <br />Properties sysProps = System.getProperties(); <br />SysProps.put("user","userid"); <br />SysProps.put("password","user_password"); <br />Connection conn= DriverManager.getConnection(url, SysProps);<br />5、Informix数据库 <br /><br /><br />Class.forName("com.informix.jdbc.IfxDriver").newInstance(); <br />String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; <br />user=testuser;password=testpassword"; //myDB为数据库名 <br />Connection conn= DriverManager.getConnection(url);<br /><br />6、MySQL数据库 <br /><br />Class.forName("org.gjt.mm.mysql.Driver").newInstance(); <br />String url ="jdbc:mysql://localhost/myDB?user=soft&amp;password=soft1234&amp;useUnicode=true&amp;characterEncoding=8859_1" <br />//myDB为数据库名 <br />Connection conn= DriverManager.getConnection(url);<br /><br />7、PostgreSQL数据库 <br /><br />Class.forName("org.postgresql.Driver").newInstance(); <br />String url ="jdbcostgresql://localhost/myDB" //myDB为数据库名 <br />String user="myuser"; <br />String password="mypassword"; <br />Connection conn= DriverManager.getConnection(url,user,password);<br /><br />8、access数据库直连用ODBC的<br />Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;<br />String url="jdbcdbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");<br />Connection conn = DriverManager.getConnection(url,"","");<br />Statement stmtNew=conn.createStatement() ;<br /><p><b>二、JDBC连接MySql方式</b><br />　　下面是使用JDBC连接MySql的一个小的教程<br /><br />1、查找驱动程序 <br />　　MySQL目前提供的java驱动程序为Connection/J，可以从MySQL官方网站下载，并找到mysql-connector-java-3.0.15-ga-bin.jar文件，此驱动程序为纯java驱动程序，不需做其他配置。<br /><br />2、动态指定classpath<br />　　如果需要执行时动态指定classpath，就在执行时采用－cp方式。否则将上面的.jar文件加入到classpath环境变量中。<br /><br />3、加载驱动程序</p><pre class="code">try{
　Class.forName(com.mysql.jdbc.Driver);
　System.out.println(Success loading Mysql Driver!);
}catch(Exception e)
{
　System.out.println(Error loading Mysql Driver!);
　e.printStackTrace();
}
</pre><p><br />4、设置连接的url<br />jdbc：mysql：//localhost/databasename[?pa=va][＆pa=va] <br /></p><p><b>三、以下列出了在使用JDBC来连接Oracle数据库时可以使用的一些技巧</b><br />1、在客户端软件开发中使用Thin驱动程序<br />　 在开发Java软件方面，Oracle的数据库提供了四种类型的驱动程序，二种用于应用软件、applets、servlets等客户端软件，另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中，我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用Java本地化接口（JNI），通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序，它直接与数据库进行通讯。为了获得最高的性能，Oracle建议在客户端软件的开发中使用OCI驱动程序，这似乎是正确的。但我建议使用Thin驱动程序，因为通过多次测试发现，在通常情况下， Thin驱动程序的性能都超过了OCI驱动程序。<br /><br />2、关闭自动提交功能，提高系统性能 <br />　　 在第一次建立与数据库的连接时，在缺省情况下，连接是在自动提交模式下的。为了获得更好的性能，可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能，如下所示：<br /><br />conn.setAutoCommit(false);</p><p>　　值得注意的是，一旦关闭了自动提交功能，我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。<br /><br />3、在动态SQL或有时间限制的命令中使用Statement对象 <br />　 在执行SQL命令时，我们有二种选择：可以使用PreparedStatement对象，也可以使用Statement对象。无论多少次地使用同一个 SQL命令，PreparedStatement都只对它解析和编译一次。当使用Statement对象时，每次执行一个SQL命令时，都会对它进行解析和编译。这可能会使你认为，使用PreparedStatement对象比使用Statement对象的速度更快。然而，我进行的测试表明，在客户端软件中，情况并非如此。因此，在有时间限制的SQL操作中，除非成批地处理SQL命令，我们应当考虑使用Statement对象。<br /><br />　　 此外，使用Statement对象也使得编写动态SQL命令更加简单，因为我们可以将字符串连接在一起，建立一个有效的SQL命令。因此，我认为，Statement对象可以使动态SQL命令的创建和执行变得更加简单。<br /><br />4、利用helper函数对动态SQL命令进行格式化 <br />　 在创建使用Statement对象执行的动态SQL命令时，我们需要处理一些格式化方面的问题。例如，如果我们想创建一个将名字O'Reilly插入表中的SQL命令，则必须使用二个相连的“''”号替换O'Reilly中的“'”号。完成这些工作的最好的方法是创建一个完成替换操作的helper方法，然后在连接字符串心服用公式表达一个SQL命令时，使用创建的helper方法。与此类似的是，我们可以让helper方法接受一个Date型的值，然后让它输出基于Oracle的to_date()函数的字符串表达式。<br /><br />5、利用PreparedStatement对象提高数据库的总体效率 <br />　 在使用PreparedStatement对象执行SQL命令时，命令被数据库进行解析和编译，然后被放到命令缓冲区。然后，每当执行同一个 PreparedStatement对象时，它就会被再解析一次，但不会被再次编译。在缓冲区中可以发现预编译的命令，并且可以重新使用。在有大量用户的企业级应用软件中，经常会重复执行相同的SQL命令，使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务，我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。<br /><br />6、在成批处理重复的插入或更新操作中使用PreparedStatement对象 <br />　 如果成批地处理插入和更新操作，就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理，只有PreparedStatement对象才真正地支持批处理。我们可以使用 addBatch()和executeBatch()方法选择标准的JDBC批处理，或者通过利用PreparedStatement对象的 setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制，可以以如下所示的方式调用setExecuteBatch()：<br /></p><pre class="code">PreparedStatement pstmt3D null;
try {
　((OraclePreparedStatement)pstmt).setExecuteBatch(30);
　...
　pstmt.executeUpdate();
}</pre>　 　 调用setExecuteBatch()时指定的值是一个上限，当达到该值时，就会自动地引发SQL命令执行，标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。<br />　 <br />7、使用Oracle locator方法插入、更新大对象（LOB） <br />　 Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理，尤其是Thin驱动程序不支持利用 PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值，也不支持利用 setCharacterStream()方法设置CLOB的值。只有locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用 PreparedStatement对象插入或更新LOB，但需要使用locator才能获取LOB的值。由于存在这二个问题，因此，我建议使用 locator的方法来插入、更新或获取LOB的值。<br /><br />8、使用SQL92语法调用存储过程 <br />　 在调用存储过程时，我们可以使用SQL92或Oracle PL/SQL，由于使用Oracle PL/SQL并没有什么实际的好处，而且会给以后维护你的应用程序的开发人员带来麻烦，因此，我建议在调用存储过程时使用SQL92。<br /><br />9、使用Object SQL将对象模式转移到数据库中 <br />　 既然可以将Oracle的数据库作为一种面向对象的数据库来使用，就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建Java bean作为伪装的数据库对象，将它们的属性映射到关系表中，然后在这些bean中添加方法。尽管这样作在Java中没有什么问题，但由于操作都是在数据库之外进行的，因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle的面向对象的技术，可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作，然后使用JPublisher等工具生成自己的Java bean类。如果使用这种方式，不但Java应用程序可以使用应用软件的对象模式，其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。<br /><br />10、利用SQL完成数据库内的操作 <br />　　我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求，而不是使用Java等过程化的编程语言。<br /><br />　 如果编程人员要在一个表中查找许多行，结果中的每个行都会查找其他表中的数据，最后，编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。当能够在单一的SQL命令中完成任务，何必要让数据在网上流来流去的？我建议用户认真学习如何最大限度地发挥SQL的功能。 
<p></p>　　  
<p><b>ORACLE 数据库备份技术<br /></b>　　ORACLE数据库是一种大型关系型的数据库，可以存贮达到存贮TB的数据，那么如何保证这些数据的安全尤其至关重要，我们从1991年开始使用 ORACLE数据库，通过这些年的使用，我们制定了一整套的ORACLE数据库的备份制度。现在把我们的备份制度介绍给大家，供大家参考。</p><p><b>１.根据实际需要决定数据库的运行方式</b><br />ORACLE数据库有两种运行方式：一是归档方式（ARCHIVELOG），归档方式的目的是当数据库发生故障时最大限度恢复所有已提交的事物；二是不归档方式(NOARCHIVELOG)，恢复数据库到最近的回收点。我们根据数据库的高可用性和用户可承受丢失的工作量的多少，把我们正式运行的数据库采用为归档方式；那些正在开发和调试的数据库采用不归档方式。</p><p><b>２如何改变数据库的运行方式</b><br /><b>２.1在创建数据库时设置数据库的运行的方式</b><br />　　在创建数据库时，作为创建数据库的一部分，就决定了数据库初始的存档方式。一般情况下为NOARCHIVELOG方式。当数据库创建好以后，根据我们的需要把需要运行在归档方式的数据库改成ARCHIVELOG方式。<br />　　<br /><b>２.2改变不归档方式为为归档方式</b><br />　 关闭数据库，备份已有的数据<br />　 改变数据库的运行方式是对数据库的重要改动，所以要对数据库做备份，对可能出现的问题作出保护。<br />　 启动Instance ,Mount数据库但不打开数据库，来改变归档方式<br /><br />　 sqldba lmode=y（svrmgrl）<br />　 sqldba&gt;connect internal <br />　 sqldba&gt;startup mount <br />　 sqldba&gt;alter database archivelog; <br /><br />　 使能自动存档<br />　 在初始化文件init*.ora(一般放ORACLE根目录的下层目录dbs下)加参数：<br />　 log_archive_start=true <br />　 指定存档的重做登录文件名和存放的位置<br />　 同样是在初始化文件init*.ora中加入下面的参数：<br />　 log_archive_format=%S.arc <br />　 log_archive_dest=/arch12/arch (arch12 是日志文件存放的目录) <br />　 关闭数据库，重新启动数据库，归档方式转换完成。</p><p><b>３回收制度</b><br /><b>３.1</b>根据数据库的运行方式和可承受丢失的工作量来决定数据库的回收制度对于不归档方式，我们用的是ORACLE数据库的逻辑备份Export ，回收的制度是：一个月作一次全备份(x01.dmp)，一周作一次累积备份(c*.dmp)，一天一次增量备份(I*.dmp)，具体的是星期一到星期五作增量备份，星期六做累积备份或全备份，每次做完备份后自动传到其它的机器上存储。这些备份都是自动执行的,后面给出程序文本。<br /><br />　　对于归档方式，我们用的是ORCALE的物理备份：当数据库创建好以后，做一次物理上的全备份，平时在不关闭数据库的前提下，一个星期对经常改变的数据文件做联机的数据库数据文件的物理备份；当数据库的结构发生改变，如：增加表空间，加数据文件等，如允许关机，正常关闭数据库，重新做数据库全备份，否则，备份控制文件，备份数据文件照常。联机的日志文件我们是写在阵列上的，不用镜象和备份。</p><p><b>３.2回收的方法</b><br /><b>３.2.1不归档方式</b><br />　　 我们拿曙光AIX操作系统为例,来讲解以下如何做自动备份：<br />---- a.首先建UNIX用户 demo/demo <br />---- b.拷贝oracle用户下的 .profile 到 demo 用户下，以保证 demo 用户可以用 Export命令<br />---- c.用root用户登录，编辑 /var/adm/cron/cron.allow 加入用户名demo,这样demo用户就有权自动执行数据库备份的shell程序；<br />---- d.创建数据库备份程序，放到本用户的下层目录bin下，并且这些文件要有可执行权文件zlbf1:(增量备份1，星期一执行的程序) <br /></p><pre class="code">. /u11/demo/.profile 
exp system/manager inctype=INCREMENTAL file=i01.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put i01.dmp 
close 
bye 
! 

文件zlbf2:(增量备份2, 星期二执行的程序) 

. /u11/demo/.profile 
exp system/manager inctype=INCREMENTAL file=i02.dmp 
ftp -n&lt; &lt; ! 

open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put i02.dmp 
close 
bye 
! 

文件zlbf3:(增量备份3, 星期三执行的程序) 
. /u11/demo/.profile 
exp system/manager inctype=INCREMENTAL file=i03.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put i03.dmp 
close 
bye 
! 
文件zlbf4:(增量备份4, 星期四执行的程序) 
. /u11/demo/.profile 
exp system/manager inctype=INCREMENTAL file=i04.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put i04.dmp 
close 
bye 
! 
文件zlbf5:(增量备份5, 星期五执行的程序) 
. /u11/demo/.profile 
exp system/manager inctype=INCREMENTAL file=i05.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put i05.dmp 
close 
bye 
! 
文件zlbf6:(增量备份6, 星期六执行的程序) 
. /u11/demo/.profile 
js=`ls c*.dmp|wc -l` 
if test  = 0 
then 
exp system/manager inctype=CUMULATIVE file=c01.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put c01.dmp 
close 
bye 
! 
fi 
if test  = 1 
then 
exp system/manger inctype=CUMULATIVE file=c02.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put c02.dmp 
close 
bye 
! 
fi 
if test  = 2 
then 
exp system/maneger inctype=CUMULATIVE file=c03.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put c03.dmp 
close 
bye 
! 
fi 
if test  = 3 
then 
exp system/manager inctype=COMPLETE file=x01.dmp 
ftp -n&lt; &lt; ! 
open 10.10.10.40 
user demo demo 
binary 
prompt 
cd backup40 
put x01.dmp 
close 
bye 
! 
rm c*.dmp 
fi 

---- e.在demo 用户下建一个文件，假如叫:cron.demo,文件内容如下 
59 22 * * 1 bin/zlbf1 
59 22 * * 2 bin/zlbf2 
59 22 * * 3 bin/zlbf3 
59 22 * * 4 bin/zlbf4 
59 22 * * 5 bin/zlbf5 
59 22 * * 6 bin/zlbf6 
</pre><p>---- f.在demo用户下执行下面的命令：<br />crontab cron.demo 执行的结果放到<br />/var/spool/cron/crontabs/demo文件里</p><p>---- g.重新启动cron 进程，命令：kill -1 进程号<br />---- h.执行结果放在本用户的邮件里<br />---- i.查看结果是否执行，请看:/var/adm/cron/log文件<br /><br /><b>３.2.2归档方式</b><br />---- a. 找到要回收的数据文件、联机重做登录文件、控制文件和参数文件<br />---- b. 正常关闭数据库，作一次全回收(用操作系统的TAR命令，可以写成shell程序)，然后打开数据库供正常使用,shell程序如下：<br />tar cvf /dev/rmt/ctape2 /u1/oracle/dbs/ctrl1ora7.ctl <br />/u1/oracle/dbs/ctrl2ora7.ctl <br />/u1/oracle/dbs/ctrl3ora7.ctl <br />/u1/oracle/dbs/systora7.dbf <br />/u1/oracle/dbs/rbsora7.dbf <br />/u1/oracle/dbs/tempora7.dbf <br />/u1/oracle/dbs/toolora7.dbf <br />/u1/oracle/dbs/usrora7.dbf <br />/ls1/ls1.dbf <br />/u1/oracle/dbs/log1ora7.dbf <br />/u1/oracle/dbs/log2ora7.dbf <br />/u1/oracle/dbs/log3ora7.dbf <br />---- ｃ. 经常作联机的表空间和数据文件的部分回收<br />首先标记联机表空间回收的开始<br />alter tablespace 表空间名 begin backup; <br />用操作系统命令备份数据文件<br />最后标记联机的表空间回收结束<br />alter tablespace 表空间名 end backup <br />---- 多个表空间可以一起做标记，备份做标记的所有数据文件后，一起标记结束。<br />---- d. 当数据库结构发生改变后，要对它的控制文件做回收<br />sqldba &gt;alter database backup <br />controlfile to ’文件名’ reuse;　　 </p><p><b>数据库设计中的14个技巧<br /></b><b>1. 原始单据与实体之间的关系</b><br />　　可以是一对一、一对多、多对多的关系。在一般情况下，它们是一对一的关系：即一张原始单据对应且只对应一个实体。在特殊情况下，它们可能是一对多或多对一的关系，即一张原始单证对应多个实体，或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后，对我们设计录入界面大有好处。<br />　　〖例1〗：一份员工履历资料，在人力资源信息系统中，就对应三个基本表：员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。<br /><br /><b>2. 主键与外键</b><br />　　一般而言，一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键，也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。<br />　　主键与外键的设计，在全局数据库的设计中，占有重要地位。当全局数据库的设计完成以后，有个美国数据库设计专家说：“键，到处都是键，除了键之外，什么也没有”，这就是他的数据库设计经验之谈，也反映了他对信息系统核心(数据模型)的高度抽象思想。因为：主键是实体的高度抽象，主键与外键的配对，表示实体之间的连接。<br /><br /><b>3. 基本表的性质</b><br />　　基本表与中间表、临时表不同，因为它具有如下四个特性：<br />　　(1) 原子性。基本表中的字段是不可再分解的。<br />　　(2) 原始性。基本表中的记录是原始数据（基础数据）的记录。<br />　　(3) 演绎性。由基本表与代码表中的数据，可以派生出所有的输出数据。<br />　　(4) 稳定性。基本表的结构是相对稳定的，表中的记录是要长期保存的。<br />　　 理解基本表的性质后，在设计数据库时，就能将基本表与中间表、临时表区分开来。<br /><br /><b>4. 范式标准</b><br />　　基本表及其字段之间的关系, 应尽量满足第三范式。但是，满足第三范式的数据库设计，往往不是最好的设计。为了提高数据库的运行效率，常常需要降低范式标准：适当增加冗余，达到以空间换时间的目的。<br />　　〖例2〗：有一张存放商品的基本表，如表1所示。“金额”这个字段的存在，表明该表的设计不满足第三范式，因为“金额”可以由“单价”乘以“数量”得到，说明“金额”是冗余字段。但是，增加“金额”这个冗余字段，可以提高查询统计的速度，这就是以空间换时间的作法。<br />　　在Rose 2002中，规定列有两种类型：数据列和计算列。“金额”这样的列被称为“计算列”，而“单价”和“数量”这样的列被称为“数据列”。<br />　　表1 商品表的表结构<br />　　商品名称商品型号单价数量金额<br />　　电视机 29吋 2,500 40 100,000<br /><br /><b>5. 通俗地理解三个范式</b><br />　　通俗地理解三个范式，对于数据库设计大有好处。在数据库设计中，为了更好地应用三个范式，就必须通俗地理解三个范式(通俗地理解是够用的理解，并不是最科学最准确的理解)：<br />　　第一范式：1NF是对属性的原子性约束，要求属性具有原子性，不可再分解；<br />　　第二范式：2NF是对记录的惟一性约束，要求记录有惟一标识，即实体的惟一性；<br />　　第三范式：3NF是对字段冗余性的约束，即任何字段不能由其他字段派生出来，它要求字段没有冗余。<br />　　没有冗余的数据库设计可以做到。但是，没有冗余的数据库未必是最好的数据库，有时为了提高运行效率，就必须降低范式标准，适当保留冗余数据。具体做法是：在概念数据模型设计时遵守第三范式，降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段，允许冗余。<br /><br /><b>6. 要善于识别与正确处理多对多的关系</b><br />　　若两个实体之间存在多对多的关系，则应消除这种关系。消除的办法是，在两者之间增加第三个实体。这样，原来一个多对多的关系，现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体，实质上是一个较复杂的关系，它对应一张基本表。一般来讲，数据库设计工具不能识别多对多的关系，但能处理多对多的关系。<br />　　〖例3〗：在“图书馆信息系统”中，“图书”是一个实体，“读者”也是一个实体。这两个实体之间的关系，是一个典型的多对多关系：一本图书在不同时间可以被多个读者借阅，一个读者又可以借多本图书。为此，要在二者之间增加第三个实体，该实体取名为“借还书”，它的属性为：借还时间、借还标志(0表示借书，1表示还书)，另外，它还应该有两个外键(“图书”的主键，“读者”的主键)，使它能与“图书”和 “读者”连接。<br /><br /><b>7. 主键PK的取值方法</b><br />　　PK是供程序员使用的表间连接工具，可以是一无物理意义的数字串, 由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时，建议字段的个数不要太多，多了不但索引占用空间大，而且速度也慢。<br /><br /><b>8. 正确认识数据冗余</b><br />　　主键与外键在多表中的重复出现, 不属于数据冗余，这个概念必须清楚，事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余！而且是一种低级冗余，即重复性的冗余。高级冗余不是字段的重复出现，而是字段的派生出现。<br />　　〖例4〗：商品中的“单价、数量、金额”三个字段，“金额”就是由“单价”乘以“数量”派生出来的，它就是冗余，而且是一种高级冗余。冗余的目的是为了提高处理速度。只有低级冗余才会增加数据的不一致性，因为同一数据，可能从不同时间、地点、角色上多次录入。因此，我们提倡高级冗余(派生性冗余)，反对低级冗余(重复性冗余)。<br /><br /><b>9. E--R图没有标准答案</b><br />　　信息系统的E--R图没有标准答案，因为它的设计与画法不是惟一的，只要它覆盖了系统需求的业务范围和功能内容，就是可行的。反之要修改E--R图。尽管它没有惟一的标准答案，并不意味着可以随意设计。好的E—R图的标准是：结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。<br /><br /><b>10. 视图技术在数据库设计中很有用</b><br />　　与基本表、代码表、中间表不同，视图是一种虚表，它依赖数据源的实表而存在。视图是供程序员使用数据库的一个窗口，是基表数据综合的一种形式, 是数据处理的一种方法，是用户数据保密的一种手段。为了进行复杂处理、提高运算速度和节省存储空间, 视图的定义深度一般不得超过三层。若三层视图仍不够用, 则应在视图上定义临时表, 在临时表上再定义视图。这样反复交迭定义, 视图的深度就不受限制了。<br />　　对于某些与国家政治、经济、技术、军事和安全利益有关的信息系统，视图的作用更加重要。这些系统的基本表完成物理设计之后，立即在基本表上建立第一层视图，这层视图的个数和结构，与基本表的个数和结构是完全相同。并且规定，所有的程序员，一律只准在视图上操作。只有数据库管理员，带着多个人员共同掌握的“安全钥匙”，才能直接在基本表上操作。请读者想想：这是为什么？<br /><br /><b>11. 中间表、报表和临时表</b><br />　　中间表是存放统计数据的表，它是为数据仓库、输出报表或查询结果而设计的，有时它没有主键与外键(数据仓库除外)。临时表是程序员个人设计的，存放临时记录，为个人所用。基表和中间表由DBA维护，临时表由程序员自己用程序自动维护。<br /><br /><b>12. 完整性约束表现在三个方面</b><br />　　域的完整性：用Check来实现约束，在数据库设计工具中，对字段的取值范围进行定义时，有一个Check按钮，通过它定义字段的值城。<br />　　参照完整性：用PK、FK、表级触发器来实现。<br />　　用户定义完整性：它是一些业务规则，用存储过程和触发器来实现。<br /><br /><b>13. 防止数据库设计打补丁的方法是“三少原则”</b><br />　　(1) 一个数据库中表的个数越少越好。只有表的个数少了，才能说明系统的E--R图少而精，去掉了重复的多余的实体，形成了对客观世界的高度抽象，进行了系统的数据集成，防止了打补丁式的设计；<br />　　(2) 一个表中组合主键的字段个数越少越好。因为主键的作用，一是建主键索引，二是做为子表的外键，所以组合主键的字段个数少了，不仅节省了运行时间，而且节省了索引存储空间；<br />　　(3) 一个表中的字段个数越少越好。只有字段的个数少了，才能说明在系统中不存在数据重复，且很少有数据冗余，更重要的是督促读者学会“列变行”，这样就防止了将子表中的字段拉入到主表中去，在主表中留下许多空余的字段。所谓“列变行”，就是将主表中的一部分内容拉出去，另外单独建一个子表。这个方法很简单，有的人就是不习惯、不采纳、不执行。<br />　　数据库设计的实用原则是：在数据冗余和处理速度之间找到合适的平衡点。“三少”是一个整体概念，综合观点，不能孤立某一个原则。该原则是相对的，不是绝对的。“三多”原则肯定是错误的。试想：若覆盖系统同样的功能，一百个实体(共一千个属性) 的E--R图，肯定比二百个实体(共二千个属性) 的E--R图，要好得多。<br />　　提倡“三少”原则，是叫读者学会利用数据库设计技术进行系统的数据集成。数据集成的步骤是将文件系统集成为应用数据库，将应用数据库集成为主题数据库，将主题数据库集成为全局综合数据库。集成的程度越高，数据共享性就越强，信息孤岛现象就越少，整个企业信息系统的全局E—R图中实体的个数、主键的个数、属性的个数就会越少。<br />　　提倡“三少”原则的目的，是防止读者利用打补丁技术，不断地对数据库进行增删改，使企业数据库变成了随意设计数据库表的“垃圾堆”，或数据库表的“大杂院”，最后造成数据库中的基本表、代码表、中间表、临时表杂乱无章，不计其数，导致企事业单位的信息系统无法维护而瘫痪。<br />　　“三多”原则任何人都可以做到，该原则是“打补丁方法”设计数据库的歪理学说。“三少”原则是少而精的原则，它要求有较高的数据库设计技巧与艺术，不是任何人都能做到的，因为该原则是杜绝用“打补丁方法”设计数据库的理论依据。<br /><br /><b>14. 提高数据库运行效率的办法</b><br />　　在给定的系统硬件和系统软件条件下，提高数据库系统的运行效率的办法是：<br />　　(1) 在数据库物理设计时，降低范式，增加冗余, 少用触发器, 多用存储过程。<br />　　(2) 当计算非常复杂、而且记录条数非常巨大时(例如一千万条)，复杂计算要先在数据库外面，以文件系统方式用C++语言计算处理完成之后，最后才入库追加到表中去。这是电信计费系统设计的经验。<br />　　(3) 发现某个表的记录太多，例如超过一千万条，则要对该表进行水平分割。水平分割的做法是，以该表主键PK的某个值为界线，将该表的记录水平分割为两个表。若发现某个表的字段太多，例如超过八十个，则垂直分割该表，将原来的一个表分解为两个表。<br />　　(4) 对数据库管理系统DBMS进行系统优化，即优化各种系统参数，如缓冲区个数。<br />　　(5) 在使用面向数据的SQL语言进行程序设计时，尽量采取优化算法。<br />　　 总之，要提高数据库的运行效率，必须从数据库系统级优化、数据库设计级优化、程序实现级优化，这三个层次上同时下功夫。<br />　　上述十四个技巧，是许多人在大量的数据库分析与设计实践中，逐步总结出来的。对于这些经验的运用，读者不能生帮硬套，死记硬背，而要消化理解，实事求是，灵活掌握。并逐步做到：在应用中发展，在发展中应用。<br />特别声明以上内容是转至<a href="http://dev2dev.bea.com.cn/bbsdoc/20060112181.html">http://dev2dev.bea.com.cn/bbsdoc/20060112181.html</a>，如果您认为该文档的内容侵犯了您的权益，请与整理者(excelarthur.com.cn)联系，与Dev2Dev网站无关。</p><img src ="http://www.blogjava.net/rodney/aggbug/39165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-04 14:36 <a href="http://www.blogjava.net/rodney/archive/2006/04/04/39165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBuilder9的破解方法</title><link>http://www.blogjava.net/rodney/archive/2006/04/03/38976.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Mon, 03 Apr 2006 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/04/03/38976.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/38976.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/04/03/38976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/38976.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/38976.html</trackback:ping><description><![CDATA[在安装完了JBuilder9时，打开JB9会弹出一个对话框讲你要注册。这时你没有注册号时，有一个叫JB9_Ent_KeyGen.exe的文件，这时你只要将这个文件copy to 你安装的目录下。double click this file，这时你只要点击"Generate"，再点击"Save"就OK了。例如：E:\JBuilder9\jdk1.4\bin下放入copy的文件。这个文件一定要放入jdk1.4\bin下面。<img src ="http://www.blogjava.net/rodney/aggbug/38976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-04-03 17:27 <a href="http://www.blogjava.net/rodney/archive/2006/04/03/38976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>操纵java数组</title><link>http://www.blogjava.net/rodney/archive/2006/03/06/33797.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Mon, 06 Mar 2006 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/03/06/33797.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/33797.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/03/06/33797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/33797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/33797.html</trackback:ping><description><![CDATA[如果你做过很多java程序，你可能对java集合类很熟悉，例如Vector和ArrayList。你可以创建一个集合并向其中增加元素：<BR>
<DIV class=codeStyle>
<OL>
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#ff0000>List</FONT>&nbsp;lst&nbsp;=&nbsp;<B><FONT color=#0000ff>new</FONT></B>&nbsp;<FONT color=#ff0000>ArrayList</FONT>(); 
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;lst.add(<B><FONT color=#0000ff>new</FONT></B>&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Integer.java.html" target=_blank><FONT class=classLink><U>Integer</U></FONT></A></B>(37)); </LI></OL></DIV><BR>在这个特殊的范例中，一个整型值37用于构造一个Integer封装类对象，然后那个对象被加入到列表。<BR><BR>这个简单的范例展示集合的一个基础－他们用于操纵一列对象，其中的每个对象是一个类或者接口类型。因此，一个ArrayList可以包含Object,String,Float以及Runnable类型的对象。集合类不能用于原始数据类型的列表，例如整型数组。<BR><BR>如果你在你的程序中使用原始类型的数组，你如何操纵它们呢？这个技巧就给你展示几个你可以使用的技术。<BR><BR>第一个技术是排序。java.util.Arrays类包含一套排序和查找数组的类方法，例如：<BR>
<DIV class=codeStyle>
<OL>
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>import</FONT></B>&nbsp;java.util.<B><A href="http://www.javaresearch.org/source/jdk142/java/util/Arrays.java.html" target=_blank><FONT class=classLink><U>Arrays</U></FONT></A></B>; 
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>class</FONT></B>&nbsp;ArrayDemo1&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>static</FONT></B>&nbsp;<B><FONT color=#0000ff>void</FONT></B>&nbsp;main(<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target=_blank><FONT class=classLink><U>String</U></FONT></A></B>&nbsp;args[])&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>int</FONT></B>&nbsp;vec[]&nbsp;=&nbsp;{37,&nbsp;47,&nbsp;23,&nbsp;-5,&nbsp;19,&nbsp;56}; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#ff0000>Arrays</FONT>.sort(vec); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>for</FONT></B>&nbsp;(<B><FONT color=#0000ff>int</FONT></B>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;vec.<B><FONT color=#0000ff>length</FONT></B>;&nbsp;i++)&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/System.java.html" target=_blank><FONT class=classLink><U>System</U></FONT></A></B>.out.println(vec[i]); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;} </LI></OL></DIV><BR>这个演示程序初始化一个整数数组然后调用Arrays.sort升序排序那个数组。<BR><BR>类似的，你可以在排完序的数组上进行二分法查找：<BR>
<DIV class=codeStyle>
<OL>
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>import</FONT></B>&nbsp;java.util.<B><A href="http://www.javaresearch.org/source/jdk142/java/util/Arrays.java.html" target=_blank><FONT class=classLink><U>Arrays</U></FONT></A></B>; 
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>class</FONT></B>&nbsp;ArrayDemo2&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>static</FONT></B>&nbsp;<B><FONT color=#0000ff>void</FONT></B>&nbsp;main(<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target=_blank><FONT class=classLink><U>String</U></FONT></A></B>&nbsp;args[])&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>int</FONT></B>&nbsp;vec[]&nbsp;=&nbsp;{-5,&nbsp;19,&nbsp;23,&nbsp;37,&nbsp;47,&nbsp;56}; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>int</FONT></B>&nbsp;slot&nbsp;=&nbsp;<FONT color=#ff0000>Arrays</FONT>.binarySearch(vec,&nbsp;35); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot&nbsp;=&nbsp;-(slot&nbsp;+&nbsp;1); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/System.java.html" target=_blank><FONT class=classLink><U>System</U></FONT></A></B>.out.println(<FONT color=#ff33ff>"insertion&nbsp;point&nbsp;=&nbsp;"</FONT>&nbsp;+&nbsp;slot); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;} </LI></OL></DIV><BR>这个程序有个微妙的概念，如果二分法查找失败它将返回：<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;-(insertion&nbsp;point)&nbsp;-&nbsp;1<BR><BR>这个演示程序以参数35调用查找方法，而那个参数在数组中不存在，方法返回值－4，如果这个值加一再取其负数就得到3，这就是35应该被插入到数组中的位置，换言之，值-5,&nbsp;19和23在数组中占据的位置是0，1和2。因此值35应该在索引3的位置，而37,&nbsp;47以及56顺延。搜索方法并不进行实际的插入操作而只是指出应该在何处插入。<BR><BR>除了排序和查找，我们还可以对原始类型数组做什么？另一个有用的技术是将一个原始数组转换为等价的对象类型数组。每个对应元素使用它们的封装器类，例如在封装数组中，37成为Integer(37)。<BR>
<DIV class=codeStyle>
<OL>
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>import</FONT></B>&nbsp;java.util.<B><A href="http://www.javaresearch.org/source/jdk142/java/util/Arrays.java.html" target=_blank><FONT class=classLink><U>Arrays</U></FONT></A></B>; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>import</FONT></B>&nbsp;java.lang.reflect.<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/reflect/Array.java.html" target=_blank><FONT class=classLink><U>Array</U></FONT></A></B>; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>class</FONT></B>&nbsp;ArrayDemo3&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;if&nbsp;input&nbsp;is&nbsp;a&nbsp;single-dimension&nbsp;primitive&nbsp;array,</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;return&nbsp;a&nbsp;new&nbsp;array&nbsp;consisting&nbsp;of&nbsp;wrapped&nbsp;elements,</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;else&nbsp;just&nbsp;return&nbsp;input&nbsp;argument</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>static</FONT></B>&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>&nbsp;toArray(<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>&nbsp;vec)&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;if&nbsp;null,&nbsp;return</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>if</FONT></B>&nbsp;(vec&nbsp;==&nbsp;<B><FONT color=#0000ff>null</FONT></B>)&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>return</FONT></B>&nbsp;vec; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;if&nbsp;not&nbsp;an&nbsp;array&nbsp;or&nbsp;elements&nbsp;not&nbsp;primitive,&nbsp;return</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Class.java.html" target=_blank><FONT class=classLink><U>Class</U></FONT></A></B>&nbsp;cls&nbsp;=&nbsp;vec.getClass(); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>if</FONT></B>&nbsp;(!cls.isArray())&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>return</FONT></B>&nbsp;vec; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>if</FONT></B>&nbsp;(!cls.getComponentType().isPrimitive())&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>return</FONT></B>&nbsp;vec; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;get&nbsp;array&nbsp;length&nbsp;and&nbsp;create&nbsp;Object&nbsp;output&nbsp;array</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>int</FONT></B>&nbsp;<B><FONT color=#0000ff>length</FONT></B>&nbsp;=&nbsp;<FONT color=#ff0000>Array</FONT>.getLength(vec); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>&nbsp;newvec[]&nbsp;=&nbsp;<B><FONT color=#0000ff>new</FONT></B>&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>[<B><FONT color=#0000ff>length</FONT></B>]; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;wrap&nbsp;and&nbsp;copy&nbsp;elements</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>for</FONT></B>&nbsp;(<B><FONT color=#0000ff>int</FONT></B>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;<B><FONT color=#0000ff>length</FONT></B>;&nbsp;i++)&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newvec[i]&nbsp;=&nbsp;<FONT color=#ff0000>Array</FONT>.get(vec,&nbsp;i); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>return</FONT></B>&nbsp;newvec; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>static</FONT></B>&nbsp;<B><FONT color=#0000ff>void</FONT></B>&nbsp;main(<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target=_blank><FONT class=classLink><U>String</U></FONT></A></B>&nbsp;args[])&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;create&nbsp;a&nbsp;primitive&nbsp;array</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>int</FONT></B>&nbsp;vec[]&nbsp;=&nbsp;<B><FONT color=#0000ff>new</FONT></B>&nbsp;<B><FONT color=#0000ff>int</FONT></B>[]{1,&nbsp;2,&nbsp;3}; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;wrap&nbsp;it</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>&nbsp;wrappedvec[]&nbsp;=&nbsp;(<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>[])toArray(vec); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I><FONT color=#339900>//&nbsp;display&nbsp;result</FONT></I> 
<LI>&nbsp;&nbsp;&nbsp;&nbsp; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>for</FONT></B>&nbsp;(<B><FONT color=#0000ff>int</FONT></B>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;wrappedvec.<B><FONT color=#0000ff>length</FONT></B>;&nbsp;i++)&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/System.java.html" target=_blank><FONT class=classLink><U>System</U></FONT></A></B>.out.println(wrappedvec[i]); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;} </LI></OL></DIV><BR>方法"toArray"的参数是一个Object对象(数组可以被赋值给一个Object引用)。如果参数是null或者代表的不是原始类型数组那么这个方法简单的返回参数值。java.lang.Class工具类用于判断参数是否是一个数组并获取数组的底层元素的类型。<BR><BR>一旦做完这些检查，使用java.lang.reflect.Array工具类的反射工具方法就可以获取原始数组的长度并获得数组的单个元素。Array.get获得的每个元素被返回到封装器类中，例如Integer或者Double。<BR><BR>最终的范例基于前面的那个并向你展示如何在数组上使用集合特性。这假设你已经有一个对象数组。<BR>
<DIV class=codeStyle>
<OL>
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>import</FONT></B>&nbsp;java.util.<B><A href="http://www.javaresearch.org/source/jdk142/java/util/Arrays.java.html" target=_blank><FONT class=classLink><U>Arrays</U></FONT></A></B>; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>import</FONT></B>&nbsp;java.util.<B><A href="http://www.javaresearch.org/source/jdk142/java/util/List.java.html" target=_blank><FONT class=classLink><U>List</U></FONT></A></B>; 
<LI>
<LI>&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>class</FONT></B>&nbsp;ArrayDemo4&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>public</FONT></B>&nbsp;<B><FONT color=#0000ff>static</FONT></B>&nbsp;<B><FONT color=#0000ff>void</FONT></B>&nbsp;main(<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target=_blank><FONT class=classLink><U>String</U></FONT></A></B>&nbsp;args[])&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Object.java.html" target=_blank><FONT class=classLink><U>Object</U></FONT></A></B>&nbsp;vec[]&nbsp;=&nbsp;{<B><FONT color=#0000ff>new</FONT></B>&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Integer.java.html" target=_blank><FONT class=classLink><U>Integer</U></FONT></A></B>(37),&nbsp;<B><FONT color=#0000ff>new</FONT></B>&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Integer.java.html" target=_blank><FONT class=classLink><U>Integer</U></FONT></A></B>(47)}; 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#ff0000>List</FONT>&nbsp;lst&nbsp;=&nbsp;<FONT color=#ff0000>Arrays</FONT>.asList(vec); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lst.set(1,&nbsp;<B><FONT color=#0000ff>new</FONT></B>&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/Integer.java.html" target=_blank><FONT class=classLink><U>Integer</U></FONT></A></B>(57)); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><FONT color=#0000ff>for</FONT></B>&nbsp;(<B><FONT color=#0000ff>int</FONT></B>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;vec.<B><FONT color=#0000ff>length</FONT></B>;&nbsp;i++)&nbsp;{ 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B><A href="http://www.javaresearch.org/source/jdk142/java/lang/System.java.html" target=_blank><FONT class=classLink><U>System</U></FONT></A></B>.out.println(vec[i]); 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} 
<LI>&nbsp;&nbsp;&nbsp;&nbsp;} </LI></OL></DIV><BR>在这个程序中，vec是一个对象数组，包含Integer(37)和Integer(47)，然后Arrays.asList被调用。它返回一个集合(List接口类型)，使用数组作为集合的后台存储。换言之，ArrayList这样的集合类型在它内部有某种存储类型去存储集合元素。在这个例子中，使用的存储类型是作为参数传递到Arrays.asList的数组。这意味着集合方法所做的改变会被反射到底层的数组。<BR><BR>修改集合中的元素1导致底层的数组也改变，程序的输出是：<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;37<BR>&nbsp;&nbsp;&nbsp;&nbsp;57<BR><BR>因此如果你有一个对象数组，你可以在它上面使用集合特性，数组自身作为底层存储。<BR><BR>我们也可以将集合转换为一个对象数组，例如：<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;vec[]&nbsp;=&nbsp;lst.toArray();<BR><BR>package com.cucu.test;<BR><BR>/**<BR>* @author http://www.linewell.com &lt;a href=mailto:cg@linewell.com&gt;cg@linewell.com&lt;/a&gt;<BR>* @version 1.0<BR>*/<BR>public class Sort {<BR><BR>public void swap(int a[], int i, int j) {<BR>int tmp = a;<BR>a = a[j];<BR>a[j] = tmp;<BR>}<BR><BR>public int partition(int a[], int low, int high) {<BR>int pivot, p_pos, i;<BR>p_pos = low;<BR>pivot = a[p_pos];<BR>for (i = low + 1; i &lt;= high; i++) {<BR>if (a &gt; pivot) {<BR>p_pos++;<BR>swap(a, p_pos, i);<BR>}<BR>}<BR>swap(a, low, p_pos);<BR>return p_pos;<BR>}<BR><BR>public void quicksort(int a[], int low, int high) {<BR>int pivot;<BR>if (low &lt; high) {<BR>pivot = partition(a, low, high);<BR>quicksort(a, low, pivot - 1);<BR>quicksort(a, pivot + 1, high);<BR>}<BR><BR>}<BR><BR>public static void main(String args[]) {<BR>int vec[] = new int[] { 37, 47, 23, -5, 19, 56 };<BR>int temp;<BR>//选择排序法(Selection Sort)<BR>long begin = System.currentTimeMillis();<BR>for (int k = 0; k &lt; 1000000; k++) {<BR>for (int i = 0; i &lt; vec.length; i++) {<BR>for (int j = i; j &lt; vec.length; j++) {<BR>if (vec[j] &gt; vec) {<BR>temp = vec;<BR>vec = vec[j];<BR>vec[j] = temp;<BR>}<BR>}<BR><BR>}<BR>}<BR>long end = System.currentTimeMillis();<BR>System.out.println("选择法用时为：" + (end - begin));<BR>//打印排序好的结果<BR>for (int i = 0; i &lt; vec.length; i++) {<BR>System.out.println(vec);<BR>}<BR>// 冒泡排序法(Bubble Sort)<BR>begin = System.currentTimeMillis();<BR>for (int k = 0; k &lt; 1000000; k++) {<BR>for (int i = 0; i &lt; vec.length; i++) {<BR>for (int j = i; j &lt; vec.length - 1; j++) {<BR>if (vec[j + 1] &gt; vec[j]) {<BR>temp = vec[j + 1];<BR>vec[j + 1] = vec[j];<BR>vec[j] = temp;<BR>}<BR>}<BR><BR>}<BR>}<BR>end = System.currentTimeMillis();<BR>System.out.println("冒泡法用时为：" + (end - begin));<BR>//打印排序好的结果<BR>for (int i = 0; i &lt; vec.length; i++) {<BR>System.out.println(vec);<BR>}<BR><BR>//插入排序法(Insertion Sort)<BR>begin = System.currentTimeMillis();<BR>for (int k = 0; k &lt; 1000000; k++) {<BR>for (int i = 1; i &lt; vec.length; i++) {<BR>int j = i;<BR>while (vec[j - 1] &lt; vec) {<BR>vec[j] = vec[j - 1];<BR>j--;<BR>if (j &lt;= 0) {<BR>break;<BR>}<BR>}<BR>vec[j] = vec;<BR>}<BR>}<BR>end = System.currentTimeMillis();<BR>System.out.println("插入法用时为：" + (end - begin));<BR>//打印排序好的结果<BR>for (int i = 0; i &lt; vec.length; i++) {<BR>System.out.println(vec);<BR>}<BR><BR>//快速排序法(Quick Sort)<BR><BR>Sort s = new Sort();<BR>begin = System.currentTimeMillis();<BR>for (int k = 0; k &lt; 1000000; k++) {<BR>s.quicksort(vec, 0, 5);<BR>}<BR>end = System.currentTimeMillis();<BR>System.out.println("快速法用时为：" + (end - begin));<BR>//打印排序好的结果<BR>for (int i = 0; i &lt; vec.length; i++) {<BR>System.out.println(vec);<BR>}<BR>}<BR><BR>}<BR>以下是运行结果：<BR>选择法用时为：234<BR>56<BR>47<BR>37<BR>23<BR>19<BR>-5<BR>冒泡法用时为：172<BR>56<BR>47<BR>37<BR>23<BR>19<BR>-5<BR>插入法用时为：78<BR>56<BR>47<BR>37<BR>23<BR>19<BR>-5<BR>快速法用时为：297<BR>56<BR>47<BR>37<BR>23<BR>19<BR>-5*<BR><img src ="http://www.blogjava.net/rodney/aggbug/33797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-03-06 10:16 <a href="http://www.blogjava.net/rodney/archive/2006/03/06/33797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javax.naming.NameNotFoundException: Unable to resolve 'TestEJB'. Resolved ''; remaining name 'TestEJB'异常</title><link>http://www.blogjava.net/rodney/archive/2006/02/20/31674.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Mon, 20 Feb 2006 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/02/20/31674.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/31674.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/02/20/31674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/31674.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/31674.html</trackback:ping><description><![CDATA[<P>这个异常是在测试EJB的时候，程序执行到ctx.lookup("testEJB")时抛出的。由NamingException捕捉到。打印出栈轨迹是<BR>javax.naming.NameNotFoundException: Unable to resolve 'TestEJB'. Resolved ''; remaining name 'TestEJB'<BR>&nbsp;at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1123)<BR>&nbsp;at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:250)<BR>&nbsp;at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:171)<BR>&nbsp;at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:204)<BR>&nbsp;at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:267)<BR>&nbsp;at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:362)<BR>&nbsp;at javax.naming.InitialContext.lookup(InitialContext.java:351)<BR>&nbsp;at testejb.servlet.SrvEJB.init(SrvEJB.java:26)<BR>&nbsp;at javax.servlet.GenericServlet.init(GenericServlet.java:256)<BR>&nbsp;at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:265)<BR>&nbsp;at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)<BR>&nbsp;at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)<BR>&nbsp;at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:61)<BR>&nbsp;at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)<BR>&nbsp;at weblogic.servlet.internal.StubLifecycleHelper.&lt;init&gt;(StubLifecycleHelper.java:48)<BR>&nbsp;at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:502)<BR>&nbsp;at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:224)<BR>&nbsp;at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165)<BR>&nbsp;at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3022)<BR>&nbsp;at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)<BR>&nbsp;at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)<BR>&nbsp;at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1925)<BR>&nbsp;at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1848)<BR>&nbsp;at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1288)<BR>&nbsp;at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)<BR>&nbsp;at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)<BR>我的ejb-jar.xml文件描述如下：<BR>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "<A href="http://java.sun.com/dtd/ejb-jar_2_0.dtd">http://java.sun.com/dtd/ejb-jar_2_0.dtd</A>"&gt;</P>
<P>&lt;ejb-jar&gt;<BR>&nbsp; &lt;display-name&gt;EJB&lt;/display-name&gt;<BR>&nbsp; &lt;enterprise-beans&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;session&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ejb-name&gt;TestEJB&lt;/ejb-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;home&gt;testejb.ejb.TestEJBHome&lt;/home&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;remote&gt;testejb.ejb.TestEJBRemote&lt;/remote&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ejb-class&gt;testejb.ejb.TestEJBBean&lt;/ejb-class&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;session-type&gt;Stateless&lt;/session-type&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transaction-type&gt;Container&lt;/transaction-type&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/session&gt;<BR>&nbsp; &lt;/enterprise-beans&gt;<BR>&nbsp; &lt;assembly-descriptor&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;container-transaction&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ejb-name&gt;TestEJB&lt;/ejb-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;method-name&gt;*&lt;/method-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/method&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;trans-attribute&gt;Required&lt;/trans-attribute&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/container-transaction&gt;<BR>&nbsp; &lt;/assembly-descriptor&gt;<BR>&lt;/ejb-jar&gt;<BR><BR>weblogic-ejb-jar.xml文件描述如下：<BR>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<BR>&lt;!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "<A href="http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd</A>"&gt;</P>
<P>&lt;weblogic-ejb-jar&gt;<BR>&nbsp; &lt;weblogic-enterprise-bean&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;ejb-name&gt;TestEJB&lt;/ejb-name&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;jndi-name&gt;TestEJB&lt;/jndi-name&gt;<BR>&nbsp; &lt;/weblogic-enterprise-bean&gt;<BR>&lt;/weblogic-ejb-jar&gt;<BR>这些配置我都写了为什么还有名字没有找到的异常呢？<BR>请大家帮忙看看。谢谢！ QQ：86322591。MSN：rodney_luo@163.com<BR></P><img src ="http://www.blogjava.net/rodney/aggbug/31674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-02-20 17:24 <a href="http://www.blogjava.net/rodney/archive/2006/02/20/31674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 V7.2的JDBC程序</title><link>http://www.blogjava.net/rodney/archive/2006/02/17/31188.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 17 Feb 2006 05:17:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/02/17/31188.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/31188.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/02/17/31188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/31188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/31188.html</trackback:ping><description><![CDATA[系统环境：<BR>OS: Windows Server 2000 SP4<BR>开发工具：JBuilder 2006。<BR>WEB服务器：Weblogic9.0<BR>数据库：DB2 V7.2<BR>使用Type2的JDBC连接方式。因为DB2 V7.2只支持Type2与Type3的连接。<BR>我新建了一个TestDB类，在这个类中我可以连接到DB2中，并且取出数据。可是我把这个连接的方法写到Servlet中就不能连接到该数据库中了。抛出ClassNotFoundException的异常。&nbsp; 请大家帮忙看，我在系统环境有设置Classpath的DB2驱动程序包。并在WEB-INF\lib目录下也有这个驱程驱动程序包。它就是在Sevelt中要抛出ClassNotFoundException的异常。。。。。<BR>QQ：86322591<BR>MSN: rodney_luo@163.com<BR>Email: rodney_luo@163.com<BR><BR>谢谢大家。<img src ="http://www.blogjava.net/rodney/aggbug/31188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-02-17 13:17 <a href="http://www.blogjava.net/rodney/archive/2006/02/17/31188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA，Websphere,DB2,Oracle, JBuilder2006,开发工具，网络工具，教学工具，商务软件想下就下</title><link>http://www.blogjava.net/rodney/archive/2006/02/15/30744.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Wed, 15 Feb 2006 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2006/02/15/30744.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/30744.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2006/02/15/30744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/30744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/30744.html</trackback:ping><description><![CDATA[我想各位网上的朋友常为了找不到自己合适的工具而烦吧。<A href="http://www.9iv.com/down/index.htm?eid=236712">http://www.9iv.com/down/index.htm?eid=236712</A>这里有你想要的一切工具软件，开发工具，商务软件。一切的软件尽在<A href="http://www.9iv.com/down/index.htm?eid=236712">http://www.9iv.com/down/index.htm?eid=236712</A>中。<img src ="http://www.blogjava.net/rodney/aggbug/30744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2006-02-15 09:46 <a href="http://www.blogjava.net/rodney/archive/2006/02/15/30744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Weblogic 连接池抛出的错误</title><link>http://www.blogjava.net/rodney/archive/2005/12/23/25205.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 23 Dec 2005 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/12/23/25205.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/25205.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/12/23/25205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/25205.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/25205.html</trackback:ping><description><![CDATA[<PRE>java.rmi.RemoteException: Transaction Rolledback.; nested exception is: 
	weblogic.transaction.internal.TimedOutException: Transaction timed out after 32 seconds 
Name=[EJB testpool.EJBPoolBean.isLogin(java.lang.String,java.lang.String)],Xid=BEA1-0001D529A50E7F28EDB9(10061327),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=32,seconds left=30,activeThread=Thread[ExecuteThread: '13' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default'],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=started,assigned=none),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@1304e60),SCInfo[mydomain+myserver]=(state=active),properties=({weblogic.transaction.name=[EJB testpool.EJBPoolBean.isLogin(java.lang.String,java.lang.String)], weblogic.jdbc=t3://192.168.1.98:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+192.168.1.98:7001+mydomain+t3+, XAResources={},NonXAResources={})],CoordinatorURL=myserver+192.168.1.98:7001+mydomain+t3+)
	at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:186)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:284)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:244)
	at testpool.EJBPool_isb7ao_EOImpl_811_WLStub.isLogin(Unknown Source)
	at testpool.SrvLogin.doPost(SrvLogin.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Caused by: weblogic.transaction.internal.TimedOutException: Transaction timed out after 32 seconds 
Name=[EJB testpool.EJBPoolBean.isLogin(java.lang.String,java.lang.String)],Xid=BEA1-0001D529A50E7F28EDB9(10061327),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=32,seconds left=30,activeThread=Thread[ExecuteThread: '13' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default'],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=started,assigned=none),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@1304e60),SCInfo[mydomain+myserver]=(state=active),properties=({weblogic.transaction.name=[EJB testpool.EJBPoolBean.isLogin(java.lang.String,java.lang.String)], weblogic.jdbc=t3://192.168.1.98:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+192.168.1.98:7001+mydomain+t3+, XAResources={},NonXAResources={})],CoordinatorURL=myserver+192.168.1.98:7001+mydomain+t3+)
	at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1492)
	at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1071)
	at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1805)
	at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:988)
	at weblogic.transaction.internal.WLSTimer.trigger(WLSTimer.java:31)
	at weblogic.time.common.internal.ScheduledTrigger.run(ScheduledTrigger.java:243)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
	at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:229)
	at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:223)
	... 2 more
在程序中运行都没有出错。这个TimedOutException:是执行时间超时的原理。要在哪里设置这个值？<BR>问题的解决是在配置连接池的地方有一个高级设置：Click Hide展开后把连接持续时间设长一此。就可以了。</PRE><img src ="http://www.blogjava.net/rodney/aggbug/25205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-12-23 14:51 <a href="http://www.blogjava.net/rodney/archive/2005/12/23/25205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习JAVA，Weblogic,IBM Websphere系列产品的好去处</title><link>http://www.blogjava.net/rodney/archive/2005/12/21/24900.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Wed, 21 Dec 2005 01:09:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/12/21/24900.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/24900.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/12/21/24900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/24900.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/24900.html</trackback:ping><description><![CDATA[现在大家都在学习JAVA，WEBLOGIC,IBM的WEBSPHERE&nbsp;系列产品。如果上QQ方便的朋友可以加入18750476群，这是一个不错的学习交流群。特别是IBM的那一套WEBSPHERE在国内的群很少这方面的交流学习。<img src ="http://www.blogjava.net/rodney/aggbug/24900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-12-21 09:09 <a href="http://www.blogjava.net/rodney/archive/2005/12/21/24900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中replaceAll()</title><link>http://www.blogjava.net/rodney/archive/2005/11/29/21797.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Tue, 29 Nov 2005 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/11/29/21797.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/21797.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/11/29/21797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/21797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/21797.html</trackback:ping><description><![CDATA[在java中要将一个字符串的中$符号去除。我是这样写的：<BR>String tmp = "-$125402.00";<BR>tmp.replaceAll("$","");<BR>可是执行去来的结果并没有把$去除。后来找资料才发现要这样写<BR>tmp.replaceAll("<A href="file://\\$">\\$</A>","")才可以。<img src ="http://www.blogjava.net/rodney/aggbug/21797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-11-29 11:10 <a href="http://www.blogjava.net/rodney/archive/2005/11/29/21797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>将JAVA中的VECTOR转换成javaScript的数组。</title><link>http://www.blogjava.net/rodney/archive/2005/11/22/20909.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Tue, 22 Nov 2005 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/11/22/20909.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/20909.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/11/22/20909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/20909.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/20909.html</trackback:ping><description><![CDATA[把java中的Vector,Hashtable,List等数类型转换成javaScript的数组。在这里用到的是一个StringBuffer.具体的实现看下面的代码：<BR>public String getArray(Vector v){<BR>&nbsp;&nbsp;if (v == null || v.size()==0){<BR>&nbsp;&nbsp;&nbsp;return "";<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;int i=0;<BR>&nbsp;&nbsp;Hashtable hash = null;<BR>&nbsp;&nbsp;StringBuffer sb = new StringBuffer("var arrmake = new Array(");<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;for(i=0; i&lt;v.size(); i++){<BR>&nbsp;&nbsp;&nbsp;&nbsp;hash = (Hashtable)v.elementAt(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;String tmp_make = hash.get("code").toString();&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(i=1){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append("'"+tmp_make+"'");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}else if(i&gt;1){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append("'"+tmp_make+"',");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;String test = sb.toString(); <BR>&nbsp;&nbsp;&nbsp;if (i&gt;1){<BR>&nbsp;&nbsp;&nbsp;&nbsp;test = test.substring(0,test.length()-1);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;sb.append(test+");");<BR>&nbsp;&nbsp;}catch(Exception e){<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;}&nbsp;&nbsp;<BR>&nbsp;&nbsp;return sb.toString();<BR>&nbsp;}<BR>要注意这里一定要用try{}catch(){}因为在转换过程中可能会出错，所以用try{}catch(){}把异常抛出。<BR>在javascript中怎么用这个数组呢？<BR>String arrMake = getArray(vecMake);<BR>&lt;script language="javaScript"&gt;<BR>&nbsp;&lt;%=arrMake%&gt;<BR>&lt;/script&gt;<BR>OK.<img src ="http://www.blogjava.net/rodney/aggbug/20909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-11-22 11:11 <a href="http://www.blogjava.net/rodney/archive/2005/11/22/20909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据类型转换错误</title><link>http://www.blogjava.net/rodney/archive/2005/11/11/19254.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 11 Nov 2005 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/11/11/19254.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/19254.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/11/11/19254.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/19254.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/19254.html</trackback:ping><description><![CDATA[java.lang.NumberFormatException: For input string: ""<BR>java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)<BR>java.lang.Integer.parseInt(Integer.java:489)<BR>以上的错误是因为将一个空值要强制转换成int型。为什么会是一个空值呢？是因为在JSP中form的TEXT没有输入值传到servlet中。servlet是用Integer.parseInt(request.getParameter("vehFrom"))来取JSP中的值 的。要解决这个问题很简单，可是初学者常会遇到这样的问题。废话少说还是说怎么解决了的吧。<BR>只要在servlet中将这个值做一个空值处理。<BR>if((jcf.retuPara(request,"vehFrom")).length()&lt;=0){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehFromNo = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vehFromNo = Integer.parseInt(jcf.retuPara(request,"vehFrom"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>要注意一点是JSP传到servlet中如果没有输入值是NULL值。我这里用了一个自己写的retuPara（）方法是处理NULL的。把NULL处理成“”。<BR>好了，搞定。<BR><img src ="http://www.blogjava.net/rodney/aggbug/19254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-11-11 09:42 <a href="http://www.blogjava.net/rodney/archive/2005/11/11/19254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>挣钱挣QB挣Q币技术</title><link>http://www.blogjava.net/rodney/archive/2005/11/04/18194.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 04 Nov 2005 13:15:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/11/04/18194.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/18194.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/11/04/18194.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/18194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/18194.html</trackback:ping><description><![CDATA[&amp;lt;P&amp;gt;&amp;lt;A href=&amp;quot;http://www.8qu.net/register.asp?net=rodneyluo&amp;quot;&amp;gt;http://www.8qu.net/register.asp?net=rodneyluo&amp;lt;/A&amp;gt;&amp;lt;BR&amp;gt;我也是在论坛上看了别人的帖子才注册的！我已经实践过了，换了20个Q币，真的很好用，向大家推荐！！！！ &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;以前你也可能看过这样的广告，这次你真的不要再错过了！！ &amp;lt;BR&amp;gt;其实和很多人一样，我对网络赚钱由最初的抵触（因为大家都说那是骗人的）到半信半疑（因为有朋友说网赚&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;行的，但要看是什么样的网赚）再到确信（因为此时自己亲身赚到了，其他的不知道，但通宝确实是真的）。 &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;下面介绍一下方法：只要到 &amp;lt;A href=&amp;quot;http://www.8qu.net/register.asp?net=rodneyluo&amp;quot;&amp;gt;http://www.8qu.net/register.asp?net=rodneyluo&amp;lt;/A&amp;gt;（那里有更加详细的介绍）注&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;册后,免费下载一个软件：“通宝 ”（tongbao.exe） 。下载后打开，点击“登录”--“开始泡分”，这样就&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;开始赚Q币了 ，挂机就可以赚Q币了,跟挂QQ差不多。 &amp;lt;BR&amp;gt;每5分钟自动增加一积分 。 &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;别看到要写银行帐号就吓到了，其实你可以不填（建议填一下，因为当你达到支付的条件时就可以确确时时的&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;收到人民币），选择要Q币（只需要输入QQ号码） &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;注册地址：&amp;lt;A href=&amp;quot;http://www.8qu.net/register.asp?net=rodneyluo&amp;quot;&amp;gt;http://www.8qu.net/register.asp?net=rodneyluo&amp;lt;/A&amp;gt;&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;推荐使用八趣TongBao的理由: &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;一. 无需任何点击.泡时间积分,就像网易POPO一样.对工作没有任何影响.不象Newsbar（新闻时报）或SABar等&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;要及时保存积分. &amp;lt;BR&amp;gt;二．真正的无干扰.隐藏时只在任务栏中有一个小“铜钱”，只占1M内存,对于动辄256，512甚至上G内存的机来&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;说根本就九牛一毛，对你上网干其他事没有干扰。 &amp;lt;BR&amp;gt;三. 绿色小软件无需安装. &amp;lt;BR&amp;gt;四. 无需一分钱投入.免费注册使用,因而没有任何风险（要自己投资钱的话我是肯定不会去干的）， 而且信誉&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;绝对没问题，要有问题也不可能存在这么多年。我的亲身经历就是 &amp;lt;BR&amp;gt;五．下线数与积分兑现金.TongBao支持五级下线：10%，5%，3%，3%，3%。 &amp;lt;BR&amp;gt;按每月推荐10名下线，你的下线每月又推荐10名下线，以公司承诺每1000个积分最低付费5元计算（实际会超过&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;5元），你的月收入分别为（按每人每月1000个积分计算）： &amp;lt;BR&amp;gt;第1个月收入： 5元； &amp;lt;BR&amp;gt;第2个月收入： 5 +5 =10元 &amp;lt;BR&amp;gt;第3个月收入： 5 +5 +25 =35元； &amp;lt;BR&amp;gt;第4个月收入： 5 +5 +25 +150 =185元； &amp;lt;BR&amp;gt;第5个月收入： 5 +5 +25 +150 +1500 =1685元； &amp;lt;BR&amp;gt;第6个月收入：5 +5 +25 +150 +1500 +15000 =16685元； &amp;lt;BR&amp;gt;说实话，其实这是理想的算法，实际上是很难达到的，因为不能保证每个人都认真去泡分和发展下线 ，但是你&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;认真点去做的话，几个月以后每个月赚几百绝对没问题，而且这将稳定增长的，这已经相当不错了，至少我觉&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;得是这样！！！ &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;当然,如果单独一个人只是挂机（一天只给挂四小时），一个月也就7元，但这个7元比Newsbar和SABar一个月的&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;7元容易赚多了,不需任何点击。如果有下线，收入见上面算式。要是三个一起挂就更加不用说了。 &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;八趣TongBao免费注册：(&amp;lt;A href=&amp;quot;http://www.8qu.net/register.asp?net=rodneyluo&amp;quot;&amp;gt;http://www.8qu.net/register.asp?net=rodneyluo&amp;lt;/A&amp;gt;强烈推荐) &amp;lt;BR&amp;gt;　 &amp;lt;BR&amp;gt;我的使用心得。如果不是网虫，一定得想办法发展十来个下线，最简单的方法就是到论坛发贴，关键是这东西&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;可以赚QB，有很多人愿意挂的。我现在已经发展了131个下线了。还有一点，我们从下线那里提成，但下线自己&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;的点数是不会变的。所以越多人加进来，你会越多的收益，并不会影响他们。到以后，自己上网时记得就挂，&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;不记得就算了。如果下线多，有一天可能收到100元或1000元，也可以补贴一下上网费，不能太浪费宽带吧，有&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;收获当做一种意外不是很好吗？！ &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;关键的关键，没事多来发发贴，多拉点人成你的下线，就靠自己泡效果不明显，一个月才10来个QB。如果下线&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;多了，自己都不用挂，吃提成都够了。大家一起来挂吧，就跟挂QQ似的，全民一起挂，我靠，最后加入的也有1&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;0块一个月，那些下线多的真得会发死哎~~呵呵。注册八趣&amp;lt;A href=&amp;quot;http://www.8qu.net/register.asp?net=iamcacy&amp;quot;&amp;gt;http://www.8qu.net/register.asp?net=iamcacy&amp;lt;/A&amp;gt;你&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;赚钱，我受益！挂在网上不费事，月入一千也是你，还等什么快快成为第一批注册者，让更多的人成为你的下&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;线！具体介绍请访问&amp;lt;A href=&amp;quot;http://www.8qu.net/register.asp?net=iamcacy&amp;quot;&amp;gt;http://www.8qu.net/register.asp?net=iamcacy&amp;lt;/A&amp;gt;如有疑问请加379588056听我在线询问！&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;决不骗你！ &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;还有就是尽量去发BT种子发展下线，象我一样，为他人服务的同时进行宣传，效果很好！！！ &amp;lt;BR&amp;gt;双管齐下还愁发展不了下线，哈哈，到时就坐着等钱拉， &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;持之以恒，相信收获的一天很快到来！！（对没有恒心，急功近利的不推荐使用，因为至少要几个月才能看到&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt;非常明显的效果） &amp;lt;BR&amp;gt;我建有一个群，交流使用心得和解答疑难：1653115，想加的在验证的时候写上：通宝用户 &amp;lt;BR&amp;gt;有疑惑的也可以加进来再详细咨询。&amp;lt;/P&amp;gt;<img src ="http://www.blogjava.net/rodney/aggbug/18194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-11-04 21:15 <a href="http://www.blogjava.net/rodney/archive/2005/11/04/18194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML中checkbox </title><link>http://www.blogjava.net/rodney/archive/2005/11/03/17986.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Thu, 03 Nov 2005 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/11/03/17986.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/17986.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/11/03/17986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/17986.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/17986.html</trackback:ping><description><![CDATA[The checkBox 在html的form中要把值传递到servlet中进行处理。这时如果checkbox的属性checked = false时，在servlet取checkbox的value是一个NULL值.只有checked = true时才能取到value.<BR>还因该注意一点如果有value是NULL时做String.equalsIgnoreCase("") or String.equals("")都会抛出空指异常。页面上显示500号错误。请小心使用。<img src ="http://www.blogjava.net/rodney/aggbug/17986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-11-03 17:10 <a href="http://www.blogjava.net/rodney/archive/2005/11/03/17986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中用Calendar计算某个月的最后一天</title><link>http://www.blogjava.net/rodney/archive/2005/10/14/15519.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Fri, 14 Oct 2005 06:56:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/10/14/15519.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/15519.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/10/14/15519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/15519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/15519.html</trackback:ping><description><![CDATA[Calendar lCal = Calendar.getInstance();&nbsp;<BR>String year = tod.substring(6);　　//tod 是DD/MM/YYYY的格式的日期。<BR>String month = tod.substring(3,5);<BR>&nbsp;lCal.set(FormatFunctions.s2i(year), FormatFunctions.s2i(month), 1);　调用一个共用方法将字符串转换成整型。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lCal.add(Calendar.MONTH, 0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lCal.add(Calendar.DATE, -1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tod = formatter.format(lCal.getTime();<img src ="http://www.blogjava.net/rodney/aggbug/15519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-10-14 14:56 <a href="http://www.blogjava.net/rodney/archive/2005/10/14/15519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat配置</title><link>http://www.blogjava.net/rodney/archive/2005/10/10/15128.html</link><dc:creator>rodney</dc:creator><author>rodney</author><pubDate>Mon, 10 Oct 2005 04:19:00 GMT</pubDate><guid>http://www.blogjava.net/rodney/archive/2005/10/10/15128.html</guid><wfw:comment>http://www.blogjava.net/rodney/comments/15128.html</wfw:comment><comments>http://www.blogjava.net/rodney/archive/2005/10/10/15128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rodney/comments/commentRss/15128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rodney/services/trackbacks/15128.html</trackback:ping><description><![CDATA[1． 配置系统管理（Admin Web Application）<BR>大多数商业化的J2EE服务器都提供一个功能强大的管理界面，且大都采用易于理解的Web应用界面。Tomcat按照自己的方式，同样提供一个成熟的管理工具，并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin Web Application最初在4.1版本时出现，当时的功能包括管理context、data source、user和group等。当然也可以管理像初始化参数，user、group、role的多种数据库管理等。在后续的版本中，这些功能将得到很大的扩展，但现有的功能已经非常实用了。<BR><BR>Admin Web Application被定义在自动部署文件：CATALINA_BASE/webapps/admin.xml 。<BR>（译者注：CATALINA_BASE即tomcat安装目录下的server目录）<BR><BR>你必须编辑这个文件，以确定Context中的docBase参数是绝对路径。也就是说，CATALINA_BASE/webapps/admin.xml 的路径是绝对路径。作为另外一种选择，你也可以删除这个自动部署文件，而在server.xml文件中建立一个Admin Web Application的context，效果是一样的。你不能管理Admin Web Application这个应用，换而言之，除了删除CATALINA_BASE/webapps/admin.xml ，你可能什么都做不了。<BR><BR>如果你使用UserDatabaseRealm（默认），你将需要添加一个user以及一个role到CATALINA_BASE/conf/tomcat-users.xml 文件中。你编辑这个文件，添加一个名叫“admin”的role 到该文件中，如下：<BR><BR>&lt;role name="admin"/&gt;<BR><BR>你同样需要有一个用户，并且这个用户的角色是“admin”。象存在的用户那样，添加一个用户（改变密码使其更加安全）：<BR><BR>&lt;user name="admin" password="deep_dark_secret" roles="admin"/&gt;<BR><BR>当你完成这些步骤后，请重新启动Tomcat，访问http://localhost:8080/admin，你将看到一个登录界面。Admin Web Application采用基于容器管理的安全机制，并采用了Jakarta Struts框架。一旦你作为“admin”角色的用户登录管理界面，你将能够使用这个管理界面配置Tomcat。<BR><BR>2．配置应用管理（Manager Web Application）<BR>Manager Web Application让你通过一个比Admin Web Application更为简单的用户界面，执行一些简单的Web应用任务。<BR><BR>Manager Web Application被被定义在一个自动部署文件中：<BR><BR>CATALINA_BASE/webapps/manager.xml 。<BR><BR>你必须编辑这个文件，以确保context的docBase参数是绝对路径，也就是说CATALINA_HOME/server/webapps/manager的绝对路径。<BR>（译者注：CATALINA_HOME即tomcat安装目录）<BR><BR>如果你使用的是UserDatabaseRealm，那么你需要添加一个角色和一个用户到CATALINA_BASE/conf/tomcat-users.xml文件中。接下来，编辑这个文件，添加一个名为“manager”的角色到该文件中：<BR><BR>&lt;role name=”manager”&gt;<BR><BR>你同样需要有一个角色为“manager”的用户。像已经存在的用户那样，添加一个新用户（改变密码使其更加安全）：<BR><BR>&lt;user name="manager" password="deep_dark_secret" roles="manager"/&gt;<BR><BR>然后重新启动Tomcat，访问http://localhost/manager/list，将看到一个很朴素的文本型管理界面，或者访问http://localhost/manager/html/list，将看到一个HMTL的管理界面。不管是哪种方式都说明你的Manager Web Application现在已经启动了。<BR><BR>Manager application让你可以在没有系统管理特权的基础上，安装新的Web应用，以用于测试。如果我们有一个新的web应用位于/home/user/hello下在，并且想把它安装到 /hello下，为了测试这个应用，我们可以这么做，在第一个文件框中输入“/hello”（作为访问时的path），在第二个文本框中输入“file:/home/user/hello”（作为Config URL）。<BR><BR>Manager application还允许你停止、重新启动、移除以及重新部署一个web应用。停止一个应用使其无法被访问，当有用户尝试访问这个被停止的应用时，将看到一个503的错误——“503 - This application is not currently available”。<BR><BR>移除一个web应用，只是指从Tomcat的运行拷贝中删除了该应用，如果你重新启动Tomcat，被删除的应用将再次出现（也就是说，移除并不是指从硬盘上删除）。<BR><BR>3．部署一个web应用<BR>有两个办法可以在系统中部署web服务。<BR>1&gt; 拷贝你的WAR文件或者你的web应用文件夹（包括该web的所有内容）到$CATALINA_BASE/webapps目录下。<BR>2&gt; 为你的web服务建立一个只包括context内容的XML片断文件，并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。<BR><BR>如果你有一个WAR文件，你若想部署它，则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可，文件必须以“.war”作为扩展名。一旦Tomcat监听到这个文件，它将（缺省的）解开该文件包作为一个子目录，并以WAR文件的文件名作为子目录的名字。接下来，Tomcat将在内存中建立一个context，就好象你在server.xml文件里建立一样。当然，其他必需的内容，将从server.xml中的DefaultContext获得。<BR><BR>部署web应用的另一种方式是写一个Context XML片断文件，然后把该文件拷贝到CATALINA_BASE/webapps目录下。一个Context片断并非一个完整的XML文件，而只是一个context元素，以及对该应用的相应描述。这种片断文件就像是从server.xml中切取出来的context元素一样，所以这种片断被命名为“context片断”。<BR><BR>举个例子，如果我们想部署一个名叫MyWebApp.war的应用，该应用使用realm作为访问控制方式，我们可以使用下面这个片断：<BR><BR>&lt;!-- &nbsp;<BR>&nbsp;Context fragment for deploying MyWebApp.war &nbsp;<BR>--&gt;<BR>&lt;Context path="/demo" docBase="webapps/MyWebApp.war" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug="0" privileged="true"&gt;<BR>&nbsp;&lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resourceName="UserDatabase"/&gt; <BR>&lt;/Context&gt;<BR><BR>把该片断命名为“MyWebApp.xml”，然后拷贝到CATALINA_BASE/webapps目录下。<BR><BR>这种context片断提供了一种便利的方法来部署web应用，你不需要编辑server.xml，除非你想改变缺省的部署特性，安装一个新的web应用时不需要重启动Tomcat。<BR><BR><BR>4．配置虚拟主机（Virtual Hosts）<BR>关于server.xml中“Host”这个元素，只有在你设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机制，对每个域名而言，都好象独享了整个主机。实际上，大多数的小型商务网站都是采用虚拟主机实现的，这主要是因为虚拟主机能直接连接到Internet并提供相应的带宽，以保障合理的访问响应速度，另外虚拟主机还能提供一个稳定的固定IP。<BR><BR>基于名字的虚拟主机可以被建立在任何web服务器上，建立的方法就是通过在域名服务器（DNS）上建立IP地址的别名，并且告诉web服务器把去往不同域名的请求分发到相应的网页目录。因为这篇文章主要是讲Tomcat，我们不准备介绍在各种操作系统上设置DNS的方法，如果你在这方面需要帮助，请参考《DNS and Bind》一书，作者是Paul Albitz and Cricket Liu (O'Reilly)。为了示范方便，我将使用一个静态的主机文件，因为这是测试别名最简单的方法。<BR>在Tomcat中使用虚拟主机，你需要设置DNS或主机数据。为了测试，为本地IP设置一个IP别名就足够了，接下来，你需要在server.xml中添加几行内容，如下：<BR><BR>&lt;Server port="8005" shutdown="SHUTDOWN" debug="0"&gt;<BR>&nbsp;&lt;Service name="Tomcat-Standalone"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;Connector className="org.apache.coyote.tomcat4.CoyoteConnector"<BR>port="8080" minProcessors="5" maxProcessors="75"<BR>enableLookups="true" redirectPort="8443"/&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;Connector className="org.apache.coyote.tomcat4.CoyoteConnector"<BR>port="8443" minProcessors="5" maxProcessors="75"<BR>acceptCount="10" debug="0" scheme="https" secure="true"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"<BR>clientAuth="false" protocol="TLS" /&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/Connector&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;Engine name="Standalone" defaultHost="localhost" debug="0"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- This Host is the default Host --&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Host name="localhost" debug="0" appBase="webapps"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unpackWARs="true" autoDeploy="true"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path="" docBase="ROOT" debug="0"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path="/orders" docBase="/home/ian/orders" debug="0"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reloadable="true" crossContext="true"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Context&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Host&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- This Host is the first "Virtual Host": www.example.com --&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Host name="www.example.com" appBase="/home/example/webapp"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path="" docBase="."/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Host&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&lt;/Engine&gt;<BR>&nbsp;&lt;/Service&gt;<BR>&lt;/Server&gt;<BR><BR>Tomcat的server.xml文件，在初始状态下，只包括一个虚拟主机，但是它容易被扩充到支持多个虚拟主机。在前面的例子中展示的是一个简单的server.xml版本，其中粗体部分就是用于添加一个虚拟主机。每一个Host元素必须包括一个或多个context元素，所包含的context元素中必须有一个是默认的context，这个默认的context的显示路径应该为空（例如，path=””）。<BR><BR>5．配置基础验证（Basic Authentication）<BR>容器管理验证方法控制着当用户访问受保护的web应用资源时，如何进行用户的身份鉴别。当一个web应用使用了Basic Authentication（BASIC参数在web.xml文件中auto-method元素中设置），而有用户访问受保护的web应用时，Tomcat将通过HTTP Basic Authentication方式，弹出一个对话框，要求用户输入用户名和密码。在这种验证方法中，所有密码将被以64位的编码方式在网络上传输。<BR><BR>注意：使用Basic Authentication通过被认为是不安全的，因为它没有强健的加密方法，除非在客户端和服务器端都使用HTTPS或者其他密码加密码方式（比如，在一个虚拟私人网络中）。若没有额外的加密方法，网络管理员将能够截获（或滥用）用户的密码。但是，如果你是刚开始使用Tomcat，或者你想在你的web应用中测试一下基于容器的安全管理，Basic Authentication还是非常易于设置和使用的。只需要添加&lt;security-constraint&gt;和&lt;login-config&gt;两个元素到你的web应用的web.xml文件中，并且在CATALINA_BASE/conf/tomcat-users.xml 文件中添加适当的&lt;role&gt;和&lt;user&gt;即可，然后重新启动Tomcat。<BR><BR>下面例子中的web.xml摘自一个俱乐部会员网站系统，该系统中只有member目录被保护起来，并使用Basic Authentication进行身份验证。请注意，这种方式将有效的代替Apache web服务器中的.htaccess文件。<BR><BR>&lt;!--<BR>&nbsp;Define the Members-only area, by defining<BR>&nbsp;a "Security Constraint" on this Application, and<BR>&nbsp;mapping it to the subdirectory (URL) that we want<BR>&nbsp;to restrict.<BR>--&gt;<BR>&lt;security-constraint&gt;<BR>&nbsp;&lt;web-resource-collection&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;web-resource-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entire Application<BR>&nbsp;&nbsp;&nbsp;&lt;/web-resource-name&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/members/*&lt;/url-pattern&gt;<BR>&nbsp;&lt;/web-resource-collection&gt;<BR>&nbsp;&lt;auth-constraint&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;role-name&gt;member&lt;/role-name&gt;<BR>&nbsp;&lt;/auth-constraint&gt;<BR>&lt;/security-constraint&gt;<BR>&lt;!-- Define the Login Configuration for this Application --&gt;<BR>&lt;login-config&gt;<BR>&nbsp;&lt;auth-method&gt;BASIC&lt;/auth-method&gt;<BR>&nbsp;&lt;realm-name&gt;My Club Members-only Area&lt;/realm-name&gt;<BR>&lt;/login-config&gt;<BR><BR>6．配置单点登录（Single Sign-On）<BR>一旦你设置了realm和验证的方法，你就需要进行实际的用户登录处理。一般说来，对用户而言登录系统是一件很麻烦的事情，你必须尽量减少用户登录验证的次数。作为缺省的情况，当用户第一次请求受保护的资源时，每一个web应用都会要求用户登录。如果你运行了多个web应用，并且每个应用都需要进行单独的用户验证，那这看起来就有点像你在与你的用户搏斗。用户们不知道怎样才能把多个分离的应用整合成一个单独的系统，所有他们也就不知道他们需要访问多少个不同的应用，只是很迷惑，为什么总要不停的登录。<BR><BR>Tomcat 4的“single sign-on”特性允许用户在访问同一虚拟主机下所有web应用时，只需登录一次。为了使用这个功能，你只需要在Host上添加一个SingleSignOn Valve元素即可，如下所示：<BR><BR>&lt;Valve className="org.apache.catalina.authenticator.SingleSignOn"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug="0"/&gt;<BR><BR>在Tomcat初始安装后，server.xml的注释里面包括SingleSignOn Valve配置的例子，你只需要去掉注释，即可使用。那么，任何用户只要登录过一个应用，则对于同一虚拟主机下的所有应用同样有效。<BR><BR>使用single sign-on valve有一些重要的限制：<BR>1&gt; value必须被配置和嵌套在相同的Host元素里，并且所有需要进行单点验证的web应用（必须通过context元素定义）都位于该Host下。<BR>2&gt; 包括共享用户信息的realm必须被设置在同一级Host中或者嵌套之外。<BR>3&gt; 不能被context中的realm覆盖。<BR>4&gt; 使用单点登录的web应用最好使用一个Tomcat的内置的验证方式（被定义在web.xml中的&lt;auth-method&gt;中），这比自定义的验证方式强，Tomcat内置的的验证方式包括basic、digest、form和client-cert。<BR>5&gt; 如果你使用单点登录，还希望集成一个第三方的web应用到你的网站中来，并且这个新的web应用使用它自己的验证方式，而不使用容器管理安全，那你基本上就没招了。你的用户每次登录原来所有应用时需要登录一次，并且在请求新的第三方应用时还得再登录一次。当然，如果你拥有这个第三方web应用的源码，而你又是一个程序员，你可以修改它，但那恐怕也不容易做。<BR>6&gt; 单点登录需要使用cookies。<BR><BR>7．配置用户定制目录（Customized User Directores）<BR>一些站点允许个别用户在服务器上发布网页。例如，一所大学的学院可能想给每一位学生一个公共区域，或者是一个ISP希望给一些web空间给他的客户，但这又不是虚拟主机。在这种情况下，一个典型的方法就是在用户名前面加一个特殊字符（~），作为每位用户的网站，比如：<BR><BR>http://www.cs.myuniversity.edu/~username<BR>http://members.mybigisp.com/~username<BR><BR>Tomcat提供两种方法在主机上映射这些个人网站，主要使用一对特殊的Listener元素。Listener的className属性应该是org.apache.catalina.startup.UserConfig，userClass属性应该是几个映射类之一。如果你的系统是Unix，它将有一个标准的/etc/passwd文件，该文件中的帐号能够被运行中的Tomcat很容易的读取，该文件指定了用户的主目录，使用PasswdUserDatabase 映射类。<BR><BR>&lt;Listener className="org.apache.catalina.startup.UserConfig" <BR>directoryName="public_html" <BR>userClass="org.apache.catalina.startup.PasswdUserDatabase"/&gt;<BR><BR>web文件需要放置在像/home/users/ian/public_html 或者 /users/jbrittain/public_html一样的目录下面。当然你也可以改变public_html 到其他任何子目录下。<BR><BR>实际上，这个用户目录根本不一定需要位于用户主目录下里面。如果你没有一个密码文件，但你又想把一个用户名映射到公共的像/home一样目录的子目录里面，则可以使用HomesUserDatabase类。<BR><BR>&lt;Listener className="org.apache.catalina.startup.UserConfig" <BR>directoryName="public_html" homeBase="/home" <BR>userClass="org.apache.catalina.startup.HomesUserDatabase"/&gt;<BR><BR>这样一来，web文件就可以位于像/home/ian/public_html 或者 /home/jasonb/public_html一样的目录下。这种形式对Windows而言更加有利，你可以使用一个像c:\home这样的目录。<BR><BR>这些Listener元素，如果出现，则必须在Host元素里面，而不能在context元素里面，因为它们都用应用于Host本身。<BR><BR><BR>8．在Tomcat中使用CGI脚本<BR>Tomcat主要是作为Servlet/JSP容器，但它也有许多传统web服务器的性能。支持通用网关接口（Common Gateway Interface，即CGI）就是其中之一，CGI提供一组方法在响应浏览器请求时运行一些扩展程序。CGI之所以被称为通用，是因为它能在大多数程序或脚本中被调用，包括：Perl，Python，awk，Unix shell scripting等，甚至包括Java。当然，你大概不会把一个Java应用程序当作CGI来运行，毕竟这样太过原始。一般而言，开发Servlet总要比CGI具有更好的效率，因为当用户点击一个链接或一个按钮时，你不需要从操作系统层开始进行处理。<BR><BR>Tomcat包括一个可选的CGI Servlet，允许你运行遗留下来的CGI脚本。<BR><BR>为了使Tomcat能够运行CGI，你必须做如下几件事：<BR>1. 把servlets-cgi.renametojar （在CATALINA_HOME/server/lib/目录下）改名为servlets-cgi.jar。处理CGI的servlet应该位于Tomcat的CLASSPATH下。<BR>2. 在Tomcat的CATALINA_BASE/conf/web.xml 文件中，把关于&lt;servlet-name&gt; CGI的那段的注释去掉（默认情况下，该段位于第241行）。<BR>3. 同样，在Tomcat的CATALINA_BASE/conf/web.xml文件中，把关于对CGI进行映射的那段的注释去掉（默认情况下，该段位于第299行）。注意，这段内容指定了HTML链接到CGI脚本的访问方式。<BR>4. 你可以把CGI脚本放置在WEB-INF/cgi 目录下（注意，WEB-INF是一个安全的地方，你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处），或者你也可以把CGI脚本放置在context下的其他目录下，并为CGI Servlet调整cgiPathPrefix初始化参数。这就指定的CGI Servlet的实际位置，且不能与上一步指定的URL重名。<BR>5. 重新启动Tomcat，你的CGI就可以运行了。<BR><BR>在Tomcat中，CGI程序缺省放置在WEB-INF/cgi目录下，正如前面所提示的那样，WEB-INF目录受保护的，通过客户端的浏览器无法窥探到其中内容，所以对于放置含有密码或其他敏感信息的CGI脚本而言，这是一个非常好的地方。为了兼容其他服务器，尽管你也可以把CGI脚本保存在传统的/cgi-bin目录，但要知道，在这些目录中的文件有可能被网上好奇的冲浪者看到。另外，在Unix中，请确定运行Tomcat的用户有执行CGI脚本的权限。<BR><BR>9．改变Tomcat中的JSP编译器（JSP Compiler）<BR>在Tomcat 4.1（或更高版本，大概），JSP的编译由包含在Tomcat里面的Ant程序控制器直接执行。这听起来有一点点奇怪，但这正是Ant有意为之的一部分，有一个API文档指导开发者在没有启动一个新的JVM的情况下，使用Ant。这是使用Ant进行Java开发的一大优势。另外，这也意味着你现在能够在Ant中使用任何javac支持的编译方式，这里有一个关于Apache Ant使用手册的javac page列表。使用起来是容易的，因为你只需要在&lt;init-param&gt; 元素中定义一个名字叫“compiler”，并且在value中有一个支持编译的编译器名字，示例如下：<BR><BR>&lt;servlet&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;jsp&lt;/servlet-name&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServlet<BR>&nbsp;&nbsp;&nbsp;&lt;/servlet-class&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;logVerbosityLevel&lt;/param-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-value&gt;WARNING&lt;/param-value&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;compiler&lt;/param-name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-value&gt;jikes&lt;/param-value&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/init-param&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;load-on-startup&gt;3&lt;/load-on-startup&gt;<BR>&lt;/servlet&gt;<BR><BR>当然，给出的编译器必须已经安装在你的系统中，并且CLASSPATH可能需要设置，那处决于你选择的是何种编译器。<BR><BR>10．限制特定主机访问（Restricting Access to Specific Hosts）<BR>有时，你可能想限制对Tomcat web应用的访问，比如，你希望只有你指定的主机或IP地址可以访问你的应用。这样一来，就只有那些指定的的客户端可以访问服务的内容了。为了实现这种效果，Tomcat提供了两个参数供你配置：RemoteHostValve 和RemoteAddrValve。<BR><BR>通过配置这两个参数，可以让你过滤来自请求的主机或IP地址，并允许或拒绝哪些主机/IP。与之类似的，在Apache的httpd文件里有对每个目录的允许/拒绝指定。<BR>例如你可以把Admin Web application设置成只允许本地访问，设置如下：<BR><BR>&lt;Context path="/path/to/secret_files" ...&gt;<BR>&nbsp;&lt;Valve className="org.apache.catalina.valves.RemoteAddrValve"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allow="127.0.0.1" deny=""/&gt;<BR>&lt;/Context&gt;<BR><BR>如果没有给出允许主机的指定，那么与拒绝主机匹配的主机就会被拒绝，除此之外的都是允许的。与之类似，如果没有给出拒绝主机的指定，那么与允许主机匹配的主机就会被允许，除此之外的都是拒绝的。<img src ="http://www.blogjava.net/rodney/aggbug/15128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rodney/" target="_blank">rodney</a> 2005-10-10 12:19 <a href="http://www.blogjava.net/rodney/archive/2005/10/10/15128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>