??xml version="1.0" encoding="utf-8" standalone="yes"?>精品无码专区亚洲,中文国产成人精品久久亚洲精品AⅤ无码精品,亚洲黄色网址在线观看http://www.tkk7.com/guoyongfei/category/27424.htmlNot to do the same thing,To do the other thing. zh-cnTue, 27 May 2008 20:17:47 GMTTue, 27 May 2008 20:17:47 GMT60Java反射机制http://www.tkk7.com/guoyongfei/archive/2008/05/27/203292.html郭永?/dc:creator>郭永?/author>Tue, 27 May 2008 09:53:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/05/27/203292.htmlhttp://www.tkk7.com/guoyongfei/comments/203292.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/05/27/203292.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/203292.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/203292.html阅读全文

]]>
关于java使用jacob.jar调用word的配|问?/title><link>http://www.tkk7.com/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.tkk7.com/guoyongfei/archive/2008/04/28/196752.html</guid><wfw:comment>http://www.tkk7.com/guoyongfei/comments/196752.html</wfw:comment><comments>http://www.tkk7.com/guoyongfei/archive/2008/04/28/196752.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/guoyongfei/comments/commentRss/196752.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/guoyongfei/services/trackbacks/196752.html</trackback:ping><description><![CDATA[最q用Cjacob.jar来{换word文gQ出C些问题都是关于配|的Q先一些配|说明一下,以供大家参考?br />一、将jacob.dll拯到windows/system32下,q在部v环境中添加jacob.jar包,q两个文件的版本必须一_不然会出C些错误,如果多个应用用到改包Q最好放到公共包目录下,因ؓ可能出现一些错误?br />二、如果通过上述配置q不能正运用改包,则将jacob.dll攑օ Java\jdk\jre\bin目录下,如果不是web应用Q则需jacob.dll攑ֈJava\jdk\jre\lib\ext目录下?br /><br />如果仍然出现no jacob in the java.library.path错误Q?span class="javascript" id="text171455">把jacob.dll攑ֈSystem.getProperty("java.library.path")取到的目录下?br /></span><br /><br />提前大家五一快乐Q?img src ="http://www.tkk7.com/guoyongfei/aggbug/196752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/guoyongfei/" target="_blank">郭永?/a> 2008-04-28 15:07 <a href="http://www.tkk7.com/guoyongfei/archive/2008/04/28/196752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>.htc文g介绍(说明)http://www.tkk7.com/guoyongfei/archive/2008/04/02/190288.html郭永?/dc:creator>郭永?/author>Wed, 02 Apr 2008 02:30:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/04/02/190288.htmlhttp://www.tkk7.com/guoyongfei/comments/190288.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/04/02/190288.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/190288.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/190288.html 题记:最q这个项目里面用Chtc文g,所有就准备了解一?在网上找了些资料,发现q个讲的q是比较z清楚的,所有就贴出来供大家分n.

htc是Html
Component,出来很长旉?IE5以上开始支?可以Z些有共同行ؓ的htmllg定义公用的行?一是代码整z?二是可以实现代码公用.不过我ƈ没有大面U用过?因ؓq个东西只能被IE支持.
行ؓ的具体内容定义在.htc文g?
color.htc
//定义lg的方法和事g响应.
//事g
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="changeColor()" />
//Ҏ
<PUBLIC:METHOD NAME="show" />
<SCRIPT LANGUAGE="JScript">
function show()
{
alert(element.innerText);

}


function changeColor(){
element.style.color='red';

}


</SCRIPT>
Html定义:
<html>
<HEAD>
<TITLE>test</TITLE>
<STYLE>
.f1{behavior:url(color.htc);}
</STYLE>
</HEAD>
<BODY>
<span id="span1" class='f1'>color</span><br>
<button onclick="span1.show();">昄内容</button><br>
</BODY>
</html>


ref:http://zhidao.baidu.com/question/32230577.html
呵呵,在百度知道上N题还是很方便?

?ondocumentreadyQhtc所在网加载完?br />      oncontentreadyQhtc文g加蝲完成

]]>
必须掌握的八个DOS命o http://www.tkk7.com/guoyongfei/archive/2008/04/01/190052.html郭永?/dc:creator>郭永?/author>Tue, 01 Apr 2008 04:59:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/04/01/190052.htmlhttp://www.tkk7.com/guoyongfei/comments/190052.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/04/01/190052.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/190052.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/190052.html 一Qping    

  它是用来查网l是否通畅或者网l连接速度的命令。作Z个生zd|络上的理员或者黑客来_ping命o是第一个必L握的DOS命oQ它所利用的原理是q样的:|络上的机器都有唯一定的IP地址Q我们给目标IP地址发送一个数据包Q对方就要返回一个同样大的数据包,Ҏq回的数据包我们可以定目标L的存在,可以初步判断目标L的操作系l等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOSH口中键入:ping /? 回RQ。所C的帮助画面。在此,我们只掌握一些基本的很有用的参数可以了Q下同)。    

  -t 表示不间断向目标IP发送数据包Q直到我们强q其停止。试惻I如果你?00M的宽带接入,而目标IP?6K的小猫,那么要不了多久,目标IP因为承受不了这么多的数据而掉U,呵呵Q一ơ攻dq么单的实现了。    

  -l 定义发送数据包的大,默认?2字节Q我们利用它可以最大定义到65500字节。结合上面介l的-t参数一起用,会有更好的效果哦。    

  -n 定义向目标IP发送数据包的次敎ͼ默认?ơ。如果网l速度比较慢,3ơ对我们来说也浪费了不少旉Q因为现在我们的目的仅仅是判断目标IP是否存在Q那么就定义Zơ吧。    

  说明一下,如果-t 参数和?n参数一起用,ping命o׃攑֜后面的参Cؓ标准Q比?ping IP -t -n 3"Q虽然用了-t参数Q但q不是一直ping下去Q而是只ping 3ơ。另外,ping命o不一定非得ping IPQ也可以直接pingL域名Q这样就可以得到L的IP。    

  下面我们举个例子来说明一下具体用法。    

  q里time=2表示从发出数据包到接受到q回数据包所用的旉?U,从这里可以判断网l连接速度的大 。从TTL的返回值可以初步判断被pingL的操作系l,之所以说"初步判断"是因个值是可以修改的。这里TTL=32表示操作pȝ可能是win98。?br />
  Q小知识Q如果TTL=128Q则表示目标L可能是Win2000Q如果TTL=250Q则目标L可能是UnixQ?br />
  至于利用ping命o可以快速查扑ֱ域网故障Q可以快速搜索最快的QQ服务器,可以对别行pingd……这些就靠大家自己发挥了。    

二,nbtstat    

  该命令用TCP/IP上的NetBIOS昄协议l计和当前TCP/IPq接Q用这个命令你可以得到q程L的NETBIOS信息Q比如用户名、所属的工作l、网卡的MAC地址{。在此我们就有必要了解几个基本的参数。    

  -a 使用q个参数Q只要你知道了远E主机的机器名称Q就可以得到它的NETBIOS信息Q下同)。    

  -A q个参数也可以得到远E主机的NETBIOS信息Q但需要你知道它的IP。?br />
  -n 列出本地机器的NETBIOS信息。    

  当得CҎ的IP或者机器名的时候,可以用nbtstat命o来进一步得到对方的信息了,q又增加了我们入늚保险pL。    

三,netstat 

  q是一个用来查看网l状态的命oQ操作简便功能强大。    

  -a 查看本地机器的所有开攄口,可以有效发现和预防木马,可以知道机器所开的服务等信息Q如?。    

  q里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务{。用法:netstat -a IP。?br />
  -r 列出当前的\׃息,告诉我们本地机器的网兟뀁子|掩码等信息。用法:netstat -r IP。?br />四,tracert 

  跟踪路由信息Q用此命o可以查出数据从本地机器传输到目标L所l过的所有途径Q这Ҏ们了解网l布局和结构很有帮助。如?。    

  q里说明数据从本地机器传输到192.168.0.1的机器上Q中间没有经qQ何中转,说明q两台机器是在同一D局域网内。用法:tracert IP。    

五,net    

  q个命o是网l命令中最重要的一个,必须透彻掌握它的每一个子命o的用法,因ؓ它的功能实在是太强大了,q简直就?a target="_blank"> 微Y为我们提供的最好的入R工具。首先让我们来看一看它都有那些子命令,键入net /?回R如图6。?br />
  在这里,我们重点掌握几个入R常用的子命o。    

  net view    

  使用此命令查看远E主机的所以共享资源。命令格式ؓnet view \IP。   

  net use 

  把远E主机的某个׃n资源影射为本地盘W,囑Ş界面方便使用Q呵c命令格式ؓnet use x: \IP\sharename。上面一个表C把192.168.0.5IP的共享名为magic的目录媄ؓ本地的Z盘。下面表C和192.168.0.7建立IPC$q接Qnet use \IP\IPC$ "password" /user:"name"Q,    

  建立了IPC$q接后,呵呵Q就可以上传文g了:copy nc.exe \192.168.0.7\admin$Q表C把本地目录下的nc.exe传到q程LQ结合后面要介绍到的其他DOS命o可以实现入侵了。    

  net start 

  使用它来启动q程L上的服务。当你和q程L建立q接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?׃用这个命令来启动吧。用法:net start servernameQ如?Q成功启动了telnet服务。    

  net stop 

  入R后发现远E主机的某个服务手脚Q怎么办?利用q个命o停掉ok了,用法和net start同。    

  net user 

  查看和帐h关的情况Q包括新建帐戗删除帐戗查看特定帐戗激zd戗帐L用等。这Ҏ们入侉|很有利的Q最重要的,它ؓ我们克隆帐户提供了前提。键入不带参数的net userQ可以查看所有用P包括已经用的。下面分别讲解。?br />
  1Qnet user abcd 1234 /addQ新Z个用户名为abcdQ密码ؓ1234的帐P默认为userl成员。?br />
  2Qnet user abcd /delQ将用户名ؓabcd的用户删除。?br />
  3Qnet user abcd /active:noQ将用户名ؓabcd的用L用。?br />
  4Qnet user abcd /active:yesQ激zȝ户名为abcd的用戗?br />
  5Qnet user abcdQ查看用户名为abcd的用L情况   

  net localgroup 

  查看所有和用户l有关的信息和进行相x作。键入不带参数的net localgroup卛_出当前所有的用户l。在入Rq程中,我们一般利用它来把某个帐户提升为administratorl帐Pq样我们利用q个帐户可以控制整个远E主Z。用法:net localgroup groupname username /add。    

  现在我们把刚才新建的用户abcd加到administratorl里MQ这时候abcd用户已经是超U管理员了,呵呵Q你可以再用net user abcd来查看他的状态,和图10q行比较可以看出来。但q样太明显了Q网一看用h况就能漏出破l,所以这U方法只能对付菜鸟网,但我们还得知道。现在的手段都是利用其他工具和手D克隆一个让|管看不出来的超U管理员Q这是后话。有兴趣的朋友可以参照《黑客防Uѝ第30期上的《由入p析隆帐户》一文。    

  net time 

  q个命o可以查看q程L当前的时间。如果你的目标只是进入到q程L里面Q那么也许就用不到这个命令了。但单的入R成功了,N只是看看吗?我们需要进一步渗透。这pq程L当前的时间都需要知道,因ؓ利用旉和其他手D(后面会讲刎ͼ可以实现某个命o和程序的定时启动Qؓ我们q一步入侉|好基。用法:net time \IP。    

六,at 

q个命o的作用是安排在特定日期或旉执行某个特定的命令和E序Q知道net time的重要了吧?Q。当我们知道了远E主机的当前旉Q就可以利用此命令让其在以后的某个时_比如2分钟后)执行某个E序和命令。用法:at time command \computer。    

  表示??5分时Q让名称为a-01的计机开启telnet服务Q这里net start telnet即ؓ开启telnet服务的命令)。    
