﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-追梦忆往-----成长之路-随笔分类-每日进阶</title><link>http://www.blogjava.net/guoyongfei/category/27424.html</link><description>Not to do the same thing,To do the other thing.
</description><language>zh-cn</language><lastBuildDate>Tue, 27 May 2008 20:17:47 GMT</lastBuildDate><pubDate>Tue, 27 May 2008 20:17:47 GMT</pubDate><ttl>60</ttl><item><title>Java反射机制</title><link>http://www.blogjava.net/guoyongfei/archive/2008/05/27/203292.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Tue, 27 May 2008 09:53:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/05/27/203292.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/203292.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/05/27/203292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/203292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/203292.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 摘要																								Reflection 						是						Java						被视为动态（或准动态）语言的一个关键性质。这个机制允许程序在运行时透过						Reflection APIs						取得任何一个已知名称的						class						的内部信息，包括其						modifie...&nbsp;&nbsp;<a href='http://www.blogjava.net/guoyongfei/archive/2008/05/27/203292.html'>阅读全文</a><img src ="http://www.blogjava.net/guoyongfei/aggbug/203292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-05-27 17:53 <a href="http://www.blogjava.net/guoyongfei/archive/2008/05/27/203292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于java使用jacob.jar调用word的配置问题</title><link>http://www.blogjava.net/guoyongfei/archive/2008/04/28/196752.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Mon, 28 Apr 2008 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/04/28/196752.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/196752.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/04/28/196752.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/196752.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/196752.html</trackback:ping><description><![CDATA[最近用到了jacob.jar来转换word文件，出现一些问题都是关于配置的，先将一些配置说明一下，以供大家参考。<br />一、将jacob.dll拷贝到windows/system32下，并在部署环境中添加jacob.jar包，这两个文件的版本必须一致，不然会出现一些错误，如果多个应用用到改包，最好放到公共包目录下，因为可能出现一些错误。<br />二、如果通过上述配置还不能正确运用改包，则将jacob.dll放入 Java\jdk\jre\bin目录下，如果不是web应用，则需将jacob.dll放到Java\jdk\jre\lib\ext目录下。<br /><br />如果仍然出现no jacob in the java.library.path错误，<span class="javascript" id="text171455">把jacob.dll放到System.getProperty("java.library.path")取到的目录下。<br /></span><br /><br />提前祝大家五一快乐！<img src ="http://www.blogjava.net/guoyongfei/aggbug/196752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-04-28 15:07 <a href="http://www.blogjava.net/guoyongfei/archive/2008/04/28/196752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>.htc文件介绍(说明)</title><link>http://www.blogjava.net/guoyongfei/archive/2008/04/02/190288.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Wed, 02 Apr 2008 02:30:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/04/02/190288.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/190288.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/04/02/190288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/190288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/190288.html</trackback:ping><description><![CDATA[
		<font color="#3300ff">
				<strong>
						<font color="#ff0000">题记:</font>最近这个项目里面用到了htc文件,所有就准备了解一下,在网上找了些资料,发现这个讲的还是比较简洁清楚的,所有就贴出来供大家分享.<br /></strong>
		</font>
		<br />htc就是Html <br />Component,出来很长时间了,IE5以上开始支持.可以为一些有共同行为的html组件定义公用的行为,一是代码整洁,二是可以实现代码公用.不过我并没有大面积使用过它.因为这个东西只能被IE支持. <br />行为的具体内容定义在.htc文件中. <br />color.htc <br />//定义组件的方法和事件响应. <br />//事件 <br />&lt;PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="changeColor()" /&gt; <br />//方法 <br />&lt;PUBLIC:METHOD NAME="show" /&gt; <br />&lt;SCRIPT LANGUAGE="JScript"&gt; <br />function show() <br />{ <br />alert(element.innerText); <br /><br />} <br /><br /><br />function changeColor(){ <br />element.style.color='red'; <br /><br />} <br /><br /><br />&lt;/SCRIPT&gt; <br />Html定义: <br />&lt;html&gt; <br />&lt;HEAD&gt; <br />&lt;TITLE&gt;test&lt;/TITLE&gt; <br />&lt;STYLE&gt; <br />.f1{behavior:url(color.htc);} <br />&lt;/STYLE&gt; <br />&lt;/HEAD&gt; <br />&lt;BODY&gt; <br />&lt;span id="span1" class='f1'&gt;color&lt;/span&gt;&lt;br&gt; <br />&lt;button onclick="span1.show();"&gt;显示内容&lt;/button&gt;&lt;br&gt; <br />&lt;/BODY&gt; <br />&lt;/html&gt;<br /><br /><br />ref:<a href="http://zhidao.baidu.com/question/32230577.html" target="_blank">http://zhidao.baidu.com/question/32230577.html</a><br />呵呵,在百度知道上找问题还是很方便的.<br /><br /><strong>附:</strong><span style="COLOR: #0000ff">ondocumentready：htc所在网页加载完成<br />      oncontentready：htc文件加载完成</span><img src ="http://www.blogjava.net/guoyongfei/aggbug/190288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-04-02 10:30 <a href="http://www.blogjava.net/guoyongfei/archive/2008/04/02/190288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>必须掌握的八个DOS命令 </title><link>http://www.blogjava.net/guoyongfei/archive/2008/04/01/190052.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Tue, 01 Apr 2008 04:59:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/04/01/190052.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/190052.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/04/01/190052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/190052.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/190052.html</trackback:ping><description><![CDATA[
		<p>
				<strong>一，ping</strong> 　　 <br /><br />　　它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说，ping命令是第一个必须掌握的DOS命令，它所利用的原理是这样的：网络上的机器都有唯一确定的IP地址，我们给目标IP地址发送一个数据包，对方就要返回一个同样大小的数据包，根据返回的数据包我们可以确定目标主机的存在，可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧，在DOS窗口中键入：ping /? 回车，。所示的帮助画面。在此，我们只掌握一些基本的很有用的参数就可以了（下同）。 　　 <br /><br />　　-t 表示将不间断向目标IP发送数据包，直到我们强迫其停止。试想，如果你使用100M的宽带接入，而目标IP是56K的小猫，那么要不了多久，目标IP就因为承受不了这么多的数据而掉线，呵呵，一次攻击就这么简单的实现了。 　　 <br /><br />　　-l 定义发送数据包的大小，默认为32字节，我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用，会有更好的效果哦。 　　 <br /><br />　　-n 定义向目标IP发送数据包的次数，默认为3次。如果网络速度比较慢，3次对我们来说也浪费了不少时间，因为现在我们的目的仅仅是判断目标IP是否存在，那么就定义为一次吧。 　　 <br /><br />　　说明一下，如果-t 参数和 -n参数一起使用，ping命令就以放在后面的参数为标准，比如"ping IP -t -n 3"，虽然使用了-t参数，但并不是一直ping下去，而是只ping 3次。另外，ping命令不一定非得ping IP，也可以直接ping主机域名，这样就可以得到主机的IP。 　　 <br /><br />　　下面我们举个例子来说明一下具体用法。 　　 <br /><br />　　这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒，从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统，之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。 <br /><br />　　（小知识：如果TTL=128，则表示目标主机可能是Win2000；如果TTL=250，则目标主机可能是Unix） <br /><br />　　至于利用ping命令可以快速查找局域网故障，可以快速搜索最快的QQ服务器，可以对别人进行ping攻击……这些就靠大家自己发挥了。 　　 <br /><br /><strong>二，nbtstat </strong>　　 <br /><br />　　该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接，使用这个命令你可以得到远程主机的NETBIOS信息，比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。 　　 <br /><br />　　-a 使用这个参数，只要你知道了远程主机的机器名称，就可以得到它的NETBIOS信息（下同）。 　　 <br /><br />　　-A 这个参数也可以得到远程主机的NETBIOS信息，但需要你知道它的IP。 <br /><br />　　-n 列出本地机器的NETBIOS信息。 　　 <br /><br />　　当得到了对方的IP或者机器名的时候，就可以使用nbtstat命令来进一步得到对方的信息了，这又增加了我们入侵的保险系数。 　　 <br /><br /><strong>三，netstat</strong> <br /><br />　　这是一个用来查看网络状态的命令，操作简便功能强大。 　　 <br /><br />　　-a 查看本地机器的所有开放端口，可以有效发现和预防木马，可以知道机器所开的服务等信息，如图4。 　　 <br /><br />　　这里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务等。用法：netstat -a IP。 <br /><br />　　-r 列出当前的路由信息，告诉我们本地机器的网关、子网掩码等信息。用法：netstat -r IP。 <br /><strong>四，tracert </strong><br /><br />　　跟踪路由信息，使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径，这对我们了解网络布局和结构很有帮助。如图5。 　　 <br /><br />　　这里说明数据从本地机器传输到192.168.0.1的机器上，中间没有经过任何中转，说明这两台机器是在同一段局域网内。用法：tracert IP。 　　 <br /><br /><strong>五，net </strong>　　 <br /><br />　　这个命令是网络命令中最重要的一个，必须透彻掌握它的每一个子命令的用法，因为它的功能实在是太强大了，这简直就是<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img alt="" src="http://blog.fz0132.com/images/keywords/microsoft.gif" align="absMiddle" border="0" /><font color="#002c99"> 微软</font></a>为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令，键入net /?回车如图6。 <br /><br />　　在这里，我们重点掌握几个入侵常用的子命令。 　　 <br /><br />　　net view 　　 <br /><br />　　使用此命令查看远程主机的所以共享资源。命令格式为net view \IP。　　 <br /><br />　　net use <br /><br />　　把远程主机的某个共享资源影射为本地盘符，图形界面方便使用，呵呵。命令格式为net use x: \IP\sharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。下面表示和192.168.0.7建立IPC$连接（net use \IP\IPC$ "password" /user:"name"）， 　　 <br /><br />　　建立了IPC$连接后，呵呵，就可以上传文件了：copy nc.exe \192.168.0.7\admin$，表示把本地目录下的nc.exe传到远程主机，结合后面要介绍到的其他DOS命令就可以实现入侵了。 　　 <br /><br />　　net start <br /><br />　　使用它来启动远程主机上的服务。当你和远程主机建立连接后，如果发现它的什么服务没有启动，而你又想利用此服务怎么办？就使用这个命令来启动吧。用法：net start servername，如图9，成功启动了telnet服务。 　　 <br /><br />　　net stop <br /><br />　　入侵后发现远程主机的某个服务碍手碍脚，怎么办？利用这个命令停掉就ok了，用法和net start同。 　　 <br /><br />　　net user <br /><br />　　查看和帐户有关的情况，包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的，最重要的，它为我们克隆帐户提供了前提。键入不带参数的net user，可以查看所有用户，包括已经禁用的。下面分别讲解。 <br /><br />　　1，net user abcd 1234 /add，新建一个用户名为abcd，密码为1234的帐户，默认为user组成员。 <br /><br />　　2，net user abcd /del，将用户名为abcd的用户删除。 <br /><br />　　3，net user abcd /active:no，将用户名为abcd的用户禁用。 <br /><br />　　4，net user abcd /active:yes，激活用户名为abcd的用户。 <br /><br />　　5，net user abcd，查看用户名为abcd的用户的情况　　 <br /><br />　　net localgroup <br /><br />　　查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中，我们一般利用它来把某个帐户提升为administrator组帐户，这样我们利用这个帐户就可以控制整个远程主机了。用法：net localgroup groupname username /add。 　　 <br /><br />　　现在我们把刚才新建的用户abcd加到administrator组里去了，这时候abcd用户已经是超级管理员了，呵呵，你可以再使用net user abcd来查看他的状态，和图10进行比较就可以看出来。但这样太明显了，网管一看用户情况就能漏出破绽，所以这种方法只能对付菜鸟网管，但我们还得知道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员，这是后话。有兴趣的朋友可以参照《黑客防线》第30期上的《由浅入深解析隆帐户》一文。 　　 <br /><br />　　net time <br /><br />　　这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面，那么也许就用不到这个命令了。但简单的入侵成功了，难道只是看看吗？我们需要进一步渗透。这就连远程主机当前的时间都需要知道，因为利用时间和其他手段（后面会讲到）可以实现某个命令和程序的定时启动，为我们进一步入侵打好基础。用法：net time \IP。 　　 <br /><br /><strong>六，at </strong></p>
		<p>这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序（知道net time的重要了吧？）。当我们知道了远程主机的当前时间，就可以利用此命令让其在以后的某个时间（比如2分钟后）执行某个程序和命令。用法：at time command \computer。 　　 <br /><br />　　表示在6点55分时，让名称为a-01的计算机开启telnet服务（这里net start telnet即为开启telnet服务的命令）。 　　 <br />七，ftp 　　 <br /><br />　　大家对这个命令应该比较熟悉了吧？网络上开放的ftp的主机很多，其中很大一部分是匿名的，也就是说任何人都可以登陆上去。现在如果你扫到了一台开放ftp服务的主机（一般都是开了21端口的机器），如果你还不会使用ftp的命令怎么办？下面就给出基本的ftp命令使用方法。 <br /><br />　　首先在命令行键入ftp回车，出现ftp的提示符，这时候可以键入"help"来查看帮助（任何DOS命令都可以使用此方法查看其帮助)。 　　 <br /><br />　　大家可能看到了，这么多命令该怎么用？其实也用不到那么多，掌握几个基本的就够了。 　　 <br /><br />　　首先是登陆过程，这就要用到open了，直接在ftp的提示符下输入"open 主机IP ftp端口"回车即可，一般端口默认都是21，可以不写。接着就是输入合法的用户名和密码进行登陆了，这里以匿名ftp为例介绍。 　　 <br /><br />　　用户名和密码都是ftp，密码是不显示的。当提示**** logged in时，就说明登陆成功。这里因为是匿名登陆，所以用户显示为Anonymous。 　　 <br /><br />　　接下来就要介绍具体命令的使用方法了。 　　 <br /><br />　　dir 跟DOS命令一样，用于查看服务器的文件，直接敲上dir回车，就可以看到此ftp服务器上的文件。 <br /><br />　　cd 进入某个文件夹。 <br /><br />　　get 下载文件到本地机器。 <br /><br />　　put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了，如果可以，呵呵，该怎么 利用就不多说了，大家就自由发挥去吧。 <br /><br />　　delete 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。 <br /><br />　　bye 退出当前连接。 <br /><br />　　quit 同上。 <br />　　 <br /><br /><strong>八，telnet</strong> <br /><br />　　功能强大的远程登陆命令，几乎所有的入侵者都喜欢用它，屡试不爽。为什么？它操作简单，如同使用自己的机器一样，只要你熟悉DOS命令，在成功以administrator身份连接了远程机器后，就可以用它来干你想干的一切了。下面介绍一下使用方法，首先键入telnet回车，再键入help查看其帮助信息。 　　 <br /><br />　　然后在提示符下键入open IP回车，这时就出现了登陆窗口，让你输入合法的用户名和密码，这里输入任何密码都是不显示的。 　　 <br /><br />　　当输入用户名和密码都正确后就成功建立了telnet连接，这时候你就在远程主机上具有了和此用户一样的权限，利用DOS命令就可以实现你想干的事情了。这里我使用的超级管理员权限登陆的。　　 <br /><br />　　到这里为止，网络DOS命令的介绍就告一段落了，这里介绍的目的只是给菜鸟网管一个印象，让其知道熟悉和掌握网络DOS命令的重要性。其实和网络有关的DOS命令还远不止这些，这里只是抛砖引玉，希望能对广大菜鸟网管有所帮助。学好DOS对当好网管有很大的帮助，特别的熟练掌握了一些网络的DOS命令。 <br /><br />　　另外大家应该清楚，任何人要想进入系统，必须得有一个合法的用户名和密码（输入法漏洞差不多绝迹了吧），哪怕你拿到帐户的只有一个很小的权限，你也可以利用它来达到最后的目的。所以坚决消灭空口令，给自己的帐户加上一个强壮的密码，是最好的防御弱口令入侵的方法。 <br /><br />　　最后，由衷的说一句，培养良好的安全意识才是最重要的。<br /><br />=========================================<br /><font color="#ff0000">开始→运行→命令集锦</font><br />winver---------检查Windows版本 <br />wmimgmt.msc----打开windows管理体系结构(WMI) <br />wupdmgr--------windows更新程序 <br />wscript--------windows脚本宿主设置 <br />write----------写字板 <br />winmsd---------系统信息 <br />wiaacmgr-------扫描仪和照相机向导 <br />winchat--------XP自带局域网聊天 <br /><br />mem.exe--------显示内存使用情况 <br />Msconfig.exe---系统配置实用程序 <br />mplayer2-------简易widnows media player <br />mspaint--------画图板 <br />mstsc----------远程桌面连接 <br />mplayer2-------媒体播放机 <br />magnify--------放大镜实用程序 <br />mmc------------打开控制台 <br />mobsync--------同步命令 <br /><br />dxdiag---------检查DirectX信息 <br />drwtsn32------ 系统医生 <br />devmgmt.msc--- 设备管理器 <br />dfrg.msc-------磁盘碎片整理程序 <br />diskmgmt.msc---磁盘管理实用程序 <br />dcomcnfg-------打开系统组件服务 <br />ddeshare-------打开DDE共享设置 <br />dvdplay--------DVD播放器 <br /><br />net stop messenger-----停止信使服务 <br />net start messenger----开始信使服务 <br />notepad--------打开记事本 <br />nslookup-------网络管理的工具向导 <br />ntbackup-------系统备份和还原 <br />narrator-------屏幕"讲述人" <br />ntmsmgr.msc----移动存储管理器 <br />ntmsoprq.msc---移动存储管理员操作请求 <br />netstat -an----(TC)命令检查接口 <br /><br />syncapp--------创建一个公文包 <br />sysedit--------系统配置编辑器 <br />sigverif-------文件签名验证程序 <br />sndrec32-------录音机 <br />shrpubw--------创建共享文件夹 <br />secpol.msc-----本地安全策略 <br />syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码 <br />services.msc---本地服务设置 <br />Sndvol32-------音量控制程序 <br />sfc.exe--------系统文件检查器 <br />sfc /scannow---windows文件保护 <br /><br />tsshutdn-------60秒倒计时关机命令 <br />tourstart------xp简介（安装完成后出现的漫游xp程序） <br />taskmgr--------任务管理器 <br /><br />eventvwr-------事件查看器 <br />eudcedit-------造字程序 <br />explorer-------打开资源管理器 <br /><br /><br />packager-------对象包装程序 <br />perfmon.msc----计算机性能监测程序 <br />progman--------程序管理器 <br /><br />regedit.exe----注册表 <br />rsop.msc-------组策略结果集 <br />regedt32-------注册表编辑器 <br />rononce -p ----15秒关机 <br />regsvr32 /u *.dll----停止dll文件运行 <br />regsvr32 /u zipfldr.dll------取消ZIP支持 <br /><br />cmd.exe--------CMD命令提示符 <br />chkdsk.exe-----Chkdsk磁盘检查 <br />certmgr.msc----证书管理实用程序 <br />calc-----------启动计算器 <br />charmap--------启动字符映射表 <br />cliconfg-------SQL SERVER 客户端网络实用程序 <br />Clipbrd--------剪贴板查看器 <br />conf-----------启动netmeeting <br />compmgmt.msc---计算机管理 <br />cleanmgr-------垃圾整理 <br />ciadv.msc------索引服务程序 <br /><br />osk------------打开屏幕键盘 <br />odbcad32-------ODBC数据源管理器 <br />oobe/msoobe /a----检查XP是否激活 <br />lusrmgr.msc----本机用户和组 <br />logoff---------注销命令 <br /><br /><br />iexpress-------木马捆绑工具，系统自带 <br /><br />Nslookup-------IP地址侦测器 <br /><br />fsmgmt.msc-----共享文件夹管理器 <br /><br />utilman--------辅助工具管理器 <br /><br />gpedit.msc-----组策略<br /><br />ref:<a href="http://blog.csdn.net/zhijianshadog/archive/2005/04/11/343069.aspx" target="_blank">http://blog.csdn.net/zhijianshadog/archive/2005/04/11/343069.aspx</a></p>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/190052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-04-01 12:59 <a href="http://www.blogjava.net/guoyongfei/archive/2008/04/01/190052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Html中Readonly和Disabled的区别</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/31/189750.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Mon, 31 Mar 2008 04:31:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/31/189750.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/189750.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/31/189750.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/189750.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/189750.html</trackback:ping><description><![CDATA[Readonly和Disabled是用在表单中的两个属性，它们都能够做到使用户不能够更改表单域中的内容。但是它们之间有着微小的差别，我在实践中得到了一些规律，总结如下：<br />Readonly只针对input(text / password)和textarea有效，而disabled对于所有的表单元素都有效，包括select, radio, checkbox, button等。但是表单元素在使用了disabled后，当我们将表单以POST或GET的方式提交的话，这个元素的值不会被传递出去，而readonly会将该值传递出去(这种情况出现在我们将某个表单中的textarea元素设置为disabled或readonly，但是submit button却是可以使用的)。<br />一般比较常用的情况是：<br />①在某个表单中为用户预填了某个唯一识别代码，不允许用户改动，但是在提交时需要传递该值，此时应该将它的属性设置为readonly<br />②经常遇到当用户正式提交了表单后需要等待管理员的信息验证，这就不允许用户再更改表单中的数据，而是只能够查看，由于disabled的作用元素范围大，所以此时应该使用disabled，但同时应该注意的是要将submit button也disabled掉，否则只要用户按了这个按钮，如果在数据库操作页面中没有做完整性检测的话，数据库中的值就会被清除。如果说在这种情况下用readonly来代替disabled的话，若表单中只有input(text / password)和textarea元素，那还是可以的，如果存在其他发元素，比如select，用户可以在重新改写值后按回车键进行提交(回车是默认的submit触发按键)<br />③我们常常在用户按了提交按钮后，利用javascript将提交按钮disabled掉，这样可以防止网络条件比较差的环境下，用户反复点提交按钮导致数据冗余地存入数据库。<br /><br />ref:<a href="http://hi.baidu.com/zidone/blog/item/78ae2cdd91fb06d88d10295e.html" target="_blank">http://hi.baidu.com/zidone/blog/item/78ae2cdd91fb06d88d10295e.html</a><img src ="http://www.blogjava.net/guoyongfei/aggbug/189750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-31 12:31 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/31/189750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>html中meta不容所觑的作用</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/28/189246.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Fri, 28 Mar 2008 05:19:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/28/189246.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/189246.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/28/189246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/189246.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/189246.html</trackback:ping><description><![CDATA[突然发现meta对于网页是相当有用的,以前忽视了,可谓是"小标签大作用"啊。<br />一下是meta的一些介绍,希望大家以后网页经常用:<br /><br />meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的&lt;head&gt;与&lt;/head&gt;中，meta 标签的用处很多。meta 的属性有两种：name和http-equiv。name属性主要用于描述网页，对应于content（网页内容），以便于搜索引擎机器人查找、分类（目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类）。这其中最重要的是description（站点在搜索引擎上的描述）和 keywords（分类关键词），所以应该给每页加一个meta值<br /><strong>name 属性</strong><p>　　1、&lt;meta name="Generator" contect=""&gt;用以说明生成工具（如Microsoft FrontPage 4.0）等； </p><p>　　2、&lt;meta name="KEYWords" contect=""&gt;向搜索引擎说明你的网页的关键词； </p><p>　　3、&lt;meta name="DEscription" contect=""&gt;告诉搜索引擎你的站点的主要内容； </p><p>　　4、&lt;meta name="Author" contect="你的姓名"&gt;告诉搜索引擎你的站点的制作的作者； </p><p>　　5、&lt;meta name="Robots" contect= "all|none|index|noindex|follow|nofollow"&gt; </p><p>　　其中的属性说明如下： </p><p>　　设定为all：文件将被检索，且页面上的链接可以被查询； </p><p>　　设定为none：文件将不被检索，且页面上的链接不可以被查询； </p><p>　　设定为index：文件将被检索； </p><p>　　设定为follow：页面上的链接可以被查询； </p><p>　　设定为noindex：文件将不被检索，但页面上的链接可以被查询； </p><p>　　设定为nofollow：文件将不被检索，页面上的链接可以被查询。 </p><p>　　<strong>http-equiv属性</strong></p><p>　　1、&lt;meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80"&gt; </p><p>和 &lt;meta http-equiv="Content-Language" contect="zh-CN"&gt;用以说明主页制作所使用的文字以及语言； </p><p>　　又如英文是ISO-8859-1字符集，还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集； </p><p>　　2、&lt;meta http-equiv="Refresh" contect="n;url=http://yourlink"&gt;定时让网页在指定的时间n内，跳转到页面http://yourlink； </p><p>　　3、&lt;meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT"&gt;可以用于设定网页的到期时间，一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式； </p><p>　　4、&lt;meta http-equiv="Pragma" contect="no-cache"&gt;是用于设定禁止浏览器从本地机的缓存中调阅页面内容，设定后一旦离开网页就无法从Cache中再调出； </p><p>　　5、&lt;meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT"&gt;cookie设定，如果网页过期，存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式； </p><p>　　6、&lt;meta http-equiv="Pics-label" contect=""&gt;网页等级评定，在IE的internet选项中有一项内容设置，可以防止浏览一些受限制的网站，而网站的限制级别就是通过meta属性来设置的； </p><p>　　7、&lt;meta http-equiv="windows-Target" contect="_top"&gt;强制页面在当前窗口中以独立页面显示，可以防止自己的网页被别人当作一个frame页调用； </p><p>　　8、&lt;meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= 50)"&gt;和&lt;meta http-equiv="Page-Exit" contect="revealTrans(duration=20，transtion=6)"&gt;设定进入和离开页面时的特殊效果，这个功能即 FrontPage中的"格式/网页过渡"，不过所加的页面不能够是一个frame页面。<br /><br />ref:<a href="http://hi.baidu.com/litertiger/blog/item/164ed207c96d8fcd7b894799.html" target="_blank">http://hi.baidu.com/litertiger/blog/item/164ed207c96d8fcd7b894799.html</a></p><img src ="http://www.blogjava.net/guoyongfei/aggbug/189246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-28 13:19 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/28/189246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat5.0.30和5.5.25连接池配置区别</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/20/187528.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Thu, 20 Mar 2008 09:16:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/20/187528.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/187528.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/20/187528.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/187528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/187528.html</trackback:ping><description><![CDATA[以下文件均在{tomcat}\conf\Catalina\localhost中配置:<br />这是在5.0.30中配置得test.xml:<br />&lt;Context docBase="test" path="/test"&gt;<br />  &lt;Resource name="TestDataSource" type="javax.sql.DataSource"/&gt;<br />  &lt;ResourceParams name="TestDataSource"&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;url&lt;/name&gt;<br />      &lt;value&gt;jdbc:oracle:thin:@localhost:1521:oracle&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;password&lt;/name&gt;<br />      &lt;value&gt;password&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;maxActive&lt;/name&gt;<br />      &lt;value&gt;100&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;maxWait&lt;/name&gt;<br />      &lt;value&gt;5000&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;driverClassName&lt;/name&gt;<br />      &lt;value&gt;oracle.jdbc.OracleDriver&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;username&lt;/name&gt;<br />      &lt;value&gt;username&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;maxIdle&lt;/name&gt;<br />      &lt;value&gt;50&lt;/value&gt;<br />    &lt;/parameter&gt;<br />  &lt;/ResourceParams&gt;<br />&lt;/Context&gt;<br /><br /><br />这是在5.5.25中配置得test.xml:<br />&lt;Context docBase="test" path="/test" debug="0" reloadable="true"&gt;<br />&lt;Resource<br />      name="TestDataSource"<br />      type="javax.sql.DataSource"<br />      password="password"<br />      driverClassName="oracle.jdbc.OracleDriver"<br />      maxIdle="2"<br />      maxWait="5000"<br />      username="username"<br />      url="jdbc:oracle:thin:@localhost:1521:oracle"<br />      maxActive="4"/&gt;<br />&lt;/Context&gt;<br />如果在连接数据库时提示connect url为""或null,根据版本改成上面的就可以了.<br /><br />但是为什么在两个版本下调用另一个就会出错,是什么原因?希望高人解答.<br />我感觉至少应该向下兼容啊,晕!<img src ="http://www.blogjava.net/guoyongfei/aggbug/187528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-20 17:16 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/20/187528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据关联查询</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/18/187014.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Tue, 18 Mar 2008 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/18/187014.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/187014.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/18/187014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/187014.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/187014.html</trackback:ping><description><![CDATA[
		<p style="TEXT-INDENT: 2em">
				<span class="b">今天又有小进步,^_^!<br /><br />         来源：赛迪网</span>    <span class="b">作者：Alizze</span></p>
		<p style="TEXT-INDENT: 2em">
				<span class="b">
				</span>
		</p>
		<p style="TEXT-INDENT: 2em">
				<span class="b">
						<br />
				</span>
		</p>
		<p style="TEXT-INDENT: 2em">关联在Oracle数据查询时会经常用到,灵活的应用关联可以解决很多实际应用的问题.下面给出一些示例: </p>
		<p style="TEXT-INDENT: 2em">
		</p>
		<p style="TEXT-INDENT: 2em">
				<strong>建表</strong>
		</p>
		<p style="TEXT-INDENT: 2em">
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>create table ab<br />(<br />ab_id  number(5),<br />ab_name varchar2(30)<br />);<br /><br />create table bb<br />(<br />bb_id  number(5),<br />bb_name varchar2(30)<br />);</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
		</p>
		<p style="TEXT-INDENT: 2em">
		</p>
		<p style="TEXT-INDENT: 2em">
				<strong>插入数据</strong>
		</p>
		<p style="TEXT-INDENT: 2em">
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>insert into ab(ab_id,ab_name) values(1,'1ab_name');<br />insert into ab(ab_id,ab_name) values(2,'2ab_name');<br />insert into ab(ab_id,ab_name) values(3,'3ab_name');<br /><br />insert into bb(bb_id,bb_name) values(1,'1bb_name');<br />insert into bb(bb_id,bb_name) values(2,'2bb_name');<br />insert into bb(bb_id,bb_name) values(4,'4bb_name');<br />insert into bb(bb_id,bb_name) values(6,'6bb_name');</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
				<strong>等值关联（全关联）</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>select a.ab_id,a.ab_name,b.bb_name from ab a,<br />              bb b<br />where a.ab_id=b.bb_id;</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
				<strong>返回结果</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>AB_ID AB_NAME BB_NAME<br />1 1ab_name 1bb_name<br />2 2ab_name 2bb_name</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
		</p>
		<p style="TEXT-INDENT: 2em">返回两个表中所有能匹配的记录，不能匹配的记录不返回。 </p>
		<p style="TEXT-INDENT: 2em">
				<strong>左关联</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>select ab_id,ab_name, bb_name <br />from ab a left join  bb b<br />on a.ab_id=b.bb_id;<br />同<br />select ab_id,ab_name, bb_name <br />from ab a , bb b<br />where a.ab_id=b.bb_id(+);</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
				<strong>返回结果</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>AB_ID AB_NAME BB_NAME<br />1 1ab_name 1bb_name<br />2 2ab_name 2bb_name<br />3 3ab_name</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">返回左边表的左右记录，在右边表中没有对应记录的右表字段显示为空。 </p>
		<p style="TEXT-INDENT: 2em">
				<strong>右关联</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>select ab_id,ab_name, bb_name <br />from ab a right join  bb b<br />on a.ab_id=b.bb_id;<br />同<br />select ab_id,ab_name, bb_name <br />from ab a , bb b<br />where a.ab_id(+)=b.bb_id;</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
				<strong>返回结果:</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>AB_ID AB_NAME BB_NAME<br />1 1ab_name 1bb_name<br />2 2ab_name 2bb_name<br />4bb_name<br />6bb_name</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">返回右边表中所有的记录，在右边表不能匹配的记录行上，左边表对应的字段显示为空。 </p>
		<p style="TEXT-INDENT: 2em">
				<strong>完全外关联</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>select ab_id,ab_name, bb_name <br />from ab a full join  bb b<br />on a.ab_id=b.bb_id;</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
				<strong>返回结果</strong>
		</p>
		<center>
				<ccid_nobr>
				</ccid_nobr>
				<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
						<tbody>
								<tr>
										<td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6">
												<pre>
														<ccid_code>AB_ID AB_NAME BB_NAME<br />1 1ab_name 1bb_name<br />2 2ab_name 2bb_name<br />3 3ab_name <br />6bb_name<br />4bb_name</ccid_code>
												</pre>
										</td>
								</tr>
						</tbody>
				</table>
		</center>
		<p style="TEXT-INDENT: 2em">
		</p>
		<p style="TEXT-INDENT: 2em">返回两个表所有的结果，如果在关联条件上没有对应的记录，那么将在该列上显示为空。 </p>
		<p style="TEXT-INDENT: 2em">
		</p>
		<p style="TEXT-INDENT: 2em">全关联返回的结果集范围最小。完全外关联返回的结果范围最大，是否左关联和右关联并集；全关联是左关联和右关联的交集。</p>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/187014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-18 15:32 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/18/187014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>做了一个用ajax判断用户名是否注册的代码,呵呵</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/12/185765.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Wed, 12 Mar 2008 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/12/185765.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/185765.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/12/185765.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/185765.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/185765.html</trackback:ping><description><![CDATA[
		<p>1.judgeUsername.html页面: <br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />&lt;html&gt;<br />  &lt;head&gt;<br />    &lt;title&gt;judegUsername.html&lt;/title&gt;<br /> <br />    &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;<br />    <br />    &lt;script language="JavaScript" type="text/javascript"&gt;<br />    var request = false;<br />    try{<br />     request = new XMLHttpRequest();<br />    }catch(microsoftIE){<br />     try{<br />      request = new ActiveXObject("Msxml2.XMLHTTP");<br />     }catch(microsoftOldIE){<br />      try{<br />       request = new ActiveXObject("Microsoft.XMLHTTP");<br />      }catch(failed){<br />       request = false;<br />      }<br />     }<br />    }<br />    if(!request){<br />     alert("初始化XMLHttpRequest对象失败");<br />    }<br />    function sendUsername(){<br />     var username = document.getElementById("username").value;<br />     if(username!=null &amp;&amp; username!=""){<br />      var url = "./judgeUsername.jsp?username="+escape(username);<br />      request.open("get",url,true);<br />      request.onreadystatechange=updatepage;<br />      request.send(null);<br />     }<br />    }<br />    function updatepage(){<br />     if(request.readyState==4){<br />      if(request.status==200){<br />       document.getElementById("reusername").innerHTML = request.responseText;<br />       //document.getDocumentById("reusername").innerText = request.responseText;<br />      }else if(request.status==404){<br />       alert("找不到页面！");<br />      }else{<br />       alert("错误代码:"+request.status);<br />      }<br />     }<br />    }<br />    function clearMessage(){<br />     document.getElementById("reusername").innerHTML = "";<br />    }<br />    &lt;/script&gt;</p>
		<p>  &lt;/head&gt;<br />  <br />  &lt;body&gt;<br />   &lt;form action="/register.jsp" method="post"&gt;<br />    &lt;table align="center"&gt;<br />     &lt;caption&gt;guoyongfei为已注册，其他均未注册&lt;/caption&gt;<br />     &lt;tr&gt;&lt;th&gt;用 户 名：&lt;/th&gt;&lt;td&gt;&lt;input type="text" name="username" id="username" onblur="sendUsername()" onfocus="clearMessage()"/&gt;&lt;/td&gt;&lt;td width="40%" id="reusername"&gt;&lt;/td&gt;&lt;/tr&gt;<br />     &lt;tr&gt;&lt;th&gt;密　　码：&lt;/th&gt;&lt;td&gt;&lt;input type="password" name="password" id="password"/&gt;&lt;/td&gt;&lt;td width="20"&gt;&lt;/td&gt;&lt;/tr&gt;<br />     &lt;tr&gt;&lt;th&gt;密码确认：&lt;/th&gt;&lt;td&gt;&lt;input type="surePassword" name="surePassword" id="surePassword"/&gt;&lt;/td&gt;&lt;td width="20"&gt;&lt;/td&gt;&lt;/tr&gt;<br />    &lt;/table&gt;<br />  &lt;/body&gt;<br />&lt;/html&gt;<br /></p>
		<p>2.judgeUsername.jsp页面:<br />&lt;%@ page language="java" pageEncoding="UTF-8"%&gt;<br />&lt;%<br /> String username = request.getParameter("username");<br /> //System.out.println("username:"+username);<br /> if(username.equals("guoyongfei")){<br />  out.println("&lt;font color='red'&gt;用户名已经注册&lt;/font&gt;");<br /> }else{<br />  out.println("&lt;font color='green'&gt;用户名可以用&lt;/font&gt;");<br /> }<br /> %&gt;<br /><font color="#ff0000">希望大家给推荐下提示信息较好的表示方法.....</font></p>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/185765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-12 17:49 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/12/185765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOM对象的类型、属性和方法</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/11/185299.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Tue, 11 Mar 2008 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/11/185299.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/185299.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/11/185299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/185299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/185299.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;节点的属性使用 DOM 节点时需要一些属性和方法，因此我们首先来讨论节点的属性和方法。DOM 节点的属性主要有：    nodeName报告节点的名称（详见下述）。    nodeValue提供节点的 &#8220;值&#8221;（详见后述）。    parentNode返回节点的父节点。记住，每个元素、属性和文本都有一个父节点。    childNode...&nbsp;&nbsp;<a href='http://www.blogjava.net/guoyongfei/archive/2008/03/11/185299.html'>阅读全文</a><img src ="http://www.blogjava.net/guoyongfei/aggbug/185299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-11 11:32 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/11/185299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rss常用参数(属性)简介</title><link>http://www.blogjava.net/guoyongfei/archive/2008/03/10/185016.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Mon, 10 Mar 2008 03:56:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2008/03/10/185016.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/185016.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2008/03/10/185016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/185016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/185016.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;RSS是网页内容聚合格式，version 2.0是Really Simple Syndication几个英文单词的缩写,具体可以查看百度百科,里面有详细介绍。<br />
RSS源自XML，因此所有RSS文件必须严格遵守由W3C组织发布的XML1.0的特性的要求。<br />
RSS文档的构成：<br />
一个RSS聚合由频道(channel)以及频道中包含的项目(item)组成<br />
RSS遵从XML1.0标准进行标注<br />
其头部一般应该是这样的：<br />
&lt;?xml version="1.0"?&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*遵从的XML标准*/<br />
&lt;rss version="2.0"&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*遵从的RSS标准*/<br />
&lt;channel&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*频道标志*/ <br />
<br />
文件的结尾应该由下面的内容结束<br />
&lt;/channel&gt;<br />
&lt;/rss&gt;<br />
在头部和尾部之间，就是RSS的内容了。RSS中<br />
channel(频道)必须包含的元素是：<br />
&lt;title&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; /*频道的标题*/<br />
&lt;link&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*连接地址*/<br />
&lt;description&gt;&nbsp; &nbsp;&nbsp; &nbsp; /*对频道的描述*/<br />
可选的参数包含：<br />
&lt;language&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; /*语言比如zh-cn*/<br />
&lt;copyright&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*版权信息*/<br />
&lt;managingEditor&gt;&nbsp; &nbsp; /*主要的维护者EMAIL*/<br />
&lt;webMaster&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*网站管理者的EMAIL*/<br />
&lt;pubDate&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*出版日期*/<br />
&lt;lastBuildDate&gt;&nbsp; &nbsp;&nbsp;&nbsp;/*最后建立日期*/<br />
&lt;category&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; /*内容*/<br />
&lt;generator&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*生成器*/<br />
&lt;docs&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*文档的连结地址*/<br />
&lt;cloud&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; /*这个解释起来有点难，它是对xml-rpc(远程过程调用）和soap（简单对象访问协议）的描述信息，能够使客户端软件注意到RSS的文档更新，就是所谓&#8220;推&#8221;的技术吧，一个服务器（被称作"cloud")提供一个RSS文档的更新公告，当一个文档被更新，这个服务器呼叫所有订阅的客户机注意最新的更新。一个例子&lt;cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" /&gt;*/<br />
&lt;ttl&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*存活时间，这个频道被源刷新之前被缓存的时间*/<br />
&lt;image&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; /*指定一个 GIF或JPEG或PNG图片，用以与频道一起显示*/<br />
&lt;rating&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*图像的等级？速率，文档 中描述不是很清楚或我没有理解*/<br />
&lt;textInput&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*一个输入框，主要用来提供一个搜索引擎或提供一个读者反馈的的输入框，但很多的聚合器会忽略它*/<br />
&lt;skipHours&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*给聚合器的一个忽略时间提示，多长时间他们可以跳过*/<br />
&lt;skipDays&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*给聚合器的一个忽略日期提示，多长时间他们可以跳过*/<br />
在频道描述完毕后，接下来应该对rss聚合中的主要内容项目进行描述<br />
一个项目有&lt;item&gt;&lt;/item&gt;包含其中的内容就是这个项目的信息<br />
一个item项目必须包含下面这些元素<br />
&lt;title&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*标题*/<br />
&lt;description&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*连接地址*/<br />
&lt;link&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*描述*/<br />
可以选择的元素包括<br />
&lt;author&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*作者*/<br />
&lt;category&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*分类*/<br />
&lt;comments&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*注释*/<br />
&lt;enclosure&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*附件，(还可以包含一个多媒体附件呢)，比如：&lt;enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" /&gt;*/<br />
&lt;guid&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*唯一描述符*/<br />
&lt;pubDate&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*出版时间*/<br />
&lt;source&gt;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;/*源*/<br />
<br />
</p>
<p>RSS2.0 image的子元素列表<br />
url&nbsp;&nbsp;&nbsp;&nbsp; 图片的url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必备&nbsp; <br />
title&nbsp;&nbsp;&nbsp;&nbsp; 图片的标题，用于http的alt属性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必备&nbsp; <br />
link&nbsp;&nbsp;&nbsp;&nbsp; 网站的url(实际中常以频道的url代替)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;必备&nbsp; <br />
width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图片的宽度(象素为单位) 最大144,默认88&nbsp;&nbsp;&nbsp;&nbsp; 可选&nbsp; <br />
height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图片的高度(象素为单位) 最大400，默认31&nbsp;&nbsp;&nbsp;&nbsp; 可选&nbsp; <br />
description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用于link的title属性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可选 <br />
<br />
</p>
<p>RSS2.0&nbsp; cloud的子元素列表<br />
<br />
domain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cloud程序所在机器的域名或IP地址&nbsp;&nbsp; radio.xmlstoragesystem.com <br />
port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;访问clound程序所通过的端口&nbsp;&nbsp; 80 <br />
path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;程序所在路径（不一定是真实路径）&nbsp;&nbsp; /RPC2 <br />
registerProcedure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注册的可提供的服务或过程&nbsp;&nbsp; xmlStorageSystem.rssPleaseNotify <br />
protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;协议 xml-rpc, soap , http-post 之一&nbsp; xml-rpc <br />
<br />
</p>
<p>RSS2.0元素channel的子元素textInput的子元素列表<br />
title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Submit按钮的标签&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;必备&nbsp; <br />
description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解释text输入区&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必备&nbsp; <br />
name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text area对象的名字&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必备&nbsp; <br />
link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;处理提交的请求的cgi程序&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;必备 <br />
</p>
<p><br />
参考文档:1.http://cloudliushaode.sharera.com/blog/BlogTopic/44845.htm;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.http://www.donews.net/softbunny/articles/11030.aspx.</p>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/185016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2008-03-10 11:56 <a href="http://www.blogjava.net/guoyongfei/archive/2008/03/10/185016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax介绍</title><link>http://www.blogjava.net/guoyongfei/archive/2007/12/20/169013.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Thu, 20 Dec 2007 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2007/12/20/169013.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/169013.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2007/12/20/169013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/169013.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/169013.html</trackback:ping><description><![CDATA[<div class="box2">感觉这篇文章介绍ajax很不错,特转来共享,为了表示对作者的尊重,所以连下面的一并拷了过来,希望对大家有用:<span class="Tit"><br />
ajax</span></div>
<table class="htb wr" cellspacing="0" cellpadding="0" width="100%" border="0">
    <tbody>
        <tr>
            <td>
            <div class="box2 p14"><a href="http://baike.baidu.com/pic/1/1172721636085091.jpg" target="_blank"><img title="点击查看大图" alt="" hspace="5" src="http://baike.baidu.com/pic/1/1172721636085091_small.jpg" align="right" vspace="5" border="0" /></a> AJAX全称为&#8220;Asynchronous JavaScript and XML&#8221;（异步JavaScript和XML），是指一种创建交互式网页应用的网页开发技术。 <br />
            <br />
            <br />
            <div class="titord"><span class="t1"><a name="1"></a>主要包含了以下几种技术</span></div>
            <br />
            <br />
            Ajax（Asynchronous JavaScript + XML）的定义 <br />
            <br />
            基于web标准（standards-based presentation）XHTML+CSS的表示； <br />
            <br />
            使用 DOM（Document Object Model）进行动态显示及交互； <br />
            <br />
            使用 XML 和 XSLT 进行数据交换及相关操作； <br />
            <br />
            使用 XMLHttpRequest 进行异步数据查询、检索； <br />
            <br />
            使用 JavaScript 将所有的东西绑定在一起。<a href="http://baike.baidu.com/view/170434.htm" target="_blank">英文</a>参见Ajax的提出者Jesse James Garrett的原文。<br />
            <br />
            类似于DHTML或LAMP，AJAX不是指一种单一的技术，而是有机地利用了一系列相关的技术。事实上，一些基于AJAX的&#8220;派生/合成&#8221;式（derivative/composite）的技术正在出现，如&#8220;AFLAX&#8221;。 <br />
            <br />
            AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括：<a href="http://baike.baidu.com/view/393243.htm" target="_blank">Mozilla</a>、<a href="http://baike.baidu.com/view/3279.htm" target="_blank">Firefox</a>、<a href="http://baike.baidu.com/view/85144.htm" target="_blank">Internet Explorer</a>、<a href="http://baike.baidu.com/view/10019.htm" target="_blank">Opera</a>、<a href="http://baike.baidu.com/view/459265.htm" target="_blank">Konqueror</a>及<a href="http://baike.baidu.com/view/110484.htm" target="_blank">Safari</a>。但是Opera不支持XSL格式对象，也不支持XSLT。<br />
            <br />
            <strong><br />
            <div class="titord"><span class="arr"><a title="返回页首" href="http://baike.baidu.com/view/1641.htm#"></a></span><span class="t1"><a name="2"></a>与传统的web应用比较</span></div>
            </strong><br />
            <br />
            传统的web应用允许用户填写表单(form)，当提交表单时就向<a href="http://baike.baidu.com/view/3912.htm" target="_blank">web</a><a href="http://baike.baidu.com/view/899.htm" target="_blank">服务器</a>发送一个请求。服务器接收并处理传来的表单，然後返回一个新的<a href="http://baike.baidu.com/view/828.htm" target="_blank">网页</a>。这个做法浪费了许多带宽，因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求，应用的响应时间就依赖于服务器的<a href="http://baike.baidu.com/view/84619.htm" target="_blank">响应时间</a>。这导致了用户界面的响应比本地应用慢得多。 <br />
            <br />
            与此不同，AJAX应用可以仅向服务器发送并取回必需的数据，它使用SOAP或其它一些基于XML的web service接口，并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少，结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成，所以Web服务器的处理时间也减少了。<br />
            <br />
            Ajax应用程序的优势在于：<br />
            <br />
            1. 通过异步模式，提升了用户体验<br />
            <br />
            2. 优化了<a href="http://baike.baidu.com/view/7718.htm" target="_blank">浏览器</a>和服务器之间的传输，减少不必要的数据往返，减少了带宽占用<br />
            <br />
            3. Ajax引擎在客户端运行，承担了一部分本来由服务器承担的工作，从而减少了大用户量下的服务器负载。<br />
            <br />
            <strong><br />
            <div class="titord"><span class="arr"><a title="返回页首" href="http://baike.baidu.com/view/1641.htm#"></a></span><span class="t1"><a name="3"></a>Ajax的工作原理</span></div>
            </strong><br />
            <br />
            　　Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入，它是一种支持异步请求的技术。简而言之，XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应，而不阻塞用户。<br />
            <br />
            　　在创建Web站点时，在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能：<br />
            <br />
            &nbsp; &nbsp; 动态更新购物车的物品总数，无需用户单击Update并等待服务器重新发送整个页面。 <br />
            <br />
            &nbsp; &nbsp; 提升站点的性能，这是通过减少从服务器下载的数据量而实现的。例如，在某购物车页面，当更新篮子中的一项物品的数量时，会重新载入整个页面，这必须下载整个页面的数据。如果使用Ajax计算新的总量，服务器只会返回新的总量值，因此所需的带宽仅为原来的百分之一。 消除了每次用户输入时的页面刷新。例如，在Ajax中，如果用户在分页列表上单击Next，则服务器数据只刷新列表而不是整个页面。 <br />
            直接编辑表格数据，而不是要求用户导航到新的页面来编辑数据。对于Ajax，当用户单击Edit时，可以将静态表格刷新为内容可编辑的表格。用户单击Done之后，就可以发出一个Ajax请求来更新服务器，并刷新表格，使其包含静态、只读的数据。<br />
            <br />
            　　一切皆有可能！但愿它能够激发您开始开发自己的基于Ajax的站点。然而，在开始之前，让我们介绍一个现有的Web站点，它遵循传统的提交/等待/重新显示的范例，我们还将讨论Ajax如何提升用户体验。<br />
            <br />
            　　　Ajax的工作原理相当于在用户和服务器之间加了—个中间层，使用户操作与服务器响应异步化。这样把以前的一些服务器负担的工作转嫁到客户端，利于客户端闲置的处理能力来处理，减轻服务器和带宽的负担，从而达到节约ISP的空间及带宽租用成本的目的。<br />
            <br />
            我们以两个验证通行证帐号是否存在的例子来讲述AJAX在实际中的应用：<br />
            <br />
            (1)用文本字符串的方式返回服务器的响应来验证网易通行证帐号是否存在； <br />
            <br />
            (2)以XMLDocument对象方式返回响应来验证金山通行证帐号是否存在；<br />
            <br />
            首先，我们需要用JavaScript来创建<a href="http://baike.baidu.com/view/1105115.htm" target="_blank">XMLHttpRequest </a>类向服务器发送一个HTTP请求， XMLHttpRequest 类首先由Internet Explorer以ActiveX对象引入，被称为XMLHTTP。 后来Mozilla﹑Netscape﹑Safari 和其他浏览器也提供了XMLHttpRequest类，不过它们创建XMLHttpRequest类的方法不同。<br />
            <br />
            对于Internet Explorer浏览器，创建XMLHttpRequest 方法如下：<br />
            <br />
            xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0 <br />
            xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP"); <br />
            xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP"); <br />
            <br />
            由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致，为了更好的兼容不同版本的Internet Explorer浏览器，因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类，上面代码就是根据不同的Internet Explorer浏览器创建XMLHttpRequest类的方法。<br />
            <br />
            对于Mozilla﹑Netscape﹑Safari等浏览器，创建XMLHttpRequest 方法如下：xmlhttp_request = new XMLHttpRequest();<br />
            <br />
            如果服务器的响应没有XML mime-type header，某些Mozilla浏览器可能无法正常工作。 为了解决这个问题，如果服务器响应的header不是text/xml，可以调用其它方法修改该header。<br />
            <br />
            xmlhttp_request = new XMLHttpRequest(); <br />
            xmlhttp_request.overrideMimeType('text/xml'); <br />
            <br />
            在实际应用中，为了兼容多种不同版本的浏览器，一般将创建XMLHttpRequest类的方法写成如下形式：<br />
            <br />
            try{ <br />
            if( window.ActiveXObject ){ <br />
            for( var i = 5; i; i-- ){ <br />
            try{ <br />
            if( i == 2 ){ <br />
            xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }<br />
            else{ <br />
            xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); <br />
            xmlhttp_request.setRequestHeader("Content-Type","text/xml"); <br />
            xmlhttp_request.setRequestHeader("Content-Type","gb2312"); }<br />
            break;} <br />
            catch(e){ <br />
            xmlhttp_request = false; } } }<br />
            else if( window.XMLHttpRequest )<br />
            { xmlhttp_request = new XMLHttpRequest(); <br />
            if (xmlhttp_request.overrideMimeType) <br />
            { xmlhttp_request.overrideMimeType('text/xml'); } } }<br />
            catch(e){ xmlhttp_request = false; } <br />
            <br />
            在定义了如何处理响应后，就要发送请求了。可以调用HTTP请求类的open()和send()方法，如下所示：<br />
            <br />
            xmlhttp_request.open('GET', URL, true); <br />
            xmlhttp_request.send(null); <br />
            <br />
            open()的第一个参数是HTTP请求方式—GET，POST或任何服务器所支持的您想调用的方式。 按照HTTP规范，该参数要大写；否则，某些浏览器(如Firefox)可能无法处理请求。 <br />
            <br />
            第二个参数是请求页面的URL。<br />
            <br />
            第三个参数设置请求是否为异步模式。如果是TRUE，JavaScript函数将继续执行，而不等待服务器响应。这就是"AJAX"中的"A"。<br />
            <br />
            用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP请求后，接下来要决定当收到服务器的响应后，需要做什么。这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名，如下所示：<br />
            <br />
            xmlhttp_request.onreadystatechange =FunctionName;<br />
            <br />
            FunctionName是用JavaScript创建的函数名，注意不要写成FunctionName()，当然我们也可以直接将JavaScript代码创建在onreadystatechange之后，例如：<br />
            <br />
            xmlhttp_request.onreadystatechange = function(){<br />
            // JavaScript代码段<br />
            };<br />
            <br />
            首先要检查请求的状态。只有当一个完整的服务器响应已经收到了，函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。<br />
            <br />
            readyState的取值如下： <br />
            <br />
            0 (未初始化) <br />
            <br />
            1 (正在装载) <br />
            <br />
            2 (装载完毕) <br />
            <br />
            3 (交互中) <br />
            <br />
            4 (完成)<br />
            <br />
            所以只有当readyState=4时，一个完整的服务器响应已经收到了，函数才可以处理该响应。具体代码如下：<br />
            <br />
            if (http_request.readyState == 4) { // 收到完整的服务器响应 } <br />
            else { // 没有收到完整的服务器响应 }<br />
            <br />
            当readyState=4时，一个完整的服务器响应已经收到了，接着，函数会检查HTTP服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时，表示状态正常。<br />
            <br />
            在检查完请求的状态值和响应的HTTP状态值后，就可以处理从服务器得到的数据了。有两种方式可以得到这些数据：<br />
            <br />
            (1) 以文本字符串的方式返回服务器的响应<br />
            <br />
            (2) 以XMLDocument对象方式返回响应<br />
            <br />
            实例一： 用文本字符串的方式返回服务器的响应来验证网易通行证帐号是否存在<br />
            <br />
            首先，我们登陆网易通行证注册页面，可以看到检测用户名是否存在是将用户名提交给checkssn.jsp页面进行判断，格式为：<br />
            <br />
            reg.163.com/register/checkssn.jsp?username=用户名 <br />
            <br />
            根据上面讲到的方法，我们可以利用AJAX技术对网易通行证用户名进行检测：<br />
            <br />
            第一步：新建一个基于Xhtml标准的网页，在区域插入Javascript函数如下：<br />
            <br />
            function getXMLRequester( )<br />
            <br />
            { var xmlhttp_request = false; <br />
            <br />
            try<br />
            <br />
            { if( window.ActiveXObject )<br />
            <br />
            { for( var i = 5; i; i-- ){ <br />
            <br />
            try{ <br />
            <br />
            if( i == 2 )<br />
            <br />
            { xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }<br />
            <br />
            else<br />
            <br />
            { xmlhttp_request = new ActiveXObject<br />
            <br />
            ( "Msxml2.XMLHTTP." + i + ".0" ); <br />
            <br />
            xmlhttp_request.setRequestHeader("Content-Type","text/xml"); <br />
            <br />
            xmlhttp_request.setRequestHeader("Content-Type","gb2312"); }<br />
            <br />
            break;} <br />
            <br />
            catch(e){ xmlhttp_request = false; } } }<br />
            <br />
            else if( window.XMLHttpRequest )<br />
            <br />
            { xmlhttp_request = new XMLHttpRequest();<br />
            <br />
            if (xmlhttp_request.overrideMimeType)<br />
            <br />
            { xmlhttp_request.overrideMimeType('text/xml'); } } }<br />
            <br />
            catch(e){ xmlhttp_request = false; } <br />
            <br />
            return xmlhttp_request ; } <br />
            <br />
            function IDRequest(n) { //定义收到服务器的响应后需要执行的JavaScript函数<br />
            <br />
            url=n+document.getElementById('163id').value;//定义网址参数<br />
            <br />
            xmlhttp_request=getXMLRequester();//调用创建XMLHttpRequest的函数<br />
            <br />
            xmlhttp_request.onreadystatechange = doContents;//调用doContents函数<br />
            <br />
            xmlhttp_request.open('GET', url, true); <br />
            <br />
            xmlhttp_request.send(null); } <br />
            <br />
            function doContents() <br />
            <br />
            { if (xmlhttp_request.readyState == 4) {// 收到完整的服务器响应 <br />
            <br />
            if (xmlhttp_request.status == 200) {//HTTP服务器响应的值OK<br />
            <br />
            document.getElementById('message').innerHTML = xmlhttp_request.responseText; <br />
            <br />
            //将服务器返回的字符串写到页面中ID为message的区域 } <br />
            <br />
            else { alert(http_request.status); } } } <br />
            <br />
            在区域建立一个文本框，id为163id，再建一个id为messsge的空白区域用来显示返回字符串(也可以通过Javascript函数截取一部分字符串显示)： <br />
            <br />
            &lt;input type=text id="163id"&gt;<br />
            &lt;span id="message"&gt;&lt;/span&gt;<br />
            <br />
            这样，一个基于AJAX技术的用户名检测页面就做好了，不过这个页面将返回服务器响应生成页面的所有字符串，当然还可以对返回的字符串进行一些操作，便于应用到不同的需要当中。<br />
            <br />
            实例二： 以XMLDocument对象方式返回响应来验证金山通行证帐号是否存在<br />
            <br />
            在上面的例子中，当服务器对HTTP请求的响应被收到后，我们会调用请求对象的reponseText属性。该属性包含了服务器返回响应文件的内容。现在我们以XMLDocument对象方式返回响应，此时将不再需要reponseText属性而使用responseXML属性。<br />
            <br />
            首先登陆金山通行证注册页面，我们发现金山通行证用户名的检测方式为： pass.kingsoft.com/ksgweb/jsp/login/uid.jsp?uid=用户名,并且返回XML数据:<br />
            <br />
            isExistedUid -2 <br />
            <br />
            当result值为-1时表示此用户名已被注册，当result值为-2时表示此用户名尚未注册，因此通过对result值的判断可以知道用户名是否被注册。<br />
            <br />
            对上例代码进行修改：<br />
            <br />
            首先找到<br />
            <br />
            document.getElementById('message').innerHTML = xmlhttp_request.responseText;<br />
            <br />
            改为:<br />
            <br />
            var response = xmlhttp_request.responseXML.documentElement;<br />
            <br />
            var result = response.getElementsByTagName('result')[0].firstChild.data;//返回result节点数据<br />
            <br />
            if(result ==-2){<br />
            <br />
            document.getElementById('message').innerHTML = "用户名"+document.getElementById('163id').value+"尚未注册";}<br />
            <br />
            else if(result ==-1){<br />
            <br />
            document.getElementById('message').innerHTML = "对不起,用户名"+document.getElementById('163id').value+"已经注册";}<br />
            <br />
            通过以上两个实例说明了AJAX的客户端基础应用，采用的是网易和金山现成的服务器端程序，当然为了开发合适自己页面的程序，还需要对自己编写服务器端程序，这设计到程序语言及数据库的操作，对于有一定程序基础的读者一定不是很难的事情。<br />
            <br />
            <br />
            <br />
            <strong>补充：</strong><br />
            1.Ajax：著名希腊史诗伊利亚特中英雄埃阿斯的名字。<br />
            2.Ajax：荷兰著名足球俱乐部阿贾克斯，以培养青年球员而著称，并多次夺得欧洲冠军杯。<br />
            <br />
            <br />
            <span class="arr"><a title="返回页首" href="http://baike.baidu.com/view/1641.htm#"></a></span>
            <div class="btn_edit"><a href="http://baike.baidu.com/edit/id=1641"><img alt="" src="http://img.baidu.com/img/baike/btn_edit.gif" align="absMiddle" vspace="4" border="0" />编辑词条</a></div>
            </div>
            </td>
        </tr>
        <tr>
            <td>
            <div class="ref"><strong>开放分类：</strong><br />
            <a href="http://baike.baidu.com/search/cn=%CD%F8%C2%E7" target="_blank">网络</a>、<a href="http://baike.baidu.com/search/cn=%CD%F8%D2%B3" target="_blank">网页</a>、<a href="http://baike.baidu.com/search/cn=%BD%BB%BB%A5%D0%D4" target="_blank">交互性</a>、<a href="http://baike.baidu.com/search/cn=%B3%CC%D0%F2%BF%AA%B7%A2" target="_blank">程序开发</a>、<a href="http://baike.baidu.com/search/cn=%CD%F8%D2%B3%BC%BC%CA%F5" target="_blank">网页技术</a><br />
            <div class="disti">&nbsp;</div>
            <strong>参考资料：</strong><br />
            &nbsp;1.<a href="http://www.cnic.org/wiki/AJAX" target="_blank">http://www.cnic.org/wiki/AJAX</a> <br />
            &nbsp;2.<a href="http://blog.inmedia.cn/index.php/2006/03/29/ajaxasbasncn_erd_ac" target="_blank">http://blog.inmedia.cn/index.php/2006/03/29/ajaxasbasncn_erd_ac</a> <br />
            &nbsp;3.Ajax——JS与XML的精彩组合: <a href="http://www.micy.cn/blog/index.php/archives/199.html" target="_blank">http://www.micy.cn/blog/index.php/archives/199.html</a> <br />
            &nbsp;4.<a href="http://tech.chinaasp.com/20051123/ajax/31503.shtml" target="_blank">http://tech.chinaasp.com/20051123/ajax/31503.shtml</a> <br />
            &nbsp;5.<a href="http://www.hotajax.cn/" target="_blank">http://www.hotajax.cn</a> <br />
            <div class="disti">&nbsp;</div>
            <strong>贡献者：</strong><br />
            <a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=workstar" target="_blank">workstar</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=88tags" target="_blank">88tags</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=vipdu" target="_blank">vipdu</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=qinyf" target="_blank">qinyf</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=suyuening2005" target="_blank">suyuening2005</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=lekai63" target="_blank">lekai63</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=hatoyu" target="_blank">hatoyu</a>、<a href="http://www.baidu.com/search/baike/kedoutuan/index.html" target="_blank"><img title="百科蝌蚪团" alt="" src="http://img.baidu.com/img/baike/tadpole.gif" border="0" /></a>&nbsp;<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=%BB%C3%D3%B0%C4%A7%B5%C1" target="_blank">幻影魔盗</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=super_phenix" target="_blank">super_phenix</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=summit677" target="_blank">summit677</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=%B7%E8%BF%F1%B4%F0%CC%E2%CA%D6" target="_blank">疯狂答题手</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=%BE%B0%B9%DB%C3%C0" target="_blank">景观美</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=Kealin" target="_blank">Kealin</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=wtmgsn" target="_blank">wtmgsn</a>、<a href="http://passport.baidu.com/?detail&amp;apid=1&amp;default_tab=3&amp;un=Jobs_Lee" target="_blank">Jobs_Lee</a> </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/169013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2007-12-20 13:54 <a href="http://www.blogjava.net/guoyongfei/archive/2007/12/20/169013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene Field 1.*版本和2.*版本比较</title><link>http://www.blogjava.net/guoyongfei/archive/2007/12/03/164885.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Mon, 03 Dec 2007 07:30:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2007/12/03/164885.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/164885.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2007/12/03/164885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/164885.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/164885.html</trackback:ping><description><![CDATA[<div class="url">
<p><span style="font-size: 8pt"><span style="font-size: 10pt">(一)最近用Lucene开发全文检索。《Lucene in Action》这本书用的是Lucene 1.4。我自己下的是最新的2.1。然后就发现了很多不同的地方。</span></span></p>
</div>
<div class="content">
<p><span style="font-size: 8pt"><span style="font-size: 10pt">Field没了Keyword、UnIndexed、UnStored、Text这几个静态成员，只能用<br />
Field(String, String, Store, Index)。<br />
Keyword对应Field.Store.YES, Field.Index.UN_TOKENIZED，<br />
UnIndexed 对应Field.Store.YES, Field.Index.NO，<br />
UnStored对应Field.Store.NO, Field.Index.TOKENIZED，<br />
Text对应Field.Store.YES, Field.Index.TOKENIZED。</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">FSDirectory.getDirectory的有两个参数的变成了depresed 了。现在要用只有一个参数的。</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">BooleanQuery的add方法也变了。原来是用两个boolean值组合的，现在 使用BooleanClause.Occur的几个静态成员了。</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">暂时就发现这点差异。[引自:http://syre.blogbus.com/logs/4736803.html]</span></span></p>
<p><span style="font-size: 8pt"></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">(二)Field类一共有5种构造函数：</span></span></p>
<p>
<table cellspacing="0" cellpadding="3" width="100%" border="1">
    <tbody>
        <tr class="TableRowColor" bgcolor="#ffffff">
            <td><code><strong><a href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.html#Field(java.lang.String, byte[], org.apache.lucene.document.Field.Store)"><span style="font-size: 8pt"><span style="font-size: 10pt">Field</span></span></a></strong><span style="font-size: 8pt"><span style="font-size: 10pt">(</span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> name, byte[] value, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Store.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Store</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> store)</span></span></code><span style="font-size: 8pt"><span style="font-size: 10pt"> <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create a stored field with binary value.</span></span></td>
        </tr>
        <tr class="TableRowColor" bgcolor="#ffffff">
            <td><code><strong><a href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.html#Field(java.lang.String, java.io.Reader)"><span style="font-size: 8pt"><span style="font-size: 10pt">Field</span></span></a></strong><span style="font-size: 8pt"><span style="font-size: 10pt">(</span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> name, </span></span><a title="class or interface in java.io" href="http://java.sun.com/j2se/1.4/docs/api/java/io/Reader.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Reader</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> reader)</span></span></code><span style="font-size: 8pt"><span style="font-size: 10pt"> <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create a tokenized and indexed field that is not stored.</span></span></td>
        </tr>
        <tr class="TableRowColor" bgcolor="#ffffff">
            <td><code><strong><a href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.html#Field(java.lang.String, java.io.Reader, org.apache.lucene.document.Field.TermVector)"><span style="font-size: 8pt"><span style="font-size: 10pt">Field</span></span></a></strong><span style="font-size: 8pt"><span style="font-size: 10pt">(</span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> name, </span></span><a title="class or interface in java.io" href="http://java.sun.com/j2se/1.4/docs/api/java/io/Reader.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Reader</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> reader, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.TermVector.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.TermVector</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> termVector)</span></span></code><span style="font-size: 8pt"><span style="font-size: 10pt"> <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create a tokenized and indexed field that is not stored, optionally with storing term vectors.</span></span></td>
        </tr>
        <tr class="TableRowColor" bgcolor="#ffffff">
            <td><code><strong><a href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.html#Field(java.lang.String, java.lang.String, org.apache.lucene.document.Field.Store, org.apache.lucene.document.Field.Index)"><span style="font-size: 8pt"><span style="font-size: 10pt">Field</span></span></a></strong><span style="font-size: 8pt"><span style="font-size: 10pt">(</span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> name, </span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> value, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Store.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Store</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> store, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Index.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Index</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> index)</span></span></code><span style="font-size: 8pt"><span style="font-size: 10pt"> <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create a field by specifying its name, value and how it will be saved in the index.</span></span></td>
        </tr>
        <tr class="TableRowColor" bgcolor="#ffffff">
            <td><code><strong><a href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.html#Field(java.lang.String, java.lang.String, org.apache.lucene.document.Field.Store, org.apache.lucene.document.Field.Index, org.apache.lucene.document.Field.TermVector)"><span style="font-size: 8pt"><span style="font-size: 10pt">Field</span></span></a></strong><span style="font-size: 8pt"><span style="font-size: 10pt">(</span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> name, </span></span><a title="class or interface in java.lang" href="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html"><span style="font-size: 8pt"><span style="font-size: 10pt">String</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> value, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Store.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Store</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> store, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Index.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Index</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> index, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.TermVector.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.TermVector</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt"> termVector)</span></span></code><span style="font-size: 8pt"><span style="font-size: 10pt"> <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create a field by specifying its name, value and how it will be saved in the index.</span></span></td>
        </tr>
    </tbody>
</table>
</p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">其中：</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Store 表示&#8220;是否存储&#8221;，即该Field内的信息是否要被原封不动的保存在索引中。</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Index 表示&#8220;是否索引&#8221;，即在这个Field中的数据是否在将来检索时需要被用户检索到，一个&#8220;不索引&#8221;的Field通常仅是提供辅助信息储存的功能。</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">Field.TermVector 表示&#8220;是否切词&#8221;，即在这个Field中的数据是否需要被切词。</span></span></p>
<p><span style="font-size: 8pt"></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">通常，参数用Reader，表示在文本流数据源中获取数据，数据量一般会比较大。像链接地址URL、文件系统路径信息、时间日期、人名、居民身份证、电话号码等等通常将被索引并且完整的存储在索引中，但一般不需要切分词，通常用上面的第四个构造函数，第三四个参数分别为</span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Store.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Store</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt">.YES, </span></span><a title="class in org.apache.lucene.document" href="file:///G:/lucene-2.0.0/lucene-2.0.0/docs/api/org/apache/lucene/document/Field.Index.html"><span style="font-size: 8pt"><span style="font-size: 10pt">Field.Index</span></span></a><span style="font-size: 8pt"><span style="font-size: 10pt">.YES。而长文本通常可用第3个构造函数。引用[http://blog.csdn.net/colasnail/archive/2007/03/21/1536417.aspx]</span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">(三)<span style="line-height: 150%">1.<span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <span style="line-height: 150%">2.0</span><span style="line-height: 150%">以前的版本</span></span></span></p>
<p><font size="1"><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="line-height: 150%">UnIndexed: Field</span><span style="line-height: 150%">的值将被保存到索引文件，不为Field的值建立索引，因此不能通过该Field搜索文档。</span> <span style="line-height: 150%">UnStored: Field</span><span style="line-height: 150%">的值不被保存到索引文件，将Field的值分词后建立索引</span> </span></span></font>
<p><span style="font-size: 8pt"></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt">tags:Lucene Lucene.net Field Field.store Field.UnStored Field.Keyword Field.Text</span></span></p>
<p><span style="font-size: 8pt"></span></p>
<ul type="disc">
    <li style="line-height: 150%; text-align: left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%">Text: Field</span><span style="line-height: 150%">的值分词后建立索引。如果参数为String值将被保存，为Reader值不被保存</span> </span></span></span></font></font></li>
</ul>
<div style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%">2.<span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <span style="line-height: 150%">2.0</span></span></span></span></font></font><span style="line-height: 150%"><span style="font-size: 8pt"><span style="font-size: 10pt"><span>版本<br />
&nbsp;&nbsp;&nbsp; 用几个内部类的组合来区分Field的具体类型。</span></span></span></span></div>
<ul type="disc">
    <li style="line-height: 150%; text-align: left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%">Store</span> </span></span></span></font></font></li>
</ul>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">COMPRESS:</span></em><em><span style="line-height: 150%">压缩保存。用于长文本或二进制数据</span></em></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">YES</span></em><em><span style="line-height: 150%">：保存</span></em></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">NO</span></em><em><span style="line-height: 150%">：不保存</span></em></span></span></span></font></font></div>
<ul type="disc">
    <li style="line-height: 150%; text-align: left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%">Index</span> </span></span></span></font></font></li>
</ul>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">NO</span></em><em><span style="line-height: 150%">：不</span></em><span style="line-height: 150%">建索引</span></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">TOKENIZED</span></em><em><span style="line-height: 150%">：分词，</span></em><span style="line-height: 150%">建索引</span></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">UN_TOKENIZED</span></em><em><span style="line-height: 150%">：不分词，</span></em><span style="line-height: 150%">建索引</span></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><em><span style="line-height: 150%; font-style: normal"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></em> <em>NO_NORMS</em><em>：不分词，</em>建索引。但是<span>Field的值不像通常那样被保存，而是只取一个byte，这样节约存储空间</span></span></span></span></font></font></div>
<ul type="disc">
    <li style="line-height: 150%; text-align: left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%">TermVector</span> </span></span></span></font></font></li>
</ul>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">NO</span></em><em><span style="line-height: 150%">：</span></em><span style="line-height: 150%">不保存term vectors</span></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">YES</span></em><em><span style="line-height: 150%">：</span></em><span style="line-height: 150%">保存term vectors。</span></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%"><em><span style="line-height: 150%">WITH_POSITIONS</span></em><em><span style="line-height: 150%">：</span></em><span style="line-height: 150%">保存term vectors。（保存值和token位置信息）</span></span></em></span></span></span></font></font></div>
<div style="margin-left: 57pt; text-indent: -21pt; line-height: 150%; text-align: left" align="left"><font size="3"><font color="#996600"><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span style="color: #3f5fbf; line-height: 150%"><span style="font: 7pt Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <em><span style="line-height: 150%">WITH_OFFSETS</span></em><em><span style="line-height: 150%">：</span></em><span style="line-height: 150%">保存term vectors。（保存值和Token的offset）<em>WITH_POSITIONS_OFFSETS：</em>保存term vectors。（保存值和token位置信息和Token的offset）</span></span></span></span></font></font></div>
<br />
<br />
comefrom:<a href="http://hi.baidu.com/gw_noah/blog/item/0646fbc4c3418daa8226ac0c.html">http://hi.baidu.com/gw_noah/blog/item/0646fbc4c3418daa8226ac0c.html</a></div>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/164885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2007-12-03 15:30 <a href="http://www.blogjava.net/guoyongfei/archive/2007/12/03/164885.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript中showModalDialog和showModelessDialog区别 </title><link>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163723.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Wed, 28 Nov 2007 08:24:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163723.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/163723.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163723.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/163723.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/163723.html</trackback:ping><description><![CDATA[<div class="item-content">
<p><span style="font-size: 10pt">javascript中showModalDialog和showModelessDialog区别 <br />
<br />
1．&nbsp; showModalDialog和showModelessDialog的异同</span></p>
<p><span style="font-size: 10pt">&nbsp; 同：两者弹出的窗体不能刷新</span></p>
<p><span style="font-size: 10pt">&nbsp; 异：前者是模态窗口，始终获得焦点；后者是非模态窗口，只不过弹出一个页面，还可以操作父窗口。</span></p>
<p><span style="font-size: 10pt">2．&nbsp; 关闭showModalDialog和showModelessDialog弹出的窗口</span></p>
<p><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; &lt;INPUT type="button" value="ButtonClick" onclick="self.close();"&gt;</span></p>
<p><span style="font-size: 10pt">3．&nbsp; 怎样才让在showModalDialog和showModelessDialog的弹出新窗口里操作button,不弹出新窗口？</span></p>
<p><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp; 在&lt;head&gt;和&lt;/head&gt;之间加&lt;base target="_self"&gt;</span></p>
<p><span style="font-size: 10pt">4.&nbsp;&nbsp;&nbsp;&nbsp; showModalDialog的返回值</span></p>
<p><span style="font-size: 10pt">参照例子：</span></p>
<p><span style="font-size: 10pt">t1.html:</span></p>
<p><span style="font-size: 10pt">&lt;script language="javascript"&gt;<br />
function showpage()<br />
{<br />
alert(showModalDialog("t2.html"));<br />
}<br />
&lt;/script&gt;<br />
&lt;input type="button" value="getval" onClick="showpage();"&gt;</span></p>
<p><span style="font-size: 10pt">t2.html<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;Script language="javascript"&gt;<br />
&lt;<br />
function SetVal()<br />
{<br />
&nbsp; returnValue="abc";<br />
&nbsp; close();<br />
}<br />
//--&gt;<br />
&lt;/Script&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY&gt;&nbsp; <br />
&lt;input type="button" value="Btn1" onClick="SetVal();"&gt;<br />
&lt;/BODY&gt;<br />
&lt;/HTML&gt;</span></p>
<p><br />
<span style="font-size: 10pt">基本介绍：<br />
showModalDialog() (IE 4+ 支持)<br />
showModelessDialog() (IE 5+ 支持)<br />
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。<br />
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。</span></p>
<p><span style="font-size: 10pt">使用方法：<br />
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])<br />
vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])</span></p>
<p><span style="font-size: 10pt">参数说明：<br />
sURL--必选参数，类型：字符串。用来指定对话框要显示的文档的URL。<br />
vArguments--可选参数，类型：变体。用来向对话框传递参数。传递的参数类型不限，包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。<br />
sFeatures--可选参数，类型：字符串。用来描述对话框的外观等信息，可以使用以下的一个或几个，用分号&#8220;;&#8221;隔开。<br />
1.dialogHeight :对话框高度，不小于１００px，ＩＥ４中dialogHeight 和 dialogWidth 默认的单位是em，而ＩＥ５中是px，为方便其见，在定义modal方式的对话框时，用px做单位。<br />
2.dialogWidth: 对话框宽度。<br />
3.dialogLeft: 离屏幕左的距离。<br />
4.dialogTop: 离屏幕上的距离。<br />
5.center: {yes | no | 1 | 0 }：窗口是否居中，默认yes，但仍可以指定高度和宽度。<br />
6.help: {yes | no | 1 | 0 }：是否显示帮助按钮，默认yes。<br />
7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。<br />
8.status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。<br />
9.scroll:{ yes | no | 1 | 0 | on | off }：指明对话框是否显示滚动条。默认为yes。<br />
下面几个属性是用在HTA中的，在一般的网页中一般不使用。<br />
10.dialogHide:{ yes | no | 1 | 0 | on | off }：在打印或者打印预览时对话框是否隐藏。默认为no。<br />
11.edge:{ sunken | raised }：指明对话框的边框样式。默认为raised。<br />
12.unadorned:{ yes | no | 1 | 0 | on | off }：默认为no。</span></p>
<p><span style="font-size: 10pt">参数传递：<br />
1.要想对话框传递参数，是通过vArguments来进行传递的。类型不限制，对于字符串类型，最大为4096个字符。也可以传递对象，例如：</span></p>
<p><span style="font-size: 10pt">&lt;script&gt;<br />
var obj = new Object();<br />
obj.name="ttop";<br />
window.showModalDialog("test.htm",obj,"dialogWidth=200px;dialogHeight=100px");<br />
&lt;/script&gt;<br />
test.htm<br />
&lt;script&gt;<br />
var obj = window.dialogArguments<br />
alert("您传递的参数为：" + obj.name)<br />
&lt;/script&gt;</span></p>
<p><span style="font-size: 10pt">2.可以通过window.returnValue向打开对话框的窗口返回信息，当然也可以是对象。例如：</span></p>
<p><span style="font-size: 10pt">&lt;script&gt;<br />
str =window.showModalDialog("test.htm",,"dialogWidth=200px;dialogHeight=100px");<br />
alert(str);<br />
&lt;/script&gt;<br />
test.htm<br />
&lt;script&gt;<br />
window.returnValue="/";<br />
&lt;/script&gt;</span></p>
<p><span style="font-size: 10pt">&nbsp;</span></p>
<p><span style="font-size: 10pt">&nbsp;<br />
一、showModalDialog和showModelessDialog有什么不同？<br />
　　showModalDialog：被打开后就会始终保持输入焦点。除非对话框被关闭，否则用户无法切换到主窗口。类似alert的运行效果。<br />
　　showModelessDialog：被打开后，用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)</span></p>
<p><span style="font-size: 10pt">二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口？<br />
　　在被打开的网页里加上&lt;base target="_self"&gt;就可以了。这句话一般是放在&lt;html&gt;和&lt;body&gt;之间的。</span></p>
<p><span style="font-size: 10pt">三、怎样才刷新showModalDialog和showModelessDialog里的内容？<br />
　　在showModalDialog和showModelessDialog里是不能按F5刷新的，又不能弹出菜单。这个只能依靠javascript了，以下是相关代码：</span></p>
<p><span style="font-size: 10pt">&lt;body onkeydown="if (event.keyCode==116){reload.click()}"&gt;<br />
&lt;a id="reload" href="filename.htm" style="display:none"&gt;reload...&lt;/a&gt;</span></p>
<p><span style="font-size: 10pt">　　将filename.htm替换成网页的名字然后将它放到你打开的网页里，按F5就可以刷新了，注意，这个要配合&lt;base target="_self"&gt;使用，不然你按下F5会弹出新窗口的。</span></p>
<p><span style="font-size: 10pt">四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。<br />
　　&lt;input type="button" value="关闭" onclick="window.close()"&gt;<br />
　　也要配合&lt;base target="_self"&gt;，不然会打开一个新的IE窗口，然后再关掉的。</span></p>
<p><span style="font-size: 10pt">五、showModalDialog和showModelessDialog数据传递技巧。<br />
　　(作者语：本来想用一问一答形式来写的，但是我想不出这个怎么问，所以只好这样了。)<br />
　　这个东西比较麻烦，我改了好几次了不是没办法说明白(语文水平越来越差了)，只好用个例子说明了。<br />
　　例子：<br />
　　　　现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name</span></p>
<p><span style="font-size: 10pt">　　　　　　一般的传递方式：<br />
　　　　　　　　window.showModalDialog("filename.htm",var_name)<br />
　　　　　　　　//传递var_name变量<br />
　　　　　　在showModalDialog(或showModelessDialog)读取和设置时：<br />
　　　　　　　　alert(window.dialogArguments)//读取var_name变量<br />
　　　　　　　　window.dialogArguments="oyiboy"//设置var_name变量<br />
　　　　这种方式是可以满足的，但是当你想在操作var_name同时再操作第二个变理var_id时呢？就无法再进行操作了。这就是这种传递方式的局限性。<br />
　　　　<br />
　　　　　　以下是我建议使用的传递方式：<br />
　　　　　　　　window.showModalDialog("filename.htm",window)<br />
　　　　　　　　//不管要操作什么变量，只直传递主窗口的window对象<br />
　　　　　　在showModalDialog(或showModelessDialog)读取和设置时：<br />
　　　　　　　　alert(window.dialogArguments.var_name)//读取var_name变量<br />
　　　　　　　　window.dialogArguments.var_name="oyiboy"//设置var_name变量</span></p>
<p><span style="font-size: 10pt">　　　　　　　　同时我也可以操作var_id变量<br />
　　　　　　　　alert(window.dialogArguments.var_id)//读取var_id变量<br />
　　　　　　　　window.dialogArguments.var_id="001"//设置var_id变量</span></p>
<p><span style="font-size: 10pt">　　　　　　　　同样还可以对主窗口的任何对象进行操作，如form对象里的元素。<br />
　　　　　　　　window.dialogArguments.form1.index1.value="这是在设置index1元素的值"</span></p>
<p><span style="font-size: 10pt">六、多个showModelessDialog的相互操作。<br />
　　以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位置。</span></p>
<p><span style="font-size: 10pt">　　主文件的部份js代码。<br />
　　var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px"） //打开控制窗口<br />
　　var s2=showModelessDialog('about:blank',window,"dialogTop:200px;dialogLeft:300px"）　　//打开被控制窗口</span></p>
<p><span style="font-size: 10pt">　　控制.htm的部份代码。<br />
　　&lt;script&gt;<br />
　　　　//操作位置数据，因为窗口的位置数据是"xxxpx"方式的，所以需要这样的一个特殊操作函数。<br />
&nbsp;function countNumber(A_strNumber,A_strWhatdo)<br />
&nbsp;{<br />
&nbsp; A_strNumber=A_strNumber.replace('px','')<br />
&nbsp; A_strNumber-=0<br />
&nbsp; switch(A_strWhatdo)<br />
&nbsp; {<br />
&nbsp; case "-":A_strNumber-=10;break;<br />
&nbsp; case "+":A_strNumber+=10;break;<br />
&nbsp; }<br />
&nbsp; return A_strNumber + "px"<br />
&nbsp;}<br />
　　&lt;/script&gt;<br />
　　&lt;input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')" value="上移"&gt;<br />
　　&lt;input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')" value="左移"&gt;<br />
　　&lt;input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')" value="右移"&gt;<br />
　　&lt;input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'+')" value="下移"&gt;</span></p>
<p><span style="font-size: 10pt">　　以上关键部份是：<br />
　　　　窗口命名方式：var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px"）<br />
　　　　变量访问方式：window.dialogArguments.s2.dialogTop</span></p>
<p><span style="font-size: 10pt">　　这个例子只是现实showModelessDialog与showModelessDialog之间的位置操作功能，通过这个原理，在showModelessDialog之间相互控制各自的显示页面，传递变量和数据等。这要看各位的发挥了</span></p>
<p><span style="font-size: 10pt">转自:</span><a href="http://www.cnblogs.com/xiaobaidhg/archive/2007/06/22/792891.html" target="_blank"><span style="font-size: 10pt">http://www.cnblogs.com/xiaobaidhg/archive/2007/06/22/792891.html</span></a></p>
<div class="clear"></div>
</div>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/163723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2007-11-28 16:24 <a href="http://www.blogjava.net/guoyongfei/archive/2007/11/28/163723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 中的堆和栈（转） </title><link>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163721.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Wed, 28 Nov 2007 08:22:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163721.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/163721.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163721.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/163721.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/163721.html</trackback:ping><description><![CDATA[<strong><span style="font-size: 10pt"><strong>Java 中的堆和栈</strong><br />
<br />
简单的说：<br />
Java把内存划分成两种：一种是栈内存，一种是堆内存。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp;&nbsp;在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp;&nbsp;当在一段代码块定义一个变量时，Java就在栈中为这个变量分配内存空间，当超过变量的作用域后，Java会自动释放掉为该变量所分配的内存空间，该内存空间可以立即被另作他用。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp;&nbsp;堆内存用来存放由new创建的对象和数组。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp;&nbsp;在堆中分配的内存，由Java虚拟机的自动垃圾回收器来管理。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp;&nbsp;在堆中产生了一个数组或对象后，还可以在栈中定义一个特殊的变量，让栈中这个变量的取值等于数组或对象在堆内存中的首地址，栈中的这个变量就成了数组或对象的引用变量。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
&nbsp;&nbsp;引用变量就相当于是为数组或对象起的一个名称，以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。&nbsp; &nbsp;<br />
&nbsp; &nbsp; <br />
<br />
<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br />
<br />
具体的说：<br />
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同，Java自动管理栈和堆，程序员不能直接地设置栈或堆。 <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立，它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的，堆的优势是可以动态地分配内存大小，生存期也不必事先告诉编译器，因为它是在运行时动态分配内存的，Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是，由于要在运行时动态分配内存，存取速度较慢。 <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;栈的优势是，存取速度比堆要快，仅次于寄存器，栈数据可以共享。但缺点是，存在栈中的数据大小与生存期必须是确定的，缺乏灵活性。栈中主要存放一些基本类型的变量（,int, short, long, byte, float, double, boolean, char）和对象句柄。 <br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;栈有一个很重要的特殊性，就是存在栈中的数据可以共享。假设我们同时定义： <br />
int a = 3; <br />
int b = 3； <br />
编译器先处理int a = 3；首先它会在栈中创建一个变量为a的引用，然后查找栈中是否有3这个值，如果没找到，就将3存放进来，然后将a指向3。接着处理int b = 3；在创建完b的引用变量后，因为在栈中已经有3这个值，便将b直接指向3。这样，就出现了a与b同时均指向3的情况。这时，如果再令a=4；那么编译器会重新搜索栈中是否有4值，如果没有，则将4存放进来，并令a指向4；如果已经有了，则直接将a指向这个地址。因此a值的改变不会影响到b的值。要注意这种数据的共享与两个对象的引用同时指向一个对象的这种共享是不同的，因为这种情况a的修改并不会影响到b, 它是由编译器完成的，它有利于节省空间。而一个对象引用变量修改了这个对象的内部状态，会影响到另一个对象引用变量。 <br />
<br />
String是一个特殊的包装类数据。可以用： <br />
String str = new String("abc"); <br />
String str = "abc"; <br />
两种的形式来创建，第一种是用new()来新建对象的，它会在存放于堆中。每调用一次就会创建一个新的对象。 <br />
而第二种是先在栈中创建一个对String类的对象引用变量str，然后查找栈中有没有存放"abc"，如果没有，则将"abc"存放进栈，并令str指向&#8221;abc&#8221;，如果已经有&#8221;abc&#8221; 则直接令str指向&#8220;abc&#8221;。 <br />
<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;比较类里面的数值是否相等时，用equals()方法；当测试两个包装类的引用是否指向同一个对象时，用==，下面用例子说明上面的理论。 <br />
String str1 = "abc"; <br />
String str2 = "abc"; <br />
System.out.println(str1==str2); //true <br />
可以看出str1和str2是指向同一个对象的。 <br />
<br />
String str1 =new String ("abc"); <br />
String str2 =new String ("abc"); <br />
System.out.println(str1==str2); // false <br />
用new的方式是生成不同的对象。每一次生成一个。 <br />
&nbsp; &nbsp;&nbsp; &nbsp; 因此用第一种方式创建多个&#8221;abc&#8221;字符串,在内存中其实只存在一个对象而已. 这种写法有利与节省内存空间. 同时它可以在一定程度上提高程序的运行速度，因为JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象。而对于String str = new String("abc")；的代码，则一概在堆中创建新对象，而不管其字符串值是否相等，是否有必要创建新对象，从而加重了程序的负担。 <br />
&nbsp; &nbsp;&nbsp; &nbsp; 另一方面, 要注意: 我们在使用诸如String str = "abc"；的格式定义类时，总是想当然地认为，创建了String类的对象str。担心陷阱！对象可能并没有被创建！而可能只是指向一个先前已经创建的对象。只有通过new()方法才能保证每次都创建一个新的对象。由于String类的immutable性质，当String变量需要经常变换其值时，应该考虑使用StringBuffer类，以提高程序效率。<br />
<br />
<br />
<br />
<br />
java中内存分配策略及堆和栈的比较 <br />
2.1 内存分配策略 <br />
按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. <br />
静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求. <br />
栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数据区的需求在编译时是完全未知的,只有到运行的时候才能够知道,但是规定在运行中进入一个程序模块时,必须知道该程序模块所需的数据区大小才能够为其分配内存.和我们在数据结构所熟知的栈一样,栈式存储分配按照先进后出的原则进行分配。 <br />
静态存储分配要求在编译时能知道所有变量的存储要求,栈式存储分配要求在过程的入口处必须知道所有的存储要求,而堆式存储分配则专门负责在编译时或运行时模块入口处都无法确定存储要求的数据结构的内存分配,比如可变长度串和对象实例.堆由大片的可利用块或空闲块组成,堆中的内存可以按照任意顺序分配和释放. <br />
<br />
2.2 堆和栈的比较 <br />
上面的定义从编译原理的教材中总结而来,除静态存储分配之外,都显得很呆板和难以理解,下面撇开静态存储分配,集中比较堆和栈: <br />
从堆和栈的功能和作用来通俗的比较,堆主要用来存放对象的，栈主要是用来执行程序的.而这种不同又主要是由于堆和栈的特点决定的: <br />
在编程中，例如C/C++中，所有的方法调用都是通过栈来进行的,所有的局部变量,形式参数都是从栈中分配内存空间的。实际上也不是什么分配,只是从栈顶向上用就行,就好像工厂中的传送带(conveyor belt)一样,Stack Pointer会自动指引你到放东西的位置,你所要做的只是把东西放下来就行.退出函数的时候，修改栈指针就可以把栈中的内容销毁.这样的模式速度最快, 当然要用来运行程序了.需要注意的是,在分配的时候,比如为一个即将要调用的程序模块分配数据区时,应事先知道这个数据区的大小,也就说是虽然分配是在程序运行时进行的,但是分配的大小多少是确定的,不变的,而这个"大小多少"是在编译时确定的,不是在运行时. <br />
堆是应用程序在运行的时候请求操作系统分配给自己内存，由于从操作系统管理的内存分配,所以在分配和销毁时都要占用时间，因此用堆的效率非常低.但是堆的优点在于,编译器不必知道要从堆里分配多少存储空间，也不必知道存储的数据要在堆里停留多长的时间,因此,用堆保存数据时会得到更大的灵活性。事实上,面向对象的多态性,堆内存分配是必不可少的,因为多态变量所需的存储空间只有在运行时创建了对象之后才能确定.在C++中，要求创建一个对象时，只需用 new命令编制相关的代码即可。执行这些代码时，会在堆里自动进行数据的保存.当然，为达到这种灵活性，必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间！这也正是导致我们刚才所说的效率低的原因,看来列宁同志说的好,人的优点往往也是人的缺点,人的缺点往往也是人的优点(晕~). <br />
<br />
<br />
2.3 JVM中的堆和栈 <br />
JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈.也就是说,对于一个Java程序来说，它的运行就是通过对堆栈的操作来完成的。堆栈以帧为单位保存线程的状态。JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。 <br />
我们知道,某个线程正在执行的方法称为此线程的当前方法.我们可能不知道,当前方法使用的帧称为当前帧。当线程激活一个Java方法,JVM就会在线程的 Java堆栈里新压入一个帧。这个帧自然成为了当前帧.在此方法执行期间,这个帧将用来保存参数,局部变量,中间计算过程和其他数据.这个帧在这里和编译原理中的活动纪录的概念是差不多的. <br />
从Java的这种分配机制来看,堆栈又可以这样理解:堆栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域，该区域具有先进后出的特性。 <br />
每一个Java应用都唯一对应一个JVM实例，每一个实例唯一对应一个堆。应用程序在运行中所创建的所有类实例或数组都放在这个堆中,并由应用所有的线程共享.跟C/C++不同，Java中分配堆内存是自动初始化的。Java中所有对象的存储空间都是在堆中分配的，但是这个对象的引用却是在堆栈中分配,也就是说在建立一个对象时从两个地方都分配内存，在堆中分配的内存实际建立这个对象，而在堆栈中分配的内存只是一个指向这个堆对象的指针(引用)而已。 </span></strong>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/163721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2007-11-28 16:22 <a href="http://www.blogjava.net/guoyongfei/archive/2007/11/28/163721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jira-3.11-Standalone+confluence-2.6.0＋MySQL5.0安装 </title><link>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163718.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Wed, 28 Nov 2007 08:21:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163718.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/163718.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2007/11/28/163718.html#Feedback</comments><slash:comments>25</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/163718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/163718.html</trackback:ping><description><![CDATA[<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">1.</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">安装好</span><span style="font-size: 10.5pt; font-family: Arial">jdk,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">并配置好</span><span style="font-size: 10.5pt; font-family: Arial">JAVA_HOME,path,classpath</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">三个环境变量</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">不知道如何配置的话可以上网上搜一下</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">很多的</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">我用的是</span><span style="font-size: 10.5pt; font-family: Arial">JDK1.5,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">最好用新版本的</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">不然的话可能有些不支持</span><span style="font-size: 10.5pt; font-family: Arial">.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">2.</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">安装</span><span style="font-size: 10.5pt; font-family: Arial">mysql5.0,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">并新建一个</span><span style="font-size: 10.5pt; font-family: Arial">jiradb</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">数据库</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">为了很好的支持中文</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">编码都选择</span><span style="font-size: 10.5pt; font-family: Arial">utf8</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">我的用户名密码都是</span><span style="font-size: 10.5pt; font-family: Arial">root,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">一下会用到</span><span style="font-size: 10.5pt; font-family: Arial">;</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">不会的可到</span><span style="font-size: 10.5pt; font-family: Arial"><a href="http://www.mysql.cn/">www.mysql.cn</a></span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">上面下载</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">软件和安装文档都有</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">你也可以用</span><span style="font-size: 10.5pt; font-family: Arial">mysql-front</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">来通过界面化操作数据库</span><span style="font-size: 10.5pt; font-family: Arial">.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">3.</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">从</span><span style="font-size: 10.5pt; font-family: Arial"><a href="http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa">http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa</a></span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">下载</span><span style="font-size: 10.5pt; font-family: Arial">jira-3.11 Enterprise - Standalone +confluence-2.6.0,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">解压到指定目录</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">整个应用都在</span><span style="font-size: 10.5pt; font-family: Arial">\atlassian-jira-enterprise-3.11-standalone</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">下</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">你可以把它拷到指定的地方</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">以下简称</span><span style="font-size: 10.5pt; font-family: Arial">jira,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">我拷到了</span><span style="font-size: 10.5pt; font-family: Arial">D</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">盘根目录下</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">它自带了一个</span><span style="font-size: 10.5pt; font-family: Arial">tomcat5.5</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的服务器</span><span style="font-size: 10.5pt; font-family: Arial">.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">4. </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">打开</span><span style="font-size: 10.5pt; font-family: Arial"> jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">目录</span><span style="font-size: 10.5pt; font-family: Arial">\atlassian-jira\WEB-INF\classes\entityengine.xml </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">，将</span><span style="font-size: 10.5pt; font-family: Arial"> field-type-name</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">＝</span><span style="font-size: 10.5pt; font-family: Arial">&#8220;hsql&#8221; </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">改成</span><span style="font-size: 10.5pt; font-family: Arial">&nbsp;&nbsp; field-type-name= &#8220;mysql&#8221; </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">；并删除</span><span style="font-size: 10.5pt; font-family: Arial">schema-name="PUBLIC",</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">5. </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">修改</span><span style="font-size: 10.5pt; font-family: Arial"> jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">目录</span><span style="font-size: 10.5pt; font-family: Arial">\conf\server.xml </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">将</span></span></span><span style="font-size: 10.5pt; font-family: Arial"><br />
<span style="font-size: 8pt"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"...<br />
&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><span style="font-size: 8pt"><span style="font-size: 10pt">这大段修改为：</span></span></span><span style="font-size: 10.5pt; font-family: Arial"><br />
<span style="font-size: 8pt"><span style="font-size: 10pt">&nbsp;&nbsp;&nbsp;&nbsp; &lt;Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username="root"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password="</span></span></span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><span style="font-size: 8pt"><span style="font-size: 10pt">密码</span></span></span><span style="font-size: 10.5pt; font-family: Arial"><span style="font-size: 8pt"><span style="font-size: 10pt">"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driverClassName="com.mysql.jdbc.Driver"<br />
&nbsp;url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF8&amp;amp;mysqlEncoding=utf8"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxActive="20" /&gt;</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">&nbsp; </span><span style="font-size: 10.5pt; color: red; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">主意</span><span style="font-size: 10.5pt; color: red; font-family: Arial">:</span><span style="font-size: 10.5pt; color: red; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">删掉了里面的</span></span></span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; color: red; font-family: Arial">minEvictableIdleTimeMillis="4000"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;timeBetweenEvictionRunsMillis="5000"</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; color: red; font-family: Arial">&nbsp; </span><span style="font-size: 10.5pt; color: red; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">因为可能对</span><span style="font-size: 10.5pt; color: red; font-family: Arial">mysql</span><span style="font-size: 10.5pt; color: red; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">的功能有些限制</span><span style="font-size: 10.5pt; color: red; font-family: Arial">.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">6.&nbsp;&nbsp; </span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">用</span><span style="font-size: 10.5pt; font-family: Arial">jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">目录</span><span style="font-size: 10.5pt; font-family: Arial">\bin\startup.bat</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">启动</span><span style="font-size: 10.5pt; font-family: Arial">tomcat</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">，然后在浏览器中输入</span><span style="font-size: 10.5pt; font-family: Arial"><a href="http://localhost:8080/">http://localhost:8080</a></span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">就可以见到安装页面了</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">注册码可以点击</span><span style="font-size: 10.5pt; font-family: Arial">"</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">在线</span><span style="font-size: 10.5pt; font-family: Arial">"</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">生成一个</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">可以使用一个月</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">网上也有破解的</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">不过这个就不说了</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">不太光彩</span><span style="font-size: 10.5pt; font-family: Arial">.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">7.</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">到这里</span><span style="font-size: 10.5pt; font-family: Arial">jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">就安装成功了</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">恭喜你</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">可以使用了</span><span style="font-size: 10.5pt; font-family: Arial">!</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">8.</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">将</span><span style="font-size: 10.5pt; font-family: Arial">confluence</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">整合到</span><span style="font-size: 10.5pt; font-family: Arial">jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">中</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">从</span><span style="font-size: 10.5pt; font-family: Arial"><a href="http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa">http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa</a></span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">下载</span><span style="font-size: 10.5pt; font-family: Arial">confluence2.6.0WAR</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">版本</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">因为要整合到</span><span style="font-size: 10.5pt; font-family: Arial">jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">中</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">所以不能用</span><span style="font-size: 10.5pt; font-family: Arial">standalone</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">作为一个单独的</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">当然你如果想分开使用的话</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">可以用</span><span style="font-size: 10.5pt; font-family: Arial">standalone</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">版本</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">解压后将里面的</span><span style="font-size: 10.5pt; font-family: Arial">confluence</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">拷到一个指定的文件夹</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">为了方便管理</span><span style="font-size: 10.5pt; font-family: Arial">,</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">我拷到了我的</span><span style="font-size: 10.5pt; font-family: Arial">jira</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">目录下</span><span style="font-size: 10.5pt; font-family: Arial">.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: Arial">9.</span><span style="font-size: 10.5pt; mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">打开</span><span style="font-size: 10.5pt; font-family: 新宋体; mso-bidi-font-family: Arial">confluence/WEB-INF/classes/confluence-init.properties,</span><span style="font-size: 10.5pt; font-family: 新宋体; mso-bidi-font-family: Arial">将<span>confluence.home</span>前面的注释<span>(#)</span>去掉<span>,</span>后面改为你存放数据的路径<span>,</span>如<span>:</span></span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: 新宋体; mso-bidi-font-family: Arial">d:/confluence/data.</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: 新宋体; mso-bidi-font-family: Arial">10.</span><span style="font-size: 10.5pt; font-family: 新宋体; mso-bidi-font-family: Arial">在<span>jira</span>的<em><span style="font-family: 新宋体; mso-bidi-font-family: Arial">conf/Catalina/localhost</span></em><span> </span>文件夹下创建一个<span>confluence.xml</span>文件<span>,</span>里面</span></span></span></p>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-size: 10.5pt; font-family: 新宋体; mso-bidi-font-family: Arial">加入如下内容<span>:</span></span></span></span></p>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span>&lt;Context path=</span></span><span><span>"/confluence"</span></span><span><span> docBase=</span></span><span><span>"c:/applications/confluence-2.1.3/confluence"</span></span><span><span> debug=</span></span><span><span>"0"</span></span><span><span> reloadable=</span></span><span><span>"true"</span></span><span><span>&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"> <span>&lt;Logger className=</span><span>"org.apache.catalina.logger.FileLogger"</span><span> prefix=</span><span>"atlassian-confluence."</span><span> suffix=</span><span>".log"</span><span> timestamp=</span><span>"true"</span><span>/&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"> <span>&lt;/Context&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span>docBase</span>指你的<span>confluence</span>存放位置<span>,</span>如<span>:d:/atlassian-jira-enterprise-3.11-standalone/confluence</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span>11.</span>编辑<span>jira</span>下<span>bin/setenv.sh/bat (.sh on unix, .bat on windows)</span>文件<span>,</span>在</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span>JAVA_OPTS=... " </span>后加入 </span><tt><strong><span>-XX:MaxPermSize=128m</span></strong></tt><span><span> .</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="color: red">注<span>:</span>如果用的非<span>sun</span>的<span>jvm,</span>其就不用修改了<span>.</span></span><span><span style="mso-spacerun: yes">&nbsp; </span></span></span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span>12.</span>编辑</span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">conf/Catalina/localhost</span></em><span><span> </span>下的<span>confluence.xml</span>文件<span>,</span>改为如下<span>:</span></span></span></span></pre>
<pre><span><span><span style="font-size: 8pt"><span style="font-size: 10pt">&lt;Context path="/confluence" docBase="d:/atlassian-jira-enterprise-3.11-standalone/confluence" debug="0" reloadable="true" swallowOutput="true"&gt; </span></span></span></span><span><br />
<span style="font-size: 8pt"><span style="font-size: 10pt"><span>&nbsp;&lt;Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"</span><br />
<span>&nbsp;&nbsp;&nbsp;&nbsp; username="root"</span><br />
<span>&nbsp;&nbsp;&nbsp;&nbsp; password="</span></span></span></span><span><span style="font-size: 8pt"><span style="font-size: 10pt">密码<span>"</span></span></span></span><span><br />
<span style="font-size: 8pt"><span style="font-size: 10pt"><span>&nbsp;&nbsp;&nbsp;&nbsp; driverClassName="com.mysql.jdbc.Driver"</span><br />
<span>&nbsp;&nbsp;&nbsp;&nbsp; url="jdbc:mysql://localhost/jiradb?autoReconnect=true"/&gt;</span></span></span></span></pre>
<pre><span><br />
<span style="font-size: 8pt"><span style="font-size: 10pt">&nbsp;&lt;Logger className="org.apache.catalina.logger.FileLogger" prefix="atlassian-confluence." suffix=".log" timestamp="true"/&gt; <br />
&lt;/Context&gt;</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span>13.</span>重启服务器<span>,</span>在浏览器输入<span>:http://localhost:8080/confluence,</span>进行配置<span>,</span>选定制</span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt">安装<span>,</span>数据库选<span>mysql......</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span>14.</span>配置好后<span>,</span>打开<span>/confluence/WEB-INF/classes </span>下的<em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">osuser.xml</span></em><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">文件<span>,</span>将</span></em></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span><span>&lt;provider class=</span></span><span><span>"bucket.user.providers.CachingCredentialsProvider"</span></span><span><span>&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;property name=</span><span>"chain.classname"</span><span>&gt;</span>com.opensymphony.user.provider.hibernate.HibernateCredentialsProvider<span>&lt;/property&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;property name=</span><span>"chain.configuration.provider.class"</span><span>&gt;</span>bucket.user.BucketHibernateConfigProvider<span>&lt;/property&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span>&lt;/provider&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span>&lt;provider class=</span><span>"bucket.user.providers.CachingAccessProvider"</span><span>&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;property name=</span><span>"chain.classname"</span><span>&gt;</span>com.opensymphony.user.provider.hibernate.HibernateAccessProvider<span>&lt;/property&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;property name=</span><span>"chain.configuration.provider.class"</span><span>&gt;</span>bucketuser.BucketHibernateConfigProvider<span>&lt;/property&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span>&lt;/provider&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span>&lt;provider class=</span><span>"bucket.user.providers.CachingProfileProvider"</span><span>&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;property name=</span><span>"chain.classname"</span><span>&gt;</span>com.opensymphony.user.provider.hibernate.HibernateProfileProvider<span>&lt;/property&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&lt;property name=</span><span>"chain.configuration.provider.class"</span><span>&gt;</span>bucket.user.BucketHibernateConfigProvider<span>&lt;/property&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span>&lt;/provider&gt;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt">注释掉<span>;</span></span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt">并将</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt">&lt;provider class=<span>"bucket.user.providers.CachingCredentialsProvider"</span>&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.classname"</span>&gt;com.atlassian.confluence.user.providers.jira.JiraJdbcCredentialsProvider&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.datasource"</span>&gt;java:comp/env/jdbc/JiraDS&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/provider&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;provider class=<span>"bucket.user.providers.CachingAccessProvider"</span>&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.classname"</span>&gt;com.atlassian.confluence.user.providers.jira.JiraJdbcAccessProvider&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.datasource"</span>&gt;java:comp/env/jdbc/JiraDS&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/provider&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;provider class=<span>"bucket.user.providers.CachingProfileProvider"</span>&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.classname"</span>&gt;com.atlassian.confluence.user.providers.jira.JiraJdbcProfileProvider&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.datasource"</span>&gt;java:comp/env/jdbc/JiraDS&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name=<span>"chain.configuration.provider.class"</span>&gt;bucket.user.BucketHibernateConfigProvider&lt;/property&gt;</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/provider&gt;</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt">取消注释<span>.</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span>15.</span>用管理员登陆<span>jira,</span>分别增加<span>confluence-users </span>和 <tt><span>confluence-administrators</span></tt><span> </span>两个用户组<span>,</span>并把管理员加到两个组里面<span>.</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span>16.</span>用<span>jira</span>管理员进入</span></span><span style="font-size: 8pt"><span style="font-size: 10pt"><span>confluence, <br />
</span>进入 <strong><span>Administration Console</span></strong><span> </span>面板并点击 <strong><span>General Configuration</span></strong><span> </span>在左导航里<span>,</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt">点击<span> '<strong>Edit</strong>' </span>按钮在<span>'<strong>Options and Settings</strong>' </span>附近</span></span><span style="font-size: 8pt"><span style="font-size: 10pt"><span>. <br />
</span>在<span> '<strong>External User Management</strong>'</span>选项选择<span> '<strong>ON</strong>' . </span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span>(</span>管理<span>---</span>总体配置<span>---</span>安全和隐私右边点<span>"</span>编辑<span>"---</span>外部用户管理<span>---</span>启用<span>)</span></span></span></pre>
<pre><span><span style="font-size: 8pt"><span style="font-size: 10pt">&nbsp;</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt"><span>17.</span>恭喜你<span>,</span>配置成功<span>,</span>现在可以使用<span>jira</span>和<span>confluence</span>了<span>,</span>并且使用的是同一个用户组<span>,</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt">如果写的有什么错误的话还请大家批评指正<span>,</span>有什么不清楚的话大家可以互相探讨<span>.</span></span></span></pre>
<pre><span style="font-size: 8pt"><span style="font-size: 10pt">如果找不到语言包或其它的话<span>,</span>可以留下邮箱<span>,</span>发给你一份</span></span><span><span style="font-size: 8pt"><span style="font-size: 10pt">.<br />
</span></span></span></pre>
<p><span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">参考文档</span><span>: </span></span></span></p>
<p><span><span style="font-size: 8pt"><span style="font-size: 10pt">http://confluence.atlassian.com/display/DOC/Delegate+user+management+to+use+JIRA+logins</span></span></span></p>
<img src ="http://www.blogjava.net/guoyongfei/aggbug/163718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2007-11-28 16:21 <a href="http://www.blogjava.net/guoyongfei/archive/2007/11/28/163718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java编译器对于String常量表达式的优化</title><link>http://www.blogjava.net/guoyongfei/archive/2007/11/20/161785.html</link><dc:creator>郭永斐</dc:creator><author>郭永斐</author><pubDate>Tue, 20 Nov 2007 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/guoyongfei/archive/2007/11/20/161785.html</guid><wfw:comment>http://www.blogjava.net/guoyongfei/comments/161785.html</wfw:comment><comments>http://www.blogjava.net/guoyongfei/archive/2007/11/20/161785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guoyongfei/comments/commentRss/161785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guoyongfei/services/trackbacks/161785.html</trackback:ping><description><![CDATA[<table class="p11" cellspacing="0" cellpadding="0" width="560" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" align="left">
            <p class="a14c" style="text-indent: 2em"><span class="a14c" id="zoom">
            <p style="text-indent: 2em">首先把问题摆出来，先看这个代码
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "ab";
                        String b = "a" + "b";
                        System.out.println((a == b));</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">打印结果会是什么？类似这样的问题，有人考过我，我也拿来考过别人(蛮好玩的，大家也可以拿来问人玩)，一般答案会是以下几种：
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">1.true
            <p style="text-indent: 2em">"a" + "b" 的结果就是"ab"，这样a,b都是"ab"了，内容一样所以"相等"，结果true
            <p style="text-indent: 2em">一般java新人如是答。
            <p style="text-indent: 2em">2.false
            <p style="text-indent: 2em">"a" + "a"会生成新的对象"aa"，但是这个对象和String a = "ab";不同，(a == b)是比较对象引用，因此不相等，结果false
            <p style="text-indent: 2em">对java的String有一定了解的通常这样回答。
            <p style="text-indent: 2em">3.true
            <p style="text-indent: 2em">String a = "ab";创建了新的对象"ab"； 再执行String b = "a" + "b";结果b="ab",这里没有创建新的对象，而是从JVM字符串常量池中获取之前已经存在的"ab"对象。因此a,b具有对同一个string对象的引用，两个引用相等，结果true.
            <p style="text-indent: 2em">能回答出这个答案的，基本已经是高手了，对java中的string机制比较了解。
            <p style="text-indent: 2em">很遗憾,这个答案,是不够准确的。或者说，根本没有运行时计算b = "a" + "b";这个操作.实际上运行时只有String b = "ab";
            <p style="text-indent: 2em">3的观点适合解释以下情况：
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "ab";
                        String b = "ab";
                        System.out.println((a == b));</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">如果String b = "a" + "b";是在运行期执行，则3的观点是无法解释的。运行期的两个string相加，会产生新的对象的。(本文后面对此有解释)
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">4.true
            <p style="text-indent: 2em">下面是我的回答：编译优化+ 3的处理方式 = 最后的true
            <p style="text-indent: 2em">String b = "a" + "b";编译器将这个"a" + "b"作为常量表达式，在编译时进行优化，直接取结果"ab"，这样这个问题退化
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "ab";
                        String b = "ab";
                        System.out.println((a == b));</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">然后根据3的解释，得到结果true
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">这里有一个疑问就是String不是基本类型，像
            <p style="text-indent: 2em">int secondsOfDay = 24 * 60 * 60;
            <p style="text-indent: 2em">这样的表达式是常量表达式,编译器在编译时直接计算容易理解，而"a" + "b" 这样的表达式,string是对象不是基本类型,编译器会把它当成常量表达式来优化吗?
            <p style="text-indent: 2em">下面简单证明我的推断，首先编译这个类:
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>public class Test {
                        private String a = "aa";
                        }</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">复制class文件备用,然后修改为
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>public class Test {
                        private String a = "a" + "a";
                        }</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">再次编译,用ue之类的文本编辑器打开,察看二进制内容,可以发现,两个class文件完全一致,连一个字节都不差.
            <p style="text-indent: 2em">ok,真相大白了.根本不存在运行期的处理String b = "a" + "b";这样的代码的问题,编译时就直接优化掉了。
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">下面进一步探讨，什么样的string + 表达式会被编译器当成常量表达式？
            <p style="text-indent: 2em">String b = "a" + "b";
            <p style="text-indent: 2em">这个String + String被正式是ok的,那么string + 基本类型呢？
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "a1";
                        String b = "a" + 1;
                        System.out.println((a == b)); //result = true
                        String a = "atrue";
                        String b = "a" + true;
                        System.out.println((a == b)); //result = true
                        String a = "a3.4";
                        String b = "a" + 3.4;
                        System.out.println((a == b)); //result = true</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">可见编译器对string + 基本类型是当成常量表达式直接求值来优化的。
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">再注意看这里的string都是"**"这样的，我们换成变量来试试：
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "ab";
                        String bb = "b";
                        String b = "a" + bb;
                        System.out.println((a == b)); //result = false</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">这个好理解，"a" + bb中的bb是变量，不能进行优化。这里很很好的解释了为什么3的观点不正确，如果String+String的操作是在运行时进行的，则会产生新的对象，而不是直接从jvm的string池中获取。
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">再修改一下,把bb作为常量变量：
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "ab";
                        final String bb = "b";
                        String b = "a" + bb;
                        System.out.println((a == b)); //result = true</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">竟然又是true，编译器的优化好厉害啊，呵呵，考虑下面这种情况：
            <p style="text-indent: 2em">
            <center><ccid_nobr>
            <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
                <tbody>
                    <tr>
                        <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
                        <pre><ccid_code>String a = "ab";
                        final String bb = getBB();
                        String b = "a" + bb;
                        System.out.println((a == b)); //result = false
                        private static String getBB() {
                        return "b";
                        }</ccid_code></pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </ccid_nobr></center>
            <p style="text-indent: 2em">看来java(包括编译器和jvm)对string的优化，真的是到了极点了，string这个所谓的"对象"，完全不可以看成一般的对象，java对string的处理近乎于基本类型，最大限度的优化了几乎能优化的地方。
            <p style="text-indent: 2em">
            <p style="text-indent: 2em">另外感叹一下,string的+号处理，算是java语言里面唯一的一个"运算符重载"(接触过c++的人对这个不会陌生)吧？ </p>
            </span></td>
        </tr>
    </tbody>
</table>
<br />
来源：赛迪网技术社区&nbsp;&nbsp;&nbsp;&nbsp;<span class="b">作者：dxaw</span> 
<img src ="http://www.blogjava.net/guoyongfei/aggbug/161785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guoyongfei/" target="_blank">郭永斐</a> 2007-11-20 09:52 <a href="http://www.blogjava.net/guoyongfei/archive/2007/11/20/161785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>