八、高級(jí)篇
1、自動(dòng)清除登錄窗口中上次訪問(wèn)者的用戶名
通常情況下,用戶在進(jìn)入WINNT網(wǎng)絡(luò)之前必須輸入自己的用戶名稱以及口令。但是當(dāng)你重新啟動(dòng)計(jì)算機(jī),登錄WINNT時(shí),WINNT會(huì)在缺省情況下將上一次訪問(wèn)者的用戶名自動(dòng)顯示在登錄窗口的“用戶名”文本框中。這樣一來(lái),有些非法用戶可能利用現(xiàn)有的用戶名來(lái)猜測(cè)其口令,一旦猜中的話,將會(huì)對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)產(chǎn)生極大的安全隱患。為了保證系統(tǒng)不存在任何安全隱患,我們可以通過(guò)修改WINNT注冊(cè)表的方法來(lái)也提供了啟動(dòng)時(shí)自動(dòng)以某一個(gè)組的用戶名稱和口令進(jìn)行訪問(wèn)WINNT,而不需要通過(guò)人工設(shè)置的方法來(lái)自動(dòng)清除登錄窗口中上次訪問(wèn)者的用戶名信息。要實(shí)現(xiàn)自動(dòng)清除功能,必須要進(jìn)行如下配置: A、在開始菜單欄中選擇運(yùn)行命令,在隨后打開的運(yùn)行對(duì)話框里輸入REGEDIT命令,從而打開注冊(cè)表編輯器。
B、在打開的注冊(cè)表編輯器中,依次展開以下的鍵值: [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONWINLOGON]
C、在編輯器右邊的列表框中,選擇“DONTDISPLAYLASTUSERNAME”鍵值名稱,如果沒(méi)有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個(gè),并選擇所建數(shù)據(jù)類型為“REG_SZ”。
D、選擇指定的鍵值并雙擊,當(dāng)出現(xiàn)“字符串編輯器”對(duì)話框時(shí),在“字符串”文本框中輸入“1”,其中“1”代表起用該功能,“0”代表禁止該功能。
E、當(dāng)用戶重新啟動(dòng)計(jì)算機(jī)登錄WINNT時(shí),NT登錄對(duì)話框中的“用戶名”文本框中將是空白的。
2、為一些非SCSI接口光驅(qū)進(jìn)行手工配置
如果你想在WINNT上安裝一個(gè)非SCSI接口的光驅(qū),在WINNT版本較高的計(jì)算機(jī)中這中類型的光驅(qū)可能被自動(dòng)識(shí)別并自動(dòng)由計(jì)算機(jī)來(lái)完成其安裝任務(wù),不巧的是,你的計(jì)算機(jī)中安裝了一個(gè)低版本的操作系統(tǒng),例如安裝了WINNT3.5,還沒(méi)有時(shí)間來(lái)升級(jí),但現(xiàn)在就著急用光驅(qū)呢,那該怎么辦才好呢?不急,雖然Windows NT3.5不能自動(dòng)識(shí)別非SCSI接口的光驅(qū),但我們可以通過(guò)手工安裝的方式來(lái)幫你輕松搞定這個(gè)小問(wèn)題,具體工作步驟為:
A、首先必須將你手中的對(duì)應(yīng)的非SCSI接口的CD-ROM驅(qū)動(dòng)程序從安裝盤拷貝到WINNTSYSTEM32DRIV ERS目錄下。
B、在WINNT主群組中打開Setup圖標(biāo)。
C、從OPTION菜單中選擇“Add/Remove SCSI Adapters”。 D、用鼠標(biāo)單擊ADD按鈕,為你的非SCSI接口CD-ROM選擇對(duì)應(yīng)的驅(qū)動(dòng)程序。
E、接著單擊“INSTALL”按鈕進(jìn)行一些相關(guān)參數(shù)的配置。 F、退出Windows NT,重新啟動(dòng)計(jì)算機(jī)后光驅(qū)就會(huì)有用了。
3、增加NTFS性能
如果用戶想增加NTFS的性能,也可以通過(guò)修改注冊(cè)表的方法來(lái)達(dá)到目的,具體實(shí)現(xiàn)步驟如下:
A、打開注冊(cè)表編輯器,并在編輯器中依次展開以下鍵值:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem
B、在注冊(cè)表編輯器中用鼠標(biāo)單擊“編輯”菜單,并在下拉菜單中選擇“新建”菜單項(xiàng),并在其彈出的子菜單中單擊“DWORD值”。
C、 在編輯器右邊的列表中輸入DWORD值的名稱為“NtfsDisableLastAccessUpdate”。
D、 接著用鼠標(biāo)雙擊NtfsDisableLastAccessUpdate鍵值,編輯器就會(huì)彈出一個(gè)名為“字符串編輯器”的對(duì)話框,在該對(duì)話框的文本欄中輸入數(shù)值“1”,其中0代表“取消”該項(xiàng)功能,1代表“啟用”該項(xiàng)功能。
E、設(shè)置好后,重新啟動(dòng)計(jì)算機(jī)就會(huì)使上述功能有效。
4、修復(fù)鏡像組
A、當(dāng)鏡像磁盤組中的驅(qū)動(dòng)器發(fā)生故障時(shí),系統(tǒng)自動(dòng)向其余的驅(qū)動(dòng)器發(fā)出發(fā)送數(shù)據(jù)請(qǐng)求,留下工作驅(qū)動(dòng)器單獨(dú)運(yùn)行。此時(shí),用戶需要進(jìn)入Disk Administrator,選擇鏡像組,再選擇FaultTolerance/Break Mirror,將鏡像組分為兩個(gè)獨(dú)立部分。
B、工作的驅(qū)動(dòng)器得到磁盤組所用的驅(qū)動(dòng)器盤符,故障驅(qū)動(dòng)器得到系統(tǒng)的下一個(gè)有效盤符。關(guān)閉NT Server,更換一個(gè)相同型號(hào)的硬盤驅(qū)動(dòng)器。
C、重新啟動(dòng)NT Server,運(yùn)行Disk Administor,在新驅(qū)動(dòng)器上選擇分區(qū)和未用空間,選擇Fault Tolerance/Establish Mirror即可對(duì)新驅(qū)動(dòng)器作鏡像。
5、自定義啟動(dòng)信息
每次當(dāng)WINNT啟動(dòng)時(shí),它都會(huì)顯示“請(qǐng)按CTRL+ALT+DELETE鍵來(lái)登錄”的信息,而如果你希望用戶在按完CTRL+ALT+DELETE鍵后,畫面上自動(dòng)顯示用戶自己希望所看到的信息,可以通過(guò)如下的相關(guān)設(shè)置來(lái)進(jìn)行:
A、在開始菜單欄中選擇運(yùn)行命令,在隨后打開的運(yùn)行對(duì)話框里輸入REGEDIT命令,從而打開注冊(cè)表編輯器。
B、在打開的注冊(cè)表編輯器中,依次展開以下的鍵值: [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONWINLOGON]
C、在編輯器右邊的列表框中,選擇“LEGALNOTICECAPTION”鍵值名稱,如果沒(méi)有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個(gè),并選擇所建數(shù)據(jù)類型為“REG_SZ”。
D、選擇指定的鍵值并雙擊,當(dāng)出現(xiàn)“字符串編輯器”對(duì)話框時(shí),在“字符串”文本框中輸入用戶希望看到的信息窗口的標(biāo)題內(nèi)容,例如輸入“WINNT網(wǎng)絡(luò)”。
E、接著在下面一個(gè)“字符串”文本框中輸入信息窗口要顯示的具體內(nèi)容,例如輸入“歡迎使用WINNT網(wǎng)絡(luò)”。
F、重新啟動(dòng)計(jì)算機(jī)后,再次登錄進(jìn)WINNT網(wǎng)絡(luò)時(shí),用戶將會(huì)看到自己在上面設(shè)置的內(nèi)容。
6、加速文件管理系統(tǒng)緩存
大家知道計(jì)算機(jī)的速度有很大一部分與內(nèi)存相關(guān),如果內(nèi)存容量大一點(diǎn),計(jì)算機(jī)運(yùn)行速度就會(huì)相應(yīng)快一點(diǎn)。但是假設(shè)在內(nèi)存一定的情況下,如何來(lái)提高計(jì)算機(jī)的運(yùn)行速度呢?這就是我們下面通過(guò)注冊(cè)表設(shè)置要實(shí)現(xiàn)的內(nèi)容,具體步驟如下:
A、在開始菜單欄中選擇運(yùn)行命令,在隨后打開的運(yùn)行對(duì)話框里輸入REGEDIT命令,從而打開注冊(cè)表編輯器。
B、在打開的注冊(cè)表編輯器中,依次展開以下的鍵值: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management]。
C、在編輯器右邊的列表框中,選擇“IoPageLockLimit”鍵值名稱,如果沒(méi)有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個(gè),并選擇所建數(shù)據(jù)類型為“DWORD”。
D、選擇指定的鍵值并雙擊,當(dāng)出現(xiàn)“字符串編輯器”對(duì)話框時(shí),在“字符串”文本框中輸入用戶需要的數(shù)值,系統(tǒng)默認(rèn)緩存為512K,其他的參考值如下:
RAM (MB) IoPageLockLimit 32 4096000 64 8192000 128 16384000 256+ 65536000
E、當(dāng)用戶重新啟動(dòng)計(jì)算機(jī)登錄WINNT時(shí),文件管理系統(tǒng)緩存將得到改善。
7、增加“關(guān)閉系統(tǒng)”按鈕
在NT計(jì)算機(jī)中,“關(guān)閉系統(tǒng)”按鈕作為缺省值在登陸對(duì)話框中提供,這個(gè)任務(wù)按鈕允許用戶不必先登陸即可關(guān)閉系統(tǒng)。在NT SERVER中雖然沒(méi)有這個(gè)功能,但可以通過(guò)修改注冊(cè)表,使系統(tǒng)在登陸對(duì)話框中增加一個(gè)“關(guān)閉系統(tǒng)”的按鈕,具體操作方法如下:
A、打開注冊(cè)表編輯器,并在編輯器中依次展開以下鍵值: [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONWINLOGON]。
B、在編輯器右邊的列表中用鼠標(biāo)選擇“SHUTDOWNWITHOUTLOGON”鍵值。
C、接著用鼠標(biāo)雙擊“SHUTDOWNWITHOUTLOGON”鍵值,編輯器就會(huì)彈出一個(gè)名為“字符串編輯器”的對(duì)話框,在該對(duì)話框的文本欄中輸入數(shù)值“1”,其中0代表取消“關(guān)閉系統(tǒng)”按鈕,1代表增加“關(guān)閉系統(tǒng)”按鈕。
D、退出后重新登錄,在登錄的界面中會(huì)增加一個(gè)“關(guān)閉系統(tǒng)”的按鈕。
8、在NT下創(chuàng)建一個(gè)鏡像集
A、先用Disk Administerator創(chuàng)建鏡像集的第一個(gè)分區(qū)表,選中該分區(qū),在另一個(gè)磁盤驅(qū)動(dòng)器內(nèi)的磁盤空間的未用區(qū)域上進(jìn)行Ctrl+鼠標(biāo)單擊操作,以把未用的磁盤區(qū)域和第一個(gè)分區(qū)均選上。
B、從Disk Ad ministor的Fault Tolerlance(容錯(cuò))菜單中選中Establish Mirror(建立鏡像 ),Disk Administor將在被選自由盤區(qū)外創(chuàng)建一個(gè)磁盤分區(qū)。該分區(qū)與原有分區(qū)一樣大,并包含原分區(qū)表上所有數(shù)據(jù)的備份。
C、如果要取消鏡像集(并非刪除鏡像集),即僅僅停止兩個(gè)分區(qū)之間的數(shù)據(jù)復(fù)制,只需從Disk Administor中選擇Fault Tolerance/Break Mirror。
9、登錄局域網(wǎng)超時(shí)自動(dòng)斷開
在登錄Windows NT網(wǎng)絡(luò)時(shí),有可能用戶不小心輸錯(cuò)了登錄參數(shù)或其他原因,導(dǎo)致了登錄網(wǎng)絡(luò)可能需要花費(fèi)好長(zhǎng)時(shí)間,這種情況是我們不想看到的。為了解決這種問(wèn)題,我們可以通過(guò)注冊(cè)表,來(lái)配置為閑置超時(shí)斷開,以分鐘為單位,具體步驟為:
A、打開注冊(cè)表編輯器,并在編輯器中依次展開以下鍵值: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]
B、在編輯器右邊的列表中用鼠標(biāo)選擇“AUTODISCONNECT”鍵值。
C、接著用鼠標(biāo)雙擊“AUTODISCONNECT”鍵值,編輯器就會(huì)彈出一個(gè)名為“字符串編輯器”的對(duì)話框,在該對(duì)話框的文本欄中輸入數(shù)值“1”,其中0代表取消自動(dòng)斷開功能,1代表使用自動(dòng)斷開功能。
D、退出后重新登錄網(wǎng)絡(luò),上述功能就會(huì)生效。
10、改變遠(yuǎn)程訪問(wèn)服務(wù)的缺省端口傳輸速度
Windows NT遠(yuǎn)程訪問(wèn)服務(wù)為每個(gè)RAS串行端口設(shè)置兩種BPS速度:載波BPS與聯(lián)接BPS速度,前者是指兩個(gè)Modem通過(guò)電話線傳輸數(shù)據(jù)的速度,后者則指Modem與主機(jī)串口間的數(shù)據(jù)傳輸速度;當(dāng)遠(yuǎn)程服務(wù)被啟動(dòng)時(shí),計(jì)算機(jī)首先將其聯(lián)接BPS速度值存放于System RootSystem32RASModem.INF文件中,以MAXC ARRIERBPS參數(shù)形式存放,然后將該值保存在RASSERIAL.INF文件中,以后每次進(jìn)行傳輸時(shí)對(duì)串口作初始化,只需改變SERIAL.INI文件,即可改變串口傳輸速度,具體操作方法如下:
A、將SERIAL.INI文件用編輯器打開。
B、將INITIALBPS參數(shù)改為自己所希望的數(shù)值。
C、將上述改動(dòng)保存成一個(gè)文件,文件名仍為SERIAL.INI。
D、打開“開始”菜單,并單擊“運(yùn)行”命令,在運(yùn)行欄中輸入RasAdmin命令。
E、從服務(wù)器菜單中選擇“Stop Remote Access Service”,再選擇“Start Remote Access Service”,上述設(shè)置就會(huì)生效。 自動(dòng)檢測(cè)慢網(wǎng)登陸
上面我們?cè)?jīng)說(shuō)過(guò),在登錄NT網(wǎng)絡(luò)時(shí)有可能很慢。同樣地,如果Windows NT檢測(cè)速度有困難,可以取消。具體實(shí)現(xiàn)步驟為:
A、打開注冊(cè)表編輯器,并在編輯器中依次展開以下鍵值:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]
B、在編輯器右邊的列表中用鼠標(biāo)選擇“SlowLinkDetectEnabled”鍵值,如果沒(méi)有該鍵值,必須新建一個(gè)DWORD值,名稱設(shè)置為“SlowLinkDetectEnabled”。
C、接著用鼠標(biāo)雙擊“SlowLinkDetectEnabled”鍵值,編輯器就會(huì)彈出一個(gè)名為“字符串編輯器”的對(duì)話框,在該對(duì)話框的文本欄中輸入數(shù)值“1”,其中0代表取消自動(dòng)檢測(cè)慢網(wǎng)登陸功能,1代表使用自動(dòng)檢測(cè)慢網(wǎng)登陸功能。
D、退出后重新登錄網(wǎng)絡(luò),上述設(shè)置就會(huì)起作用。
12、加快網(wǎng)絡(luò)傳輸速度
對(duì)于撥號(hào)用戶來(lái)說(shuō),時(shí)間就是金錢,怎樣才能節(jié)約時(shí)間,節(jié)省金錢呢?回答是提高網(wǎng)絡(luò)傳輸速度。那又如何提高網(wǎng)絡(luò)傳輸速度呢?大家知道,網(wǎng)絡(luò)速度主要是受網(wǎng)絡(luò)帶寬限制的。增加帶寬不是撥號(hào)用戶所能做到的,他們唯一能做的就是把調(diào)制解調(diào)器的傳輸速度能夠再提高一點(diǎn)。其實(shí)撥號(hào)用戶還可以從計(jì)算機(jī)本身運(yùn)行速度出發(fā),盡量能挖掘計(jì)算機(jī)在網(wǎng)絡(luò)加速方面最大的潛能。下面我們就通過(guò)一些設(shè)置來(lái)盡量加快網(wǎng)絡(luò)傳輸速度,具體設(shè)置如下:
A、在開始菜單欄中選擇運(yùn)行命令,在隨后打開的運(yùn)行對(duì)話框里輸入REGEDIT命令,從而打開注冊(cè)表編輯器。
B、在打開的注冊(cè)表編輯器中,依次展開以下的鍵值: [HKEY_LOCAL_MACHINESystemCurrent Control SetServicesClassNetTrans00n ],其中n表示個(gè)別拔號(hào)網(wǎng)絡(luò)連接項(xiàng)號(hào)碼。
C、在編輯器右邊的列表框中,選擇“MaxMTU”鍵值名稱,如果沒(méi)有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個(gè),并選擇所建數(shù)據(jù)類型為“DWORD”值。
D、選擇指定的鍵值并雙擊,當(dāng)出現(xiàn)“字符串編輯器”對(duì)話框時(shí),在“字符串”文本框中輸入“576”,576代表最大傳輸單元值。
E、接著在編輯器菜單欄中依次選擇“編輯”→“新增”→“字符串值”,右邊列表窗口就會(huì)多出一個(gè)新字符串,把它 命名為“MaxSSS”,再雙按這個(gè)字符串值并把它設(shè)定為“536”。
F、重新返回到編輯器的主操作界面,并依次展開如下鍵值: [HKEY_LOCAL_MACHINESystemCurrent Control SetServicesVxDMSTCP]。
G、按照上述同樣的操作方法,在編輯器右邊的列表中依次添加字符串值“DefaultRcvWindow”、 “DefaultTTL”,并且把它們的數(shù)值分別設(shè)置為“2144”,“64”。
H、當(dāng)用戶重新啟動(dòng)計(jì)算機(jī)登錄WINNT時(shí),上述所有的設(shè)置將會(huì)生效,這樣計(jì)算機(jī)將會(huì)發(fā)揮它在網(wǎng)絡(luò)加速方面最大的能量。
13、自動(dòng)登陸網(wǎng)絡(luò)
通常情況下,用戶在進(jìn)入WINNT網(wǎng)絡(luò)之前必須輸入自己的用戶名稱以及口令。但是WINNT也提供了啟動(dòng)時(shí)自動(dòng)以某一個(gè)組的用戶名稱和口令進(jìn)行訪問(wèn)WINNT,而不需要通過(guò)人工設(shè)置的方法來(lái)輸入登陸網(wǎng)絡(luò)的參數(shù)。要實(shí)現(xiàn)自動(dòng)登陸功能,必須要進(jìn)行如下配置:
A、打開注冊(cè)表編輯器,并在編輯器中依次展開以下鍵值:
[HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENT VERSIONWINLOGON]
B、用鼠標(biāo)單擊右邊的“AUTOADMINLOGON”鍵值名稱,編輯器就會(huì)彈出一個(gè)名為“字符串編輯器”的對(duì)話框,在該對(duì)話框的文本欄中輸入數(shù)值“1”。
C、接著再用鼠標(biāo)選擇右邊的“DEFAULTDOMAINNAME”鍵值名稱,并在隨后彈出的文本欄中輸入所要登陸的域名名稱或所要訪問(wèn)的計(jì)算機(jī)名稱,例如輸入“DOMAIN”域或“COM”計(jì)算機(jī)名稱,然后單擊“確定”按鈕。
D、按照同樣的操作方法,選擇右面的“DEFAULTUSERNAME”鍵值名稱,并在“字符串”文本框中輸入登陸網(wǎng)絡(luò)的用戶名稱,例如輸入管理員名稱“ADMINISTRATOR”,并單擊“確定”按鈕。
E、最后在注冊(cè)表編輯器中,用鼠標(biāo)單擊“編輯”菜單并在下拉菜單中選擇“新建鍵值”命令,然后在注冊(cè)表右邊的列表中,輸入鍵值名稱為“DEFAULTPASSWORD”,鍵值類型為“REG_SZ”,接著單擊“確定”按鈕。
F、 用鼠標(biāo)雙擊“DEFAULTPASSWORD”鍵值,在彈出的對(duì)話框中輸入用戶的密碼,在這里我們輸入系統(tǒng)管理員的口令作為登陸網(wǎng)絡(luò)的密碼,輸入完成后單擊“確定”按鈕結(jié)束設(shè)置工作。
G、 讓計(jì)算機(jī)重新啟動(dòng),缺省設(shè)置的用戶將會(huì)自動(dòng)登陸到指定的網(wǎng)絡(luò)中去。
如果用戶日后不再需要自動(dòng)登陸功能時(shí),只需要把“AUTOADMINLOGON”的鍵值改為數(shù)值“0”即可。
14、禁止光盤的自動(dòng)運(yùn)行功能
大家都很清楚每當(dāng)光盤放到計(jì)算機(jī)中時(shí),WINNT就會(huì)執(zhí)行自動(dòng)運(yùn)行功能,光盤中的應(yīng)用程序就會(huì)被自動(dòng)運(yùn)行,而我們?cè)趯?shí)際工作中有時(shí)不需要這項(xiàng)功能,那么如何屏蔽該功能呢。此時(shí),我們同樣可以修改注冊(cè)表使此功能失效,具體做法如下:
A、打開注冊(cè)表編輯器,并在編輯器中依次展開以下鍵值: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom] 。
B、在編輯器右邊的列表中用鼠標(biāo)選擇“AUTORUN”鍵值。
C、接著用鼠標(biāo)雙擊“AUTORUN”鍵值,編輯器就會(huì)彈出一個(gè)名為“字符串編輯器”的對(duì)話框,在該對(duì)話框的文本欄中輸入數(shù)值“0”,其中0代表“禁用”光盤的自動(dòng)運(yùn)行功能,1代表“啟用”光盤的自動(dòng)運(yùn)行功能。
D、設(shè)置好后,重新啟動(dòng)計(jì)算機(jī)就會(huì)使上述功能有效。
15、取消系統(tǒng)檢測(cè)串口,提高NT系統(tǒng)啟動(dòng)速度
計(jì)算機(jī)每次啟動(dòng)都會(huì)對(duì)計(jì)算機(jī)的硬件要重新檢測(cè)一遍,這需要花費(fèi)一定的時(shí)間,也因此就減慢了計(jì)算機(jī)的啟動(dòng)速度。在這里筆者向大家介紹一下通過(guò)一些設(shè)置來(lái)取消系統(tǒng)檢測(cè)串口,從而達(dá)到提高NT系統(tǒng)啟動(dòng)速度的目的,具體步驟如下:
A、在開始菜單中,用查找的方法將Boot.INI文件找出來(lái),然后將該文件的“只讀”屬性屏蔽掉,以便于我們?cè)谄渲羞M(jìn)行一些相關(guān)改動(dòng)。
B、接著用一個(gè)文本編輯器將Boot.INI文件打開,并修改[operating system]段的內(nèi)容,將其中每一行后加上NoserialMice參數(shù),如下所示:
修改Boot.INI文件,
……
[operating system]
multi(0) disk(0) rdisk(0)
partition(1)WINNT40="Windows NT
Workstation Version4.0"/NoSerialMice ……
C、把上述修改的內(nèi)容保存起來(lái),文件名仍為Boot.INI。
D、退出Windows NT,重新啟動(dòng)計(jì)算機(jī)后上述配置就會(huì)生效。
XP六條未公開的秘技
支持137 GB以上大硬盤
想要使用137 GB以上大硬盤,必須使用48位LBA模式。首先你的主板BIOS必須支持48Bit LBA,其次WinXP 家用版和專業(yè)版必須安裝SP1補(bǔ)丁。然后打開注冊(cè)表,在如下路徑“HKEY_LOCAL_MACHINE System CurrentControlSet Services Atapi Parameter”找到“EnableBigLba”選項(xiàng),將其值由“0”改為“1”。如果該項(xiàng)不存在,可以自建“DWORD值”項(xiàng)目,同樣設(shè)置.最后重新啟動(dòng)即可.
刪除共享文檔
如果你不需要共享文件,可以這樣移除它:進(jìn)入HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Explorer My computer Namespace DelegateFolders,刪除鍵值“”。
鎖定桌面
想要鎖定桌面不被別人肆意修改,可以使用很多工具例如TweakUI,不過(guò)其實(shí)在注冊(cè)表里進(jìn)行小小的改動(dòng)即可實(shí)現(xiàn):進(jìn)入HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Policies Explorer,建立DWORD值“NoDesktop”,將其值修改為“1”即可。
停用“上次訪問(wèn)時(shí)間標(biāo)記(Last Access Time Stamp)”
不想要這項(xiàng)功能,可以這樣修改:進(jìn)入HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control File system,新建DWORD值“NtfsDisableLastAccessUpdate”,將其值修改為“1”即可。
設(shè)置“遠(yuǎn)程訪問(wèn)連接服務(wù)器(RAS)”
需要的話可以這樣修改:進(jìn)入HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Winlogon,新建字符串值“KeepRasConnections”,將其值修改為“1”即可。
使用明文密碼(Lain Text Password)
訪問(wèn)UNIX或者LINUX服務(wù)器的時(shí)候,有時(shí)需要明文密碼這在XP下很容易實(shí)現(xiàn):找到“HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services lanmanworkstation parameter enableplaintextpassword”并將其值設(shè)置為“1”即可
控制面板
在Windows 2000的控制面板中有1 9個(gè)標(biāo)準(zhǔn)的應(yīng)用小程序( a p p l e t ),每一個(gè)應(yīng)用小程序都有
影響注冊(cè)表?xiàng)l目的能力(具有添加硬件和安裝軟件功能的系統(tǒng)還包括另外一些應(yīng)用小程序);
添加/刪除硬件系統(tǒng)H K E Y _ L O C A L _ M A C H I N E H A R D WA R E
添加/刪除程序系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
管理工具系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
日期/時(shí)間系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
顯示系統(tǒng)和用戶H K E Y _ L O C A L _ M A C H I N E S Y S T E M和HKEY _
CURRENT _ USER
文件夾選項(xiàng)系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
字體系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
I n t e r n e t選項(xiàng)系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
鍵盤系統(tǒng)和用戶H K E Y _ L O C A L _ M A C H I N E S O F T WA R E和HKEY _
CURRENT _ USER
鼠標(biāo)系統(tǒng)和用戶H K E Y _ L O C A L _ M A C H I N E S O F T WA R E和HKEY _
C U R R E N T _ U S E R
網(wǎng)絡(luò)和撥號(hào)連接系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
電話和調(diào)制解調(diào)器選項(xiàng)系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S Y S T E M
電源選項(xiàng)系統(tǒng)H K E Y _ L O C A L _ M A C H I N E H A R D WA R E
打印機(jī)系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S Y S T E M
區(qū)域設(shè)置系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S Y ST E M
任務(wù)計(jì)劃系統(tǒng)H K E Y _ L O C A L _ M A C H I N E S O FT WA R E
聲音和多媒體系統(tǒng)和用戶H K E Y _ L O C A L _ M A C H I N E S O F T WA R E和HKEY _C U R R E N T _ U S E R
系統(tǒng)系統(tǒng)和用戶H K E Y _ L O C A L _ M A C H I N E S OF T WA R E,HKEY _
L O C A L _ M A C H I N E S Y S T E M和HKEY_CURRENT_USER
以前,對(duì)于在Windows 2000或Windows XP上玩CS的人來(lái)說(shuō),是否開顯卡的垂直同步是個(gè)兩難的選擇。不開垂直同步可以得到更高的FPS,但畫面老是抖動(dòng),打時(shí)間長(zhǎng)了眼睛很累;開了垂直同步,F(xiàn)PS就肯定超不過(guò)60。但我相信還有很多朋友不知道該怎么辦,因此把解決辦法公布,希望能對(duì)大家有所幫助。
在Window 2000或XP下,開垂直同步后FPS超不過(guò)60的原因是:Window 2000或XP在這種情況下會(huì)把游戲中的FPS設(shè)定為Windows的缺省值60,再好的配置也沒(méi)用。
解決這個(gè)問(wèn)題的辦法很多,可以用第三方程序如PowerStrip等,但這種辦法需要外掛程序,可能不安全。最近,我終于找到最根本的解決辦法,就是在直接在注冊(cè)表里把Windows的缺省值改成100(或更高,只要你的顯示器支持就可以)。請(qǐng)千萬(wàn)注意:在修改注冊(cè)表前,一定要確認(rèn)你的顯示器在不同的分辨率下所支持的最高刷新頻率。比如,我的電腦在1024*768的分辨率下能達(dá)到100Hz的刷新頻率,我玩CS也是在這個(gè)分辨率下玩,所以,我才敢把Windows的缺省值設(shè)為100。另外也請(qǐng)注意,這樣修改完注冊(cè)表后,你電腦桌面的分辨率和刷新頻率也會(huì)被限定為這個(gè)數(shù)值。
修改注冊(cè)表的方法如下:
Open regedit and find this key:
運(yùn)行regedit命令進(jìn)入注冊(cè)表修改界面;
進(jìn)入[HKEY_LOCAL_MACHINEsystemCurentControlSetControlClass],打開"Class"鍵,你將看到一大排的鍵,類似于
{4D36E96E-E325-11CE....}
如果你選中其中一個(gè)鍵你將可以看到一些鍵值,如"Default"、"Class"等,并指明設(shè)備的種類,如"Modem", "Keyboards"等,逐個(gè)打開這些{4D36E96E-E325-11CE....}鍵,直到看到"Class"的鍵值是"Monitor"。好的,我們已經(jīng)找到控制顯示器的注冊(cè)信息了,接下來(lái)就是在這里面該缺省值了。
打開你剛找到的那個(gè)鍵,里面至少應(yīng)該有1個(gè)鍵,叫做"0000",這里也可能有其他的鍵,如"0001"、"0002"等。如果里面只有個(gè)"0000",那就簡(jiǎn)單了,你直接在"0000"里按下面的方法修改就可以了。如果有多個(gè)鍵,你就必須逐個(gè)找出來(lái)哪個(gè)鍵是控制你的顯示器的,方法是逐個(gè)鍵地按照下面說(shuō)的“修改缺省值的操作”進(jìn)行修改,修改后立即用下面說(shuō)的“檢查缺省值是否修改”的方法檢查,如果相符就說(shuō)明這個(gè)鍵是控制你顯示器的,否則就不是。
“修改缺省值的操作”方法:
打開"0000"或你找到的其他的鍵,你可以看到里面有個(gè)"MODES"鍵,打開它你將看到一個(gè)鍵顯示的是你的顯示器的最大分辨率,如"1600,1200",現(xiàn)在假設(shè)你要在1024*768的分辨率下達(dá)到100Hz的刷新率,那么操作如下:在"MODES"下增加一個(gè)鍵叫做"1024,768",在"1024,768"鍵里增加一個(gè)鍵叫做"Mode1",鍵值設(shè)為"100-100,100-100"。修改缺省值得操作完畢。
“檢查缺省值是否修改”的方法:
進(jìn)入"Display properties -> Setting",看分辨率是否為你設(shè)定的值,如果不是那么說(shuō)明你修改的那個(gè)類似于"0000"的鍵不是現(xiàn)在控制你顯示器的鍵,,如果分辨率是你設(shè)定的值(如1024*768),那么再進(jìn)"Advanced -> Monitor"里面看顯示器的刷新頻率是不是也是你設(shè)定的值,如果是,選中"Hide all unsupported modes"后你的刷新頻率應(yīng)該只有一個(gè)值可以選擇,就是你設(shè)定的值(如100Hz)。這說(shuō)明你修改得正確。
總結(jié):
修改后,你進(jìn)入游戲后無(wú)論游戲是用Direct3D還是OpenGL,你的FPS都可以超過(guò)60了。這個(gè)修改方法對(duì)Windows 2000和Windows XP都有效
注冊(cè)表對(duì)有的人還是比較陌生的,因?yàn)楝F(xiàn)在第三方軟件太多了,如優(yōu)化大師、魔法兔子等等,但個(gè)人覺得改善系統(tǒng)的第三方軟件還不夠完善,如果初級(jí)用戶使用不當(dāng),會(huì)出現(xiàn)嚴(yán)重的后果,所以提供這篇文章,希望大家多多學(xué)習(xí),本人能力有限,還希望大家多提寶貴意見:
一、注冊(cè)表的由來(lái)
PC機(jī)及其操作系統(tǒng)的一個(gè)特點(diǎn)就是允許用戶按照自己的要求對(duì)計(jì)算機(jī)系統(tǒng)的硬件和軟件進(jìn)行各種各樣的配置。早期的圖形操作系統(tǒng),如Win3.x中,對(duì)軟硬件工作環(huán)境的配置是通過(guò)對(duì)擴(kuò)展名為.ini的文件進(jìn)行修改來(lái)完成的,但I(xiàn)NI文件管理起來(lái)很不方便,因?yàn)槊糠N設(shè)備或應(yīng)用程序都得有自己的INI文件,并且在網(wǎng)絡(luò)上難以實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)。
為了克服上述這些問(wèn)題,在Windows 95及其后繼版本中,采用了一種叫做“注冊(cè)表”的數(shù)據(jù)庫(kù)來(lái)統(tǒng)一進(jìn)行管理,將各種信息資源集中起來(lái)并存儲(chǔ)各種配置信息。按照這一原則,Windows各版本中都采用了將應(yīng)用程序和計(jì)算機(jī)系統(tǒng)全部配置信息容納在一起的注冊(cè)表,用來(lái)管理應(yīng)用程序和文件的關(guān)聯(lián)、硬件設(shè)備說(shuō)明、狀態(tài)屬性以及各種狀態(tài)信息和數(shù)據(jù)等。
與INI文件不同的是:
1.注冊(cè)表采用了二進(jìn)制形式登錄數(shù)據(jù);
2.注冊(cè)表支持子鍵,各級(jí)子關(guān)鍵字都有自己的“鍵值”;
3.注冊(cè)表中的鍵值項(xiàng)可以包含可執(zhí)行代碼,而不是簡(jiǎn)單的字串;
4.在同一臺(tái)計(jì)算機(jī)上,注冊(cè)表可以存儲(chǔ)多個(gè)用戶的特性。
注冊(cè)表的特點(diǎn)有:
1.注冊(cè)表允許對(duì)硬件、系統(tǒng)參數(shù)、應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序進(jìn)行跟蹤配置,這使得修改某些設(shè)置后不用重新啟動(dòng)成為可能。
2.注冊(cè)表中登錄的硬件部分?jǐn)?shù)據(jù)可以支持高版本W(wǎng)indows的即插即用特性。當(dāng)Windows檢測(cè)到機(jī)器上的新設(shè)備時(shí),就把有關(guān)數(shù)據(jù)保存到注冊(cè)表中,另外,還可以避免新設(shè)備與原有設(shè)備之間的資源沖突。
3.管理人員和用戶通過(guò)注冊(cè)表可以在網(wǎng)絡(luò)上檢查系統(tǒng)的配置和設(shè)置,使得遠(yuǎn)程管理得以實(shí)現(xiàn)。
二、使用注冊(cè)表
1.大家可以在開始菜單中的運(yùn)行里輸入regedit
2.也可以在DOS下輸入regedit
三、注冊(cè)表根鍵說(shuō)明
hkey_classes_root 包含注冊(cè)的所有OLE信息和文檔類型,是從 hkey_local_machinesoftwareclasses復(fù)制的。
hkey_current_user 包含登錄的用戶配置信息,是從hkey_users當(dāng)前用戶子樹復(fù)制的。
hkey_local_machine 包含本機(jī)的配置信息。其中config子樹是顯示器打印機(jī)信息; enum子樹是即插即用設(shè)備信息;system子樹是設(shè)備驅(qū)動(dòng)程序和服務(wù)參數(shù)的控制集合;software子樹是應(yīng)用程序?qū)S迷O(shè)置。
hkey_users 所有登錄用戶信息。
hkey_current_config 包含常被用戶改變的部分硬件軟件配置,如字體設(shè)置、顯示器類型、打印機(jī)設(shè)置等。是從hkey_local_machineconfig復(fù)制的。
hkey_dyn_data 包含現(xiàn)在計(jì)算機(jī)內(nèi)存中保存的系統(tǒng)信息。
四、注冊(cè)表詳細(xì)內(nèi)容
Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionexploreruser shell folders 保存?zhèn)€人文件夾、收藏夾的路徑
Hkey_local_machinesystemcurrentControlSetcontrolkeyboard Layouts保存鍵盤使用的語(yǔ)言以及各種中文輸入法
Hkey_users.Defaultsoftwaremicrosoftinternet explorertypeURLs保存IE瀏覽器地址欄中輸入的URL地址列表信息。清除文檔菜單時(shí)將被清空。
Hkey_users.Defaultso..mi..wi..currentVersionex..menuOrderstartMenu 保留程序菜單排序信息
Hkey_users.Defaultso..microsoftwindowscurrentVersionexplorerRunMRU 保存“開始 * 運(yùn)行...“中運(yùn)行的程序列表信息。清除文檔菜單時(shí)將被清空。
Hkey_users.Defaultso..microsoftwindowscurrentVersionexplorerecentDocs 保存最近使用的十五個(gè)文檔的快捷方式(刪除掉可解決文檔名稱重復(fù)的毛病),清除文檔菜單時(shí)將被清空。
Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionuninstall 保存已安裝的Windows應(yīng)用程序卸載信息。
hkey_users.defaultsoftwaremicrosoftwindowscurrentVersionapplets 保存Windows應(yīng)用程序的紀(jì)錄數(shù)據(jù)。
Hkey_local_machinesystemCurrentControlSetservicesclass 保存控制面板-增添硬件設(shè)備-設(shè)備類型目錄。
Hkey_local_machinesystemCurrentControlSetcontrolupdate 立即刷新設(shè)置。值為00設(shè)置為自動(dòng)刷新,01設(shè)置為手工刷新[在資源管理器中按F5刷新]。
HKEY_CURRENT_USERControl PanelDesktop 新建串值名MenuShowDelay=0 可使“開始”菜單中子菜單的彈出速度提高。新建串值名MinAnimate,值為1啟動(dòng)動(dòng)畫效果開關(guān)窗口,值為0取消動(dòng)畫效果。
Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionrun 保存由控制面板設(shè)定的計(jì)算機(jī)啟動(dòng)時(shí)運(yùn)行程序的名稱,其圖標(biāo)顯示在任務(wù)條右邊。[啟動(dòng)文件夾程序運(yùn)行時(shí)圖標(biāo)也在任務(wù)條右邊]
hkey_users.defaultsoftwaremicrosoftwindowscurrentVersionrun保存由用戶設(shè)定的計(jì)算機(jī)啟動(dòng)時(shí)運(yùn)行程序的名稱,其圖標(biāo)顯示在任務(wù)條右側(cè)。
HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon 默認(rèn)圖片的圖標(biāo)。雙擊窗口右側(cè)的字符串,在打開的對(duì)話框中刪除原來(lái)的鍵值,輸入%1。重新啟動(dòng)后,在“我的電腦”中打開Windows目錄,選擇“大圖標(biāo)“,然后你看到的Bmp文件的圖標(biāo)再也不是千篇一律的畫板圖標(biāo)了,而是每個(gè)Bmp文件的略圖。
Hkey-local-machine software microsoft windows currentVersion Policies Ratings 保存IE4.0中文版“安全”*“分級(jí)審查”中設(shè)置的口令(數(shù)據(jù)加密)。
Hkey-local-machine software microsoft windows currentVersion explorer desktopnameSpace保存桌面中特殊的圖標(biāo),如回收站、收件箱、MS Network等。
五、如何備份注冊(cè)表
利用注冊(cè)表編輯器手工備份注冊(cè)表
注冊(cè)表編輯器(Regedit)是操作系統(tǒng)自帶的一款注冊(cè)表工具,通過(guò)它就能對(duì)注冊(cè)表進(jìn)行各種修改。當(dāng)然,"備份"與"恢復(fù)"注冊(cè)表自然是它的本能了。
(1)通過(guò)注冊(cè)表編輯器備份注冊(cè)表
由于修改注冊(cè)表有時(shí)會(huì)危及系統(tǒng)的安全,因此不管是WINDOWS 98還是WINDOWS 2000甚至WINDOWS XP,都把注冊(cè)表編輯器"藏"在了一個(gè)非常隱蔽的地方,要想"請(qǐng)"它出山,必須通過(guò)特殊的手段才行。點(diǎn)擊"開始"菜單,選擇菜單上的"運(yùn)行"選項(xiàng),在彈出的"運(yùn)行"窗口中輸入"Regedit"后,點(diǎn)擊"確定"按鈕,這樣就啟動(dòng)了注冊(cè)表編輯器。
點(diǎn)擊注冊(cè)表編輯器的"注冊(cè)表"菜單,再點(diǎn)擊"導(dǎo)出注冊(cè)表文件"選項(xiàng),在彈出的對(duì)話框中輸入文件名"regedit",將"保存類型"選為"注冊(cè)表文件",再將"導(dǎo)出范圍"設(shè)置為"全部",接下來(lái)選擇文件存儲(chǔ)位置,最后點(diǎn)擊"保存"按鈕,就可將系統(tǒng)的注冊(cè)表保存到硬盤上。
完成上述步驟后,找到剛才保存?zhèn)浞菸募哪莻€(gè)文件夾,就會(huì)發(fā)現(xiàn)備份好的文件已經(jīng)放在文件夾中了。
(2)在DOS下備份注冊(cè)表
當(dāng)注冊(cè)表?yè)p壞后,WINDOWS(包括"安全模式")無(wú)法進(jìn)入,此時(shí)該怎么辦呢?在純DOS環(huán)境下進(jìn)行注冊(cè)表的備份、恢復(fù)是另外一種補(bǔ)救措施,下面來(lái)看看在DOS環(huán)境下,怎樣來(lái)備份、恢復(fù)注冊(cè)表。
在純DOS下通過(guò)注冊(cè)表編輯器備份與恢復(fù)注冊(cè)表前面已經(jīng)講解了利用注冊(cè)表編輯器在WINDOWS環(huán)境下備份、恢復(fù)注冊(cè)表,其實(shí)"Regedit.exe"這個(gè)注冊(cè)表編輯器不僅能在WINDOWS環(huán)境中運(yùn)行,也能在DOS下使用。
雖然在DOS環(huán)境中的注冊(cè)表編輯器的功能沒(méi)有在WINDOWS環(huán)境中那么強(qiáng)大,但是也有它的獨(dú)到之處。比如說(shuō)通過(guò)注冊(cè)表編輯器在WINDOWS中備份了注冊(cè)表,可系統(tǒng)出了問(wèn)題之后,無(wú)法進(jìn)入WINDOWS,此時(shí)就可以在純DOS下通過(guò)注冊(cè)表編輯器來(lái)恢復(fù)注冊(cè)表。
應(yīng)該說(shuō)在DOS環(huán)境中備份注冊(cè)表的情況還是不多見的,一般在WINDOWS中備份就行了,不過(guò)在一些特殊的情況下,這種方式就顯得很實(shí)用了。
進(jìn)入DOS后,再進(jìn)入C盤的WINDOWS目錄,在該目錄的提示符下輸入"regedit"后按回車鍵,便能查看"regedit"的使用參數(shù)。
通過(guò)"Regedit"備份注冊(cè)表仍然需要用到"system.dat"和"user.dat"這兩個(gè)文件,而該程序的具體命令格式是這樣的:
Regedit /L:system /R:user /E filename.reg Regpath
參數(shù)含義:
/L:system指定System.dat文件所在的路徑。
/R:user指定User.dat文件所在的路徑。
/E:此參數(shù)指定注冊(cè)表編輯器要進(jìn)行導(dǎo)出注冊(cè)表操作,在此參數(shù)后面空一格,輸入導(dǎo)出注冊(cè)表的文件名。
Regpath:用來(lái)指定要導(dǎo)出哪個(gè)注冊(cè)表的分支,如果不指定,則將導(dǎo)出全部注冊(cè)表分支。在這些參數(shù)中,"/L:system"和"/R:user"參數(shù)是可選項(xiàng),如果不使用這兩個(gè)參數(shù),注冊(cè)表編輯器則認(rèn)為是對(duì)WINDOWS目錄下的"system.dat"和"user.dat"文件進(jìn)行操作。如果是通過(guò)從軟盤啟動(dòng)并進(jìn)入DOS,那么就必須使用"/L"和"/R"參數(shù)來(lái)指定"system.dat"和"user.dat"文件的具體路徑,否則注冊(cè)表編輯器將無(wú)法找到它們。
比如說(shuō),如果通過(guò)啟動(dòng)盤進(jìn)入DOS,則備份注冊(cè)表的命令是"Regedit /L:C:windows/R:C:windows/e regedit.reg",該命令的意思是把整個(gè)注冊(cè)表備份到WINDOWS目錄下,其文件名為"regedit.reg"。而如果輸入的是"regedit /E D:regedit.reg"這條命令,則是說(shuō)把整個(gè)注冊(cè)表備份到D盤的根目錄下(省略了"/L"和"/R"參數(shù)),其文件名為"Regedit.reg"。
(3)用注冊(cè)表檢查器備份注冊(cè)表
在DOS環(huán)境下的注冊(cè)表檢查器Scanreg.exe可以用來(lái)備份注冊(cè)表。
命令格式為:
Scanreg /backup /restore /comment
參數(shù)解釋:
/backup用來(lái)立即備份注冊(cè)表
/restore按照備份的時(shí)間以及日期顯示所有的備份文件
/comment在/restore中顯示同備份文件有關(guān)的部分
注意:在顯示備份的注冊(cè)表文件時(shí),壓縮備份的文件以.CAB文件列出,CAB文件的后面單詞是Started或者是NotStarted,Started表示這個(gè)文件能夠成功啟動(dòng)Windows,是一個(gè)完好的備份文件,NotStarted表示文件沒(méi)有被用來(lái)啟動(dòng)Windows,因此還不能夠知道是否是一個(gè)完好備份。
比如:如果我們要查看所有的備份文件及同備份有關(guān)的部分,命令如下:Scanreg /restore /comment
六、使用技巧
上面介紹的都是概念上的東東,下面讓我們實(shí)際操作吧
1.加快開機(jī)及關(guān)機(jī)速度
在[開始]#>[運(yùn)行]#>鍵入[Regedit]#>[HKEY_CURRENT_USER]#>[Control Panel]#>[Desktop],將字符串值[HungAppTimeout]的數(shù)值數(shù)據(jù)更改為[200],將字符串值[WaitToKillAppTimeout]的數(shù)值數(shù)據(jù)更改為1000.另外在[HKEY_LOCAL_MACHINE]#>[System]#>[CurrentControlSet]#>[Control],將字符串值[HungAppTimeout]的數(shù)值數(shù)據(jù)更改為[200],將字符串值[WaitToKillServiceTimeout]的數(shù)值數(shù)據(jù)更改1000
2.自動(dòng)關(guān)閉停止響應(yīng)程序
在[開始]#>[運(yùn)行]#>鍵入[Regedit]#>[HKEY_CURRENT_USER]#>[Control Panel]#>[Desktop],將字符串值[AutoEndTasks]的數(shù)值數(shù)據(jù)更改為1,重新啟動(dòng)即可
3.清除內(nèi)存內(nèi)被不使用的DLL文件
在[開始]#>[運(yùn)行]#>鍵入[Regedit]#>[HKKEY_LOCAL_MACHINE]#>[SOFTWARE]#>[Microsoft]#>[Windows]#>[CurrentVersion],在[Explorer]增加一個(gè)項(xiàng)[AlwaysUnloadDLL],默認(rèn)值設(shè)為1。注:如由默認(rèn)值設(shè)定為[0]則代表停用此功能
4.加快菜單顯示速度
在[開始]#>[運(yùn)行]#>鍵入[Regedit]#>[HKEY_CURRENT_USER]#>[Control Panel]#>[Desktop],將字符串值[MenuShowDelay]的數(shù)值數(shù)據(jù)更改為[0],調(diào)整后如覺得菜單顯示速度太快而不適應(yīng)者可將[MenuShowDelay]的數(shù)值數(shù)據(jù)更改為[200],重新啟動(dòng)即可
5.禁止修改用戶文件夾
找到HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer。如果要鎖定“圖片收藏”、“我的文檔”、“收藏夾”、“我的音樂(lè)”這些用戶文件夾的物理位置,分別把下面這些鍵設(shè)置成1:DisableMyPicturesDirChange,DisablePersonalDirChange,DisableFavoritesDirChange,DisableMyMusicDirChange
6.減小瀏覽局域網(wǎng)的延遲時(shí)間
和Windows 2000一樣,XP在瀏覽局域網(wǎng)時(shí)也存在煩人的延遲問(wèn)題,但介紹這個(gè)問(wèn)題的資料卻很難找到。如果你瀏覽一臺(tái)Win 9x的機(jī)器,例如,在網(wǎng)上鄰居的地址欄輸入“computername”,XP的機(jī)器會(huì)在它正在連接的機(jī)器上檢查“任務(wù)計(jì)劃”。這種搜索過(guò)程可能造成多達(dá)30秒的延遲。如果你直接打開某個(gè)共享資源,例如在網(wǎng)上鄰居的地址欄輸入“computernameshare”,就不會(huì)有這個(gè)延遲過(guò)程。要想避免XP搜索“任務(wù)計(jì)劃”的操作,提高瀏覽網(wǎng)絡(luò)的速度,你可以刪除HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerRemoteComputerNameSpace{D6277990-4C6A-11CF-8D87-00AA0060F5BF}子鍵。該鍵的類型是REG_SZ
7.屏蔽系統(tǒng)中的熱鍵
點(diǎn)擊“開始”→“運(yùn)行”,輸入Regedit,打開注冊(cè)表編輯器。然后依次打開到HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer,新建一個(gè)雙字節(jié)值,鍵名為“NoWindows Keys”,鍵值為“1”,這樣就可以禁止用戶利用系統(tǒng)熱鍵來(lái)執(zhí)行一些禁用的命令。如果要恢復(fù),只要將鍵值設(shè)為0或是將此鍵刪除即可
8.關(guān)閉不用的共享
安全問(wèn)題一直為大家所關(guān)注,為了自己的系統(tǒng)安全能夠有保證,某些不必要的共享還是應(yīng)該關(guān)閉的。用記事本編輯如下內(nèi)容的注冊(cè)表文件,保存為任意名字的.Reg文件,使用時(shí)雙擊即可關(guān)閉那些不必要的共享:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters]
"AutoShareServer"=dword:00000000
"AutoSharewks"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa]
"restrictanonymous"=dword:00000001
9.讓IE支持多線程下載
一般情況下,大家都使用多線程下載軟件如Flashget等下載文件,其實(shí)IE也可以支持多線程下載的,只是微軟將這個(gè)功能給藏了起來(lái)。我們把它給挖出來(lái)就可以使用了。打開注冊(cè)表編輯器,在注冊(cè)表HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings下新建雙字節(jié)值項(xiàng)“MaxConnectionsPerServer”,它決定了最大同步下載的連線數(shù)目,一般設(shè)定為5~8個(gè)連線數(shù)目比較好。另外,對(duì)于HTTP 1.0服務(wù)器,可以加入名為“MaxConnectionsPer1_0Server”的雙字節(jié)值項(xiàng),它也是用來(lái)設(shè)置最大同步下載的數(shù)目,也可以設(shè)定為5~8。
10.讓W(xué)INDOWS XP自動(dòng)登陸
打開:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon,在右邊的窗口中的新建字符串"AutoAdminlogon",并把他們的鍵值為"1",并且把“DefaultUserName”的值設(shè)置為用戶名,并且另外新建一個(gè)字符串值“DefaultPassword”,并設(shè)其值為用戶的密碼
七、我們來(lái)讓我們的系統(tǒng)瘦瘦身
刪除多余的虛擬光驅(qū)圖標(biāo)
當(dāng)我們?cè)谙到y(tǒng)中安裝了虛擬光驅(qū)后,“我的電腦”中就會(huì)多出一個(gè)光盤圖標(biāo),即便日后你不再使用虛擬光驅(qū),虛擬光驅(qū)圖標(biāo)還會(huì)繼續(xù)保留,實(shí)在沒(méi)有必要。我們動(dòng)手來(lái)刪除這個(gè)多余的虛擬光驅(qū)圖標(biāo):?jiǎn)螕簟伴_始→運(yùn)行”,輸入“regedit”,按下“確定”鍵后打開注冊(cè)表編輯器,依次展開HKEY_LOCAL_MACHINEEnumSCSI分支,在SCSI子鍵下通常有兩個(gè)子鍵,它們分別對(duì)應(yīng)著虛擬光驅(qū)和物理光驅(qū),把SCSI下的子鍵全部刪除,重新啟動(dòng)電腦后虛擬光驅(qū)圖標(biāo)就會(huì)被刪除。
刪除多余的系統(tǒng)級(jí)圖標(biāo)
系統(tǒng)級(jí)圖標(biāo)是指在安裝Windows時(shí)由系統(tǒng)自動(dòng)創(chuàng)建的圖標(biāo),如回收站、收件箱、網(wǎng)上鄰居等,其中有些圖標(biāo)對(duì)用戶來(lái)說(shuō)并無(wú)用處,但這些圖標(biāo)無(wú)法直接刪除。打開注冊(cè)表編輯器,依次展開HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion
explorerDesktopNameSpace分支,然后刪除不需要的子鍵。關(guān)閉注冊(cè)表編輯器,重新啟動(dòng)電腦后,你會(huì)發(fā)現(xiàn)桌面上不需要的系統(tǒng)級(jí)圖標(biāo)已經(jīng)消失了。
刪除“運(yùn)行”中多余的選項(xiàng)
如果你多次使用“開始→運(yùn)行”菜單,會(huì)發(fā)現(xiàn)它的“打開”窗口被一大堆不再需要的命令弄得凌亂不堪。打開注冊(cè)表編輯器,依次展開HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersion
ExplorerRunMRU分支,將右側(cè)窗口的相關(guān)鍵值刪除即可。
刪除“查找”中多余的選項(xiàng)
依次展開HKEY_USER.DefaultSoftwareMicrosoftWindowsCurrentVersion
ExplorerDoc-FindSpecMRU分支,將右側(cè)窗口中的相關(guān)鍵值刪除即可。
刪除多余的鍵盤布局
Windows試圖成為世界的寵兒,因此其鍵盤布局適合于各國(guó)各類人的使用習(xí)慣。打開注冊(cè)表編輯器,依次展開HKEY_LOCAL_MACHINESystemCurrentControlSetControl
KeyboardLayouts分支,我們可以看到該分支下保存了西班牙語(yǔ)(傳統(tǒng))、丹麥語(yǔ)、德語(yǔ)(標(biāo)準(zhǔn))等多種鍵盤布局,如果你用不到這些語(yǔ)言的鍵盤布局,完全可以直接刪除這些子鍵。
刪除多余的區(qū)域設(shè)置
與上述鍵盤布局相類似的還有Windows的區(qū)域設(shè)置,在注冊(cè)表編輯器中展開HKEY_LOCAL_MACHINESystemCurrentControlSetControl
NlsLocale分支,簡(jiǎn)體中文使用者完全可以只保留“00000804”鍵值,其他可以毫不留情地刪除。
1)邏輯與/或:AND、OR
注意AND、OR必須大寫,否則會(huì)被認(rèn)為是普通的單詞,而不是搜索指令。
與普通編程語(yǔ)言不一樣的是,OR指令優(yōu)先于AND指令。
簡(jiǎn)寫:AND指令一般以空格代替,不明確寫出。另外AND指令還可以用+代替。OR指令可用|代替。
樣例:Inverted OR Signature files OR file OR index,它等同于 (Inverted OR Signature) (files OR file OR index)
2)邏輯非:-
樣例:搜索引擎 歷史 -文化 -中國(guó)歷史 -世界歷史
3)完整匹配:"…"
樣例:"world war I" 表示搜索一次世界大戰(zhàn)。
4)通配符:*?
與我們通常的習(xí)慣一致,“*”代表一連串字符,“?”代表單個(gè)字符。
樣例:progr?m
提示:不要指望Google可用通過(guò)progr?m搜索到program,因?yàn)閜rogr和m分別被當(dāng)作一個(gè)獨(dú)立的單詞,并且這兩個(gè)單詞之間允許出現(xiàn)一個(gè)字符,如此而已。
5)site: 在某個(gè)網(wǎng)站或域名下搜索
樣例:搜索引擎 技巧 site:edu.cn
這表示要在中文教育科研網(wǎng)站(edu.cn)上關(guān)于搜索引擎技巧的頁(yè)面。
6)filetype: 搜索某種類型的文件
樣例:filetype:pdf
這表示只搜索pdf文件。
7)in指令: 位置關(guān)鍵詞查找。
intitle: 在網(wǎng)頁(yè)標(biāo)題中查找。這通常對(duì)討論比較多的熱門話題很有效。例如:intitle:"GeForce 7800"+測(cè)試
allintitle: 該指令屬于排他指令,不能與其他指令混用。
例如:allintitile:"GeForce 7800" 測(cè)試 與 intitle:"GeForce 7800"+測(cè)試 的含義一致。但是,allintitile是排他的,不能加上其他非intitle方面的限制條件。
注意:在這里,你會(huì)發(fā)現(xiàn)用+代替AND指令是很有意思的。如果沒(méi)有+指令,我們就需要寫:intitle:"GeForce 7800" intitle:測(cè)試,因?yàn)镚oogle不支持這樣的寫法:intitle:("GeForce 7800" 測(cè)試)
inurl: 在網(wǎng)頁(yè)的url地址中查找。例如:inurl:dowload 表示查找url中包含download的網(wǎng)頁(yè)。
allinurl: inurl的排他指令。
inanchor: 在網(wǎng)頁(yè)的鏈接錨中查找。
需要注意區(qū)別于inurl:inurl是網(wǎng)頁(yè)本身的url地址,而inanchor是在外部用于指向該url地址的文本(<a>…</a>之間文本)中找。
例如:inanchor:download,你可能會(huì)發(fā)現(xiàn)有
FlashGet最佳的下載管理程式,而該頁(yè)面中根本就沒(méi)有download字樣。
allinanchor: inanchor的排他指令。
intext: 在正文中檢索。
allintext: intext的排他指令。
8)link: 搜索所有鏈接到某個(gè)URL地址的網(wǎng)頁(yè)
最重要的用途:迅速判斷一個(gè)網(wǎng)頁(yè)的“熱度”。
例如:link:www.newhua.com 表示所有指向“華軍軟件園”外部鏈接。
注意:和其他指令類似,link:和url之間不能有空格。之所以特別指出這一點(diǎn),是因?yàn)榫W(wǎng)上有教程說(shuō)link和allinurl等一樣,是排他指令,中間可以有空格。我不太了解Google搜索指令的發(fā)展歷史,只能猜測(cè)曾經(jīng)如此。
9)related: 尋找某網(wǎng)頁(yè)的“類似網(wǎng)頁(yè)”。
例如:related:www.newhua.com 表示找和“華軍軟件園”類似的網(wǎng)頁(yè)。
這條指令其實(shí)Google自己用得很廣泛,只是可能沒(méi)有引起你的注意罷了。在Google的每條搜索結(jié)果中,均有一個(gè)“類似網(wǎng)頁(yè)”的鏈接。就是它了。
10)cache: 網(wǎng)頁(yè)快照(略)。
11)daterange: 據(jù)說(shuō)可以限定網(wǎng)頁(yè)的更新時(shí)間。但是我沒(méi)有試出來(lái)。
12)數(shù)值范圍:..
例如:數(shù)碼相機(jī) 600..900 萬(wàn)像素 3000..4000 元
注意:“900”與“萬(wàn)”之間必須有空格。
<taglib>
???? <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
???? <taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
1.c:catch
?? <c:catch var="abccba">
?? <%=1/0 %>
?? </c:catch>
${abccba }
2.c:chose
<c:choose>
<c:when test="true">
?? ${"正確" }
</c:when>
<c:otherwise>
?? ${"錯(cuò)誤" }
</c:otherwise>
</c:choose>
3.c:foreach
<c:forEach items="list" var="x" begin="0" end="10" step="2"?? varState="sate">
<c:out value="${x}"/>
<c:out value="${x * x}"/>
</c:forEach>
其中:state.*** 代表下面的意思:
current getCurrent() 當(dāng)前這次迭代的(集合中的)項(xiàng)??
index getIndex() 當(dāng)前這次迭代從 0 開始的迭代索引??
count getCount() 當(dāng)前這次迭代從 1 開始的迭代計(jì)數(shù)??
first isFirst() 用來(lái)表明當(dāng)前這輪迭代是否為第一次迭代的標(biāo)志??
last isLast() 用來(lái)表明當(dāng)前這輪迭代是否為最后一次迭代的標(biāo)志??
begin getBegin() begin 屬性值??
end getEnd() end 屬性值??
step getStep() step 屬性值??
4.c:forTokens
同forEach 它主要是用來(lái)處理 字符串,之間用逗號(hào)或者什么其他符號(hào)分割的,
<c:forTokens items="a,a,a,a,a" delims = "," var="x" begin="0" end="10" step="2"?? varState="sate">
5.c:if
<c:if test="true" var= "var" scope="session">
var 可以定義一個(gè) test 的值,并且用 scope 設(shè)置這個(gè)變量的生命周期
6.c:out
<c:out?? value="df" default= "" escapeXml="true">
default ,當(dāng) value 出現(xiàn) null 值時(shí)候用的默認(rèn)值
escapeXml,是否轉(zhuǎn)換 HTML 格式的文字
<taglib>
???????? <taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
???????? <taglib-location>/WEB-INF/fn.tld</taglib-location>
</taglib>
長(zhǎng)度函數(shù): fn:length
字符串處理函數(shù): fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、 fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、 fn:startsWith 、 fn:substring 、 fn:substringAfter 、 fn:substringBefore 、 fn:toLowerCase 、 fn:toUpperCase 、 fn:trim
JSP 頁(yè)面上:
<%@ taglib uri="/WEB-INF/fn.tld" prefix="fn" %>
${fn:toUpperCase("sdjkhjshjhjd") }
這個(gè)例子將輸出 這些字母的大寫字母
一.長(zhǎng)度函數(shù) fn:length 函數(shù)
長(zhǎng)度函數(shù) fn:length 的出現(xiàn)有重要的意義。在 JSTL1.0 中,有一個(gè)功能被忽略了,那就是對(duì)集合的長(zhǎng)度取值。雖然 java.util.Collection 接口定義了 size 方法,但是該方法不是一個(gè)標(biāo)準(zhǔn)的 JavaBean 屬性方法(沒(méi)有 get,set 方法),因此,無(wú)法通過(guò) EL 表達(dá)式“ ${collection.size} ”來(lái)輕松取得。
fn:length 函數(shù)正是為了解決這個(gè)問(wèn)題而被設(shè)計(jì)出來(lái)的。它的參數(shù)為 input ,將計(jì)算通過(guò)該屬性傳入的對(duì)象長(zhǎng)度。該對(duì)象應(yīng)該為集合類型或 String 類型。其返回結(jié)果是一個(gè) int 類型的值。下面看一個(gè)示例。
<%ArrayList arrayList1 = new ArrayList();
????????????????????????????arrayList1.add("aa");
????????????????????????????arrayList1.add("bb");
????????????????????????????arrayList1.add("cc");
%>
<%request.getSession().setAttribute("arrayList1", arrayList1);%>
${fn:length(sessionScope.arrayList1)}
假設(shè)一個(gè) ArrayList 類型的實(shí)例“ arrayList1 ”,并為其添加三個(gè)字符串對(duì)象,使用 fn:length 函數(shù)后就可以取得返回結(jié)果為“ 3 ”。
二.判斷函數(shù) fn:contains 函數(shù)
fn:contains 函數(shù)用來(lái)判斷源字符串是否包含子字符串。它包括 string 和 substring 兩個(gè)參數(shù),它們都是 String 類型,分布表示源字符串和子字符串。其返回結(jié)果為一個(gè) boolean 類型的值。下面看一個(gè)示例。
${fn:contains("ABC", "a")}<br>
${fn:contains("ABC", "A")}<br>
前者返回“ false ”,后者返回“ true ”。
三.fn:containsIgnoreCase 函數(shù)
fn:containsIgnoreCase 函數(shù)與 fn:contains 函數(shù)的功能差不多,唯一的區(qū)別是 fn:containsIgnoreCase 函數(shù)對(duì)于子字符串的包含比較將忽略大小寫。它與 fn:contains 函數(shù)相同,包括 string 和 substring 兩個(gè)參數(shù),并返回一個(gè) boolean 類型的值。下面看一個(gè)示例。
${fn:containsIgnoreCase("ABC", "a")}<br>
${fn:containsIgnoreCase("ABC", "A")}<br>
前者和后者都會(huì)返回“ true ”。
四.詞頭判斷函數(shù) fn:startsWith 函數(shù)
fn:startsWith 函數(shù)用來(lái)判斷源字符串是否符合一連串的特定詞頭。它除了包含一個(gè) string 參數(shù)外,還包含一個(gè) subffx 參數(shù),表示詞頭字符串,同樣是 String 類型。該函數(shù)返回一個(gè) boolean 類型的值。下面看一個(gè)示例。
${fn:startsWith ("ABC", "ab")}<br>
${fn:startsWith ("ABC", "AB")}<br>
前者返回“ false ”,后者返回“ true ”。
五.詞尾判斷函數(shù) fn:endsWith 函數(shù)
fn:endsWith 函數(shù)用來(lái)判斷源字符串是否符合一連串的特定詞尾。它與 fn:startsWith 函數(shù)相同,包括 string 和 subffx 兩個(gè)參數(shù),并返回一個(gè) boolean 類型的值。下面看一個(gè)示例。
${fn:endsWith("ABC", "bc")}<br>
${fn:endsWith("ABC", "BC")}<br>
前者返回“ false ”,后者返回“ true ”。
六.字符實(shí)體轉(zhuǎn)換函數(shù)fn:escapeXml 函數(shù)
fn:escapeXml 函數(shù)用于將所有特殊字符轉(zhuǎn)化為字符實(shí)體碼。它只包含一個(gè) string 參數(shù),返回一個(gè) String 類型的值。
七.字符匹配函數(shù) fn:indexOf 函數(shù)
fn:indexOf 函數(shù)用于取得子字符串與源字符串匹配的開始位置,若子字符串與源字符串中的內(nèi)容沒(méi)有匹配成功將返回“ -1 ”。它包括 string 和 substring 兩個(gè)參數(shù),返回結(jié)果為 int 類型。下面看一個(gè)示例。
${fn:indexOf("ABCD","aBC")}<br>
${fn:indexOf("ABCD","BC")}<br>
前者由于沒(méi)有匹配成功,所以返回 -1 ,后者匹配成功將返回位置的下標(biāo),為 1 。
八.分隔符函數(shù) fn:join 函數(shù)
fn:join 函數(shù)允許為一個(gè)字符串?dāng)?shù)組中的每一個(gè)字符串加上分隔符,并連接起來(lái)。它的參數(shù)、返回結(jié)果和描述如表 9.25 所示:
表 9.25 fn:join 函數(shù)
參數(shù) |
描述 |
array |
字符串?dāng)?shù)組。其類型必須為 String[] 類型 |
separator |
分隔符。其類型必須為 String 類型 |
返回結(jié)果 |
返回一個(gè) String 類型的值 |
下面看一個(gè)示例。
<% String[] stringArray = {"a","b","c"}; %>
<%request.getSession().setAttribute("stringArray", stringArray);%>
${fn:join(sessionScope.stringArray,";")}<br>
定義數(shù)組并放置到 Session 中,然后通過(guò) Session 得到該字符串?dāng)?shù)組,使用 fn:join 函數(shù)并傳入分隔符“ ; ”,得到的結(jié)果為“ a;b;c ”。
九.替換函數(shù) fn:replace 函數(shù)
fn:replace 函數(shù)允許為源字符串做替換的工作。它的參數(shù)、返回結(jié)果和描述如表 9.26 所示:
表 9.26 fn:replace 函數(shù)
參數(shù) |
描述 |
inputString |
源字符串。其類型必須為 String 類型 |
beforeSubstring |
指定被替換字符串。其類型必須為 String 類型 |
afterSubstring |
指定替換字符串。其類型必須為 String 類型 |
返回結(jié)果 |
返回一個(gè) String 類型的值 |
下面看一個(gè)示例。
${fn:replace("ABC","A","B")}<br>
將“ ABC ”字符串替換為“ BBC ”,在“ ABC ”字符串中用“ B ”替換了“ A ”。
十.分隔符轉(zhuǎn)換數(shù)組函數(shù) fn:split 函數(shù)
fn:split 函數(shù)用于將一組由分隔符分隔的字符串轉(zhuǎn)換成字符串?dāng)?shù)組。它的參數(shù)、返回結(jié)果和描述如表 9.27 所示:
表 9.27 fn:split 函數(shù)
參數(shù) |
描述 |
string |
源字符串。其類型必須為 String 類型 |
delimiters |
指定分隔符。其類型必須為 String 類型 |
返回結(jié)果 |
返回一個(gè) String[] 類型的值 |
下面看一個(gè)示例。
${fn:split("A,B,C",",")}<br>
將“ A,B,C ”字符串轉(zhuǎn)換為數(shù)組 {A,B,C} 。
十一.字符串截取函數(shù) fn:substring 函數(shù)
fn:substring 函數(shù)用于截取字符串。它的參數(shù)、返回結(jié)果和描述如表 9.28 所示:
表 9.28 fn:substring 函數(shù)
參數(shù) |
描述 |
string |
源字符串。其類型必須為 String 類型 |
beginIndex |
指定起始下標(biāo)(值從 0 開始)。其類型必須為 int 類型 |
endIndex |
指定結(jié)束下標(biāo)(值從 0 開始)。其類型必須為 int 類型 |
返回結(jié)果 |
返回一個(gè) String 類型的值 |
下面看一個(gè)示例。
${fn:substring("ABC","1","2")}<br>
截取結(jié)果為“ B ”。
十二.起始到定位截取字符串函數(shù) fn:substringBefore 函數(shù)
fn:substringBefore 函數(shù)允許截取源字符從開始到某個(gè)字符串。它的參數(shù)和 fn:substringAfter 函數(shù)相同,不同的是 substring 表示的是結(jié)束字符串。下面看一個(gè)示例。
${fn:substringBefore("ABCD","BC")}<br>
截取的結(jié)果為“ A ”。
十三.小寫轉(zhuǎn)換函數(shù) fn:toLowerCase 函數(shù)
fn:toLowerCase 函數(shù)允許將源字符串中的字符全部轉(zhuǎn)換成小寫字符。它只有一個(gè)表示源字符串的參數(shù) string ,函數(shù)返回一個(gè) String 類型的值。下面看一個(gè)示例。
${fn:toLowerCase("ABCD")}<br>
轉(zhuǎn)換的結(jié)果為“ abcd ”。
十四.大寫轉(zhuǎn)換函數(shù) fn:toUpperCase 函數(shù)
fn:toUpperCase 函數(shù)允許將源字符串中的字符全部轉(zhuǎn)換成大寫字符。它與 fn:toLowerCase 函數(shù)相同,也只有一個(gè) String 參數(shù),并返回一個(gè) String 類型的值。下面看一個(gè)示例。
${fn:toUpperCase("abcd")}<br>
轉(zhuǎn)換的結(jié)果為“ ABCD ”。
十五.空格刪除函數(shù) fn:trim 函數(shù)
fn:trim 函數(shù)將刪除源字符串中結(jié)尾部分的“空格”以產(chǎn)生一個(gè)新的字符串。它與 fn:toLowerCase 函數(shù)相同,只有一個(gè) String 參數(shù),并返回一個(gè) String 類型的值。下面看一個(gè)示例。
${fn:trim("AB C ")}D<br>
轉(zhuǎn)換的結(jié)果為“ AB CD ”,注意,它將只刪除詞尾的空格而不是全部,因此“ B ”和“ C ”之間仍然留有一個(gè)空格。
posted @
2007-09-12 11:13 jadmin 閱讀(1128) |
評(píng)論 (0) |
編輯 收藏
fmt:formatNumber
fmt:parseNumber
fmt:formatDate
fmt:parseDate??
剩下幾個(gè) 關(guān)于 國(guó)際標(biāo)準(zhǔn)化的標(biāo)簽的話這里就不做介紹了,有興趣的朋友可以和我交流一下
fmt:setLocale
fmt:timeZone
fmt:setTimeZone
fmt:bundle
fmt:setBundle
fmt:message
fmt:param
還有一個(gè)字符型 標(biāo)簽 fmt:requestEncoding 的話,因?yàn)橄裎乙话愕脑挾荚?JSP 頂部已經(jīng)設(shè)置過(guò)了,個(gè)人感覺用處也不是很大
<fmt:formatDate value="<%=new Date() %>" pattern="yyyy年MM月dd日HH點(diǎn)mm分ss秒" />
<fmt:parseDate value="2008-8-8" pattern="yyyy-MM-dd" var = "abccba" scope="session" />
第一個(gè) 用來(lái)進(jìn)行 DATE 型數(shù)據(jù)的格式化輸出,字母代表什么意思上面的例子中已經(jīng)寫的很清楚了
第二個(gè) 主要是把 Pattern樣式的String 類型的數(shù)據(jù)轉(zhuǎn)換成 Date 類型
<fmt:formatNumber value="123.123456789" pattern="0.00"/>
用來(lái)將 數(shù)字進(jìn)行 格式化輸出,上面的例子中就是保留兩位有效小數(shù)
fmt:parseNumber?? 同 fmt:parseDate 這里就不做介紹了
net start mysql???????????? 啟動(dòng)數(shù)據(jù)庫(kù)
net start mysql???????????? 關(guān)閉數(shù)據(jù)庫(kù)
mysql -u用戶名 -p密碼?????? 連接數(shù)據(jù)庫(kù)
show databases?????????????? 找出服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫(kù)
一、連接MYSQL。
格式: mysql -h主機(jī)地址 -u用戶名 -p用戶密碼
1、例1:連接到本機(jī)上的MYSQL。
首先在打開DOS窗口,然后進(jìn)入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車后提示你輸密碼,如果剛安裝好MYSQL,超級(jí)用戶root
是沒(méi)有密碼的,故直接回車即可進(jìn)入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:連接到遠(yuǎn)程主機(jī)上的MYSQL。假設(shè)遠(yuǎn)程主機(jī)的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令: exit (回車)
二、修改密碼。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
1、例1:給root加個(gè)密碼ab12。首先在DOS下進(jìn)入目錄mysqlbin,然后鍵入以下命令
mysqladmin -uroot -password ab12
注:因?yàn)殚_始時(shí)root沒(méi)有密碼,所以-p舊密碼一項(xiàng)就可以省略了。
2、例2:再將root的密碼改為djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用戶。(注意:和上面不同,下面的因?yàn)槭荕YSQL環(huán)境中的命令,所以后面都帶一個(gè)分號(hào)作為命令結(jié)束符)
格式:grant select on 數(shù)據(jù)庫(kù).* to 用戶名@登錄主機(jī) identified by \"密碼\"
例1、增加一個(gè)用戶test1密碼為abc,讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫(kù)有查詢、插入、修改、刪除的權(quán)限。首先用以root用戶
連入MYSQL,然后鍵入以下命令:
grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";
但例1增加的用戶是十分危險(xiǎn)的,你想如某個(gè)人知道test1的密碼,那么他就可以在internet上的任何一臺(tái)電腦上登錄你的mysql數(shù)據(jù)庫(kù)并對(duì)
你的數(shù)據(jù)可以為所欲為了,解決辦法見例2。
例2、增加一個(gè)用戶test2密碼為abc,讓他只可以在localhost上登錄,并可以對(duì)數(shù)據(jù)庫(kù)mydb進(jìn)行查詢、插入、修改、刪除的操作
(localhost指本地主機(jī),即MYSQL數(shù)據(jù)庫(kù)所在的那臺(tái)主機(jī)),這樣用戶即使用知道test2的密碼,他也無(wú)法從internet上直接訪問(wèn)數(shù)據(jù)庫(kù),
只能通過(guò)MYSQL主機(jī)上的web頁(yè)來(lái)訪問(wèn)了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";
如果你不想test2有密碼,可以再打一個(gè)命令將密碼消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";
在上篇我們講了登錄、增加用戶、密碼更改等問(wèn)題。下篇我們來(lái)看看MYSQL中有關(guān)數(shù)據(jù)庫(kù)方面的操作。注意:你必須首先登錄到MYSQL中,
以下操作都是在MYSQL的提示符下進(jìn)行的,而且每個(gè)命令以分號(hào)結(jié)束。
一、操作技巧
1、如果你打命令時(shí),回車后發(fā)現(xiàn)忘記加分號(hào),你無(wú)須重打一遍命令,只要打個(gè)分號(hào)回車就可以了。也就是說(shuō)你可以把一個(gè)完整的命令分成
幾行來(lái)打,完后用分號(hào)作結(jié)束標(biāo)志就OK。
2、你可以使用光標(biāo)上下鍵調(diào)出以前的命令。但以前我用過(guò)的一個(gè)MYSQL舊版本不支持。我現(xiàn)在用的是mysql-3.23.27-beta-win。
二、顯示命令
1、顯示數(shù)據(jù)庫(kù)列表。
show databases;
剛開始時(shí)才兩個(gè)數(shù)據(jù)庫(kù):mysql和test。mysql庫(kù)很重要它里面有MYSQL的系統(tǒng)信息,我們改密碼和新增用戶,實(shí)際上就是用這個(gè)庫(kù)進(jìn)行操作
。
2、顯示庫(kù)中的數(shù)據(jù)表:
use mysql; //打開庫(kù),學(xué)過(guò)FOXBASE的一定不會(huì)陌生吧
show tables;
3、顯示數(shù)據(jù)表的結(jié)構(gòu):
describe 表名;
4、建庫(kù):
create database 庫(kù)名;
5、建表:
use 庫(kù)名;
create table 表名 (字段設(shè)定列表);
6、刪庫(kù)和刪表:
drop database 庫(kù)名;
drop table 表名;
7、將表中記錄清空:
delete from 表名;
8、顯示表中的記錄:
select * from 表名;
三、一個(gè)建庫(kù)和建表以及插入數(shù)據(jù)的實(shí)例
drop database if exists school; //如果存在SCHOOL則刪除
create database school; //建立庫(kù)SCHOOL
use school; //打開庫(kù)SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表結(jié)束
//以下為插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
注:在建表中(1)將ID設(shè)為長(zhǎng)度為3的數(shù)字字段:int(3)并讓它每個(gè)記錄自動(dòng)加一:auto_increment并不能為空:not null而且讓他成為主字
段primary key(2)將NAME設(shè)為長(zhǎng)度為10的字符字段(3)將ADDRESS設(shè)為長(zhǎng)度50的字符字段,而且缺省值為深圳。varchar和char有什么區(qū)
別呢,只有等以后的文章再說(shuō)了。(4)將YEAR設(shè)為日期字段。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調(diào)試。你可以將以上命令原樣寫入一個(gè)文本文件中假設(shè)為school.sql,然后復(fù)制到
c:\\下,并在DOS狀態(tài)進(jìn)入目錄\\mysql\\bin,然后鍵入以下命令:
mysql -uroot -p密碼 < c:\\school.sql
如果成功,空出一行無(wú)任何顯示;如有錯(cuò)誤,會(huì)有提示。(以上命令已經(jīng)調(diào)試,你只要將//的注釋去掉即可使用)。
四、將文本數(shù)據(jù)轉(zhuǎn)到數(shù)據(jù)庫(kù)中
1、文本數(shù)據(jù)應(yīng)符合的格式:字段數(shù)據(jù)之間用tab鍵隔開,null值用\\n來(lái)代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、數(shù)據(jù)傳入命令 load data local infile \"文件名\" into table 表名;
注意:你最好將文件復(fù)制到\\mysql\\bin目錄下,并且要先用use命令打表所在的庫(kù)。
五、備份數(shù)據(jù)庫(kù):(命令在DOS的\\mysql\\bin目錄下執(zhí)行)
mysqldump --opt school>school.bbb
注釋:將數(shù)據(jù)庫(kù)school備份到school.bbb文件,school.bbb是一個(gè)文本文件,文件名任取,打開看看你會(huì)有新發(fā)現(xiàn)。
SQL常用命令使用方法:
(1) 數(shù)據(jù)記錄篩選:
sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 like %字段值% order by 字段名 [desc]"
sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 in ( 值1 , 值2 , 值3 )"
sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"
(2) 更新數(shù)據(jù)記錄:
sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式"
sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式"
(3) 刪除數(shù)據(jù)記錄:
sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式"
sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)
(4) 添加數(shù)據(jù)記錄:
sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)
(5) 數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):
AVG(字段名) 得出一個(gè)表格欄平均值
COUNT(*|字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)
MAX(字段名) 取得一個(gè)表格欄最大的值
MIN(字段名) 取得一個(gè)表格欄最小的值
SUM(字段名) 把數(shù)據(jù)欄的值相加
引用以上函數(shù)的方法:
sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式"
set rs=conn.excute(sql)
用 rs("別名") 獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。
(6) 數(shù)據(jù)表的建立和刪除:
Create TABLE 數(shù)據(jù)表名稱(字段1 類型1(長(zhǎng)度),字段2 類型2(長(zhǎng)度) …… )
例:Create TABLE tab01(name varchar(50),datetime default now())
Drop TABLE 數(shù)據(jù)表名稱 (永久性刪除一個(gè)數(shù)據(jù)表)
(7)記錄集對(duì)象的方法:
rs.movenext 將記錄指針從當(dāng)前的位置向下移一行
rs.moveprevious 將記錄指針從當(dāng)前的位置向上移一行
rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行
rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行
rs.absoluteposition=N 將記錄指針移到數(shù)據(jù)表第N行
rs.absolutepage=N 將記錄指針移到第N頁(yè)的第一行
rs.pagesize=N 設(shè)置每頁(yè)為N條記錄
rs.pagecount 根據(jù) pagesize 的設(shè)置返回總頁(yè)數(shù)
rs.recordcount 返回記錄總數(shù)
rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否
rs.eof 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否
rs.delete 刪除當(dāng)前記錄,但記錄指針不會(huì)向下移動(dòng)
rs.addnew 添加記錄到數(shù)據(jù)表末端
rs.update 更新數(shù)據(jù)表記錄
EJB3.0規(guī)范使開發(fā)EJB比過(guò)去更容易,可能誘惑你考慮開發(fā)第一個(gè)EJB。如果真是這種情況,那么祝賀你,你經(jīng)成功避免了在你以前EJB開發(fā)者的很多挫折,并且享受到EJB3.0開發(fā)的便利性。但是你開始開發(fā)以前,你可能想知道EJB是什么和它們用于什么目的。本篇文章解釋了EJB的基礎(chǔ)和你如何在一個(gè)J2EE程序中使用它們。
什么是EJB?
一個(gè)企業(yè)JavaBean (EJB)是一個(gè)可重用的,可移植的J2EE組件。 EJB由封裝了業(yè)務(wù)邏輯的多個(gè)方法組成。例如,一個(gè)EJB可以有包括一個(gè)更新客戶數(shù)據(jù)庫(kù)中數(shù)據(jù)的方法的業(yè)務(wù)邏輯。多個(gè)遠(yuǎn)程和本地客戶端可以調(diào)用這個(gè)方法。另外,EJB運(yùn)行在一個(gè)容器里,允許開發(fā)者只關(guān)注與bean中的業(yè)務(wù)邏輯而不用考慮象事務(wù)支持,安全性和遠(yuǎn)程對(duì)象訪問(wèn)等復(fù)雜和容易出錯(cuò)的事情。EJB以POJO或者普通舊的Java對(duì)象形式開發(fā),開發(fā)者可以用元數(shù)據(jù)注釋來(lái)定義容器如何管理這些Bean。
EJB類型
EJB主要有三種類型:會(huì)話Bean,實(shí)體Bean和消息驅(qū)動(dòng)Bean。會(huì)話Bean完成一個(gè)清晰的解耦的任務(wù),例如檢查客戶賬戶歷史記錄。實(shí)體Bean是一個(gè)代表存在于數(shù)據(jù)庫(kù)中業(yè)務(wù)對(duì)象的復(fù)雜業(yè)務(wù)實(shí)體。消息驅(qū)動(dòng)Bean用于接收異步JMS消息。讓我們更詳細(xì)的認(rèn)識(shí)這些類型。
會(huì)話Bean
會(huì)話Bean一般代表著業(yè)務(wù)流程中象"處理訂單"這樣的動(dòng)作。會(huì)話Bean基于是否維護(hù)過(guò)度狀態(tài)分為有狀態(tài)或者無(wú)狀態(tài)。
無(wú)狀態(tài)會(huì)話Bean 沒(méi)有中間狀態(tài)。它們不保持追蹤一個(gè)方法調(diào)用另一個(gè)方法傳遞的信息。因此一個(gè)無(wú)狀態(tài)業(yè)務(wù)方法的每一次調(diào)用都獨(dú)立于它的前一個(gè)調(diào)用;例如,稅費(fèi)計(jì)算或者轉(zhuǎn)移賬款。 當(dāng)計(jì)算稅費(fèi)額的方法被調(diào)用時(shí),稅費(fèi)值被計(jì)算并返回給調(diào)用的方法,沒(méi)有必要存儲(chǔ)調(diào)用者為將來(lái)調(diào)用備用的內(nèi)部狀態(tài)。因?yàn)樗鼈儾痪S護(hù)狀態(tài),所以這些Bean是僅僅由容器管理。當(dāng)客戶端請(qǐng)求一個(gè)無(wú)狀態(tài)的Bean實(shí)例時(shí),它可以接收來(lái)自由容器管理的無(wú)狀態(tài)會(huì)話Bean實(shí)例集中的一個(gè)實(shí)例。也因?yàn)闊o(wú)狀態(tài)會(huì)話Bean能夠被共享,所以容器可以維護(hù)更少數(shù)量的實(shí)例來(lái)為大量的客戶端服務(wù)。簡(jiǎn)單地象該Bean增加元注釋@Stateless 來(lái)指定一個(gè) Java Bean作為一個(gè)無(wú)狀態(tài)會(huì)話Bean被部署和管理。
一個(gè)有狀態(tài)的會(huì)話Bean維護(hù)一個(gè)跨越多個(gè)方法調(diào)用的會(huì)話狀態(tài);例如在線購(gòu)物籃應(yīng)用。當(dāng)客戶開始在線購(gòu)物時(shí),客戶的詳細(xì)信息從數(shù)據(jù)庫(kù)獲得。相同的信息對(duì)于當(dāng)客戶從購(gòu)物籃中增加或者移除商品等等操作時(shí)被調(diào)用的其他方法也是可訪問(wèn)的 。但是因?yàn)樵摖顟B(tài)不是在會(huì)話結(jié)束,系統(tǒng)崩潰或者網(wǎng)絡(luò)失敗時(shí)保留,所以有狀態(tài)會(huì)話Bean是暫時(shí)的。當(dāng)一個(gè)客戶端請(qǐng)求一個(gè)有狀態(tài)會(huì)話Bean實(shí)例時(shí),客戶端將會(huì)得到一個(gè)會(huì)話實(shí)例,該Bean的狀態(tài)只為給客戶端維持。通過(guò)向方法增加元注釋@Remove來(lái)告訴容器當(dāng)某個(gè)方法調(diào)用結(jié)束一個(gè)有狀態(tài)會(huì)話Bean實(shí)例應(yīng)該被移除。
會(huì)話Bean實(shí)例
import javax.ejb.Stateless.*;
/**
* 一個(gè)簡(jiǎn)單無(wú)狀態(tài)會(huì)話Bean實(shí)現(xiàn)了CalculateEJB接口的incrementValue()方法
**/
@Stateless(name="CalculateEJB")
public class CalculateEJBBean
implements CalculateEJB
{
int value = 0;
public String incrementValue()
{
value++;
return "value incremented by 1";
}
}
實(shí)體Bean
實(shí)體Bean是管理持久化數(shù)據(jù)的一個(gè)對(duì)象,潛在使用一些相關(guān)的Java對(duì)象并且可以依靠主鍵被唯一識(shí)別。通過(guò)包括@Entity 元注釋來(lái)指定一個(gè)類是一個(gè)實(shí)體Bean。實(shí)體Bean表示來(lái)自數(shù)據(jù)庫(kù)的持久化數(shù)據(jù),例如客戶表中的一個(gè)記錄,或者一個(gè)員工表中的一個(gè)員工記錄。實(shí)體Bean也可以被多個(gè)客戶端共享。例如一個(gè)員工實(shí)體能夠被多個(gè)計(jì)算一個(gè)員工每年工資總額或者更新員工地址的客戶端使用。實(shí)體Bean對(duì)象特定變量能夠保持持久化。實(shí)體Bean中所有沒(méi)有@Transient 元注釋的變量需要考慮持久化。EJB3.0的一個(gè)主要特色是創(chuàng)建包含使用元數(shù)據(jù)注釋的對(duì)象/關(guān)系映射實(shí)體Bean的能力。例如,指定實(shí)體Bean的empId變量映射到employee表中的EMPNO屬性,象下面實(shí)例中一樣用@Table(name="Employees") 注釋這個(gè)表的名字和用@Column(name="EMPNO")注釋empId變量。另外,EJB3.0中的一個(gè)特色是你可以很容易的在開發(fā)時(shí)測(cè)試實(shí)體Bean,可以用Oracle Application Server Entity Test Harness在容器外部運(yùn)行一個(gè)實(shí)體Bean。
實(shí)體Bean實(shí)例
import javax.persistence.*;
import java.util.ArrayList;
import java.util.Collection;
@Entity
@Table(name = "EMPLOYEES")
public class Employee implements java.io.Serializable
{
private int empId;
private String eName;
private double sal;
@Id
@Column(name="EMPNO", primaryKey=true)
public int getEmpId()
{
return empId;
}
public void setEmpId(int empId)
{
this.empId = empId;
}
public String getEname()
{
return eName;
}
public void setEname(String eName)
{
this.eName = eName;
}
public double getSal()
{
return sal;
}
public void setSal(double sal)
{
this.sal = sal;
}
public String toString()
{
StringBuffer buf = new StringBuffer();
buf.append("Class:")
.append(this.getClass().getName()).append(" :: ").append(" empId:").append(getEmpId()).append(" ename:").append(getEname()).append("sal:").append(getSal());
return buf.toString();
}
}
消息驅(qū)動(dòng)Bean
驅(qū)動(dòng)Bean (MDB) 提供了一個(gè)實(shí)現(xiàn)異步通信比直接使用Java消息服務(wù)(JMS)更容易地方法。創(chuàng)建MDB接收異步JMS消息。容器處理為JMS隊(duì)列和主題所要求加載處理的大部分工作。它向相關(guān)的MDB發(fā)送所有的消息。一個(gè)MDB允許J2EE應(yīng)用發(fā)送異步消息,該應(yīng)用能處理這些消息。實(shí)現(xiàn)javax.jms.MessageListener接口和使用@MessageDriven注釋該Bean來(lái)指定一個(gè)Bean是消息驅(qū)動(dòng)Bean。
消息驅(qū)動(dòng)Bean實(shí)例
import javax.ejb.MessageDriven;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.Inject;
import javax.jms.*;
import java.util.*;
import javax.ejb.TimedObject;
import javax.ejb.Timer;
import javax.ejb.TimerService;
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(propertyName="connectionFactoryJndiName", propertyValue="jms/TopicConnectionFactory"),
@ActivationConfigProperty(propertyName="destinationName", propertyValue="jms/myTopic"),
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"),
@ActivationConfigProperty(propertyName="messageSelector", propertyValue="RECIPIENT = 'MDB'")
}
)
/**
*監(jiān)聽可配置JMS隊(duì)列或者主題和通過(guò)當(dāng)一個(gè)消息發(fā)送到隊(duì)列或者主題
*調(diào)用它的onMessage()方法得到提醒的一個(gè)簡(jiǎn)單的消息驅(qū)動(dòng)
*該Bean打印消息的內(nèi)容
*/
public class MessageLogger implements MessageListener, TimedObject
{
@Inject javax.ejb.MessageDrivenContext mc;
public void onMessage(Message message)
{
System.out.println("onMessage() - " + message);
try
{
String subject = message.getStringProperty("subject");
String inmessage = message.getStringProperty("message");
System.out.println("Message received\n\tDate: " + new java.util.Date() + "\n\tSubject: " + subject + "\n\tMessage: " + inmessage + "\n");
System.out.println("Creating Timer a single event timer");
TimerService ts = mc.getTimerService();
Timer timer = ts.createTimer(30000, subject);
System.out.println("Timer created by MDB at: " + new Date(System.currentTimeMillis()) +" with info: "+subject);
}
catch (Throwable ex)
{
ex.printStackTrace();
}
}
public void ejbTimeout(Timer timer)
{
System.out.println("EJB 3.0: Timer with MDB");
System.out.println("ejbTimeout() called at: " + new Date(System.currentTimeMillis()));
return;
}
}
使用EJB
客戶端是訪問(wèn)Bean的應(yīng)用程序。雖然沒(méi)有必要保存在客戶層,但是能夠作為一個(gè)獨(dú)立的應(yīng)用,JSP,Servlet,或者另一個(gè)EJB。客戶端通過(guò)Bean的遠(yuǎn)程或者本地接口訪問(wèn)EJB中的方法,主要取決于客戶端和Bean運(yùn)行在同一個(gè)還是不同的JVM中。這些接口定義了Bean中的方法,而由Bean類實(shí)際實(shí)現(xiàn)這些方法。當(dāng)一個(gè)客戶端訪問(wèn)該Bean類中的一個(gè)方法時(shí),容器生成Bean的一個(gè)代理,被叫做遠(yuǎn)程對(duì)象或者本地對(duì)象。遠(yuǎn)程或者本地對(duì)象接收請(qǐng)求,委派它到相應(yīng)的Bean實(shí)例,返回結(jié)果給客戶端。調(diào)用一個(gè)Bean中的方法,客戶端使用定義在EJB不是描述文件的名字查找到Bean。在以下實(shí)例中,客戶端使用上下文對(duì)象找到命名為"StateLessejb"Bean。
EJB 客戶端實(shí)例
import javax.naming.Context;
import javax.naming.InitialContext;
/**
* 一個(gè)調(diào)用無(wú)狀態(tài)會(huì)話Bean中方法的簡(jiǎn)單的Bean客戶端
*/
public class CalculateejbClient
{
public static void main(String [] args)
{
Context context = new InitialContext();
CalculateEJB myejb =
(CalculateEJB)context.lookup("java:comp/env/ejb/CalculateEJB");
myejb.incrementValue();
}
}
總結(jié)
EJB3.0開發(fā)企業(yè)JavaBean是相當(dāng)容易的。此規(guī)范使用元數(shù)據(jù)注釋定義Bean的類型和暴露給客戶端的方法。因此,無(wú)論你將創(chuàng)建一個(gè)執(zhí)行特定任務(wù)的會(huì)話Bean還是映射一個(gè)表到實(shí)體Bean來(lái)更新數(shù)據(jù),你都能象使用普通Java對(duì)象和接口一樣進(jìn)行處理,在業(yè)務(wù)方法中使用元注釋向客戶端暴露方法。既然你已經(jīng)理解了EJB的基礎(chǔ),可以到OTN中EJB 3.0 Resources Page發(fā)現(xiàn)更多信息。
一. 軟件下載 Mysql
下載版本:4.1.11
http://dev.mysql.com/downloads/mysql/4.1.htmlJDBC驅(qū)動(dòng)
下載版本:3.1.8
http://dev.mysql.com/downloads/connector/j/3.1.htmlMysql界面插件:mysql-front
下載版本鏡像:HongKong(我下回來(lái)安裝就是中文版了)
http://www.mysqlfront.de/download.html二. 軟件安裝
1.安裝mysql
請(qǐng)參閱相關(guān)文章,推薦文章:
http://blog.csdn.net/saulzy/archive/2005/04/23/359648.aspx2.JDBC驅(qū)動(dòng):mysql-connector-java-3.1.8
這只是一個(gè)壓縮包,并不需要安裝,只要將其解壓,我么使用的是文件夾mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.
3. Mysql界面插件:mysql-front
這是一個(gè)安裝程序,按照提示安裝就可以了.
三. 環(huán)境配置首先,我要說(shuō)明的是我現(xiàn)在tomcat的安裝路徑是: D:\Program Files\Java\Tomcat;JDK的安裝路徑是:D:\Program Files\Java\j2sdk。
在這里,需要配置環(huán)境變量的是JDBC驅(qū)動(dòng).在配置前先要把剛才說(shuō)到的mysql-connector-java-3.1.8-bin.jar本地硬盤 某處(我放的地方:D:\Program Files\Java\mysqlforjdbc),然后根據(jù)你放的地方,配置classpath,我的配置是這樣的:
D:\Program files\Java\j2sdk\lib\tools.jar;
D:\Program Files\Java\j2sdk\lib\mysql-connector-java-3.1.8-bin-g.jar;
D:\Program Files\Java\mysqlforjdbc\mysql-connector-java-3.1.8-bin.jar
配置這個(gè)的目的是讓你的java應(yīng)用程序找到連接mysql的驅(qū)動(dòng).
配置完環(huán)境變量后還有很重要一步就是為JSP連接數(shù)據(jù)庫(kù)配置驅(qū)動(dòng),這個(gè)其實(shí)很簡(jiǎn)單,就是把mysql-connector-java-3.1.8- bin.jar拷到某些文件夾里就行了,我在網(wǎng)上看了很多資料問(wèn)了很多人,各種說(shuō)法都有,我綜合了一下,為了保險(xiǎn),我都全做了,呵呵,反正就是拷一個(gè) 400K的文件而已,現(xiàn)列出要把mysql-connector-java-3.1.8-bin.jar拷進(jìn)去的文件夾,如下:
D:\Program Files\Java\Tomcat\common\lib
D:\Program Files\Java\Tomcat\shared\lib
四. 數(shù)據(jù)庫(kù)的使用
Mysql安裝完畢以后,還有一些要注意的地方(推薦文章):http://blog.csdn.net/saulzy/archive/2005/04/23/359811.aspx
就象在文章提到的,mysql安裝好后最重要一樣就是要看數(shù)據(jù)庫(kù)有沒(méi)有作為系統(tǒng)服務(wù)啟動(dòng)了,所以在大家進(jìn)行數(shù)據(jù)庫(kù)操作前,應(yīng)要看看,在操作系統(tǒng)的開始->運(yùn)行->輸入services.msc,確定你在安裝時(shí)你設(shè)置的關(guān)于mysql的那個(gè)服務(wù)已經(jīng)啟動(dòng),這樣你在操作數(shù)據(jù)庫(kù)時(shí)不會(huì)報(bào)連接不上的錯(cuò)誤.
上面提到了一個(gè)較方便的mysql界面插件,但是這個(gè)界面是我在已經(jīng)開始使用mysql后才找到的,剛開始我是在dos下用命令行進(jìn)行操作的. 雖然那個(gè)界面也可以進(jìn)行建庫(kù)啊,設(shè)定權(quán)限等操作,但是,我覺得懂得在使用命令行也是一個(gè)很重要的技能,所以我先從命令行開始說(shuō),怎樣簡(jiǎn)單使用mysql. 到后面會(huì)談及mysql-front的使用.
現(xiàn)在我想在mysql里建一個(gè)數(shù)據(jù)庫(kù)shujuku,以及在數(shù)據(jù)庫(kù)里建一個(gè)表biao.具體的命令如下(假設(shè)mysql我是剛安裝好的)
1. 進(jìn)入dos狀態(tài)(記住命令行的要運(yùn)行在mysql的安裝目錄下的bin目錄的)
2. 連接mysql
輸入:mysql –h localhost –u root –p
輸入在安裝時(shí)已設(shè)好的密碼,就近入了mysql的命令編輯界面了。
3. 使用mysql的基本命令(在mysql命令行編輯每輸入完命令后最后一定要有分號(hào),不然會(huì)報(bào)錯(cuò))
顯示數(shù)據(jù)庫(kù):show databases;
使用數(shù)據(jù)庫(kù):use 數(shù)據(jù)庫(kù)名;
4.建庫(kù)
命令:create database shujuku;
5.為數(shù)據(jù)庫(kù)設(shè)置權(quán)限(用戶和密碼)
命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
當(dāng)你執(zhí)行完這個(gè)命令以后,只要你再以用戶名:test,密碼:123456登錄時(shí)你就只可以對(duì)shujuku這個(gè)數(shù)據(jù)庫(kù)操作,這樣避開使用root,對(duì)數(shù)據(jù)庫(kù)的安全有很大幫助.
6.建表
命令:create table biao(id int(8) primary key,name varchar(10));
剩下來(lái)的與標(biāo)準(zhǔn)sqsl命令基本上是一樣的,具體操作略
值得一提的是,你在命令行上輸入"?",就會(huì)有mysql命令的簡(jiǎn)單幫助,如下:
呵呵,那樣,我們還可以知道退出,就是"exit",呵呵!
五. 關(guān)于mysql-front的使用
我找了好幾個(gè)mysql的界面工具,覺得最簡(jiǎn)潔方便還是mysql-front,可惜的是要收費(fèi),不過(guò)還好有試用期,呵呵,可以先感受感受一下,最重要一點(diǎn)是mysql-front有簡(jiǎn)體中文版的,英文不好的我用起來(lái)就舒服多了.下面簡(jiǎn)單說(shuō)說(shuō)使用吧.
首先,安裝就不用說(shuō)了,有向?qū)В液芎?jiǎn)單.安裝好后第一次運(yùn)行時(shí)會(huì)跳出來(lái)一個(gè)要求添加對(duì)話的框,在這里你可以添加例如上面已經(jīng)設(shè)定好的shujuku,過(guò)程如下:
當(dāng)你在注冊(cè)的復(fù)選框里填上你在上面mysql設(shè)定好的用戶名和密碼后,在選擇數(shù)據(jù)庫(kù)框里就有shujuku 的數(shù)據(jù)庫(kù)了,選上,按確定.進(jìn)入mysql-fron后,你就會(huì)看到下面的界面,這是你就可以進(jìn)行操作了.
要說(shuō)明的是,你還可以把root用戶也加進(jìn)去,這要你在mysql-fron的界面上選設(shè)置->對(duì)話->新建,再按上面進(jìn)行就可以,出了root你還可 以加入更多的用戶,方法還是一樣的,設(shè)置不同的用戶,是方便對(duì)不同數(shù)據(jù)庫(kù)進(jìn)行管理,呵呵,root是權(quán)限最高的,可不要隨便讓別人使用你的root用戶, 保正你數(shù)據(jù)庫(kù)的安全.
六. JSP連接mysql
現(xiàn)在就是嘗試用jsp連接mysql了
我在eclipse里建了個(gè)test_mysql.jsp頁(yè)面,代碼如下:
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
//驅(qū)動(dòng)程序名
String driverName="com.mysql.jdbc.Driver";
//數(shù)據(jù)庫(kù)用戶名
String userName="cl41";
//密碼
String userPasswd="123456";
//數(shù)據(jù)庫(kù)名
String dbName="db";
//表名
String tableName="dbtest";
//聯(lián)結(jié)字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//獲得數(shù)據(jù)結(jié)果集合
ResultSetMetaData rmeta = rs.getMetaData();
//確定數(shù)據(jù)集的列數(shù),亦字段數(shù)
int numColumns=rmeta.getColumnCount();
// 輸出每一個(gè)數(shù)據(jù)值
out.print("id");
out.print("|");
out.print("num");
out.print("<br>");
while(rs.next()) {
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
}
out.print("<br>");
out.print("數(shù)據(jù)庫(kù)操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
然后把test-_mysql.jsp部署到tomcat處,如何部署可參考"配置Eclpise+tomcat并實(shí)現(xiàn)JSP的編寫與部署",在瀏覽器中就可以看到結(jié)果了。
????????? 自從Windows 2000操作系統(tǒng)開始,微軟就添加了一個(gè)新的網(wǎng)絡(luò)功能,叫做Windows默認(rèn)共享。有朋友會(huì)問(wèn)了,為什么叫“默認(rèn)共享”呢?原來(lái),這些文件夾與我們自己手工建立的共享文件夾之間有著一個(gè)本質(zhì)的區(qū)別,在它們的共享名稱最后都會(huì)有一個(gè)“$”符號(hào),作用就是能夠在網(wǎng)上鄰居中隱藏自己。
???????? 這樣,除非我們預(yù)先知道這些默認(rèn)共享的共享名,否則,按照常規(guī)方法是根本無(wú)法直接進(jìn)入到這些文件夾的。
起初這項(xiàng)功能主要是微軟為了方便系統(tǒng)管理員的日常工作而設(shè)計(jì)的,并且在默認(rèn)情況下它們就是開啟的狀態(tài),但由于Windows的漏洞層出不窮,那加上這些預(yù)設(shè)的文件夾名稱早已被大家所熟知,因此,這些原本是微軟一番好意而設(shè)置的功能在使用時(shí)卻成了一個(gè)巨大的安全陷井,嚴(yán)重地威脅著系統(tǒng)和服務(wù)器的運(yùn)行安全,對(duì)于此類“雞肋”功能我們自然就要“關(guān)他沒(méi)商量”。
??????? 【小提示】 從圖中大家可以看到,默認(rèn)的Windows共享大體可分為三類:第一類是“ADMIN$”共享,它所指向的就是當(dāng)前的系統(tǒng)工作目錄(WINNT目錄)。第二類是類似于“C$、D$、E$……”的共享,它指向的其實(shí)就是本機(jī)上每個(gè)磁盤分區(qū)的根目錄。而最后一類則是“IPC$”,它就是我們常說(shuō)的“共享命名管道”,而著名的空連接漏洞也正是利用了這個(gè)IPC$ .
修改注冊(cè)表法
方便指數(shù):★★★
推薦指數(shù):★★★★★
方案優(yōu)勢(shì):可以從根本上解決系統(tǒng)自動(dòng)啟動(dòng)默認(rèn)共享的問(wèn)題
負(fù) 作 用:需要執(zhí)行注冊(cè)表操作,略顯麻煩
適用環(huán)境:該方案適合普通電腦系統(tǒng)及服務(wù)器系統(tǒng)
????????關(guān)閉分區(qū)默認(rèn)共享(如C$、D$、E$ ……)
1. 點(diǎn)擊“開始”菜單→“運(yùn)行”,在彈出的“運(yùn)行”對(duì)話框中輸入“regedit”后回車,打開注冊(cè)表編輯器
2. 展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters”注冊(cè)表項(xiàng)
3. 雙擊右窗格中的“AutoShareServer”,將它的鍵值改為“0”即可。
???????? 關(guān)閉管理默認(rèn)共享(ADMIN$)
1. 點(diǎn)擊“開始”菜單→“運(yùn)行”,在彈出的“運(yùn)行”對(duì)話框中輸入“regedit”后回車,打開注冊(cè)表編輯器
2. 展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters”注冊(cè)表項(xiàng)
3. 雙擊右窗格中的“AutoShareWks”,將它的鍵值改為“0”即可
關(guān)閉IPC$默認(rèn)共享
1. 點(diǎn)擊“開始”菜單→“運(yùn)行”,在彈出的“運(yùn)行”對(duì)話框中輸入“regedit”后回車,打開注冊(cè)表編輯器
2. 展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”注冊(cè)表項(xiàng)
3. 雙擊“restrictanonymous”,將其鍵值設(shè)為“1”即可(注意,不是“0”,是“1”)