七,ftp    

  大家对这个命令应该比较熟悉了吧?|络上开攄ftp的主机很多,其中很大一部分是匿名的Q也是说Q何h都可以登陆上厅R现在如果你扫到了一台开放ftp服务的主机(一般都是开?1端口的机器)Q如果你q不会用ftp的命令怎么办?下面q出基本的ftp命o使用Ҏ。?br />
  首先在命令行键入ftp回RQ出现ftp的提C符Q这时候可以键?help"来查看帮助(MDOS命o都可以用此Ҏ查看其帮?。    

  大家可能看到了,q么多命令该怎么用?其实也用不到那么多,掌握几个基本的就够了。    

  首先是登陆过E,q就要用到open了,直接在ftp的提C符下输?open LIP ftp端口"回R卛_Q一般端口默认都?1Q可以不写。接着是输入合法的用户名和密码进行登陆了Q这里以匿名ftpZ介绍。    

  用户名和密码都是ftpQ密码是不显C的。当提示**** logged inӞp明登陆成功。这里因为是匿名登陆Q所以用hCZؓAnonymous。    

  接下来就要介l具体命令的使用Ҏ了。    

  dir 跟DOS命o一P用于查看服务器的文gQ直接敲上dir回RQ就可以看到此ftp服务器上的文件。?br />
  cd q入某个文g夏V?br />
  get 下蝲文g到本地机器。?br />
  put 上传文g到远E服务器。这p看远Eftp服务器是否给了你可写的权限了Q如果可以,呵呵Q该怎么 利用׃多说了,大家p由发挥去吧。?br />
  delete 删除q程ftp服务器上的文件。这也必M证你有可写的权限。?br />
  bye 退出当前连接。?br />
  quit 同上。?br />   

八,telnet 

  功能强大的远E登陆命令,几乎所有的入R者都喜欢用它Q屡试不爽。ؓ什么?它操作简单,如同使用自己的机器一P只要你熟悉DOS命oQ在成功以administratorw䆾q接了远E机器后Q就可以用它来干你想q的一切了。下面介l一下用方法,首先键入telnet回RQ再键入help查看其帮助信息。    

  然后在提C符下键入open IP回RQ这时就出现了登陆窗口,让你输入合法的用户名和密码,q里输入M密码都是不显C的。    

  当输入用户名和密码都正确后就成功建立了telnetq接Q这时候你在q程L上具有了和此用户一L权限Q利用DOS命o可以实C惛_的事情了。这里我使用的超U管理员权限登陆的。   

  到这里ؓ止,|络DOS命o的介l就告一D落了,q里介绍的目的只是给菜鸟|管一个印象,让其知道熟悉和掌握网lDOS命o的重要性。其实和|络有关的DOS命oq远不止q些Q这里只是抛砖引玉,希望能对q大菜鸟|管有所帮助。学好DOS对当好网有很大的帮助,特别的熟l掌握了一些网l的DOS命o。?br />
  另外大家应该清楚QQ何h要想q入pȝQ必d有一个合法的用户名和密码Q输入法漏洞差不多绝q了吧)Q哪怕你拿到帐户的只有一个很的权限Q你也可以利用它来达到最后的目的。所以坚x灭空口oQ给自己的帐户加上一个强壮的密码Q是最好的防M弱口令入늚Ҏ。?br />
  最后,p的说一句,培养良好的安全意识才是最重要的?br />
=========================================
开始→q行→命令集?/font>
winver---------查Windows版本 
wmimgmt.msc----打开windows理体系l构(WMI) 
wupdmgr--------windows更新E序 
wscript--------windows脚本宿主讄 
write----------写字板?br />winmsd---------pȝ信息 
wiaacmgr-------扫描仪和照相机向导?br />winchat--------XP自带局域网聊天 

mem.exe--------昄内存使用情况 
Msconfig.exe---pȝ配置实用E序 
mplayer2-------易widnows media player 
mspaint--------d板?br />mstsc----------q程桌面q接 
mplayer2-------媒体播放机?br />magnify--------攑֤镜实用程序?br />mmc------------打开控制及W?br />mobsync--------同步命o 

dxdiag---------查DirectX信息 
drwtsn32------ pȝȝ 
devmgmt.msc--- 讑֤理器?br />dfrg.msc-------盘片整理E序 
diskmgmt.msc---盘理实用E序 
dcomcnfg-------打开pȝlg服务 
ddeshare-------打开DDE׃n讄 
dvdplay--------DVD播放器?br />
net stop messenger-----停止信服务 
net start messenger----开始信使服务?br />notepad--------打开C本?br />nslookup-------|络理的工具向导?br />ntbackup-------pȝ备䆾和还原?br />narrator-------屏幕"讲述? 
ntmsmgr.msc----Ud存储理器?br />ntmsoprq.msc---Ud存储理员操作请求?br />netstat -an----(TC)命o查接口?br />
syncapp--------创徏一个公文包 
sysedit--------pȝ配置~辑器?br />sigverif-------文g{֐验证E序 
sndrec32-------录音机?br />shrpubw--------创徏׃n文g夹?br />secpol.msc-----本地安全{略 
syskey---------pȝ加密Q一旦加密就不能解开Q保护windows xppȝ的双重密码?br />services.msc---本地服务讄 
Sndvol32-------音量控制E序 
sfc.exe--------pȝ文g查器 
sfc /scannow---windows文g保护 

tsshutdn-------60U倒计时关机命令?br />tourstart------xp介(安装完成后出现的漫游xpE序Q?br />taskmgr--------d理器?br />
eventvwr-------事g查看器?br />eudcedit-------造字E序 
explorer-------打开资源理器?br />

packager-------对象包装E序 
perfmon.msc----计算机性能监测E序 
progman--------E序理器?br />
regedit.exe----注册表?br />rsop.msc-------l策略结果集 
regedt32-------注册表编辑器 
rononce -p ----15U关机?br />regsvr32 /u *.dll----停止dll文gq行 
regsvr32 /u zipfldr.dll------取消ZIP支持 

cmd.exe--------CMD命o提示W?br />chkdsk.exe-----Chkdsk盘查?br />certmgr.msc----证书理实用E序 
calc-----------启动计算器?br />charmap--------启动字符映射表?br />cliconfg-------SQL SERVER 客户端网l实用程序?br />Clipbrd--------剪脓板查看器 
conf-----------启动netmeeting 
compmgmt.msc---计算机管理?br />cleanmgr-------垃圾整理 
ciadv.msc------索引服务E序 

osk------------打开屏幕键盘 
odbcad32-------ODBC数据源管理器 
oobe/msoobe /a----查XP是否Ȁz?br />lusrmgr.msc----本机用户和组 
logoff---------注销命o 


iexpress-------木马捆绑工具Q系l自带?br />
Nslookup-------IP地址侦测器?br />
fsmgmt.msc-----׃n文g夹管理器 

utilman--------辅助工具理器?br />
gpedit.msc-----l策?br />
ref:http://blog.csdn.net/zhijianshadog/archive/2005/04/11/343069.aspx



]]>
Html中Readonly和Disabled的区?/title><link>http://www.tkk7.com/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.tkk7.com/guoyongfei/archive/2008/03/31/189750.html</guid><wfw:comment>http://www.tkk7.com/guoyongfei/comments/189750.html</wfw:comment><comments>http://www.tkk7.com/guoyongfei/archive/2008/03/31/189750.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/guoyongfei/comments/commentRss/189750.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/guoyongfei/services/trackbacks/189750.html</trackback:ping><description><![CDATA[Readonly和Disabled是用在表单中的两个属性,它们都能够做C用户不能够更改表单域中的内容。但是它们之间有着微小的差别,我在实践中得C一些规律,ȝ如下Q?br />Readonly只针对input(text / password)和textarea有效Q而disabled对于所有的表单元素都有效,包括select, radio, checkbox, button{。但是表单元素在使用了disabled后,当我们将表单以POST或GET的方式提交的话,q个元素的g会被传递出去,而readonly会将该g递出?q种情况出现在我们将某个表单中的textarea元素讄为disabled或readonlyQ但是submit button却是可以使用??br />一般比较常用的情况是:<br />①在某个表单中ؓ用户预填了某个唯一识别代码Q不允许用户改动Q但是在提交旉要传递该|此时应该它的属性设|ؓreadonly<br />②经帔R到当用户正式提交了表单后需要等待管理员的信息验证,q就不允许用户再更改表单中的数据Q而是只能够查看,׃disabled的作用元素范围大Q所以此时应该用disabledQ但同时应该注意的是要将submit button也disabled掉,否则只要用户按了q个按钮Q如果在数据库操作页面中没有做完整性检的话,数据库中的值就会被清除。如果说在这U情况下用readonly来代替disabled的话Q若表单中只有input(text / password)和textarea元素Q那q是可以的,如果存在其他发元素,比如selectQ用户可以在重新改写值后按回车键q行提交(回R是默认的submit触发按键)<br />③我们常常在用户按了提交按钮后,利用javascript提交按钮disabled掉,q样可以防止|络条g比较差的环境下,用户反复Ҏ交按钮导致数据冗余地存入数据库?br /><br />ref:<a target="_blank">http://hi.baidu.com/zidone/blog/item/78ae2cdd91fb06d88d10295e.html</a><img src ="http://www.tkk7.com/guoyongfei/aggbug/189750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/guoyongfei/" target="_blank">郭永?/a> 2008-03-31 12:31 <a href="http://www.tkk7.com/guoyongfei/archive/2008/03/31/189750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>html中meta不容所觑的作用http://www.tkk7.com/guoyongfei/archive/2008/03/28/189246.html郭永?/dc:creator>郭永?/author>Fri, 28 Mar 2008 05:19:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/03/28/189246.htmlhttp://www.tkk7.com/guoyongfei/comments/189246.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/03/28/189246.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/189246.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/189246.html一下是meta的一些介l?希望大家以后|页l常?

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于|页?lt;head>?lt;/head>中,meta 标签的用处很多。meta 的属性有两种Qname和http-equiv。name属性主要用于描q网,对应于contentQ网内容)Q以便于搜烦引擎机器人查找、分c(目前几乎所有的搜烦引擎都用网上机器h自动查找meta值来l网分c)。这其中最重要的是descriptionQ站点在搜烦引擎上的描述Q和 keywordsQ分cd键词Q,所以应该给每页加一个meta?br />name 属?/strong>

  1?lt;meta name="Generator" contect="">用以说明生成工具Q如Microsoft FrontPage 4.0Q等Q?

  2?lt;meta name="KEYWords" contect="">向搜索引擎说明你的网늚关键词;

  3?lt;meta name="DEscription" contect="">告诉搜烦引擎你的站点的主要内容;

  4?lt;meta name="Author" contect="你的姓名">告诉搜烦引擎你的站点的制作的作者;

  5?lt;meta name="Robots" contect= "all|none|index|noindex|follow|nofollow">

  其中的属性说明如下:

  讑֮为allQ文件将被检索,且页面上的链接可以被查询Q?

  讑֮为noneQ文件将不被索,且页面上的链接不可以被查询;

  讑֮为indexQ文件将被检索;

  讑֮为followQ页面上的链接可以被查询Q?

  讑֮为noindexQ文件将不被索,但页面上的链接可以被查询Q?

  讑֮为nofollowQ文件将不被索,面上的链接可以被查询?

  http-equiv属?/strong>

  1?lt;meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80">

