posts - 495,  comments - 11,  trackbacks - 0
           
          八、高級篇
          1、自動清除登錄窗口中上次訪問者的用戶名
            通常情況下,用戶在進入WINNT網絡之前必須輸入自己的用戶名稱以及口令。但是當你重新啟動計算機,登錄WINNT時,WINNT會在缺省情況下將上一次訪問者的用戶名自動顯示在登錄窗口的“用戶名”文本框中。這樣一來,有些非法用戶可能利用現有的用戶名來猜測其口令,一旦猜中的話,將會對整個計算機系統產生極大的安全隱患。為了保證系統不存在任何安全隱患,我們可以通過修改WINNT注冊表的方法來也提供了啟動時自動以某一個組的用戶名稱和口令進行訪問WINNT,而不需要通過人工設置的方法來自動清除登錄窗口中上次訪問者的用戶名信息。要實現自動清除功能,必須要進行如下配置:  A、在開始菜單欄中選擇運行命令,在隨后打開的運行對話框里輸入REGEDIT命令,從而打開注冊表編輯器。
            B、在打開的注冊表編輯器中,依次展開以下的鍵值:  [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONWINLOGON]
            C、在編輯器右邊的列表框中,選擇“DONTDISPLAYLASTUSERNAME”鍵值名稱,如果沒有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個,并選擇所建數據類型為“REG_SZ”。
            D、選擇指定的鍵值并雙擊,當出現“字符串編輯器”對話框時,在“字符串”文本框中輸入“1”,其中“1”代表起用該功能,“0”代表禁止該功能。
            E、當用戶重新啟動計算機登錄WINNT時,NT登錄對話框中的“用戶名”文本框中將是空白的。
          2、為一些非SCSI接口光驅進行手工配置
            如果你想在WINNT上安裝一個非SCSI接口的光驅,在WINNT版本較高的計算機中這中類型的光驅可能被自動識別并自動由計算機來完成其安裝任務,不巧的是,你的計算機中安裝了一個低版本的操作系統,例如安裝了WINNT3.5,還沒有時間來升級,但現在就著急用光驅呢,那該怎么辦才好呢?不急,雖然Windows NT3.5不能自動識別非SCSI接口的光驅,但我們可以通過手工安裝的方式來幫你輕松搞定這個小問題,具體工作步驟為:
            A、首先必須將你手中的對應的非SCSI接口的CD-ROM驅動程序從安裝盤拷貝到WINNTSYSTEM32DRIV ERS目錄下。
            B、在WINNT主群組中打開Setup圖標。
            C、從OPTION菜單中選擇“Add/Remove SCSI Adapters”。  D、用鼠標單擊ADD按鈕,為你的非SCSI接口CD-ROM選擇對應的驅動程序。
            E、接著單擊“INSTALL”按鈕進行一些相關參數的配置。  F、退出Windows NT,重新啟動計算機后光驅就會有用了。
          3、增加NTFS性能
            如果用戶想增加NTFS的性能,也可以通過修改注冊表的方法來達到目的,具體實現步驟如下:
            A、打開注冊表編輯器,并在編輯器中依次展開以下鍵值:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem
            B、在注冊表編輯器中用鼠標單擊“編輯”菜單,并在下拉菜單中選擇“新建”菜單項,并在其彈出的子菜單中單擊“DWORD值”。
            C、 在編輯器右邊的列表中輸入DWORD值的名稱為“NtfsDisableLastAccessUpdate”。
            D、 接著用鼠標雙擊NtfsDisableLastAccessUpdate鍵值,編輯器就會彈出一個名為“字符串編輯器”的對話框,在該對話框的文本欄中輸入數值“1”,其中0代表“取消”該項功能,1代表“啟用”該項功能。
            E、設置好后,重新啟動計算機就會使上述功能有效。
          4、修復鏡像組
            A、當鏡像磁盤組中的驅動器發生故障時,系統自動向其余的驅動器發出發送數據請求,留下工作驅動器單獨運行。此時,用戶需要進入Disk Administrator,選擇鏡像組,再選擇FaultTolerance/Break Mirror,將鏡像組分為兩個獨立部分。
            B、工作的驅動器得到磁盤組所用的驅動器盤符,故障驅動器得到系統的下一個有效盤符。關閉NT Server,更換一個相同型號的硬盤驅動器。
            C、重新啟動NT Server,運行Disk Administor,在新驅動器上選擇分區和未用空間,選擇Fault Tolerance/Establish Mirror即可對新驅動器作鏡像。
          5、自定義啟動信息
            每次當WINNT啟動時,它都會顯示“請按CTRL+ALT+DELETE鍵來登錄”的信息,而如果你希望用戶在按完CTRL+ALT+DELETE鍵后,畫面上自動顯示用戶自己希望所看到的信息,可以通過如下的相關設置來進行:
            A、在開始菜單欄中選擇運行命令,在隨后打開的運行對話框里輸入REGEDIT命令,從而打開注冊表編輯器。
            B、在打開的注冊表編輯器中,依次展開以下的鍵值:  [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONWINLOGON]
            C、在編輯器右邊的列表框中,選擇“LEGALNOTICECAPTION”鍵值名稱,如果沒有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個,并選擇所建數據類型為“REG_SZ”。
            D、選擇指定的鍵值并雙擊,當出現“字符串編輯器”對話框時,在“字符串”文本框中輸入用戶希望看到的信息窗口的標題內容,例如輸入“WINNT網絡”。
            E、接著在下面一個“字符串”文本框中輸入信息窗口要顯示的具體內容,例如輸入“歡迎使用WINNT網絡”。
            F、重新啟動計算機后,再次登錄進WINNT網絡時,用戶將會看到自己在上面設置的內容。

          6、加速文件管理系統緩存
            大家知道計算機的速度有很大一部分與內存相關,如果內存容量大一點,計算機運行速度就會相應快一點。但是假設在內存一定的情況下,如何來提高計算機的運行速度呢?這就是我們下面通過注冊表設置要實現的內容,具體步驟如下:
            A、在開始菜單欄中選擇運行命令,在隨后打開的運行對話框里輸入REGEDIT命令,從而打開注冊表編輯器。
            B、在打開的注冊表編輯器中,依次展開以下的鍵值:  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management]。
            C、在編輯器右邊的列表框中,選擇“IoPageLockLimit”鍵值名稱,如果沒有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個,并選擇所建數據類型為“DWORD”。
            D、選擇指定的鍵值并雙擊,當出現“字符串編輯器”對話框時,在“字符串”文本框中輸入用戶需要的數值,系統默認緩存為512K,其他的參考值如下:
            RAM (MB) IoPageLockLimit  32  4096000  64  8192000  128  16384000  256+  65536000
            E、當用戶重新啟動計算機登錄WINNT時,文件管理系統緩存將得到改善。
          7、增加“關閉系統”按鈕
            在NT計算機中,“關閉系統”按鈕作為缺省值在登陸對話框中提供,這個任務按鈕允許用戶不必先登陸即可關閉系統。在NT SERVER中雖然沒有這個功能,但可以通過修改注冊表,使系統在登陸對話框中增加一個“關閉系統”的按鈕,具體操作方法如下:  
          A、打開注冊表編輯器,并在編輯器中依次展開以下鍵值:  [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONWINLOGON]。
            B、在編輯器右邊的列表中用鼠標選擇“SHUTDOWNWITHOUTLOGON”鍵值。
            C、接著用鼠標雙擊“SHUTDOWNWITHOUTLOGON”鍵值,編輯器就會彈出一個名為“字符串編輯器”的對話框,在該對話框的文本欄中輸入數值“1”,其中0代表取消“關閉系統”按鈕,1代表增加“關閉系統”按鈕。
            D、退出后重新登錄,在登錄的界面中會增加一個“關閉系統”的按鈕。
          8、在NT下創建一個鏡像集
            A、先用Disk Administerator創建鏡像集的第一個分區表,選中該分區,在另一個磁盤驅動器內的磁盤空間的未用區域上進行Ctrl+鼠標單擊操作,以把未用的磁盤區域和第一個分區均選上。
            B、從Disk Ad ministor的Fault Tolerlance(容錯)菜單中選中Establish Mirror(建立鏡像 ),Disk Administor將在被選自由盤區外創建一個磁盤分區。該分區與原有分區一樣大,并包含原分區表上所有數據的備份。
            C、如果要取消鏡像集(并非刪除鏡像集),即僅僅停止兩個分區之間的數據復制,只需從Disk Administor中選擇Fault Tolerance/Break Mirror。
          9、登錄局域網超時自動斷開
            在登錄Windows NT網絡時,有可能用戶不小心輸錯了登錄參數或其他原因,導致了登錄網絡可能需要花費好長時間,這種情況是我們不想看到的。為了解決這種問題,我們可以通過注冊表,來配置為閑置超時斷開,以分鐘為單位,具體步驟為:
            A、打開注冊表編輯器,并在編輯器中依次展開以下鍵值:  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]
            B、在編輯器右邊的列表中用鼠標選擇“AUTODISCONNECT”鍵值。
            C、接著用鼠標雙擊“AUTODISCONNECT”鍵值,編輯器就會彈出一個名為“字符串編輯器”的對話框,在該對話框的文本欄中輸入數值“1”,其中0代表取消自動斷開功能,1代表使用自動斷開功能。
            D、退出后重新登錄網絡,上述功能就會生效。
          10、改變遠程訪問服務的缺省端口傳輸速度
            Windows NT遠程訪問服務為每個RAS串行端口設置兩種BPS速度:載波BPS與聯接BPS速度,前者是指兩個Modem通過電話線傳輸數據的速度,后者則指Modem與主機串口間的數據傳輸速度;當遠程服務被啟動時,計算機首先將其聯接BPS速度值存放于System RootSystem32RASModem.INF文件中,以MAXC ARRIERBPS參數形式存放,然后將該值保存在RASSERIAL.INF文件中,以后每次進行傳輸時對串口作初始化,只需改變SERIAL.INI文件,即可改變串口傳輸速度,具體操作方法如下:
            A、將SERIAL.INI文件用編輯器打開。
            B、將INITIALBPS參數改為自己所希望的數值。
            C、將上述改動保存成一個文件,文件名仍為SERIAL.INI。
            D、打開“開始”菜單,并單擊“運行”命令,在運行欄中輸入RasAdmin命令。
            E、從服務器菜單中選擇“Stop Remote Access Service”,再選擇“Start Remote Access Service”,上述設置就會生效。 自動檢測慢網登陸
            上面我們曾經說過,在登錄NT網絡時有可能很慢。同樣地,如果Windows NT檢測速度有困難,可以取消。具體實現步驟為:
            A、打開注冊表編輯器,并在編輯器中依次展開以下鍵值:
           [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]
            B、在編輯器右邊的列表中用鼠標選擇“SlowLinkDetectEnabled”鍵值,如果沒有該鍵值,必須新建一個DWORD值,名稱設置為“SlowLinkDetectEnabled”。
            C、接著用鼠標雙擊“SlowLinkDetectEnabled”鍵值,編輯器就會彈出一個名為“字符串編輯器”的對話框,在該對話框的文本欄中輸入數值“1”,其中0代表取消自動檢測慢網登陸功能,1代表使用自動檢測慢網登陸功能。
            D、退出后重新登錄網絡,上述設置就會起作用。

          12、加快網絡傳輸速度
            對于撥號用戶來說,時間就是金錢,怎樣才能節約時間,節省金錢呢?回答是提高網絡傳輸速度。那又如何提高網絡傳輸速度呢?大家知道,網絡速度主要是受網絡帶寬限制的。增加帶寬不是撥號用戶所能做到的,他們唯一能做的就是把調制解調器的傳輸速度能夠再提高一點。其實撥號用戶還可以從計算機本身運行速度出發,盡量能挖掘計算機在網絡加速方面最大的潛能。下面我們就通過一些設置來盡量加快網絡傳輸速度,具體設置如下:
            A、在開始菜單欄中選擇運行命令,在隨后打開的運行對話框里輸入REGEDIT命令,從而打開注冊表編輯器。
            B、在打開的注冊表編輯器中,依次展開以下的鍵值:  [HKEY_LOCAL_MACHINESystemCurrent Control SetServicesClassNetTrans00n ],其中n表示個別拔號網絡連接項號碼。
            C、在編輯器右邊的列表框中,選擇“MaxMTU”鍵值名稱,如果沒有上面的鍵值,可以利用“編輯”菜單中的“新建”鍵值命令添加一個,并選擇所建數據類型為“DWORD”值。
            D、選擇指定的鍵值并雙擊,當出現“字符串編輯器”對話框時,在“字符串”文本框中輸入“576”,576代表最大傳輸單元值。
            E、接著在編輯器菜單欄中依次選擇“編輯”→“新增”→“字符串值”,右邊列表窗口就會多出一個新字符串,把它 命名為“MaxSSS”,再雙按這個字符串值并把它設定為“536”。
            F、重新返回到編輯器的主操作界面,并依次展開如下鍵值: [HKEY_LOCAL_MACHINESystemCurrent Control SetServicesVxDMSTCP]。
            G、按照上述同樣的操作方法,在編輯器右邊的列表中依次添加字符串值“DefaultRcvWindow”、 “DefaultTTL”,并且把它們的數值分別設置為“2144”,“64”。
            H、當用戶重新啟動計算機登錄WINNT時,上述所有的設置將會生效,這樣計算機將會發揮它在網絡加速方面最大的能量。

          13、自動登陸網絡
            通常情況下,用戶在進入WINNT網絡之前必須輸入自己的用戶名稱以及口令。但是WINNT也提供了啟動時自動以某一個組的用戶名稱和口令進行訪問WINNT,而不需要通過人工設置的方法來輸入登陸網絡的參數。要實現自動登陸功能,必須要進行如下配置:
            A、打開注冊表編輯器,并在編輯器中依次展開以下鍵值:
           [HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENT VERSIONWINLOGON]
            B、用鼠標單擊右邊的“AUTOADMINLOGON”鍵值名稱,編輯器就會彈出一個名為“字符串編輯器”的對話框,在該對話框的文本欄中輸入數值“1”。
            C、接著再用鼠標選擇右邊的“DEFAULTDOMAINNAME”鍵值名稱,并在隨后彈出的文本欄中輸入所要登陸的域名名稱或所要訪問的計算機名稱,例如輸入“DOMAIN”域或“COM”計算機名稱,然后單擊“確定”按鈕。
            D、按照同樣的操作方法,選擇右面的“DEFAULTUSERNAME”鍵值名稱,并在“字符串”文本框中輸入登陸網絡的用戶名稱,例如輸入管理員名稱“ADMINISTRATOR”,并單擊“確定”按鈕。
            E、最后在注冊表編輯器中,用鼠標單擊“編輯”菜單并在下拉菜單中選擇“新建鍵值”命令,然后在注冊表右邊的列表中,輸入鍵值名稱為“DEFAULTPASSWORD”,鍵值類型為“REG_SZ”,接著單擊“確定”按鈕。
            F、 用鼠標雙擊“DEFAULTPASSWORD”鍵值,在彈出的對話框中輸入用戶的密碼,在這里我們輸入系統管理員的口令作為登陸網絡的密碼,輸入完成后單擊“確定”按鈕結束設置工作。
            G、 讓計算機重新啟動,缺省設置的用戶將會自動登陸到指定的網絡中去。
            如果用戶日后不再需要自動登陸功能時,只需要把“AUTOADMINLOGON”的鍵值改為數值“0”即可。
          14、禁止光盤的自動運行功能
            大家都很清楚每當光盤放到計算機中時,WINNT就會執行自動運行功能,光盤中的應用程序就會被自動運行,而我們在實際工作中有時不需要這項功能,那么如何屏蔽該功能呢。此時,我們同樣可以修改注冊表使此功能失效,具體做法如下:
            A、打開注冊表編輯器,并在編輯器中依次展開以下鍵值:  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom] 。
            B、在編輯器右邊的列表中用鼠標選擇“AUTORUN”鍵值。
            C、接著用鼠標雙擊“AUTORUN”鍵值,編輯器就會彈出一個名為“字符串編輯器”的對話框,在該對話框的文本欄中輸入數值“0”,其中0代表“禁用”光盤的自動運行功能,1代表“啟用”光盤的自動運行功能。
            D、設置好后,重新啟動計算機就會使上述功能有效。
          15、取消系統檢測串口,提高NT系統啟動速度
            計算機每次啟動都會對計算機的硬件要重新檢測一遍,這需要花費一定的時間,也因此就減慢了計算機的啟動速度。在這里筆者向大家介紹一下通過一些設置來取消系統檢測串口,從而達到提高NT系統啟動速度的目的,具體步驟如下:
            A、在開始菜單中,用查找的方法將Boot.INI文件找出來,然后將該文件的“只讀”屬性屏蔽掉,以便于我們在其中進行一些相關改動。
            B、接著用一個文本編輯器將Boot.INI文件打開,并修改[operating system]段的內容,將其中每一行后加上NoserialMice參數,如下所示:
            修改Boot.INI文件,
            ……
            [operating system]
            multi(0) disk(0) rdisk(0)
            partition(1)WINNT40="Windows NT
            Workstation Version4.0"/NoSerialMice  ……
            C、把上述修改的內容保存起來,文件名仍為Boot.INI。
            D、退出Windows NT,重新啟動計算機后上述配置就會生效。

          XP六條未公開的秘技
          支持137 GB以上大硬盤

            想要使用137 GB以上大硬盤,必須使用48位LBA模式。首先你的主板BIOS必須支持48Bit LBA,其次WinXP 家用版和專業版必須安裝SP1補丁。然后打開注冊表,在如下路徑“HKEY_LOCAL_MACHINE System CurrentControlSet Services Atapi Parameter”找到“EnableBigLba”選項,將其值由“0”改為“1”。如果該項不存在,可以自建“DWORD值”項目,同樣設置.最后重新啟動即可.

          刪除共享文檔

            如果你不需要共享文件,可以這樣移除它:進入HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Explorer My computer Namespace DelegateFolders,刪除鍵值“”。

          鎖定桌面

            想要鎖定桌面不被別人肆意修改,可以使用很多工具例如TweakUI,不過其實在注冊表里進行小小的改動即可實現:進入HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Policies Explorer,建立DWORD值“NoDesktop”,將其值修改為“1”即可。

          停用“上次訪問時間標記(Last Access Time Stamp)”

            不想要這項功能,可以這樣修改:進入HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control File system,新建DWORD值“NtfsDisableLastAccessUpdate”,將其值修改為“1”即可。

          設置“遠程訪問連接服務器(RAS)”

            需要的話可以這樣修改:進入HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Winlogon,新建字符串值“KeepRasConnections”,將其值修改為“1”即可。

          使用明文密碼(Lain Text Password)

            訪問UNIX或者LINUX服務器的時候,有時需要明文密碼這在XP下很容易實現:找到“HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services lanmanworkstation parameter enableplaintextpassword”并將其值設置為“1”即可

          控制面板
          在Windows 2000的控制面板中有1 9個標準的應用小程序( a p p l e t ),每一個應用小程序都有
          影響注冊表條目的能力(具有添加硬件和安裝軟件功能的系統還包括另外一些應用小程序);
          添加/刪除硬件系統H K E Y _ L O C A L _ M A C H I N E H A R D WA R E
          添加/刪除程序系統H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
          管理工具系統H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
          日期/時間系統H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
          顯示系統和用戶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
          文件夾選項系統H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
          字體系統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選項系統H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
          鍵盤系統和用戶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
          鼠標系統和用戶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
          網絡和撥號連接系統H K E Y _ L O C A L _ M A C H I N E S O F T WA R E
          電話和調制解調器選項系統H K E Y _ L O C A L _ M A C H I N E S Y S T E M
          電源選項系統H K E Y _ L O C A L _ M A C H I N E H A R D WA R E
          打印機系統H K E Y _ L O C A L _ M A C H I N E S Y S T E M
          區域設置系統H K E Y _ L O C A L _ M A C H I N E S Y ST E M
          任務計劃系統H K E Y _ L O C A L _ M A C H I N E S O FT WA R E
          聲音和多媒體系統和用戶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
          系統系統和用戶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

          以前,對于在Windows 2000或Windows XP上玩CS的人來說,是否開顯卡的垂直同步是個兩難的選擇。不開垂直同步可以得到更高的FPS,但畫面老是抖動,打時間長了眼睛很累;開了垂直同步,FPS就肯定超不過60。但我相信還有很多朋友不知道該怎么辦,因此把解決辦法公布,希望能對大家有所幫助。

          在Window 2000或XP下,開垂直同步后FPS超不過60的原因是:Window 2000或XP在這種情況下會把游戲中的FPS設定為Windows的缺省值60,再好的配置也沒用。

          解決這個問題的辦法很多,可以用第三方程序如PowerStrip等,但這種辦法需要外掛程序,可能不安全。最近,我終于找到最根本的解決辦法,就是在直接在注冊表里把Windows的缺省值改成100(或更高,只要你的顯示器支持就可以)。請千萬注意:在修改注冊表前,一定要確認你的顯示器在不同的分辨率下所支持的最高刷新頻率。比如,我的電腦在1024*768的分辨率下能達到100Hz的刷新頻率,我玩CS也是在這個分辨率下玩,所以,我才敢把Windows的缺省值設為100。另外也請注意,這樣修改完注冊表后,你電腦桌面的分辨率和刷新頻率也會被限定為這個數值。

          修改注冊表的方法如下:

          Open regedit and find this key:
          運行regedit命令進入注冊表修改界面;
          進入[HKEY_LOCAL_MACHINEsystemCurentControlSetControlClass],打開"Class"鍵,你將看到一大排的鍵,類似于

          {4D36E96E-E325-11CE....}

          如果你選中其中一個鍵你將可以看到一些鍵值,如"Default"、"Class"等,并指明設備的種類,如"Modem", "Keyboards"等,逐個打開這些{4D36E96E-E325-11CE....}鍵,直到看到"Class"的鍵值是"Monitor"。好的,我們已經找到控制顯示器的注冊信息了,接下來就是在這里面該缺省值了。

          打開你剛找到的那個鍵,里面至少應該有1個鍵,叫做"0000",這里也可能有其他的鍵,如"0001"、"0002"等。如果里面只有個"0000",那就簡單了,你直接在"0000"里按下面的方法修改就可以了。如果有多個鍵,你就必須逐個找出來哪個鍵是控制你的顯示器的,方法是逐個鍵地按照下面說的“修改缺省值的操作”進行修改,修改后立即用下面說的“檢查缺省值是否修改”的方法檢查,如果相符就說明這個鍵是控制你顯示器的,否則就不是。

          “修改缺省值的操作”方法:

          打開"0000"或你找到的其他的鍵,你可以看到里面有個"MODES"鍵,打開它你將看到一個鍵顯示的是你的顯示器的最大分辨率,如"1600,1200",現在假設你要在1024*768的分辨率下達到100Hz的刷新率,那么操作如下:在"MODES"下增加一個鍵叫做"1024,768",在"1024,768"鍵里增加一個鍵叫做"Mode1",鍵值設為"100-100,100-100"。修改缺省值得操作完畢。

          “檢查缺省值是否修改”的方法:

          進入"Display properties -> Setting",看分辨率是否為你設定的值,如果不是那么說明你修改的那個類似于"0000"的鍵不是現在控制你顯示器的鍵,,如果分辨率是你設定的值(如1024*768),那么再進"Advanced -> Monitor"里面看顯示器的刷新頻率是不是也是你設定的值,如果是,選中"Hide all unsupported modes"后你的刷新頻率應該只有一個值可以選擇,就是你設定的值(如100Hz)。這說明你修改得正確。

          總結:

          修改后,你進入游戲后無論游戲是用Direct3D還是OpenGL,你的FPS都可以超過60了。這個修改方法對Windows 2000和Windows XP都有效

          posted @ 2007-09-13 18:53 jadmin 閱讀(84) | 評論 (0)編輯 收藏
          注冊表對有的人還是比較陌生的,因為現在第三方軟件太多了,如優化大師、魔法兔子等等,但個人覺得改善系統的第三方軟件還不夠完善,如果初級用戶使用不當,會出現嚴重的后果,所以提供這篇文章,希望大家多多學習,本人能力有限,還希望大家多提寶貴意見:
          一、注冊表的由來
          PC機及其操作系統的一個特點就是允許用戶按照自己的要求對計算機系統的硬件和軟件進行各種各樣的配置。早期的圖形操作系統,如Win3.x中,對軟硬件工作環境的配置是通過對擴展名為.ini的文件進行修改來完成的,但INI文件管理起來很不方便,因為每種設備或應用程序都得有自己的INI文件,并且在網絡上難以實現遠程訪問。

          為了克服上述這些問題,在Windows 95及其后繼版本中,采用了一種叫做“注冊表”的數據庫來統一進行管理,將各種信息資源集中起來并存儲各種配置信息。按照這一原則,Windows各版本中都采用了將應用程序和計算機系統全部配置信息容納在一起的注冊表,用來管理應用程序和文件的關聯、硬件設備說明、狀態屬性以及各種狀態信息和數據等。

          與INI文件不同的是:
          1.注冊表采用了二進制形式登錄數據;
          2.注冊表支持子鍵,各級子關鍵字都有自己的“鍵值”;
          3.注冊表中的鍵值項可以包含可執行代碼,而不是簡單的字串;
          4.在同一臺計算機上,注冊表可以存儲多個用戶的特性。

          注冊表的特點有:
          1.注冊表允許對硬件、系統參數、應用程序和設備驅動程序進行跟蹤配置,這使得修改某些設置后不用重新啟動成為可能。
          2.注冊表中登錄的硬件部分數據可以支持高版本Windows的即插即用特性。當Windows檢測到機器上的新設備時,就把有關數據保存到注冊表中,另外,還可以避免新設備與原有設備之間的資源沖突。
          3.管理人員和用戶通過注冊表可以在網絡上檢查系統的配置和設置,使得遠程管理得以實現。

          二、使用注冊表
          1.大家可以在開始菜單中的運行里輸入regedit
          2.也可以在DOS下輸入regedit


          三、注冊表根鍵說明
          hkey_classes_root 包含注冊的所有OLE信息和文檔類型,是從 hkey_local_machinesoftwareclasses復制的。
          hkey_current_user 包含登錄的用戶配置信息,是從hkey_users當前用戶子樹復制的。
          hkey_local_machine 包含本機的配置信息。其中config子樹是顯示器打印機信息; enum子樹是即插即用設備信息;system子樹是設備驅動程序和服務參數的控制集合;software子樹是應用程序專用設置。
          hkey_users 所有登錄用戶信息。
          hkey_current_config 包含常被用戶改變的部分硬件軟件配置,如字體設置、顯示器類型、打印機設置等。是從hkey_local_machineconfig復制的。
          hkey_dyn_data 包含現在計算機內存中保存的系統信息。

          四、注冊表詳細內容
            Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionexploreruser shell folders 保存個人文件夾、收藏夾的路徑
            Hkey_local_machinesystemcurrentControlSetcontrolkeyboard Layouts保存鍵盤使用的語言以及各種中文輸入法
          Hkey_users.Defaultsoftwaremicrosoftinternet explorertypeURLs保存IE瀏覽器地址欄中輸入的URL地址列表信息。清除文檔菜單時將被清空。
            Hkey_users.Defaultso..mi..wi..currentVersionex..menuOrderstartMenu 保留程序菜單排序信息
          Hkey_users.Defaultso..microsoftwindowscurrentVersionexplorerRunMRU 保存“開始 * 運行...“中運行的程序列表信息。清除文檔菜單時將被清空。
            Hkey_users.Defaultso..microsoftwindowscurrentVersionexplorerecentDocs 保存最近使用的十五個文檔的快捷方式(刪除掉可解決文檔名稱重復的毛病),清除文檔菜單時將被清空。
            Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionuninstall 保存已安裝的Windows應用程序卸載信息。
          hkey_users.defaultsoftwaremicrosoftwindowscurrentVersionapplets 保存Windows應用程序的紀錄數據。
          Hkey_local_machinesystemCurrentControlSetservicesclass 保存控制面板-增添硬件設備-設備類型目錄。
            Hkey_local_machinesystemCurrentControlSetcontrolupdate 立即刷新設置。值為00設置為自動刷新,01設置為手工刷新[在資源管理器中按F5刷新]。
          HKEY_CURRENT_USERControl PanelDesktop 新建串值名MenuShowDelay=0 可使“開始”菜單中子菜單的彈出速度提高。新建串值名MinAnimate,值為1啟動動畫效果開關窗口,值為0取消動畫效果。
            Hkey_local_machinesoftwaremicrosoftwindowscurrentVersionrun 保存由控制面板設定的計算機啟動時運行程序的名稱,其圖標顯示在任務條右邊。[啟動文件夾程序運行時圖標也在任務條右邊]
          hkey_users.defaultsoftwaremicrosoftwindowscurrentVersionrun保存由用戶設定的計算機啟動時運行程序的名稱,其圖標顯示在任務條右側。
          HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon 默認圖片的圖標。雙擊窗口右側的字符串,在打開的對話框中刪除原來的鍵值,輸入%1。重新啟動后,在“我的電腦”中打開Windows目錄,選擇“大圖標“,然后你看到的Bmp文件的圖標再也不是千篇一律的畫板圖標了,而是每個Bmp文件的略圖。
            Hkey-local-machine software microsoft windows currentVersion Policies Ratings 保存IE4.0中文版“安全”*“分級審查”中設置的口令(數據加密)。
            Hkey-local-machine software microsoft windows currentVersion explorer desktopnameSpace保存桌面中特殊的圖標,如回收站、收件箱、MS Network等。

          五、如何備份注冊表
          利用注冊表編輯器手工備份注冊表

            注冊表編輯器(Regedit)是操作系統自帶的一款注冊表工具,通過它就能對注冊表進行各種修改。當然,"備份"與"恢復"注冊表自然是它的本能了。

          (1)通過注冊表編輯器備份注冊表
            由于修改注冊表有時會危及系統的安全,因此不管是WINDOWS 98還是WINDOWS 2000甚至WINDOWS XP,都把注冊表編輯器"藏"在了一個非常隱蔽的地方,要想"請"它出山,必須通過特殊的手段才行。點擊"開始"菜單,選擇菜單上的"運行"選項,在彈出的"運行"窗口中輸入"Regedit"后,點擊"確定"按鈕,這樣就啟動了注冊表編輯器。

            點擊注冊表編輯器的"注冊表"菜單,再點擊"導出注冊表文件"選項,在彈出的對話框中輸入文件名"regedit",將"保存類型"選為"注冊表文件",再將"導出范圍"設置為"全部",接下來選擇文件存儲位置,最后點擊"保存"按鈕,就可將系統的注冊表保存到硬盤上。

            完成上述步驟后,找到剛才保存備份文件的那個文件夾,就會發現備份好的文件已經放在文件夾中了。

          (2)在DOS下備份注冊表

            當注冊表損壞后,WINDOWS(包括"安全模式")無法進入,此時該怎么辦呢?在純DOS環境下進行注冊表的備份、恢復是另外一種補救措施,下面來看看在DOS環境下,怎樣來備份、恢復注冊表。

            在純DOS下通過注冊表編輯器備份與恢復注冊表前面已經講解了利用注冊表編輯器在WINDOWS環境下備份、恢復注冊表,其實"Regedit.exe"這個注冊表編輯器不僅能在WINDOWS環境中運行,也能在DOS下使用。

            雖然在DOS環境中的注冊表編輯器的功能沒有在WINDOWS環境中那么強大,但是也有它的獨到之處。比如說通過注冊表編輯器在WINDOWS中備份了注冊表,可系統出了問題之后,無法進入WINDOWS,此時就可以在純DOS下通過注冊表編輯器來恢復注冊表。

            應該說在DOS環境中備份注冊表的情況還是不多見的,一般在WINDOWS中備份就行了,不過在一些特殊的情況下,這種方式就顯得很實用了。

            進入DOS后,再進入C盤的WINDOWS目錄,在該目錄的提示符下輸入"regedit"后按回車鍵,便能查看"regedit"的使用參數。

            通過"Regedit"備份注冊表仍然需要用到"system.dat"和"user.dat"這兩個文件,而該程序的具體命令格式是這樣的:
            Regedit /L:system /R:user /E filename.reg Regpath
          參數含義:
          /L:system指定System.dat文件所在的路徑。
          /R:user指定User.dat文件所在的路徑。
          /E:此參數指定注冊表編輯器要進行導出注冊表操作,在此參數后面空一格,輸入導出注冊表的文件名。
          Regpath:用來指定要導出哪個注冊表的分支,如果不指定,則將導出全部注冊表分支。在這些參數中,"/L:system"和"/R:user"參數是可選項,如果不使用這兩個參數,注冊表編輯器則認為是對WINDOWS目錄下的"system.dat"和"user.dat"文件進行操作。如果是通過從軟盤啟動并進入DOS,那么就必須使用"/L"和"/R"參數來指定"system.dat"和"user.dat"文件的具體路徑,否則注冊表編輯器將無法找到它們。

            比如說,如果通過啟動盤進入DOS,則備份注冊表的命令是"Regedit /L:C:windows/R:C:windows/e regedit.reg",該命令的意思是把整個注冊表備份到WINDOWS目錄下,其文件名為"regedit.reg"。而如果輸入的是"regedit /E D:regedit.reg"這條命令,則是說把整個注冊表備份到D盤的根目錄下(省略了"/L"和"/R"參數),其文件名為"Regedit.reg"。

          (3)用注冊表檢查器備份注冊表
            在DOS環境下的注冊表檢查器Scanreg.exe可以用來備份注冊表。

          命令格式為:
          Scanreg /backup /restore /comment

          參數解釋:
          /backup用來立即備份注冊表
          /restore按照備份的時間以及日期顯示所有的備份文件
          /comment在/restore中顯示同備份文件有關的部分

          注意:在顯示備份的注冊表文件時,壓縮備份的文件以.CAB文件列出,CAB文件的后面單詞是Started或者是NotStarted,Started表示這個文件能夠成功啟動Windows,是一個完好的備份文件,NotStarted表示文件沒有被用來啟動Windows,因此還不能夠知道是否是一個完好備份。

          比如:如果我們要查看所有的備份文件及同備份有關的部分,命令如下:Scanreg /restore /comment

          六、使用技巧
          上面介紹的都是概念上的東東,下面讓我們實際操作吧
          1.加快開機及關機速度

            在[開始]#>[運行]#>鍵入[Regedit]#>[HKEY_CURRENT_USER]#>[Control Panel]#>[Desktop],將字符串值[HungAppTimeout]的數值數據更改為[200],將字符串值[WaitToKillAppTimeout]的數值數據更改為1000.另外在[HKEY_LOCAL_MACHINE]#>[System]#>[CurrentControlSet]#>[Control],將字符串值[HungAppTimeout]的數值數據更改為[200],將字符串值[WaitToKillServiceTimeout]的數值數據更改1000

          2.自動關閉停止響應程序

            在[開始]#>[運行]#>鍵入[Regedit]#>[HKEY_CURRENT_USER]#>[Control Panel]#>[Desktop],將字符串值[AutoEndTasks]的數值數據更改為1,重新啟動即可

          3.清除內存內被不使用的DLL文件

            在[開始]#>[運行]#>鍵入[Regedit]#>[HKKEY_LOCAL_MACHINE]#>[SOFTWARE]#>[Microsoft]#>[Windows]#>[CurrentVersion],在[Explorer]增加一個項[AlwaysUnloadDLL],默認值設為1。注:如由默認值設定為[0]則代表停用此功能

          4.加快菜單顯示速度

            在[開始]#>[運行]#>鍵入[Regedit]#>[HKEY_CURRENT_USER]#>[Control Panel]#>[Desktop],將字符串值[MenuShowDelay]的數值數據更改為[0],調整后如覺得菜單顯示速度太快而不適應者可將[MenuShowDelay]的數值數據更改為[200],重新啟動即可

          5.禁止修改用戶文件夾 

            找到HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer。如果要鎖定“圖片收藏”、“我的文檔”、“收藏夾”、“我的音樂”這些用戶文件夾的物理位置,分別把下面這些鍵設置成1:DisableMyPicturesDirChange,DisablePersonalDirChange,DisableFavoritesDirChange,DisableMyMusicDirChange

          6.減小瀏覽局域網的延遲時間 

            和Windows 2000一樣,XP在瀏覽局域網時也存在煩人的延遲問題,但介紹這個問題的資料卻很難找到。如果你瀏覽一臺Win 9x的機器,例如,在網上鄰居的地址欄輸入“computername”,XP的機器會在它正在連接的機器上檢查“任務計劃”。這種搜索過程可能造成多達30秒的延遲。如果你直接打開某個共享資源,例如在網上鄰居的地址欄輸入“computernameshare”,就不會有這個延遲過程。要想避免XP搜索“任務計劃”的操作,提高瀏覽網絡的速度,你可以刪除HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerRemoteComputerNameSpace{D6277990-4C6A-11CF-8D87-00AA0060F5BF}子鍵。該鍵的類型是REG_SZ

          7.屏蔽系統中的熱鍵  

            點擊“開始”→“運行”,輸入Regedit,打開注冊表編輯器。然后依次打開到HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer,新建一個雙字節值,鍵名為“NoWindows Keys”,鍵值為“1”,這樣就可以禁止用戶利用系統熱鍵來執行一些禁用的命令。如果要恢復,只要將鍵值設為0或是將此鍵刪除即可

          8.關閉不用的共享  

            安全問題一直為大家所關注,為了自己的系統安全能夠有保證,某些不必要的共享還是應該關閉的。用記事本編輯如下內容的注冊表文件,保存為任意名字的.Reg文件,使用時雙擊即可關閉那些不必要的共享:  

            Windows Registry Editor Version 5.00  

            [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters]  

            "AutoShareServer"=dword:00000000  

            "AutoSharewks"=dword:00000000  

            [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa]  

            "restrictanonymous"=dword:00000001

          9.讓IE支持多線程下載
            一般情況下,大家都使用多線程下載軟件如Flashget等下載文件,其實IE也可以支持多線程下載的,只是微軟將這個功能給藏了起來。我們把它給挖出來就可以使用了。打開注冊表編輯器,在注冊表HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings下新建雙字節值項“MaxConnectionsPerServer”,它決定了最大同步下載的連線數目,一般設定為5~8個連線數目比較好。另外,對于HTTP 1.0服務器,可以加入名為“MaxConnectionsPer1_0Server”的雙字節值項,它也是用來設置最大同步下載的數目,也可以設定為5~8。 

          10.讓WINDOWS XP自動登陸 

            打開:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon,在右邊的窗口中的新建字符串"AutoAdminlogon",并把他們的鍵值為"1",并且把“DefaultUserName”的值設置為用戶名,并且另外新建一個字符串值“DefaultPassword”,并設其值為用戶的密碼

          七、我們來讓我們的系統瘦瘦身
          刪除多余的虛擬光驅圖標

            當我們在系統中安裝了虛擬光驅后,“我的電腦”中就會多出一個光盤圖標,即便日后你不再使用虛擬光驅,虛擬光驅圖標還會繼續保留,實在沒有必要。我們動手來刪除這個多余的虛擬光驅圖標:單擊“開始→運行”,輸入“regedit”,按下“確定”鍵后打開注冊表編輯器,依次展開HKEY_LOCAL_MACHINEEnumSCSI分支,在SCSI子鍵下通常有兩個子鍵,它們分別對應著虛擬光驅和物理光驅,把SCSI下的子鍵全部刪除,重新啟動電腦后虛擬光驅圖標就會被刪除。

          刪除多余的系統級圖標

            系統級圖標是指在安裝Windows時由系統自動創建的圖標,如回收站、收件箱、網上鄰居等,其中有些圖標對用戶來說并無用處,但這些圖標無法直接刪除。打開注冊表編輯器,依次展開HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion

            explorerDesktopNameSpace分支,然后刪除不需要的子鍵。關閉注冊表編輯器,重新啟動電腦后,你會發現桌面上不需要的系統級圖標已經消失了。

          刪除“運行”中多余的選項

            如果你多次使用“開始→運行”菜單,會發現它的“打開”窗口被一大堆不再需要的命令弄得凌亂不堪。打開注冊表編輯器,依次展開HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersion

            ExplorerRunMRU分支,將右側窗口的相關鍵值刪除即可。

          刪除“查找”中多余的選項

            依次展開HKEY_USER.DefaultSoftwareMicrosoftWindowsCurrentVersion

            ExplorerDoc-FindSpecMRU分支,將右側窗口中的相關鍵值刪除即可。

          刪除多余的鍵盤布局

            Windows試圖成為世界的寵兒,因此其鍵盤布局適合于各國各類人的使用習慣。打開注冊表編輯器,依次展開HKEY_LOCAL_MACHINESystemCurrentControlSetControl

            KeyboardLayouts分支,我們可以看到該分支下保存了西班牙語(傳統)、丹麥語、德語(標準)等多種鍵盤布局,如果你用不到這些語言的鍵盤布局,完全可以直接刪除這些子鍵。

          刪除多余的區域設置

            與上述鍵盤布局相類似的還有Windows的區域設置,在注冊表編輯器中展開HKEY_LOCAL_MACHINESystemCurrentControlSetControl

            NlsLocale分支,簡體中文使用者完全可以只保留“00000804”鍵值,其他可以毫不留情地刪除。
          posted @ 2007-09-13 18:52 jadmin 閱讀(81) | 評論 (0)編輯 收藏
          1)邏輯與/或:AND、OR
          注意AND、OR必須大寫,否則會被認為是普通的單詞,而不是搜索指令。
          與普通編程語言不一樣的是,OR指令優先于AND指令。
          簡寫:AND指令一般以空格代替,不明確寫出。另外AND指令還可以用+代替。OR指令可用|代替。

          樣例:Inverted OR Signature files OR file OR index,它等同于 (Inverted OR Signature) (files OR file OR index)
          2)邏輯非:-
          樣例:搜索引擎 歷史 -文化 -中國歷史 -世界歷史
          3)完整匹配:"…"
          樣例:"world war I" 表示搜索一次世界大戰。
          4)通配符:*?
          與我們通常的習慣一致,“*”代表一連串字符,“?”代表單個字符。
          樣例:progr?m
          提示:不要指望Google可用通過progr?m搜索到program,因為progr和m分別被當作一個獨立的單詞,并且這兩個單詞之間允許出現一個字符,如此而已。

          5)site: 在某個網站或域名下搜索
          樣例:搜索引擎 技巧 site:edu.cn
          這表示要在中文教育科研網站(edu.cn)上關于搜索引擎技巧的頁面。
          6)filetype: 搜索某種類型的文件
          樣例:filetype:pdf
          這表示只搜索pdf文件。
          7)in指令: 位置關鍵詞查找。
          intitle: 在網頁標題中查找。這通常對討論比較多的熱門話題很有效。例如:intitle:"GeForce 7800"+測試
          allintitle: 該指令屬于排他指令,不能與其他指令混用。

          例如:allintitile:"GeForce 7800" 測試 與 intitle:"GeForce 7800"+測試 的含義一致。但是,allintitile是排他的,不能加上其他非intitle方面的限制條件。
          注意:在這里,你會發現用+代替AND指令是很有意思的。如果沒有+指令,我們就需要寫:intitle:"GeForce 7800" intitle:測試,因為Google不支持這樣的寫法:intitle:("GeForce 7800" 測試)
          inurl: 在網頁的url地址中查找。例如:inurl:dowload 表示查找url中包含download的網頁。
          allinurl: inurl的排他指令。
          inanchor: 在網頁的鏈接錨中查找。

          需要注意區別于inurl:inurl是網頁本身的url地址,而inanchor是在外部用于指向該url地址的文本(<a>…</a>之間文本)中找。
          例如:inanchor:download,你可能會發現有FlashGet最佳的下載管理程式,而該頁面中根本就沒有download字樣。
          allinanchor: inanchor的排他指令。
          intext: 在正文中檢索。
          allintext: intext的排他指令。
          8)link: 搜索所有鏈接到某個URL地址的網頁
          最重要的用途:迅速判斷一個網頁的“熱度”。
          例如:link:www.newhua.com 表示所有指向“華軍軟件園”外部鏈接。
          注意:和其他指令類似,link:和url之間不能有空格。之所以特別指出這一點,是因為網上有教程說link和allinurl等一樣,是排他指令,中間可以有空格。我不太了解Google搜索指令的發展歷史,只能猜測曾經如此。

          9)related: 尋找某網頁的“類似網頁”。
          例如:related:www.newhua.com 表示找和“華軍軟件園”類似的網頁。
          這條指令其實Google自己用得很廣泛,只是可能沒有引起你的注意罷了。在Google的每條搜索結果中,均有一個“類似網頁”的鏈接。就是它了。

          10)cache: 網頁快照(略)。

          11)daterange: 據說可以限定網頁的更新時間。但是我沒有試出來。

          12)數值范圍:..
          例如:數碼相機 600..900 萬像素 3000..4000 元
          注意:“900”與“萬”之間必須有空格。
          posted @ 2007-09-12 11:24 jadmin 閱讀(60) | 評論 (0)編輯 收藏

          <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>
          ?? ${"錯誤" }
          </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() 當前這次迭代的(集合中的)項??
          index getIndex() 當前這次迭代從 0 開始的迭代索引??
          count getCount() 當前這次迭代從 1 開始的迭代計數??
          first isFirst() 用來表明當前這輪迭代是否為第一次迭代的標志??
          last isLast() 用來表明當前這輪迭代是否為最后一次迭代的標志??
          begin getBegin() begin 屬性值??
          end getEnd() end 屬性值??
          step getStep() step 屬性值??

          4.c:forTokens
          同forEach 它主要是用來處理 字符串,之間用逗號或者什么其他符號分割的,

          <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 可以定義一個 test 的值,并且用 scope 設置這個變量的生命周期

          6.c:out

          <c:out?? value="df" default= "" escapeXml="true">

          default ,當 value 出現 null 值時候用的默認值

          escapeXml,是否轉換 HTML 格式的文字

          posted @ 2007-09-12 11:14 jadmin 閱讀(72) | 評論 (0)編輯 收藏
          <taglib>
          ???????? <taglib-uri>http://java.sun.com/jstl/fn</taglib-uri>
          ???????? <taglib-location>/WEB-INF/fn.tld</taglib-location>
          </taglib>

          長度函數: fn:length

          字符串處理函數: 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 頁面上:

          <%@ taglib uri="/WEB-INF/fn.tld" prefix="fn" %>

          ${fn:toUpperCase("sdjkhjshjhjd") }

          這個例子將輸出 這些字母的大寫字母

          一.長度函數 fn:length 函數

          長度函數 fn:length 的出現有重要的意義。在 JSTL1.0 中,有一個功能被忽略了,那就是對集合的長度取值。雖然 java.util.Collection 接口定義了 size 方法,但是該方法不是一個標準的 JavaBean 屬性方法(沒有 get,set 方法),因此,無法通過 EL 表達式“ ${collection.size} ”來輕松取得。

          fn:length 函數正是為了解決這個問題而被設計出來的。它的參數為 input ,將計算通過該屬性傳入的對象長度。該對象應該為集合類型或 String 類型。其返回結果是一個 int 類型的值。下面看一個示例。

          <%ArrayList arrayList1 = new ArrayList();

          ????????????????????????????arrayList1.add("aa");

          ????????????????????????????arrayList1.add("bb");

          ????????????????????????????arrayList1.add("cc");

          %>

          <%request.getSession().setAttribute("arrayList1", arrayList1);%>

          ${fn:length(sessionScope.arrayList1)}

          假設一個 ArrayList 類型的實例“ arrayList1 ”,并為其添加三個字符串對象,使用 fn:length 函數后就可以取得返回結果為“ 3 ”。

          二.判斷函數 fn:contains 函數

          fn:contains 函數用來判斷源字符串是否包含子字符串。它包括 string substring 兩個參數,它們都是 String 類型,分布表示源字符串和子字符串。其返回結果為一個 boolean 類型的值。下面看一個示例。

          ${fn:contains("ABC", "a")}<br>

          ${fn:contains("ABC", "A")}<br>

          前者返回“ false ”,后者返回“ true ”。

          三.fn:containsIgnoreCase 函數

          fn:containsIgnoreCase 函數與 fn:contains 函數的功能差不多,唯一的區別是 fn:containsIgnoreCase 函數對于子字符串的包含比較將忽略大小寫。它與 fn:contains 函數相同,包括 string substring 兩個參數,并返回一個 boolean 類型的值。下面看一個示例。

          ${fn:containsIgnoreCase("ABC", "a")}<br>

          ${fn:containsIgnoreCase("ABC", "A")}<br>

          前者和后者都會返回“ true ”。

          四.詞頭判斷函數 fn:startsWith 函數

          fn:startsWith 函數用來判斷源字符串是否符合一連串的特定詞頭。它除了包含一個 string 參數外,還包含一個 subffx 參數,表示詞頭字符串,同樣是 String 類型。該函數返回一個 boolean 類型的值。下面看一個示例。

          ${fn:startsWith ("ABC", "ab")}<br>

          ${fn:startsWith ("ABC", "AB")}<br>

          前者返回“ false ”,后者返回“ true ”。

          五.詞尾判斷函數 fn:endsWith 函數

          fn:endsWith 函數用來判斷源字符串是否符合一連串的特定詞尾。它與 fn:startsWith 函數相同,包括 string subffx 兩個參數,并返回一個 boolean 類型的值。下面看一個示例。

          ${fn:endsWith("ABC", "bc")}<br>

          ${fn:endsWith("ABC", "BC")}<br>

          前者返回“ false ”,后者返回“ true ”。

          .字符實體轉換函數fn:escapeXml 函數

          fn:escapeXml 函數用于將所有特殊字符轉化為字符實體碼。它只包含一個 string 參數,返回一個 String 類型的值。

          七.字符匹配函數 fn:indexOf 函數

          fn:indexOf 函數用于取得子字符串與源字符串匹配的開始位置,若子字符串與源字符串中的內容沒有匹配成功將返回“ -1 ”。它包括 string substring 兩個參數,返回結果為 int 類型。下面看一個示例。

          ${fn:indexOf("ABCD","aBC")}<br>

          ${fn:indexOf("ABCD","BC")}<br>

          前者由于沒有匹配成功,所以返回 -1 ,后者匹配成功將返回位置的下標,為 1

          八.分隔符函數 fn:join 函數

          fn:join 函數允許為一個字符串數組中的每一個字符串加上分隔符,并連接起來。它的參數、返回結果和描述如表 9.25 所示:

          9.25   fn:join 函數

          參數

          描述

          array

          字符串數組。其類型必須為 String[] 類型

          separator

          分隔符。其類型必須為 String 類型

          返回結果

          返回一個 String 類型的值

          下面看一個示例。

          <% String[] stringArray = {"a","b","c"}; %>

          <%request.getSession().setAttribute("stringArray", stringArray);%>

          ${fn:join(sessionScope.stringArray,";")}<br>

          定義數組并放置到 Session 中,然后通過 Session 得到該字符串數組,使用 fn:join 函數并傳入分隔符“ ; ”,得到的結果為“ a;b;c ”。

          九.替換函數 fn:replace 函數

          fn:replace 函數允許為源字符串做替換的工作。它的參數、返回結果和描述如表 9.26 所示:

          9.26   fn:replace 函數

          參數

          描述

          inputString

          源字符串。其類型必須為 String 類型

          beforeSubstring

          指定被替換字符串。其類型必須為 String 類型

          afterSubstring

          指定替換字符串。其類型必須為 String 類型

          返回結果

          返回一個 String 類型的值

          下面看一個示例。

          ${fn:replace("ABC","A","B")}<br>

          將“ ABC ”字符串替換為“ BBC ”,在“ ABC ”字符串中用“ B ”替換了“ A ”。

          十.分隔符轉換數組函數 fn:split 函數

          fn:split 函數用于將一組由分隔符分隔的字符串轉換成字符串數組。它的參數、返回結果和描述如表 9.27 所示:

          9.27   fn:split 函數

          參數

          描述

          string

          源字符串。其類型必須為 String 類型

          delimiters

          指定分隔符。其類型必須為 String 類型

          返回結果

          返回一個 String[] 類型的值

          下面看一個示例。

          ${fn:split("A,B,C",",")}<br>

          將“ A,B,C ”字符串轉換為數組 {A,B,C}

          十一.字符串截取函數 fn:substring 函數

          fn:substring 函數用于截取字符串。它的參數、返回結果和描述如表 9.28 所示:

          9.28   fn:substring 函數

          參數

          描述

          string

          源字符串。其類型必須為 String 類型

          beginIndex

          指定起始下標(值從 0 開始)。其類型必須為 int 類型

          endIndex

          指定結束下標(值從 0 開始)。其類型必須為 int 類型

          返回結果

          返回一個 String 類型的值

          下面看一個示例。

          ${fn:substring("ABC","1","2")}<br>

          截取結果為“ B ”。

          十二.起始到定位截取字符串函數 fn:substringBefore 函數

          fn:substringBefore 函數允許截取源字符從開始到某個字符串。它的參數和 fn:substringAfter 函數相同,不同的是 substring 表示的是結束字符串。下面看一個示例。

          ${fn:substringBefore("ABCD","BC")}<br>

          截取的結果為“ A ”。

          十三.小寫轉換函數 fn:toLowerCase 函數

          fn:toLowerCase 函數允許將源字符串中的字符全部轉換成小寫字符。它只有一個表示源字符串的參數 string ,函數返回一個 String 類型的值。下面看一個示例。

          ${fn:toLowerCase("ABCD")}<br>

          轉換的結果為“ abcd ”。

          十四.大寫轉換函數 fn:toUpperCase 函數

          fn:toUpperCase 函數允許將源字符串中的字符全部轉換成大寫字符。它與 fn:toLowerCase 函數相同,也只有一個 String 參數,并返回一個 String 類型的值。下面看一個示例。

          ${fn:toUpperCase("abcd")}<br>

          轉換的結果為“ ABCD ”。

          十五.空格刪除函數 fn:trim 函數

          fn:trim 函數將刪除源字符串中結尾部分的“空格”以產生一個新的字符串。它與 fn:toLowerCase 函數相同,只有一個 String 參數,并返回一個 String 類型的值。下面看一個示例。

          ${fn:trim("AB C ")}D<br>

          轉換的結果為“ AB CD ”,注意,它將只刪除詞尾的空格而不是全部,因此“ B ”和“ C ”之間仍然留有一個空格。



          posted @ 2007-09-12 11:13 jadmin 閱讀(1130) | 評論 (0)編輯 收藏

          fmt:formatNumber
          fmt:parseNumber
          fmt:formatDate
          fmt:parseDate??

          剩下幾個 關于 國際標準化的標簽的話這里就不做介紹了,有興趣的朋友可以和我交流一下

          fmt:setLocale
          fmt:timeZone
          fmt:setTimeZone
          fmt:bundle
          fmt:setBundle
          fmt:message
          fmt:param

          還有一個字符型 標簽 fmt:requestEncoding 的話,因為像我一般的話都在 JSP 頂部已經設置過了,個人感覺用處也不是很大

          <fmt:formatDate value="<%=new Date() %>" pattern="yyyy年MM月dd日HH點mm分ss秒" />
          <fmt:parseDate value="2008-8-8" pattern="yyyy-MM-dd" var = "abccba" scope="session" />

          第一個 用來進行 DATE 型數據的格式化輸出,字母代表什么意思上面的例子中已經寫的很清楚了

          第二個 主要是把 Pattern樣式的String 類型的數據轉換成 Date 類型

          <fmt:formatNumber value="123.123456789" pattern="0.00"/>

          用來將 數字進行 格式化輸出,上面的例子中就是保留兩位有效小數

          fmt:parseNumber?? 同 fmt:parseDate 這里就不做介紹了

          posted @ 2007-09-12 11:12 jadmin 閱讀(738) | 評論 (0)編輯 收藏


          net start mysql???????????? 啟動數據庫

          net start mysql???????????? 關閉數據庫

          mysql -u用戶名 -p密碼?????? 連接數據庫

          show databases?????????????? 找出服務器上當前存在什么數據庫



          一、連接MYSQL。


          格式: mysql -h主機地址 -u用戶名 -p用戶密碼


          1、例1:連接到本機上的MYSQL。


          首先在打開DOS窗口,然后進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車后提示你輸密碼,如果剛安裝好MYSQL,超級用戶root

          是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>


          2、例2:連接到遠程主機上的MYSQL。假設遠程主機的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加個密碼ab12。首先在DOS下進入目錄mysqlbin,然后鍵入以下命令


          mysqladmin -uroot -password ab12


          注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。


          2、例2:再將root的密碼改為djg345。


          mysqladmin -uroot -pab12 password djg345


          三、增加新用戶。(注意:和上面不同,下面的因為是MYSQL環境中的命令,所以后面都帶一個分號作為命令結束符)


          格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by \"密碼\"


          例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶

          連入MYSQL,然后鍵入以下命令:


          grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";


          但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那么他就可以在internet上的任何一臺電腦上登錄你的mysql數據庫并對

          你的數據可以為所欲為了,解決辦法見例2。


          例2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,并可以對數據庫mydb進行查詢、插入、修改、刪除的操作

          (localhost指本地主機,即MYSQL數據庫所在的那臺主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,

          只能通過MYSQL主機上的web頁來訪問了。


          grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";


          如果你不想test2有密碼,可以再打一個命令將密碼消掉。


          grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";


          在上篇我們講了登錄、增加用戶、密碼更改等問題。下篇我們來看看MYSQL中有關數據庫方面的操作。注意:你必須首先登錄到MYSQL中,

          以下操作都是在MYSQL的提示符下進行的,而且每個命令以分號結束。


          一、操作技巧


          1、如果你打命令時,回車后發現忘記加分號,你無須重打一遍命令,只要打個分號回車就可以了。也就是說你可以把一個完整的命令分成

          幾行來打,完后用分號作結束標志就OK。


          2、你可以使用光標上下鍵調出以前的命令。但以前我用過的一個MYSQL舊版本不支持。我現在用的是mysql-3.23.27-beta-win。


          二、顯示命令


          1、顯示數據庫列表。


          show databases;


          剛開始時才兩個數據庫:mysql和test。mysql庫很重要它里面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作


          2、顯示庫中的數據表:


          use mysql; //打開庫,學過FOXBASE的一定不會陌生吧


          show tables;


          3、顯示數據表的結構:


          describe 表名;


          4、建庫:


          create database 庫名;


          5、建表:


          use 庫名;


          create table 表名 (字段設定列表);


          6、刪庫和刪表:


          drop database 庫名;


          drop table 表名;


          7、將表中記錄清空:


          delete from 表名;


          8、顯示表中的記錄:


          select * from 表名;


          三、一個建庫和建表以及插入數據的實例


          drop database if exists school; //如果存在SCHOOL則刪除


          create database school; //建立庫SCHOOL


          use school; //打開庫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


          ); //建表結束


          //以下為插入字段


          insert into teacher values('','glchengang','深圳一中','1976-10-10');


          insert into teacher values('','jack','深圳一中','1975-12-23');


          注:在建表中(1)將ID設為長度為3的數字字段:int(3)并讓它每個記錄自動加一:auto_increment并不能為空:not null而且讓他成為主字

          段primary key(2)將NAME設為長度為10的字符字段(3)將ADDRESS設為長度50的字符字段,而且缺省值為深圳。varchar和char有什么區

          別呢,只有等以后的文章再說了。(4)將YEAR設為日期字段。


          如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫入一個文本文件中假設為school.sql,然后復制到

          c:\\下,并在DOS狀態進入目錄\\mysql\\bin,然后鍵入以下命令:


          mysql -uroot -p密碼 < c:\\school.sql


          如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的注釋去掉即可使用)。


          四、將文本數據轉到數據庫中


          1、文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用\\n來代替.


          例:


          3 rose 深圳二中 1976-10-10


          4 mike 深圳一中 1975-12-23


          2、數據傳入命令 load data local infile \"文件名\" into table 表名;


          注意:你最好將文件復制到\\mysql\\bin目錄下,并且要先用use命令打表所在的庫。


          五、備份數據庫:(命令在DOS的\\mysql\\bin目錄下執行)


          mysqldump --opt school>school.bbb


          注釋:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。


          SQL常用命令使用方法:

          (1) 數據記錄篩選:

          sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]"

          sql="select * from 數據表 where 字段名 like %字段值% order by 字段名 [desc]"

          sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]"

          sql="select * from 數據表 where 字段名 in ( 值1 , 值2 , 值3 )"

          sql="select * from 數據表 where 字段名 between 值1 and 值2"

          (2) 更新數據記錄:

          sql="update 數據表 set 字段名=字段值 where 條件表達式"

          sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"

          (3) 刪除數據記錄:

          sql="delete from 數據表 where 條件表達式"

          sql="delete from 數據表" (將數據表所有記錄刪除)

          (4) 添加數據記錄:

          sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

          sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)

          (5) 數據記錄統計函數:

          AVG(字段名) 得出一個表格欄平均值
          COUNT(*|字段名) 對數據行數的統計或對某一欄有值的數據行數統計
          MAX(字段名) 取得一個表格欄最大的值
          MIN(字段名) 取得一個表格欄最小的值
          SUM(字段名) 把數據欄的值相加

          引用以上函數的方法:

          sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"
          set rs=conn.excute(sql)

          用 rs("別名") 獲取統的計值,其它函數運用同上。

          (6) 數據表的建立和刪除:

          Create TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )

          例:Create TABLE tab01(name varchar(50),datetime default now())

          Drop TABLE 數據表名稱 (永久性刪除一個數據表)

          (7)記錄集對象的方法:

          rs.movenext 將記錄指針從當前的位置向下移一行
          rs.moveprevious 將記錄指針從當前的位置向上移一行
          rs.movefirst 將記錄指針移到數據表第一行
          rs.movelast 將記錄指針移到數據表最后一行
          rs.absoluteposition=N 將記錄指針移到數據表第N行
          rs.absolutepage=N 將記錄指針移到第N頁的第一行
          rs.pagesize=N 設置每頁為N條記錄
          rs.pagecount 根據 pagesize 的設置返回總頁數
          rs.recordcount 返回記錄總數
          rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否
          rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否
          rs.delete 刪除當前記錄,但記錄指針不會向下移動
          rs.addnew 添加記錄到數據表末端
          rs.update 更新數據表記錄

          posted @ 2007-09-11 20:53 jadmin 閱讀(54) | 評論 (0)編輯 收藏
            EJB3.0規范使開發EJB比過去更容易,可能誘惑你考慮開發第一個EJB。如果真是這種情況,那么祝賀你,你經成功避免了在你以前EJB開發者的很多挫折,并且享受到EJB3.0開發的便利性。但是你開始開發以前,你可能想知道EJB是什么和它們用于什么目的。本篇文章解釋了EJB的基礎和你如何在一個J2EE程序中使用它們。

          什么是EJB?

            一個企業JavaBean (EJB)是一個可重用的,可移植的J2EE組件。 EJB由封裝了業務邏輯的多個方法組成。例如,一個EJB可以有包括一個更新客戶數據庫中數據的方法的業務邏輯。多個遠程和本地客戶端可以調用這個方法。另外,EJB運行在一個容器里,允許開發者只關注與bean中的業務邏輯而不用考慮象事務支持,安全性和遠程對象訪問等復雜和容易出錯的事情。EJB以POJO或者普通舊的Java對象形式開發,開發者可以用元數據注釋來定義容器如何管理這些Bean。

          EJB類型

            EJB主要有三種類型:會話Bean,實體Bean和消息驅動Bean。會話Bean完成一個清晰的解耦的任務,例如檢查客戶賬戶歷史記錄。實體Bean是一個代表存在于數據庫中業務對象的復雜業務實體。消息驅動Bean用于接收異步JMS消息。讓我們更詳細的認識這些類型。

          會話Bean

            會話Bean一般代表著業務流程中象"處理訂單"這樣的動作。會話Bean基于是否維護過度狀態分為有狀態或者無狀態。

            無狀態會話Bean 沒有中間狀態。它們不保持追蹤一個方法調用另一個方法傳遞的信息。因此一個無狀態業務方法的每一次調用都獨立于它的前一個調用;例如,稅費計算或者轉移賬款。 當計算稅費額的方法被調用時,稅費值被計算并返回給調用的方法,沒有必要存儲調用者為將來調用備用的內部狀態。因為它們不維護狀態,所以這些Bean是僅僅由容器管理。當客戶端請求一個無狀態的Bean實例時,它可以接收來自由容器管理的無狀態會話Bean實例集中的一個實例。也因為無狀態會話Bean能夠被共享,所以容器可以維護更少數量的實例來為大量的客戶端服務。簡單地象該Bean增加元注釋@Stateless 來指定一個 Java Bean作為一個無狀態會話Bean被部署和管理。

            一個有狀態的會話Bean維護一個跨越多個方法調用的會話狀態;例如在線購物籃應用。當客戶開始在線購物時,客戶的詳細信息從數據庫獲得。相同的信息對于當客戶從購物籃中增加或者移除商品等等操作時被調用的其他方法也是可訪問的 。但是因為該狀態不是在會話結束,系統崩潰或者網絡失敗時保留,所以有狀態會話Bean是暫時的。當一個客戶端請求一個有狀態會話Bean實例時,客戶端將會得到一個會話實例,該Bean的狀態只為給客戶端維持。通過向方法增加元注釋@Remove來告訴容器當某個方法調用結束一個有狀態會話Bean實例應該被移除。

          會話Bean實例
          import javax.ejb.Stateless.*;

          /**
          * 一個簡單無狀態會話Bean實現了CalculateEJB接口的incrementValue()方法
          **/

          @Stateless(name="CalculateEJB")
          public class CalculateEJBBean
          implements CalculateEJB
          {
          int value = 0;
          public String incrementValue()
          {
          value++;
          return "value incremented by 1";
          }
          }

          實體Bean

            實體Bean是管理持久化數據的一個對象,潛在使用一些相關的Java對象并且可以依靠主鍵被唯一識別。通過包括@Entity 元注釋來指定一個類是一個實體Bean。實體Bean表示來自數據庫的持久化數據,例如客戶表中的一個記錄,或者一個員工表中的一個員工記錄。實體Bean也可以被多個客戶端共享。例如一個員工實體能夠被多個計算一個員工每年工資總額或者更新員工地址的客戶端使用。實體Bean對象特定變量能夠保持持久化。實體Bean中所有沒有@Transient 元注釋的變量需要考慮持久化。EJB3.0的一個主要特色是創建包含使用元數據注釋的對象/關系映射實體Bean的能力。例如,指定實體Bean的empId變量映射到employee表中的EMPNO屬性,象下面實例中一樣用@Table(name="Employees") 注釋這個表的名字和用@Column(name="EMPNO")注釋empId變量。另外,EJB3.0中的一個特色是你可以很容易的在開發時測試實體Bean,可以用Oracle Application Server Entity Test Harness在容器外部運行一個實體Bean。

          實體Bean實例
          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();
          }
          }

          消息驅動Bean

            驅動Bean (MDB) 提供了一個實現異步通信比直接使用Java消息服務(JMS)更容易地方法。創建MDB接收異步JMS消息。容器處理為JMS隊列和主題所要求加載處理的大部分工作。它向相關的MDB發送所有的消息。一個MDB允許J2EE應用發送異步消息,該應用能處理這些消息。實現javax.jms.MessageListener接口和使用@MessageDriven注釋該Bean來指定一個Bean是消息驅動Bean。

          消息驅動Bean實例
          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'")
          }
          )

          /**
          *監聽可配置JMS隊列或者主題和通過當一個消息發送到隊列或者主題
          *調用它的onMessage()方法得到提醒的一個簡單的消息驅動
          *該Bean打印消息的內容
          */

          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

            客戶端是訪問Bean的應用程序。雖然沒有必要保存在客戶層,但是能夠作為一個獨立的應用,JSP,Servlet,或者另一個EJB。客戶端通過Bean的遠程或者本地接口訪問EJB中的方法,主要取決于客戶端和Bean運行在同一個還是不同的JVM中。這些接口定義了Bean中的方法,而由Bean類實際實現這些方法。當一個客戶端訪問該Bean類中的一個方法時,容器生成Bean的一個代理,被叫做遠程對象或者本地對象。遠程或者本地對象接收請求,委派它到相應的Bean實例,返回結果給客戶端。調用一個Bean中的方法,客戶端使用定義在EJB不是描述文件的名字查找到Bean。在以下實例中,客戶端使用上下文對象找到命名為"StateLessejb"Bean。

          EJB 客戶端實例

          import javax.naming.Context;
          import javax.naming.InitialContext;

          /**
          * 一個調用無狀態會話Bean中方法的簡單的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();
          }
          }

          總結

            EJB3.0開發企業JavaBean是相當容易的。此規范使用元數據注釋定義Bean的類型和暴露給客戶端的方法。因此,無論你將創建一個執行特定任務的會話Bean還是映射一個表到實體Bean來更新數據,你都能象使用普通Java對象和接口一樣進行處理,在業務方法中使用元注釋向客戶端暴露方法。既然你已經理解了EJB的基礎,可以到OTN中EJB 3.0 Resources Page發現更多信息。
          posted @ 2007-09-11 16:26 jadmin 閱讀(92) | 評論 (0)編輯 收藏
          一. 軟件下載
            Mysql
          下載版本:4.1.11
          http://dev.mysql.com/downloads/mysql/4.1.html

          JDBC驅動
          下載版本:3.1.8
          http://dev.mysql.com/downloads/connector/j/3.1.html

          Mysql界面插件:mysql-front
          下載版本鏡像:HongKong(我下回來安裝就是中文版了)
          http://www.mysqlfront.de/download.html

          二. 軟件安裝
            1.安裝mysql
          請參閱相關文章,推薦文章:http://blog.csdn.net/saulzy/archive/2005/04/23/359648.aspx

          2.JDBC驅動:mysql-connector-java-3.1.8
          這只是一個壓縮包,并不需要安裝,只要將其解壓,我么使用的是文件夾mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.

          3. Mysql界面插件:mysql-front
          這是一個安裝程序,按照提示安裝就可以了.

          三. 環境配置
          首先,我要說明的是我現在tomcat的安裝路徑是: D:\Program Files\Java\Tomcat;JDK的安裝路徑是:D:\Program Files\Java\j2sdk。

          在這里,需要配置環境變量的是JDBC驅動.在配置前先要把剛才說到的mysql-connector-java-3.1.8-bin.jar本地硬盤 某處(我放的地方:D:\Program Files\Java\mysqlforjdbc),然后根據你放的地方,配置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
          配置這個的目的是讓你的java應用程序找到連接mysql的驅動.

          配置完環境變量后還有很重要一步就是為JSP連接數據庫配置驅動,這個其實很簡單,就是把mysql-connector-java-3.1.8- bin.jar拷到某些文件夾里就行了,我在網上看了很多資料問了很多人,各種說法都有,我綜合了一下,為了保險,我都全做了,呵呵,反正就是拷一個 400K的文件而已,現列出要把mysql-connector-java-3.1.8-bin.jar拷進去的文件夾,如下:
          D:\Program Files\Java\Tomcat\common\lib
          D:\Program Files\Java\Tomcat\shared\lib

          四. 數據庫的使用

          Mysql安裝完畢以后,還有一些要注意的地方(推薦文章):http://blog.csdn.net/saulzy/archive/2005/04/23/359811.aspx

            就象在文章提到的,mysql安裝好后最重要一樣就是要看數據庫有沒有作為系統服務啟動了,所以在大家進行數據庫操作前,應要看看,在操作系統的開始->運行->輸入services.msc,確定你在安裝時你設置的關于mysql的那個服務已經啟動,這樣你在操作數據庫時不會報連接不上的錯誤.

            上面提到了一個較方便的mysql界面插件,但是這個界面是我在已經開始使用mysql后才找到的,剛開始我是在dos下用命令行進行操作的. 雖然那個界面也可以進行建庫啊,設定權限等操作,但是,我覺得懂得在使用命令行也是一個很重要的技能,所以我先從命令行開始說,怎樣簡單使用mysql. 到后面會談及mysql-front的使用.

          現在我想在mysql里建一個數據庫shujuku,以及在數據庫里建一個表biao.具體的命令如下(假設mysql我是剛安裝好的)

          1. 進入dos狀態(記住命令行的要運行在mysql的安裝目錄下的bin目錄的)

            2. 連接mysql
          輸入:mysql –h localhost –u root –p
          輸入在安裝時已設好的密碼,就近入了mysql的命令編輯界面了。

          3. 使用mysql的基本命令(在mysql命令行編輯每輸入完命令后最后一定要有分號,不然會報錯)
          顯示數據庫:show databases;
          使用數據庫:use 數據庫名;

          4.建庫
          命令:create database shujuku;

          5.為數據庫設置權限(用戶和密碼)
          命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
          當你執行完這個命令以后,只要你再以用戶名:test,密碼:123456登錄時你就只可以對shujuku這個數據庫操作,這樣避開使用root,對數據庫的安全有很大幫助.

          6.建表
          命令:create table biao(id int(8) primary key,name varchar(10));

          剩下來的與標準sqsl命令基本上是一樣的,具體操作略
          值得一提的是,你在命令行上輸入"?",就會有mysql命令的簡單幫助,如下:

          呵呵,那樣,我們還可以知道退出,就是"exit",呵呵!

          五. 關于mysql-front的使用
            我找了好幾個mysql的界面工具,覺得最簡潔方便還是mysql-front,可惜的是要收費,不過還好有試用期,呵呵,可以先感受感受一下,最重要一點是mysql-front有簡體中文版的,英文不好的我用起來就舒服多了.下面簡單說說使用吧.

            首先,安裝就不用說了,有向導,而且很簡單.安裝好后第一次運行時會跳出來一個要求添加對話的框,在這里你可以添加例如上面已經設定好的shujuku,過程如下:
          當你在注冊的復選框里填上你在上面mysql設定好的用戶名和密碼后,在選擇數據庫框里就有shujuku 的數據庫了,選上,按確定.進入mysql-fron后,你就會看到下面的界面,這是你就可以進行操作了.

          要說明的是,你還可以把root用戶也加進去,這要你在mysql-fron的界面上選設置->對話->新建,再按上面進行就可以,出了root你還可 以加入更多的用戶,方法還是一樣的,設置不同的用戶,是方便對不同數據庫進行管理,呵呵,root是權限最高的,可不要隨便讓別人使用你的root用戶, 保正你數據庫的安全.

          六. JSP連接mysql
            現在就是嘗試用jsp連接mysql了
          我在eclipse里建了個test_mysql.jsp頁面,代碼如下:

          <%@ page contentType="text/html; charset=utf-8" %>

          <%@ page language="java" %>

          <%@ page import="com.mysql.jdbc.Driver" %>

          <%@ page import="java.sql.*" %>

          <%

          //驅動程序名

          String driverName="com.mysql.jdbc.Driver";

          //數據庫用戶名

          String userName="cl41";

          //密碼

          String userPasswd="123456";

          //數據庫名

          String dbName="db";

          //表名

          String tableName="dbtest";

          //聯結字符串

          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);

          //獲得數據結果集合

          ResultSetMetaData rmeta = rs.getMetaData();

          //確定數據集的列數,亦字段數

          int numColumns=rmeta.getColumnCount();

          // 輸出每一個數據值

          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("數據庫操作成功,恭喜你");

          rs.close();

          statement.close();

          connection.close();

          %>

          然后把test-_mysql.jsp部署到tomcat處,如何部署可參考"配置Eclpise+tomcat并實現JSP的編寫與部署",在瀏覽器中就可以看到結果了。
          posted @ 2007-09-11 09:40 jadmin 閱讀(47) | 評論 (0)編輯 收藏

          ????????? 自從Windows 2000操作系統開始,微軟就添加了一個新的網絡功能,叫做Windows默認共享。有朋友會問了,為什么叫“默認共享”呢?原來,這些文件夾與我們自己手工建立的共享文件夾之間有著一個本質的區別,在它們的共享名稱最后都會有一個“$”符號,作用就是能夠在網上鄰居中隱藏自己。

          ???????? 這樣,除非我們預先知道這些默認共享的共享名,否則,按照常規方法是根本無法直接進入到這些文件夾的。

            起初這項功能主要是微軟為了方便系統管理員的日常工作而設計的,并且在默認情況下它們就是開啟的狀態,但由于Windows的漏洞層出不窮,那加上這些預設的文件夾名稱早已被大家所熟知,因此,這些原本是微軟一番好意而設置的功能在使用時卻成了一個巨大的安全陷井,嚴重地威脅著系統和服務器的運行安全,對于此類“雞肋”功能我們自然就要“關他沒商量”。

          ??????? 【小提示】 從圖中大家可以看到,默認的Windows共享大體可分為三類:第一類是“ADMIN$”共享,它所指向的就是當前的系統工作目錄(WINNT目錄)。第二類是類似于“C$、D$、E$……”的共享,它指向的其實就是本機上每個磁盤分區的根目錄。而最后一類則是“IPC$”,它就是我們常說的“共享命名管道”,而著名的空連接漏洞也正是利用了這個IPC$ .

          修改注冊表法

            方便指數:★★★

            推薦指數:★★★★★

            方案優勢:可以從根本上解決系統自動啟動默認共享的問題

            負 作 用:需要執行注冊表操作,略顯麻煩

            適用環境:該方案適合普通電腦系統及服務器系統

          ????????關閉分區默認共享(如C$、D$、E$ ……)

            1. 點擊“開始”菜單→“運行”,在彈出的“運行”對話框中輸入“regedit”后回車,打開注冊表編輯器

            2. 展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters”注冊表項

            3. 雙擊右窗格中的“AutoShareServer”,將它的鍵值改為“0”即可。

          ???????? 關閉管理默認共享(ADMIN$)

            1. 點擊“開始”菜單→“運行”,在彈出的“運行”對話框中輸入“regedit”后回車,打開注冊表編輯器

            2. 展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters”注冊表項

            3. 雙擊右窗格中的“AutoShareWks”,將它的鍵值改為“0”即可

            關閉IPC$默認共享

            1. 點擊“開始”菜單→“運行”,在彈出的“運行”對話框中輸入“regedit”后回車,打開注冊表編輯器

            2. 展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”注冊表項

            3. 雙擊“restrictanonymous”,將其鍵值設為“1”即可(注意,不是“0”,是“1”)

          posted @ 2007-09-08 19:34 jadmin 閱讀(74) | 評論 (0)編輯 收藏
          僅列出標題
          共50頁: First 上一頁 27 28 29 30 31 32 33 34 35 下一頁 Last 
          主站蜘蛛池模板: 大洼县| 沅陵县| 富顺县| 临城县| 申扎县| 金堂县| 邻水| 大荔县| 乐清市| 廉江市| 廊坊市| 锦州市| 荥经县| 内丘县| 元朗区| 三河市| 宁陕县| 子洲县| 六盘水市| 岑巩县| 澄迈县| 双峰县| 蒙城县| 阿拉善盟| 库车县| 长沙县| 土默特右旗| 五莲县| 道真| 洛阳市| 阿坝| 溧阳市| 普格县| 五寨县| 宜昌市| 盐源县| 杂多县| 库车县| 固原市| 石景山区| 多伦县|