?<meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语aQ?

  又如英文是ISO-8859-1字符集,q有BIG5、utf-8、shift-Jis、Euc、Koi8-2{字W集Q?

  2?lt;meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网在指定的时间n内,跌{到页面http://yourlinkQ?

  3?lt;meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于讑֮|页的到期时_一旦过期则必须到服务器上重新调用。需要注意的是必M用GMT旉格式Q?

  4?lt;meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅面内容Q设定后一旦离开|页无法从Cache中再调出Q?

  5?lt;meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie讑֮Q如果网过期,存盘的cookie被删除。需要注意的也是必须使用GMT旉格式Q?

  6?lt;meta http-equiv="Pics-label" contect="">|页{评定Q在IE的internet选项中有一内容设|,可以防止览一些受限制的网站,而网站的限制U别是通过meta属性来讄的;

  7?lt;meta http-equiv="windows-Target" contect="_top">强制面在当前窗口中以独立页面显C,可以防止自己的网被别h当作一个frame调用;

  8?lt;meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= 50)">?lt;meta http-equiv="Page-Exit" contect="revealTrans(duration=20Qtranstion=6)">讑֮q入和离开面时的Ҏ效果Q这个功能即 FrontPage中的"格式/|页q渡"Q不q所加的面不能够是一个frame面?br />
ref:http://hi.baidu.com/litertiger/blog/item/164ed207c96d8fcd7b894799.html



]]>
tomcat5.0.30?.5.25q接池配|区?/title><link>http://www.tkk7.com/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.tkk7.com/guoyongfei/archive/2008/03/20/187528.html</guid><wfw:comment>http://www.tkk7.com/guoyongfei/comments/187528.html</wfw:comment><comments>http://www.tkk7.com/guoyongfei/archive/2008/03/20/187528.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/guoyongfei/comments/commentRss/187528.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/guoyongfei/services/trackbacks/187528.html</trackback:ping><description><![CDATA[以下文g均在{tomcat}\conf\Catalina\localhost中配|?<br />q是?.0.30中配|得test.xml:<br /><Context docBase="test" path="/test"><br />  <Resource name="TestDataSource" type="javax.sql.DataSource"/><br />  <ResourceParams name="TestDataSource"><br />    <parameter><br />      <name>url</name><br />      <value>jdbc:oracle:thin:@localhost:1521:oracle</value><br />    </parameter><br />    <parameter><br />      <name>password</name><br />      <value>password</value><br />    </parameter><br />    <parameter><br />      <name>maxActive</name><br />      <value>100</value><br />    </parameter><br />    <parameter><br />      <name>maxWait</name><br />      <value>5000</value><br />    </parameter><br />    <parameter><br />      <name>driverClassName</name><br />      <value>oracle.jdbc.OracleDriver</value><br />    </parameter><br />    <parameter><br />      <name>username</name><br />      <value>username</value><br />    </parameter><br />    <parameter><br />      <name>maxIdle</name><br />      <value>50</value><br />    </parameter><br />  </ResourceParams><br /></Context><br /><br /><br />q是?.5.25中配|得test.xml:<br /><Context docBase="test" path="/test" debug="0" reloadable="true"><br /><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"/><br /></Context><br />如果在连接数据库时提Cconnect url?"或null,Ҏ版本Ҏ上面的就可以?<br /><br />但是Z么在两个版本下调用另一个就会出?是什么原?希望高h解答.<br />我感觉至应该向下兼容啊,?<img src ="http://www.tkk7.com/guoyongfei/aggbug/187528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/guoyongfei/" target="_blank">郭永?/a> 2008-03-20 17:16 <a href="http://www.tkk7.com/guoyongfei/archive/2008/03/20/187528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据兌查询http://www.tkk7.com/guoyongfei/archive/2008/03/18/187014.html郭永?/dc:creator>郭永?/author>Tue, 18 Mar 2008 07:32:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/03/18/187014.htmlhttp://www.tkk7.com/guoyongfei/comments/187014.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/03/18/187014.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/187014.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/187014.html 今天又有进?^_^!

         来源Q赛q网
    作者:Alizze


兌在Oracle数据查询时会l常用到,灉|的应用关联可以解军_多实际应用的问题.下面l出一些示?

														create table ab
(
ab_id number(5),
ab_name varchar2(30)
);

create table bb
(
bb_id number(5),
bb_name varchar2(30)
);

插入数据

														insert into ab(ab_id,ab_name) values(1,'1ab_name');
insert into ab(ab_id,ab_name) values(2,'2ab_name');
insert into ab(ab_id,ab_name) values(3,'3ab_name');

insert into bb(bb_id,bb_name) values(1,'1bb_name');
insert into bb(bb_id,bb_name) values(2,'2bb_name');
insert into bb(bb_id,bb_name) values(4,'4bb_name');
insert into bb(bb_id,bb_name) values(6,'6bb_name');

{值关联(全关联)

														select a.ab_id,a.ab_name,b.bb_name from ab a,
bb b
where a.ab_id=b.bb_id;

q回l果

														AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name

q回两个表中所有能匚w的记录,不能匚w的记录不q回?

左关?/strong>

														select ab_id,ab_name, bb_name 
from ab a left join bb b
on a.ab_id=b.bb_id;
?br />select ab_id,ab_name, bb_name
from ab a , bb b
where a.ab_id=b.bb_id(+);

q回l果

														AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name

q回左边表的左右记录Q在双表中没有对应记录的右表字D|CZؓI?

叛_?/strong>

														select ab_id,ab_name, bb_name 
from ab a right join bb b
on a.ab_id=b.bb_id;
?br />select ab_id,ab_name, bb_name
from ab a , bb b
where a.ab_id(+)=b.bb_id;

q回l果:

														AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
4bb_name
6bb_name

q回双表中所有的记录Q在双表不能匹配的记录行上Q左边表对应的字D|CZؓI?

完全外关?/strong>

														select ab_id,ab_name, bb_name 
from ab a full join bb b
on a.ab_id=b.bb_id;

q回l果

														AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
6bb_name
4bb_name

q回两个表所有的l果Q如果在兌条g上没有对应的记录Q那么将在该列上昄为空?

全关联返回的l果集范围最。完全外兌q回的结果范围最大,是否左关联和叛_联ƈ集;全关联是左关联和叛_联的交集?/p>

]]>
做了一个用ajax判断用户名是否注册的代码,呵呵http://www.tkk7.com/guoyongfei/archive/2008/03/12/185765.html郭永?/dc:creator>郭永?/author>Wed, 12 Mar 2008 09:49:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/03/12/185765.htmlhttp://www.tkk7.com/guoyongfei/comments/185765.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/03/12/185765.html#Feedback4http://www.tkk7.com/guoyongfei/comments/commentRss/185765.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/185765.html1.judgeUsername.html面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>judegUsername.html</title>
 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
   
    <script language="JavaScript" type="text/javascript">
    var request = false;
    try{
     request = new XMLHttpRequest();
    }catch(microsoftIE){
     try{
      request = new ActiveXObject("Msxml2.XMLHTTP");
     }catch(microsoftOldIE){
      try{
       request = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(failed){
       request = false;
      }
     }
    }
    if(!request){
     alert("初始化XMLHttpRequest对象p|");
    }
    function sendUsername(){
     var username = document.getElementById("username").value;
     if(username!=null && username!=""){
      var url = "./judgeUsername.jsp?username="+escape(username);
      request.open("get",url,true);
      request.onreadystatechange=updatepage;
      request.send(null);
     }
    }
    function updatepage(){
     if(request.readyState==4){
      if(request.status==200){
       document.getElementById("reusername").innerHTML = request.responseText;
       //document.getDocumentById("reusername").innerText = request.responseText;
      }else if(request.status==404){
       alert("找不到页面!");
      }else{
       alert("错误代码:"+request.status);
      }
     }
    }
    function clearMessage(){
     document.getElementById("reusername").innerHTML = "";
    }
    </script>

  </head>
 
  <body>
   <form action="/register.jsp" method="post">
    <table align="center">
     <caption>guoyongfei为已注册Q其他均未注?lt;/caption>
     <tr><th>??名:</th><td><input type="text" name="username" id="username" onblur="sendUsername()" onfocus="clearMessage()"/></td><td width="40%" id="reusername"></td></tr>
     <tr><th>密  码:</th><td><input type="password" name="password" id="password"/></td><td width="20"></td></tr>
     <tr><th>密码认Q?lt;/th><td><input type="surePassword" name="surePassword" id="surePassword"/></td><td width="20"></td></tr>
    </table>
  </body>
</html>

2.judgeUsername.jsp面:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
 String username = request.getParameter("username");
 //System.out.println("username:"+username);
 if(username.equals("guoyongfei")){
  out.println("<font color='red'>用户名已l注?lt;/font>");
 }else{
  out.println("<font color='green'>用户名可以用</font>");
 }
 %>
希望大家l推荐下提示信息较好的表C方?....



]]>
DOM对象的类型、属性和Ҏhttp://www.tkk7.com/guoyongfei/archive/2008/03/11/185299.html郭永?/dc:creator>郭永?/author>Tue, 11 Mar 2008 03:32:00 GMThttp://www.tkk7.com/guoyongfei/archive/2008/03/11/185299.htmlhttp://www.tkk7.com/guoyongfei/comments/185299.htmlhttp://www.tkk7.com/guoyongfei/archive/2008/03/11/185299.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/185299.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/185299.html阅读全文

]]>
rss常用参数(属??/title><link>http://www.tkk7.com/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.tkk7.com/guoyongfei/archive/2008/03/10/185016.html</guid><wfw:comment>http://www.tkk7.com/guoyongfei/comments/185016.html</wfw:comment><comments>http://www.tkk7.com/guoyongfei/archive/2008/03/10/185016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/guoyongfei/comments/commentRss/185016.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/guoyongfei/services/trackbacks/185016.html</trackback:ping><description><![CDATA[<p>  RSS是网内容聚合格式,version 2.0是Really Simple Syndication几个英文单词的羃?具体可以查看癑ֺ癄,里面有详l介l?br /> RSS源自XMLQ因此所有RSS文g必须严格遵守由W3Cl织发布的XML1.0的特性的要求?br /> RSS文档的构成:<br /> 一个RSS聚合由频?channel)以及频道中包含的目(item)l成<br /> RSS遵从XML1.0标准q行标注<br /> 其头部一般应该是q样的:<br /> <?xml version="1.0"?>         /*遵从的XML标准*/<br /> <rss version="2.0">           /*遵从的RSS标准*/<br /> <channel>                    /*频道标志*/ <br /> <br /> 文g的结ֺ该由下面的内容结?br /> </channel><br /> </rss><br /> 在头部和N之间Q就是RSS的内容了。RSS?br /> channel(频道)必须包含的元素是Q?br /> <title>             /*频道的标?/<br /> <link>              /*q接地址*/<br /> <description>       /*寚w道的描述*/<br /> 可选的参数包含Q?br /> <language>          /*语言比如zh-cn*/<br /> <copyright>         /*版权信息*/<br /> <managingEditor>    /*主要的维护者EMAIL*/<br /> <webMaster>         /*|站理者的EMAIL*/<br /> <pubDate>           /*出版日期*/<br /> <lastBuildDate>     /*最后徏立日?/<br /> <category>          /*内容*/<br /> <generator>         /*生成?/<br /> <docs>              /*文档的连l地址*/<br /> <cloud>             /*q个解释h有点难,它是对xml-rpc(q程q程调用Q和soapQ简单对象访问协议)的描qC息,能够使客L软g注意到RSS的文档更斎ͼ是所?#8220;?#8221;的技术吧Q一个服务器Q被UC"cloud")提供一个RSS文档的更新公告,当一个文档被更新Q这个服务器呼叫所有订阅的客户机注意最新的更新。一个例?lt;cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />*/<br /> <ttl>                  /*存活旉Q这个频道被源刷C前被~存的时?/<br /> <image>                /*指定一?GIF或JPEG或PNG囄Q用以与频道一hC?/<br /> <rating>               /*囑փ的等U?速率Q文?中描qC是很清楚或我没有理解*/<br /> <textInput>            /*一个输入框Q主要用来提供一个搜索引擎或提供一个读者反馈的的输入框Q但很多的聚合器会忽略它*/<br /> <skipHours>           /*l聚合器的一个忽略时间提C,多长旉他们可以跌*/<br /> <skipDays>            /*l聚合器的一个忽略日期提C,多长旉他们可以跌*/<br /> 在频道描q完毕后Q接下来应该对rss聚合中的主要内容目q行描述<br /> 一个项目有<item></item>包含其中的内容就是这个项目的信息<br /> 一个item目必须包含下面q些元素<br /> <title>                  /*标题*/<br /> <description>                  /*q接地址*/<br /> <link>                  /*描述*/<br /> 可以选择的元素包?br /> <author>                  /*作?/<br /> <category>                  /*分类*/<br /> <comments>                  /*注释*/<br /> <enclosure>                  /*附gQ?q可以包含一个多媒体附g?Q比如:<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />*/<br /> <guid>                  /*唯一描述W?/<br /> <pubDate>                  /*出版旉*/<br /> <source>                  /*?/<br /> <br /> </p> <p>RSS2.0 image的子元素列表<br /> url     囄的url      必备  <br /> title     囄的标题,用于http的alt属?nbsp;     必备  <br /> link     |站的url(实际中常以频道的url代替)      必备  <br /> width     囄的宽?象素为单? 最?44,默认88     可?nbsp; <br /> height     囄的高?象素为单? 最?00Q默?1     可?nbsp; <br /> description     用于link的title属?nbsp;     可?<br /> <br /> </p> <p>RSS2.0  cloud的子元素列表<br /> <br /> domain     CloudE序所在机器的域名或IP地址   radio.xmlstoragesystem.com <br /> port     讉KcloundE序所通过的端?nbsp;  80 <br /> path     E序所在\径(不一定是真实路径Q?nbsp;  /RPC2 <br /> registerProcedure     注册的可提供的服务或q程   xmlStorageSystem.rssPleaseNotify <br /> protocol     协议 xml-rpc, soap , http-post 之一  xml-rpc <br /> <br /> </p> <p>RSS2.0元素channel的子元素textInput的子元素列表<br /> title     Submit按钮的标{?nbsp;     必备  <br /> description     解释text输入?nbsp;     必备  <br /> name     Text area对象的名?nbsp;     必备  <br /> link     处理提交的请求的cgiE序      必备 <br /> </p> <p><br /> 参考文?1.http://cloudliushaode.sharera.com/blog/BlogTopic/44845.htm;<br />                  2.http://www.donews.net/softbunny/articles/11030.aspx.</p> <img src ="http://www.tkk7.com/guoyongfei/aggbug/185016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/guoyongfei/" target="_blank">郭永?/a> 2008-03-10 11:56 <a href="http://www.tkk7.com/guoyongfei/archive/2008/03/10/185016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ajax介绍http://www.tkk7.com/guoyongfei/archive/2007/12/20/169013.html郭永?/dc:creator>郭永?/author>Thu, 20 Dec 2007 05:54:00 GMThttp://www.tkk7.com/guoyongfei/archive/2007/12/20/169013.htmlhttp://www.tkk7.com/guoyongfei/comments/169013.htmlhttp://www.tkk7.com/guoyongfei/archive/2007/12/20/169013.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/169013.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/169013.html感觉q篇文章介绍ajax很不?特{来共?Z表示对作者的重,所以连下面的一q拷了过?希望对大家有?
ajax
AJAX全称?#8220;Asynchronous JavaScript and XML”Q异步JavaScript和XMLQ,是指一U创Z互式|页应用的网开发技术?


主要包含了以下几U技?/span>


AjaxQAsynchronous JavaScript + XMLQ的定义

Zweb标准Qstandards-based presentationQXHTML+CSS的表C;

使用 DOMQDocument Object ModelQ进行动态显C及交互Q?

使用 XML ?XSLT q行数据交换及相x作;

使用 XMLHttpRequest q行异步数据查询、检索;

使用 JavaScript 所有的东西l定在一赗?a target="_blank">英文参见Ajax的提Jesse James Garrett的原文?br />
cM于DHTML或LAMPQAJAX不是指一U单一的技术,而是有机地利用了一pd相关的技术。事实上Q一些基于AJAX?#8220;z/合成”式(derivative/compositeQ的技术正在出玎ͼ?#8220;AFLAX”?

AJAX的应用用支持以上技术的web览器作行^台。这些浏览器目前包括Q?a target="_blank">Mozilla?a target="_blank">Firefox?a target="_blank">Internet Explorer?a target="_blank">Opera?a target="_blank">Konqueror?a target="_blank">Safari。但是Opera不支持XSL格式对象Q也不支持XSLT?br />

与传l的web应用比较


传统的web应用允许用户填写表单(form)Q当提交表单时就?a target="_blank">web服务?/a>发送一个请求。服务器接收q处理传来的表单Q然後返回一个新?a target="_blank">|页。这个做法浪费了许多带宽Q因为在前後两个面中的大部分HTML代码往往是相同的。由于每ơ应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器?a target="_blank">响应旉。这D了用L面的响应比本地应用慢得多?

与此不同QAJAX应用可以仅向服务器发送ƈ取回必需的数据,它用SOAP或其它一些基于XML的web service接口Qƈ在客L采用JavaScript处理来自服务器的响应。因为在服务器和览器之间交换的数据大量减少Q结果我们就能看到响应更快的应用。同时很多的处理工作可以在发求的客户端机器上完成Q所以Web服务器的处理旉也减了?br />
Ajax应用E序的优势在于:

1. 通过异步模式Q提升了用户体验

2. 优化?a target="_blank">览?/a>和服务器之间的传输,减少不必要的数据往q,减少了带宽占?br />
3. Ajax引擎在客Lq行Q承担了一部分本来由服务器承担的工作,从而减了大用户量下的服务器负载?br />

Ajax的工作原?/span>


  Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首ơ引入,它是一U支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出hq处理响应,而不d用户?br />
  在创建Web站点Ӟ在客L执行屏幕更新为用h供了很大的灵zL。下面是使用Ajax可以完成的功能:

    动态更新购物R的物品LQ无需用户单击Updateq等待服务器重新发送整个页面?

    提升站点的性能Q这是通过减少从服务器下蝲的数据量而实现的。例如,在某购物车页面,当更新篮子中的一物品的数量Ӟ会重新蝲入整个页面,q必M载整个页面的数据。如果用Ajax计算新的总量Q服务器只会q回新的总量|因此所需的带宽仅为原来的癑ֈ之一?消除了每ơ用戯入时的页面刷新。例如,在Ajax中,如果用户在分列表上单击NextQ则服务器数据只h列表而不是整个页面?
直接~辑表格数据Q而不是要求用户导航到新的面来编辑数据。对于AjaxQ当用户单击EditӞ可以静态表格刷Cؓ内容可编辑的表格。用户单击Done之后Q就可以发出一个Ajaxh来更新服务器Qƈh表格Q其包含静态、只ȝ数据?br />
  一切皆有可能!但愿它能够激发您开始开发自qZAjax的站炏V然而,在开始之前,让我们介l一个现有的Web站点Q它遵@传统的提?{待/重新昄的范例,我们q将讨论Ajax如何提升用户体验?br />
   Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用h作与服务器响应异步化。这h以前的一些服务器负担的工作{嫁到客户端,利于客户端闲|的处理能力来处理,减轻服务器和带宽的负担,从而达到节UISP的空间及带宽U用成本的目的?br />
我们以两个验证通行证帐h否存在的例子来讲qAJAX在实际中的应用:

(1)用文本字W串的方式返回服务器的响应来验证|易通行证帐h否存在;

(2)以XMLDocument对象方式q回响应来验证金山通行证帐h否存在;

首先Q我们需要用JavaScript来创?a target="_blank">XMLHttpRequest cd服务器发送一个HTTPhQ?XMLHttpRequest c首先由Internet Explorer以ActiveX对象引入Q被UCؓXMLHTTP?后来MozillaHNetscapeHSafari 和其他浏览器也提供了XMLHttpRequestc,不过它们创徏XMLHttpRequestcȝҎ不同?br />
对于Internet Explorer览器,创徏XMLHttpRequest Ҏ如下Q?br />
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0?.0, 5.0
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");

׃在不同Internet Explorer览器中XMLHTTP版本可能不一_Z更好的兼容不同版本的Internet Explorer览器,因此我们需要根据不同版本的Internet Explorer览器来创徏XMLHttpRequestc,上面代码是Ҏ不同的Internet Explorer览器创建XMLHttpRequestcȝҎ?br />
对于MozillaHNetscapeHSafari{浏览器Q创建XMLHttpRequest Ҏ如下Qxmlhttp_request = new XMLHttpRequest();

如果服务器的响应没有XML mime-type headerQ某些Mozilla览器可能无法正常工作?Z解决q个问题Q如果服务器响应的header不是text/xmlQ可以调用其它方法修改该header?br />
xmlhttp_request = new XMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');

在实际应用中Qؓ了兼容多U不同版本的览器,一般将创徏XMLHttpRequestcȝҎ写成如下形式Q?br />
try{
if( window.ActiveXObject ){
for( var i = 5; i; i-- ){
try{
if( i == 2 ){
xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }
else{
xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
xmlhttp_request.setRequestHeader("Content-Type","text/xml");
xmlhttp_request.setRequestHeader("Content-Type","gb2312"); }
break;}
catch(e){
xmlhttp_request = false; } } }
else if( window.XMLHttpRequest )
{ xmlhttp_request = new XMLHttpRequest();
if (xmlhttp_request.overrideMimeType)
{ xmlhttp_request.overrideMimeType('text/xml'); } } }
catch(e){ xmlhttp_request = false; }

在定义了如何处理响应后,p发送请求了。可以调用HTTPhcȝopen()和send()ҎQ如下所C:

xmlhttp_request.open('GET', URL, true);
xmlhttp_request.send(null);

open()的第一个参数是HTTPh方式—GETQPOST或Q何服务器所支持的您惌用的方式?按照HTTP规范Q该参数要大写;否则Q某些浏览器(如Firefox)可能无法处理h?

W二个参数是h面的URL?br />
W三个参数设|请求是否ؓ异步模式。如果是TRUEQJavaScript函数l执行,而不{待服务器响应。这是"AJAX"中的"A"?br />
用JavaScript来创建XMLHttpRequest cd服务器发送一个HTTPh后,接下来要军_当收到服务器的响应后Q需要做什么。这需要告诉HTTPh对象用哪一个JavaScript函数处理q个响应。可以将对象的onreadystatechange属性设|ؓ要用的JavaScript的函数名Q如下所C:

xmlhttp_request.onreadystatechange =FunctionName;

FunctionName是用JavaScript创徏的函数名Q注意不要写成FunctionName()Q当然我们也可以直接JavaScript代码创徏在onreadystatechange之后Q例如:

xmlhttp_request.onreadystatechange = function(){
// JavaScript代码D?br /> };

首先要检查请求的状态。只有当一个完整的服务器响应已l收CQ函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来Ҏ务器响应q行判断?br />
readyState的取值如下:

0 (未初始化)

1 (正在装蝲)

2 (装蝲完毕)

3 (交互?

4 (完成)

所以只有当readyState=4Ӟ一个完整的服务器响应已l收CQ函数才可以处理该响应。具体代码如下:

if (http_request.readyState == 4) { // 收到完整的服务器响应 }
else { // 没有收到完整的服务器响应 }

当readyState=4Ӟ一个完整的服务器响应已l收CQ接着Q函C查HTTP服务器响应的状态倹{完整的状态取值可参见W3C文档。当HTTP服务器响应的gؓ200Ӟ表示状态正常?br />
在检查完h的状态值和响应的HTTP状态值后Q就可以处理从服务器得到的数据了。有两种方式可以得到q些数据Q?br />
(1) 以文本字W串的方式返回服务器的响?br />
(2) 以XMLDocument对象方式q回响应

实例一Q?用文本字W串的方式返回服务器的响应来验证|易通行证帐h否存?br />
首先Q我们登陆网易通行证注册页面,可以看到用户名是否存在是将用户名提交给checkssn.jsp面q行判断Q格式ؓQ?br />
reg.163.com/register/checkssn.jsp?username=用户?

Ҏ上面讲到的方法,我们可以利用AJAX技术对|易通行证用户名q行:

W一步:新徏一个基于Xhtml标准的网,在区域插入Javascript函数如下Q?br />
function getXMLRequester( )

{ var xmlhttp_request = false;

try

{ if( window.ActiveXObject )

{ for( var i = 5; i; i-- ){

try{

if( i == 2 )

{ xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }

else

{ xmlhttp_request = new ActiveXObject

( "Msxml2.XMLHTTP." + i + ".0" );

xmlhttp_request.setRequestHeader("Content-Type","text/xml");

xmlhttp_request.setRequestHeader("Content-Type","gb2312"); }

break;}

catch(e){ xmlhttp_request = false; } } }

else if( window.XMLHttpRequest )

{ xmlhttp_request = new XMLHttpRequest();

if (xmlhttp_request.overrideMimeType)

{ xmlhttp_request.overrideMimeType('text/xml'); } } }

catch(e){ xmlhttp_request = false; }

return xmlhttp_request ; }

function IDRequest(n) { //定义收到服务器的响应后需要执行的JavaScript函数

url=n+document.getElementById('163id').value;//定义|址参数

xmlhttp_request=getXMLRequester();//调用创徏XMLHttpRequest的函?br />
xmlhttp_request.onreadystatechange = doContents;//调用doContents函数

xmlhttp_request.open('GET', url, true);

xmlhttp_request.send(null); }

function doContents()

{ if (xmlhttp_request.readyState == 4) {// 收到完整的服务器响应

if (xmlhttp_request.status == 200) {//HTTP服务器响应的值OK

document.getElementById('message').innerHTML = xmlhttp_request.responseText;

//服务器q回的字W串写到面中ID为message的区?}

else { alert(http_request.status); } } }

在区域徏立一个文本框Qid?63idQ再Z个id为messsge的空白区域用来显C回字W串(也可以通过Javascript函数截取一部分字符串显C?Q?

<input type=text id="163id">
<span id="message"></span>

q样Q一个基于AJAX技术的用户名检页面就做好了,不过q个面返回服务器响应生成面的所有字W串Q当然还可以对返回的字符串进行一些操作,便于应用C同的需要当中?br />
实例二: 以XMLDocument对象方式q回响应来验证金山通行证帐h否存?br />
在上面的例子中,当服务器对HTTPh的响应被收到后,我们会调用请求对象的reponseText属性。该属性包含了服务器返回响应文件的内容。现在我们以XMLDocument对象方式q回响应Q此时将不再需要reponseText属性而用responseXML属性?br />
首先登陆金山通行证注册页面,我们发现金山通行证用户名的检方式ؓQ?pass.kingsoft.com/ksgweb/jsp/login/uid.jsp?uid=用户?q且q回XML数据:

isExistedUid -2

当resultgؓ-1时表C此用户名已被注册,当resultgؓ-2时表C此用户名尚未注册,因此通过对result值的判断可以知道用户名是否被注册?br />
对上例代码进行修改:

首先扑ֈ

document.getElementById('message').innerHTML = xmlhttp_request.responseText;

改ؓ:

var response = xmlhttp_request.responseXML.documentElement;

var result = response.getElementsByTagName('result')[0].firstChild.data;//q回result节点数据

if(result ==-2){

document.getElementById('message').innerHTML = "用户?+document.getElementById('163id').value+"未注册";}

else if(result ==-1){

document.getElementById('message').innerHTML = "对不?用户?+document.getElementById('163id').value+"已经注册";}

通过以上两个实例说明了AJAX的客L基础应用Q采用的是网易和金山现成的服务器端程序,当然Z开发合适自己页面的E序Q还需要对自己~写服务器端E序Q这设计到程序语a及数据库的操作,对于有一定程序基的读者一定不是很隄事情?br />


补充Q?/strong>
1.AjaxQ著名希腊史诗伊利亚特中英雄埃阿斯的名字?br /> 2.AjaxQ荷兰著名球俱乐部阿贾克斯Q以培养青年球员而著Uͼq多ơ夺得欧z冠军杯?br />

开攑ֈc:
|络?a target="_blank">|页?a target="_blank">交互?/a>?a target="_blank">E序开?/a>?a target="_blank">|页技?/a>
 
参考资料:
 1.http://www.cnic.org/wiki/AJAX
 2.http://blog.inmedia.cn/index.php/2006/03/29/ajaxasbasncn_erd_ac
 3.Ajax——JS与XML的精彩组? http://www.micy.cn/blog/index.php/archives/199.html
 4.http://tech.chinaasp.com/20051123/ajax/31503.shtml
 5.http://www.hotajax.cn
 
贡献者:
workstar?a target="_blank">88tags?a target="_blank">vipdu?a target="_blank">qinyf?a target="_blank">suyuening2005?a target="_blank">lekai63?a target="_blank">hatoyu?a target="_blank"> qd盗?a target="_blank">super_phenix?a target="_blank">summit677?a target="_blank">疯狂{题?/a>?a target="_blank">景观?/a>?a target="_blank">Kealin?a target="_blank">wtmgsn?a target="_blank">Jobs_Lee


]]>
Lucene Field 1.*版本?.*版本比较http://www.tkk7.com/guoyongfei/archive/2007/12/03/164885.html郭永?/dc:creator>郭永?/author>Mon, 03 Dec 2007 07:30:00 GMThttp://www.tkk7.com/guoyongfei/archive/2007/12/03/164885.htmlhttp://www.tkk7.com/guoyongfei/comments/164885.htmlhttp://www.tkk7.com/guoyongfei/archive/2007/12/03/164885.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/164885.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/164885.html

(一)最q用Lucene开发全文检索。《Lucene in Action》这本书用的是Lucene 1.4。我自己下的是最新的2.1。然后就发现了很多不同的地方?/span>

Field没了Keyword、UnIndexed、UnStored、Textq几个静态成员,只能?br /> Field(String, String, Store, Index)?br /> Keyword对应Field.Store.YES, Field.Index.UN_TOKENIZEDQ?br /> UnIndexed 对应Field.Store.YES, Field.Index.NOQ?br /> UnStored对应Field.Store.NO, Field.Index.TOKENIZEDQ?br /> Text对应Field.Store.YES, Field.Index.TOKENIZED?/span>

FSDirectory.getDirectory的有两个参数的变成了depresed 了。现在要用只有一个参数的?/span>

BooleanQuery的addҎ也变了。原来是用两个boolean值组合的Q现?使用BooleanClause.Occur的几个静态成员了?/span>

暂时发现这点差异。[引自:http://syre.blogbus.com/logs/4736803.html]

(?FieldcM共有5U构造函敎ͼ

Field(String name, byte[] value, Field.Store store)
           Create a stored field with binary value.
Field(String name, Reader reader)
           Create a tokenized and indexed field that is not stored.
Field(String name, Reader reader, Field.TermVector termVector)
           Create a tokenized and indexed field that is not stored, optionally with storing term vectors.
Field(String name, String value, Field.Store store, Field.Index index)
           Create a field by specifying its name, value and how it will be saved in the index.
Field(String name, String value, Field.Store store, Field.Index index, Field.TermVector termVector)
           Create a field by specifying its name, value and how it will be saved in the index.

其中Q?/span>

Field.Store 表示“是否存储”Q即该Field内的信息是否要被原封不动的保存在索引中?/span>

Field.Index 表示“是否索引”Q即在这个Field中的数据是否在将来检索时需要被用户索到Q一?#8220;不烦?#8221;的Field通常仅是提供辅助信息储存的功能?/span>

Field.TermVector 表示“是否切词”Q即在这个Field中的数据是否需要被切词?/span>

通常Q参数用ReaderQ表C在文本数据源中获取数据,数据量一般会比较大。像链接地址URL、文件系l\径信息、时间日期、h名、居民n份证、电话号码等{通常被索引q且完整的存储在索引中,但一般不需要切分词Q通常用上面的W四个构造函敎ͼW三四个参数分别?/span>Field.Store.YES, Field.Index.YES。而长文本通常可用W?个构造函数。引用[http://blog.csdn.net/colasnail/archive/2007/03/21/1536417.aspx]

(?1.       2.0以前的版?/span>

UnIndexed: Field的值将被保存到索引文gQ不为Field的值徏立烦引,因此不能通过该Field搜烦文档?/span> UnStored: Field的g被保存到索引文gQ将Field的值分词后建立索引

tags:Lucene Lucene.net Field Field.store Field.UnStored Field.Keyword Field.Text

  • Text: Field的值分词后建立索引。如果参CؓString值将被保存,为Readerg被保?/span>
2.       2.0版本
    用几个内部类的组合来区分Field的具体类型?/span>
  • Store
        COMPRESS:压羃保存。用于长文本或二q制数据
        YESQ保?/span>
        NOQ不保存
  • Index
        NOQ不建烦?/span>
        TOKENIZEDQ分词,建烦?/span>
        UN_TOKENIZEDQ不分词Q?/span>建烦?/span>
        NO_NORMSQ不分词Q?/em>建烦引。但?span>Field的g像通常那样被保存,而是只取一个byteQ这栯U存储空?/span>
  • TermVector
        NOQ?/span>不保存term vectors
        YESQ?/span>保存term vectors?/span>
        WITH_POSITIONSQ?/span>保存term vectors。(保存值和token位置信息Q?/span>
        WITH_OFFSETSQ?/span>保存term vectors。(保存值和Token的offsetQ?em>WITH_POSITIONS_OFFSETSQ?/em>保存term vectors。(保存值和token位置信息和Token的offsetQ?/span>


comefrom:http://hi.baidu.com/gw_noah/blog/item/0646fbc4c3418daa8226ac0c.html


]]>
javascript中showModalDialog和showModelessDialog区别 http://www.tkk7.com/guoyongfei/archive/2007/11/28/163723.html郭永?/dc:creator>郭永?/author>Wed, 28 Nov 2007 08:24:00 GMThttp://www.tkk7.com/guoyongfei/archive/2007/11/28/163723.htmlhttp://www.tkk7.com/guoyongfei/comments/163723.htmlhttp://www.tkk7.com/guoyongfei/archive/2007/11/28/163723.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/163723.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/163723.html

javascript中showModalDialog和showModelessDialog区别

1Q?nbsp; showModalDialog和showModelessDialog的异?/span>

  同:两者弹出的H体不能h

  异:前者是模态窗口,始终获得焦点Q后者是非模态窗口,只不q弹Z个页面,q可以操作父H口?/span>

2Q?nbsp; 关闭showModalDialog和showModelessDialog弹出的窗?/span>

    <INPUT type="button" value="ButtonClick" onclick="self.close();">

3Q?nbsp; 怎样才让在showModalDialog和showModelessDialog的弹出新H口里操作button,不弹出新H口Q?/span>

    ?lt;head>?lt;/head>之间?lt;base target="_self">

4.     showModalDialog的返回?/span>

参照例子Q?/span>

t1.html:

<script language="javascript">
function showpage()
{
alert(showModalDialog("t2.html"));
}
</script>
<input type="button" value="getval" onClick="showpage();">

t2.html
<HTML>
<HEAD>
<Script language="javascript">
<
function SetVal()
{
  returnValue="abc";
  close();
}
//-->
</Script>
</HEAD>
<BODY> 
<input type="button" value="Btn1" onClick="SetVal();">
</BODY>
</HTML>


基本介绍Q?br /> showModalDialog() (IE 4+ 支持)
showModelessDialog() (IE 5+ 支持)
window.showModalDialog()Ҏ用来创徏一个显CHTML内容的模态对话框?br /> window.showModelessDialog()Ҏ用来创徏一个显CHTML内容的非模态对话框?/span>

使用ҎQ?br /> vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])

参数说明Q?br /> sURL--必选参敎ͼcdQ字W串。用来指定对话框要显C的文档的URL?br /> vArguments--可选参敎ͼcdQ变体。用来向对话框传递参数。传递的参数cd不限Q包括数l等。对话框通过window.dialogArguments来取得传递进来的参数?br /> sFeatures--可选参敎ͼcdQ字W串。用来描q对话框的外观等信息Q可以用以下的一个或几个Q用分号“;”隔开?br /> 1.dialogHeight :对话框高度,不小于1Q0pxQテQ4中dialogHeight ?dialogWidth 默认的单位是emQ而テQ5中是pxQؓ方便其见Q在定义modal方式的对话框Ӟ用px做单位?br /> 2.dialogWidth: 对话框宽度?br /> 3.dialogLeft: dq左的距R?br /> 4.dialogTop: dq上的距R?br /> 5.center: {yes | no | 1 | 0 }Q窗口是否居中,默认yesQ但仍可以指定高度和宽度?br /> 6.help: {yes | no | 1 | 0 }Q是否显C帮助按钮,默认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 }Q指明对话框是否昄滚动条。默认ؓyes?br /> 下面几个属性是用在HTA中的Q在一般的|页中一般不使用?br /> 10.dialogHide:{ yes | no | 1 | 0 | on | off }Q在打印或者打印预览时对话框是否隐藏。默认ؓno?br /> 11.edge:{ sunken | raised }Q指明对话框的边框样式。默认ؓraised?br /> 12.unadorned:{ yes | no | 1 | 0 | on | off }Q默认ؓno?/span>

参数传递:
1.要想对话框传递参敎ͼ是通过vArguments来进行传递的。类型不限制Q对于字W串cdQ最大ؓ4096个字W。也可以传递对象,例如Q?/span>

<script>
var obj = new Object();
obj.name="ttop";
window.showModalDialog("test.htm",obj,"dialogWidth=200px;dialogHeight=100px");
</script>
test.htm
<script>
var obj = window.dialogArguments
alert("您传递的参数为:" + obj.name)
</script>

2.可以通过window.returnValue向打开对话框的H口q回信息Q当然也可以是对象。例如:

<script>
str =window.showModalDialog("test.htm",,"dialogWidth=200px;dialogHeight=100px");
alert(str);
</script>
test.htm
<script>
window.returnValue="/";
</script>

 

 
一、showModalDialog和showModelessDialog有什么不同?
  showModalDialogQ被打开后就会始l保持输入焦炏V除非对话框被关闭,否则用户无法切换CH口。类似alert的运行效果?br />   showModelessDialogQ被打开后,用户可以随机切换输入焦点。对ȝ口没有Q何媄?最多是被挡住一下而以?P)

二、怎样才让在showModalDialog和showModelessDialog的超q接不弹出新H口Q?br />   在被打开的网里加上<base target="_self">可以了。这句话一般是攑֜<html>?lt;body>之间的?/span>

三、怎样才刷新showModalDialog和showModelessDialog里的内容Q?br />   在showModalDialog和showModelessDialog里是不能按F5h的,又不能弹单。这个只能依靠javascript了,以下是相关代码:

<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload...</a>

  filename.htm替换成网늚名字然后它攑ֈ你打开的网里Q按F5可以刷CQ注意,q个要配?lt;base target="_self">使用Q不然你按下F5会弹出新H口的?/span>

四、如何用javascriptxshowModalDialog(或showModelessDialog)打开的窗口?br />   <input type="button" value="关闭" onclick="window.close()">
  也要配合<base target="_self">Q不然会打开一个新的IEH口Q然后再x的?/span>

五、showModalDialog和showModelessDialog数据传递技巧?br />   (作者语Q本来想用一问一{Ş式来写的Q但是我想不个怎么问,所以只好这样了?
  q个东西比较ȝQ我改了好几ơ了不是没办法说明白(语文水^来差?Q只好用个例子说明了?br />   例子Q?br />     现在需要在一个showModalDialog(或showModelessDialog)里读取或讄一个变量var_name

      一般的传递方式:
        window.showModalDialog("filename.htm",var_name)
        //传递var_name变量
      在showModalDialog(或showModelessDialog)d和设|时Q?br />         alert(window.dialogArguments)//dvar_name变量
        window.dialogArguments="oyiboy"http://讄var_name变量
    q种方式是可以满的Q但是当你想在操作var_name同时再操作第二个变理var_id时呢Q就无法再进行操作了。这是q种传递方式的局限性?br />     
      以下是我使用的传递方式:
        window.showModalDialog("filename.htm",window)
        //不管要操作什么变量,只直传递主H口的window对象
      在showModalDialog(或showModelessDialog)d和设|时Q?br />         alert(window.dialogArguments.var_name)//dvar_name变量
        window.dialogArguments.var_name="oyiboy"http://讄var_name变量

        同时我也可以操作var_id变量
        alert(window.dialogArguments.var_id)//dvar_id变量
        window.dialogArguments.var_id="001"http://讄var_id变量

        同样q可以对ȝ口的M对象q行操作Q如form对象里的元素?br />         window.dialogArguments.form1.index1.value="q是在设|index1元素的?

六、多个showModelessDialog的相互操作?br />   以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位|?/span>

  L件的部䆾js代码?br />   var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px"Q?//打开控制H口
  var s2=showModelessDialog('about:blank',window,"dialogTop:200px;dialogLeft:300px"Q  //打开被控制窗?/span>

  控制.htm的部份代码?br />   <script>
    //操作位置数据Q因为窗口的位置数据?xxxpx"方式的,所以需要这L一个特D操作函数?br />  function countNumber(A_strNumber,A_strWhatdo)
 {
  A_strNumber=A_strNumber.replace('px','')
  A_strNumber-=0
  switch(A_strWhatdo)
  {
  case "-":A_strNumber-=10;break;
  case "+":A_strNumber+=10;break;
  }
  return A_strNumber + "px"
 }
  </script>
  <input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')" value="上移">
  <input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')" value="左移">
  <input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')" value="右移">
  <input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'+')" value="下移">

  以上关键部䆾是:
    H口命名方式Qvar s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px"Q?br />     变量讉K方式Qwindow.dialogArguments.s2.dialogTop

  q个例子只是现实showModelessDialog与showModelessDialog之间的位|操作功能,通过q个原理Q在showModelessDialog之间怺控制各自的显C页面,传递变量和数据{。这要看各位的发挥了

转自:http://www.cnblogs.com/xiaobaidhg/archive/2007/06/22/792891.html



]]>
Java 中的堆和栈(转) http://www.tkk7.com/guoyongfei/archive/2007/11/28/163721.html郭永?/dc:creator>郭永?/author>Wed, 28 Nov 2007 08:22:00 GMThttp://www.tkk7.com/guoyongfei/archive/2007/11/28/163721.htmlhttp://www.tkk7.com/guoyongfei/comments/163721.htmlhttp://www.tkk7.com/guoyongfei/archive/2007/11/28/163721.html#Feedback2http://www.tkk7.com/guoyongfei/comments/commentRss/163721.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/163721.htmlJava 中的堆和?/strong>

单的_
Java把内存划分成两种Q一U是栈内存,一U是堆内存?nbsp;  
   
  在函C定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配?nbsp;  
   
  当在一D代码块定义一个变量时QJava在栈中个变量分配内存空_当超q变量的作用域后QJava会自动释放掉变量所分配的内存空_该内存空间可以立卌另作他用?nbsp;  
   
  堆内存用来存攄new创徏的对象和数组?nbsp;  
   
  在堆中分配的内存Q由Java虚拟机的自动垃圾回收器来理?nbsp;  
   
  在堆中生了一个数l或对象后,q可以在栈中定义一个特D的变量Q让栈中q个变量的取值等于数l或对象在堆内存中的首地址Q栈中的q个变量成了数l或对象的引用变量?nbsp;  
   
  引用变量q当于是ؓ数组或对象v的一个名Uͼ以后可以在E序中用栈中的引用变量来访问堆中的数组或对象?nbsp;  
   


           

具体的说Q?br /> 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同QJava自动理栈和堆,E序员不能直接地讄栈或堆?
          Java的堆是一个运行时数据?cȝ(对象从中分配I间。这些对象通过new、newarray、anewarray和multianewarray{指令徏立,它们不需要程序代码来昑ּ的释放。堆是由垃圾回收来负责的Q堆的优势是可以动态地分配内存大小Q生存期也不必事先告诉编译器Q因为它是在q行时动态分配内存的QJava的垃圾收集器会自动收走这些不再用的数据。但~点是,׃要在q行时动态分配内存,存取速度较慢?
         栈的优势是,存取速度比堆要快Q仅ơ于寄存器,栈数据可以共享。但~点是,存在栈中的数据大与生存期必L定的,~Z灉|性。栈中主要存放一些基本类型的变量Q?int, short, long, byte, float, double, boolean, charQ和对象句柄?
         栈有一个很重要的特D性,是存在栈中的数据可以共享。假设我们同时定义:
int a = 3;
int b = 3Q?
~译器先处理int a = 3Q首先它会在栈中创徏一个变量ؓa的引用,然后查找栈中是否?q个|如果没找刎ͼ将3存放q来Q然后将a指向3。接着处理int b = 3Q在创徏完b的引用变量后Q因为在栈中已经?q个|便将b直接指向3。这P出Ca与b同时均指?的情c这Ӟ如果再oa=4Q那么编译器会重新搜索栈中是否有4|如果没有Q则?存放q来Qƈ令a指向4Q如果已l有了,则直接将a指向q个地址。因此a值的改变不会影响到b的倹{要注意q种数据的共享与两个对象的引用同时指向一个对象的q种׃n是不同的Q因U情况a的修改ƈ不会影响到b, 它是q译器完成的,它有利于节省I间。而一个对象引用变量修改了q个对象的内部状态,会媄响到另一个对象引用变量?

String是一个特D的包装cL据。可以用Q?
String str = new String("abc");
String str = "abc";
两种的Ş式来创徏Q第一U是用new()来新建对象的Q它会在存放于堆中。每调用一ơ就会创Z个新的对象?
而第二种是先在栈中创Z个对Stringcȝ对象引用变量strQ然后查找栈中有没有存放"abc"Q如果没有,则将"abc"存放q栈Qƈ令str指向”abc”Q如果已l有”abc” 则直接ostr指向“abc”?

           比较c里面的数值是否相{时Q用equals()ҎQ当试两个包装cȝ引用是否指向同一个对象时Q用==Q下面用例子说明上面的理论?
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2); //true
可以看出str1和str2是指向同一个对象的?

String str1 =new String ("abc");
String str2 =new String ("abc");
System.out.println(str1==str2); // false
用new的方式是生成不同的对象。每一ơ生成一个?
       因此用第一U方式创建多?#8221;abc”字符?在内存中其实只存在一个对象而已. q种写法有利与节省内存空? 同时它可以在一定程度上提高E序的运行速度Q因为JVM会自动根据栈中数据的实际情况来决定是否有必要创徏新对象。而对于String str = new String("abc")Q的代码Q则一概在堆中创徏新对象,而不其字符串值是否相{,是否有必要创建新对象Q从而加重了E序的负担?
       另一斚w, 要注? 我们在用诸如String str = "abc"Q的格式定义cLQL惛_然地认ؓQ创ZStringcȝ对象str。担心陷阱!对象可能q没有被创徏Q而可能只是指向一个先前已l创建的对象。只有通过new()Ҏ才能保证每次都创Z个新的对象。由于Stringcȝimmutable性质Q当String变量需要经常变换其值时Q应该考虑使用StringBufferc,以提高程序效率?br />



java中内存分配策略及堆和栈的比较
2.1 内存分配{略
按照~译原理的观?E序q行时的内存分配有三U策?分别是静态的,栈式?和堆式的.
静态存储分配是指在~译时就能确定每个数据目标在q行时刻的存储空间需?因而在~译时就可以l他们分配固定的内存I间.q种分配{略要求E序代码中不允许有可变数据结?比如可变数组)的存?也不允许有嵌套或者递归的结构出?因ؓ它们都会D~译E序无法计算准确的存储空间需?
栈式存储分配也可UCؓ动态存储分?是由一个类g堆栈的运行栈来实现的.和静态存储分配相?在栈式存储方案中,E序Ҏ据区的需求在~译时是完全未知?只有到运行的时候才能够知道,但是规定在运行中q入一个程序模块时,必须知道该程序模块所需的数据区大小才能够ؓ其分配内?和我们在数据l构所熟知的栈一?栈式存储分配按照先进后出的原则进行分配?
静态存储分配要求在~译时能知道所有变量的存储要求,栈式存储分配要求在过E的入口处必ȝ道所有的存储要求,而堆式存储分配则专门负责在编译时或运行时模块入口处都无法定存储要求的数据结构的内存分配,比如可变长度串和对象实例.堆由大片的可利用块或I闲块组?堆中的内存可以按照Q意顺序分配和释放.

2.2 堆和栈的比较
上面的定义从~译原理的教材中ȝ而来,除静态存储分配之?都显得很呆板和难以理?下面撇开静态存储分?集中比较堆和?
从堆和栈的功能和作用来通俗的比?堆主要用来存攑֯象的Q栈主要是用来执行程序的.而这U不同又主要是由于堆和栈的特点决定的:
在编E中Q例如C/C++中,所有的Ҏ调用都是通过栈来q行?所有的局部变?形式参数都是从栈中分配内存空间的。实际上也不是什么分?只是从栈向上用p,好像工厂中的传送带(conveyor belt)一?Stack Pointer会自动指引你到放东西的位|?你所要做的只是把东西放下来就?退出函数的时候,修改栈指针就可以把栈中的内容销?q样的模式速度最? 当然要用来运行程序了.需要注意的?在分配的时?比如Z个即要调用的程序模块分配数据区?应事先知道这个数据区的大?也就说是虽然分配是在E序q行时进行的,但是分配的大多是定?不变?而这?大小多少"是在~译时确定的,不是在运行时.
堆是应用E序在运行的时候请求操作系l分配给自己内存Q由于从操作pȝ理的内存分?所以在分配和销毁时都要占用旉Q因此用堆的效率非常?但是堆的优点在于,~译器不必知道要从堆里分配多存储空_也不必知道存储的数据要在堆里停留多长的时?因此,用堆保存数据时会得到更大的灵zL。事实上,面向对象的多态?堆内存分配是必不可少?因ؓ多态变量所需的存储空间只有在q行时创Z对象之后才能定.在C++中,要求创徏一个对象时Q只需?new命o~制相关的代码即可。执行这些代码时Q会在堆里自动进行数据的保存.当然Qؓ辑ֈq种灉|性,必然会付Z定的代h:在堆里分配存储空间时会花掉更长的旉Q这也正是导致我们刚才所说的效率低的原因,看来列宁同志说的?人的优点往往也是人的~点,人的~点往往也是人的优点(晕~).


2.3 JVM中的堆和?
JVM是基于堆栈的虚拟?JVM为每个新创徏的线E都分配一个堆?也就是说,对于一个JavaE序来说Q它的运行就是通过对堆栈的操作来完成的。堆栈以帧ؓ单位保存U程的状态。JVM对堆栈只q行两种操作:以为单位的压栈和出栈操作?
我们知道,某个U程正在执行的方法称为此U程的当前方?我们可能不知?当前Ҏ使用的UCؓ当前帧。当U程ȀzM个JavaҎ,JVM׃在线E的 Java堆栈里新压入一个。这个自然成ؓ了当前.在此Ҏ执行期间,q个帧将用来保存参数,局部变?中间计算q程和其他数?q个帧在q里和编译原理中的活动纪录的概念是差不多?
从Java的这U分配机制来?堆栈又可以这L?堆栈(Stack)是操作系l在建立某个q程时或者线E?在支持多U程的操作系l中是线E?个线E徏立的存储区域Q该区域h先进后出的特性?
每一个Java应用都唯一对应一个JVM实例Q每一个实例唯一对应一个堆。应用程序在q行中所创徏的所有类实例或数l都攑֜q个堆中,q由应用所有的U程׃n.跟C/C++不同QJava中分配堆内存是自动初始化的。Java中所有对象的存储I间都是在堆中分配的Q但是这个对象的引用却是在堆栈中分配,也就是说在徏立一个对象时从两个地斚w分配内存Q在堆中分配的内存实际徏立这个对象,而在堆栈中分配的内存只是一个指向这个堆对象的指?引用)而已?


]]>
jira-3.11-Standalone+confluence-2.6.0QMySQL5.0安装 http://www.tkk7.com/guoyongfei/archive/2007/11/28/163718.html郭永?/dc:creator>郭永?/author>Wed, 28 Nov 2007 08:21:00 GMThttp://www.tkk7.com/guoyongfei/archive/2007/11/28/163718.htmlhttp://www.tkk7.com/guoyongfei/comments/163718.htmlhttp://www.tkk7.com/guoyongfei/archive/2007/11/28/163718.html#Feedback25http://www.tkk7.com/guoyongfei/comments/commentRss/163718.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/163718.html1.安装?/span>jdk,q|好JAVA_HOME,path,classpath三个环境变量,不知道如何配|的话可以上|上搜一?/span>,很多?/span>,我用的是JDK1.5,最好用新版本的,不然的话可能有些不支?/span>.

2.安装mysql5.0,q新Z?/span>jiradb数据?/span>,Z很好的支持中?/span>,~码都选择utf8

,我的用户名密码都?/span>root,一下会用到;不会的可?/span>www.mysql.cn上面下蝲,软g和安装文档都?/span>,你也可以?/span>mysql-front来通过界面化操作数据库.

3.?/span>http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa下蝲jira-3.11 Enterprise - Standalone +confluence-2.6.0,解压到指定目?/span>,整个应用都在\atlassian-jira-enterprise-3.11-standalone?/span>,你可以把它拷到指定的地方,以下U?/span>jira,我拷CD盘根目录?/span>,它自带了一?/span>tomcat5.5的服务器.

4. 打开 jira目录\atlassian-jira\WEB-INF\classes\entityengine.xml Q将 field-type-nameQ?/span>“hsql” Ҏ   field-type-name= “mysql” Qƈ删除schema-name="PUBLIC",

5. 修改 jira目录\conf\server.xml ?/span>
          <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"...
   
q大D修改ؓQ?/span>
     <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
               username="root"
                password="
密码"
               driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;mysqlEncoding=utf8"
             maxActive="20" />

  L:删掉了里面的minEvictableIdleTimeMillis="4000"
                               timeBetweenEvictionRunsMillis="5000"

  因ؓ可能?/span>mysql的功能有些限?/span>.

6.   ?/span>jira目录\bin\startup.bat启动tomcatQ然后在览器中输入http://localhost:8080可以见到安装页面了,注册码可以点?/span>"在线"生成一?/span>,可以使用一个月,|上也有破解?/span>,不过q个׃说了,不太光彩.

7.到这?/span>jira安装成功了,恭喜?/span>,可以使用?/span>!

8.?/span>confluence整合?/span>jira?/span>,?/span>http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa下蝲confluence2.6.0WAR版本,因ؓ要整合到jira?/span>,所以不能用standalone作ؓ一个单独的,当然你如果想分开使用的话,可以?/span>standalone版本,解压后将里面?/span>confluence拷到一个指定的文g?/span>,Z方便理,我拷C我的jira目录?/span>.

9.打开confluence/WEB-INF/classes/confluence-init.properties,?span>confluence.home前面的注?span>(#)L,后面改ؓ你存放数据的路径,?span>:

d:/confluence/data.

10.?span>jira?em>conf/Catalina/localhost 文g夹下创徏一?span>confluence.xml文g,里面

加入如下内容:

<Context path="/confluence" docBase="c:/applications/confluence-2.1.3/confluence" debug="0" reloadable="true">
 <Logger className="org.apache.catalina.logger.FileLogger" prefix="atlassian-confluence." suffix=".log" timestamp="true"/>
 </Context>
docBase指你?span>confluence存放位置,?span>:d:/atlassian-jira-enterprise-3.11-standalone/confluence
11.~辑jira?span>bin/setenv.sh/bat (.sh on unix, .bat on windows)文g,?/span>
JAVA_OPTS=... " 后加?-XX:MaxPermSize=128m .
?span>:如果用的?span>sun?span>jvm,其就不用修改?span>.  
12.~辑conf/Catalina/localhost 下的confluence.xml文g,改ؓ如下:
<Context path="/confluence" docBase="d:/atlassian-jira-enterprise-3.11-standalone/confluence" debug="0" reloadable="true" swallowOutput="true"> 
 <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
     username="root"
     password="
密码"
     driverClassName="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/jiradb?autoReconnect=true"/>

 <Logger className="org.apache.catalina.logger.FileLogger" prefix="atlassian-confluence." suffix=".log" timestamp="true"/>
</Context>
13.重启服务?span>,在浏览器输入:http://localhost:8080/confluence,q行配置,选定?/span>
安装,数据库?span>mysql......
14.配置好后,打开/confluence/WEB-INF/classes 下的osuser.xml文g,?/span>
<provider class="bucket.user.providers.CachingCredentialsProvider">
        <property name="chain.classname">com.opensymphony.user.provider.hibernate.HibernateCredentialsProvider</property>
        <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
    </provider>
    <provider class="bucket.user.providers.CachingAccessProvider">
        <property name="chain.classname">com.opensymphony.user.provider.hibernate.HibernateAccessProvider</property>
        <property name="chain.configuration.provider.class">bucketuser.BucketHibernateConfigProvider</property>
    </provider>
    <provider class="bucket.user.providers.CachingProfileProvider">
        <property name="chain.classname">com.opensymphony.user.provider.hibernate.HibernateProfileProvider</property>
        <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
    </provider>
注释?span>;
q将
<provider class="bucket.user.providers.CachingCredentialsProvider">
        <property name="chain.classname">com.atlassian.confluence.user.providers.jira.JiraJdbcCredentialsProvider</property>
        <property name="chain.datasource">java:comp/env/jdbc/JiraDS</property>
    </provider>
    <provider class="bucket.user.providers.CachingAccessProvider">
        <property name="chain.classname">com.atlassian.confluence.user.providers.jira.JiraJdbcAccessProvider</property>
        <property name="chain.datasource">java:comp/env/jdbc/JiraDS</property>
    </provider>
    <provider class="bucket.user.providers.CachingProfileProvider">
        <property name="chain.classname">com.atlassian.confluence.user.providers.jira.JiraJdbcProfileProvider</property>
        <property name="chain.datasource">java:comp/env/jdbc/JiraDS</property>
        <property name="chain.configuration.provider.class">bucket.user.BucketHibernateConfigProvider</property>
    </provider>
取消注释.
15.用管理员登陆jira,分别增加confluence-users ?confluence-administrators 两个用户l?span>,q把理员加C个组里面.
16.?span>jira理员进?/span>confluence, 
q入 Administration Console 面板q点?General Configuration 在左D?span>,
点击 'Edit' 按钮?span>'Options and Settings' 附近. 
?span> 'External User Management'
选项选择 'ON' .
(---M配置---安全和隐U右边点"~辑"---外部用户理---启用)
 
17.恭喜?span>,配置成功,现在可以使用jira?span>confluence?span>,q且使用的是同一个用L,
如果写的有什么错误的话还请大家批评指?span>,有什么不清楚的话大家可以互相探讨.
如果找不到语a包或其它的话,可以留下邮箱,发给你一?/span>.

参考文?/span>:

http://confluence.atlassian.com/display/DOC/Delegate+user+management+to+use+JIRA+logins



]]>Java~译器对于String帔R表达式的优化http://www.tkk7.com/guoyongfei/archive/2007/11/20/161785.html郭永?/dc:creator>郭永?/author>Tue, 20 Nov 2007 01:52:00 GMThttp://www.tkk7.com/guoyongfei/archive/2007/11/20/161785.htmlhttp://www.tkk7.com/guoyongfei/comments/161785.htmlhttp://www.tkk7.com/guoyongfei/archive/2007/11/20/161785.html#Feedback0http://www.tkk7.com/guoyongfei/comments/commentRss/161785.htmlhttp://www.tkk7.com/guoyongfei/services/trackbacks/161785.html

首先把问题摆出来Q先看这个代?

String a = "ab";
                        String b = "a" + "b";
                        System.out.println((a == b));

打印l果会是什么?cMq样的问题,有h考过我,我也拿来考过别h(蛮好玩的Q大家也可以拿来问h?Q一般答案会是以下几U:

1.true

"a" + "b" 的结果就?ab"Q这样a,b都是"ab"了,内容一h?相等"Q结果true

一般javaCh如是{?

2.false

"a" + "a"会生成新的对?aa"Q但是这个对象和String a = "ab";不同Q?a == b)是比较对象引用,因此不相{,l果false

对java的String有一定了解的通常q样回答?

3.true

String a = "ab";创徏了新的对?ab"Q?再执行String b = "a" + "b";l果b="ab",q里没有创徏新的对象Q而是从JVM字符串常量池中获取之前已l存在的"ab"对象。因此a,bh对同一个string对象的引用,两个引用相等Q结果true.

能回{出q个{案的,基本已经是高手了Q对java中的string机制比较了解?

很遗?q个{案,是不够准的。或者说Q根本没有运行时计算b = "a" + "b";q个操作.实际上运行时只有String b = "ab";

3的观炚w合解释以下情况Q?

String a = "ab";
                        String b = "ab";
                        System.out.println((a == b));

如果String b = "a" + "b";是在q行期执行,?的观Ҏ无法解释的。运行期的两个string相加Q会产生新的对象的?本文后面Ҏ有解?

4.true

下面是我的回{:~译优化+ 3的处理方?= 最后的true

String b = "a" + "b";~译器将q个"a" + "b"作ؓ帔R表达式,在编译时q行优化Q直接取l果"ab"Q这栯个问题退?

String a = "ab";
                        String b = "ab";
                        System.out.println((a == b));

然后Ҏ3的解释,得到l果true

q里有一个疑问就是String不是基本cdQ像

int secondsOfDay = 24 * 60 * 60;

q样的表辑ּ是常量表辑ּ,~译器在~译时直接计容易理解,?a" + "b" q样的表辑ּ,string是对象不是基本类?~译器会把它当成帔R表达式来优化?

下面单证明我的推断,首先~译q个c?

public class Test {
                        private String a = "aa";
                        }

复制class文g备用,然后修改?

public class Test {
                        private String a = "a" + "a";
                        }

再次~译,用ue之类的文本编辑器打开,察看二进制内?可以发现,两个class文g完全一?q一个字节都不差.

ok,真相大白?Ҏ不存在运行期的处理String b = "a" + "b";q样的代码的问题,~译时就直接优化掉了?

下面q一步探讨,什么样的string + 表达式会被编译器当成帔R表达式?

String b = "a" + "b";

q个String + String被正式是ok?那么string + 基本cd呢?

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

可见~译器对string + 基本cd是当成常量表辑ּ直接求值来优化的?

再注意看q里的string都是"**"q样的,我们换成变量来试试:

String a = "ab";
                        String bb = "b";
                        String b = "a" + bb;
                        System.out.println((a == b)); //result = false

q个好理解,"a" + bb中的bb是变量,不能q行优化。这里很很好的解释了Z?的观点不正确Q如果String+String的操作是在运行时q行的,则会产生新的对象Q而不是直接从jvm的string池中获取?

再修改一?把bb作ؓ帔R变量Q?

String a = "ab";
                        final String bb = "b";
                        String b = "a" + bb;
                        System.out.println((a == b)); //result = true

竟然又是trueQ编译器的优化好厉害啊,呵呵Q考虑下面q种情况Q?

String a = "ab";
                        final String bb = getBB();
                        String b = "a" + bb;
                        System.out.println((a == b)); //result = false
                        private static String getBB() {
                        return "b";
                        }

看来java(包括~译器和jvm)对string的优化,真的是到了极点了Qstringq个所谓的"对象"Q完全不可以看成一般的对象Qjava对string的处理近乎于基本cdQ最大限度的优化了几乎能优化的地斏V?

另外感叹一?string?号处理,是java语言里面唯一的一?q算W重?(接触qc++的h对这个不会陌?吧?


来源Q赛q网技术社?nbsp;   作者:dxaw

]]>
վ֩ģ壺 һvѲһ| ձһߵӰ| ëƬëƬַ| һ߹ۿ | ޹ƷVA߹ۿ鶹| ŮоƷƵվ | avһ| ѹ߹ۿ| 97߹Ƶۿ | ձĻ| ۺͼɫ40p| ޹˳Ļһ| ޾Ʒһ | xxxx18| ëƬպëƬ| ޾ƷŮþ777777| ٸ17p| ޳꿴Ƭ߹ۿ| ߲Ѳ| 뿴avվ| ëƬ߹ۿ| ŮƵƵȫƵվ| ¸Ļ | ŷղwww| ޹պһ| þþƷž޾Ʒ| ޳˾þ| ޾ƷAAƬѽ | Ʒva߹ۿ| ŷһվ7777| ŷһ| Ůʮ·Ůbbw| һһһ| Ƶ߹ۿ2018| ޹Ʒһ߹ۿ | ޳aƬ߹| ޹ۺ˳ۺվ00| ŷղ| ۺϾþþƷɫ | ˽Ƶ75| ַѹۿ |