ZJS腳本
Ⅰ JSP是什麼JSP.NET是什麼
JSP全名java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,是一種動態網頁技術標准。JSP實現了Html語法中的java擴展(以 <%, %>形式),與Servlet一樣,是在伺服器端執行的。通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
沒有JSP.NET這種語言或者說沒有這個名詞的出現。我想你是想了解ASP.NET:
asp.net的前身是asp,全名是Active Server Page,是微軟公司開發的代替CGI腳本程序的一種應用。同JSP相同,asp是.html語言的.net拓展,在伺服器端執行。
由於ASP是基於Activex控制項技術提供客戶端和伺服器端的開發組件,因此ASP技術基本上是局限於微軟的操作系統平台之上,而java是跨平台的語言,所以jsp實現java擴展的同時也實現了跨平台的特性。
Ⅱ 什麼是jsp
什麼是JSP?
JSP(JavaServer Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准。JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。
Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然後將執行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作資料庫、重新定向網頁等,以實現建立動態網頁所需要的功能。
JSP與Java Servlet一樣,是在伺服器端執行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP的1.0規范的最後版本是1999年9月推出的,12月又推出了1.1規范。目前較新的是JSP1.2規范,JSP2.0規范的徵求意見稿也已出台。
Ⅲ jsz是什麼格式
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標准通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。
Ⅳ 網吧做系統是怎麼做的
網吧母盤製作其本流程:
系統流程表
├—第一部份 系統安裝
│ ├—系統分區
│ ├—WINXPSP2系統安裝
│ ├—WINXPSP2系統補丁
│ ├—硬體驅動
| ├—系統其本的設置
| ├—備份原始鏡像(預防安裝其它軟體而造成系統出錯)
│
├—第二部份 常用軟體
│ ├—解壓軟體RAR、下載工具(可選)、五筆輸入法、殺毒軟體(可選)
│ ├—最新版顯示IP的QQ、 E話通、 UC 、網易泡泡 、雅虎通 、MSN等聊天工具
│ ├—Real Player、 Media Player升級成最新版10、暴風影音、WINAMP或千千靜聽
│ ├—聯眾、邊鋒、 中國游戲中心、 中國互動游戲中心 、浩方平台游戲中心、 QQ游戲、QQ對戰平台
│
├— 第三部份 辦公軟體
├—文件字處理: OFFICE2000或OFFICEXP
├— 圖像處理軟體: acdsee5.0、PS
├— 翻譯軟體:東方快譯2003\金山快譯
├—五筆和英文打字練習軟體
├—第四部份 本地游戲
│ ├—反恐1.5 反恐1.6 反恐CD修改器 防作弊
│ ├—紅警(共和國之輝 紅色警戒)
│ ├—極品飛車7和最新的9
│ ├—魔獸爭霸
│ ├—大富翁
│ ├—明星三缺一麻將
│ ├—帝國(帝國時代II 征服者)
│ ├—星際爭霸
│ ├—小游戲(VR2戰警 搶灘登陸 泡泡龍 暴力魔托等)
│ ├—還有更多。看硬碟吧!
├—第五部份 網路游戲
│ ├—傳奇 傳奇私服 傳奇世界 傳奇3.0 泡泡堂
│ ├—奇跡 奇跡私服
│ ├—挑戰
│ ├—破天一劍
│ ├—命運 凱旋
│ ├—坦克寶貝
│ ├—幻靈游俠
│ ├—大話西遊
│ ├—決戰3
│ ├—先裝這么多吧 看你的硬碟有多大 17173上的游戲都可下載
├—第六部份 系統優化和安全設置
│ ├—flash kele8 語聊 比較流行的插件
│ ├—設置音量 話筒測試
│ ├—設置播放器,Winamp關聯mp3文件,「暴風影音」關聯RM文件,Media Player關聯WMV文件
│ ├—清除系統^^文件和不需要的系統文件
│ ├—添加刪除程序去掉流氓軟體、
│ ├—禁用注冊表、禁止組策略、隱藏不保護的盤、禁止格式化、刪除文件和文件夾要使用密碼、禁用運行、隱藏網上鄰居、隱藏控制面板中一些不需要的功能、禁止更改卓面高級設置
│
├—第七部份 安裝網吧管理軟體和備份全盤
│ ├—在安裝萬象客戶端、游戲更新軟體客戶端、還原軟體之前做個系統GHO到其它分區上記得把GHOST加把瑣 ghost -pwd=XXXX(系統盤上有注冊表記錄和系統上有相關文件,雖然系統變大但是完整)
│ ├—磁碟掃描 磁碟整理
│ ├—再次刪除臨時文件和磁碟整理^^文件和清空歷史記錄建議臨時文件夾改到別的磁碟分區,因為這些文件流動量大 比較分散,微軟弄這個東西主要是為了再次訪問時,速度快一點.
│ ├—最後備份全盤到另一個硬碟做成GHO鏡像.
具體安裝過程。網吧追求穩定 性能 安全。
一、硬碟分區:
使用XPSP2安裝光碟分區、格式化。C區4.5G NTFS 、D區25G FAT32、(有些游戲軟體不支持NTFS) E區剩下容量的全部放這;(也可以多分出一個F區來存放備份的文件)
C區存放系統文件和裝機必備軟體(保護),D區存放本地游戲、硬體驅動、網吧管理軟體GHO備份等(保護),E區存入網路游戲、需要存檔的本地游戲等(不保護);
二、操作系統:
XPSP2上海政府VLK版(最好的版本不需要激活和支持更新) 在斷網的情況下一定要在斷網的情況,如果在有網的情況下安裝,有可能出現一些不正常的情況,比如愛蟲病毒等
三、驅動的安裝:
安裝順序: 主板驅動—顯卡驅動—音效卡驅動—網卡驅動—USB2.0驅動—DX9.0B—滑鼠驅動 (先內後外的原則,但也不是絕對的),安裝後在「設備管理器」查看是否已完全完裝正確,沒有出行「?」號的驅動和「!」號的設備;
四、軟體及相關補丁:
在安裝其它游戲和軟體之前導出注冊表原始備份(以防出錯)安裝相關系統補丁和打上病毒補丁、安裝裝機必備軟體;
五、安裝木地游戲、升級網路游戲至最新版、建立相應快捷方式
安裝完後之後再導出注冊表備份,安裝本地和網路游戲完後在卓面上建立好「本地游戲」文件夾和「網路游戲」文件夾,將游戲分類好和設好的相關快捷方式和起好相關的名字,將電影伺服器、音樂娛樂等的快捷方式放至卓面,將辦公軟體和系統自帶的一些實用小工具在卓面上做好「辦公軟體」文件夾,也同樣做好相關快捷方式和起好相關的名字。如果想在開始\所用程序\裡面出行「本地游戲」和「網路游戲」之類的分類好的程序組,只要將卓面上的相關文件夾方式復制到"C:\ Documents and Settings\All Users\「開始」菜單\程序"里出就能實行了。
六、系統常規綜合設置:
添加萬像客戶端的網路「IPX/SPX/NeBIOS"協議(重中之重)
①使用經典卓面主題、顯示效果設為清晰、顏色質量設成32位、1024X768、刷新率85HZ、牆紙做上網吧的廣告;
② 鎖定任務欄、去掉分組相似任務欄功能、顯示快速啟動、不隱藏不活動的圖標、開始菜單設為經典、不列出我最近的文檔、開始菜單不列出控制面板;
③ IE使用空白的主頁、去掉阻止彈出窗口顯示信息欄、去掉自動完成表單上的用戶名和密碼功能;IE標題欄上做上網吧的廣告;
④ 更改安全中心通知我的方式警報三項的勾去掉、不使用體眠、輸入法切換順序設成先ABC智能後到五筆和其它、聲音和音頻設備將「音量控制」設成最高、麥克風設成最高、麥克風的靜音去掉;
⑤ 文件夾選項使用Windows傳統風格、不穩藏已知的文件擴展名;
⑥ 禁用錯誤報告、啟動和故障恢復時間設為0、系統失敗只選重新啟動、發送警報和寫入日誌出掉前面的勾、禁用系統還原、禁用自動更新、禁用遠程協助、禁用來賓帳號;防火牆關閉;
七。打開輔助功能選項,把粘滯鍵,篩選鍵,切換鍵的使用快捷鍵去掉.美麗新世界會經常按鍵盤Shift,按5次Shift會激活粘滯鍵,就會跳出遊戲到桌面,所以要把這些快捷鍵給取消.
八、禁止Messenger隨系統一起啟動運行,在選項\首選項\去掉「在Windows啟動時運行Windows Messenger"和「允許Winsoqa Messenger 在後台運行」前面的勾;
九。設置音量話筒測試, 設置播放器,Winamp關聯mp3文件,「暴風影音」關聯RM文件,Media Player關聯WMV文件,測試煤體文件、音樂文件、做好MP3歌曲的播放列表,最後測試一下播放伺服器上煤體文件看看是否正常關聯(最好在關掉路由後測試)
一○。設置進入游戲後的視頻、聲音、其它效果等。就拿大家很熟的CS來說吧!一定要設成"OP"模式,分辯率一般為800X600、音量適中、麥克風適中,其它的什麼游戲大家自己看看吧!
七、 操作系統優化瘦身:
2.沒有看help的習慣,刪除Windows\help目錄下的東西都幹掉,近4xM。(適用於所有系統,刪子之後今後再也無法看系統的幫助了)
3、一般大家登陸「WindowsUpdate"在線升級完成後你還會發現系統目錄裡面多了許多類似$NtUninstallQ311889$這些目錄,都是更新樓下的臨時文件夾,都幹掉吧,1x-3xM。
4、關閉"休眠"這功能佔用太多空間. 控制面板——顯示——屏幕保護程序——電源——休眠。
5、如果你使用的是NTFS文件系統並且感覺實在空間緊張,取消使用索引功能;
6、關了系統還原用滑鼠右健單擊桌面上的「我的電腦」,選擇「屬性」,找到「系統還原」,選擇「在所有驅動器上關閉系統還原」呵呵,又可以省空間了。
7、關閉Dr.Watson:在"開始"-"運行"中輸入"drwtsn32"命令,調出系統里的Dr.Watson ,只保留"轉儲全部線程上下文"選項,否則一旦程序出錯,硬碟會讀很久,並佔用大量空間。如以前有此情況,請查找user.dmp文件,刪除後可節省幾十 MB空間
8、禁用閑置的IDE通道:
出於某些原因,Windows XP有時會在IDE通道上使用PIO並行輸入輸出傳輸模式,而不是DMA模式。如果有這種情況,用戶可以手動把IDE通道改為DMA模式,這樣可以減少該設備佔用的CPU周期。打開設備管理器(右鍵點擊我的電腦,選屬性,點選硬體選項卡,點擊「設備管理器」打開),然後點擊展開「IDE ATA/ATAPI 控制器」分支,雙擊「Primary IDE Channel」,點擊高級設置。檢查「傳輸模式」下拉菜單,把它們全部設為DMA If Available(允許情況下使用DMA),點擊確定。再用同樣的方式修改每一個IDE控制器。另外,大家把閑置的通道關閉,對於ICH5/6南橋, Nforce的系統會提高啟動速度,比較明顯,尤其是後者。
9、清除無用的^^文件:
C:\WINDOWS\Temp\所有文件、 C:\WINDOWS\Offline Web Pages所有文件、 C:\WINDOWS\Downloaded Program Files所用文件、 C:\Documents and Settings\「用戶名"\Recent\所有文件、 C:\Documents and Settings\zjs\Favorites\所用文件、 C:\Documents and Settings\zjs\Cookies\所有文件、
C:\Documents and Settings\zjs\Local Settings\Temporary Internet Files\所用文件、C:\Documents and Settings\zjs\Local Settings\Temp\所用文件、
C:\Documents and Settings\zjs\Local Settings\History\所用的歷史記錄文件(以上這些文件夾都是一些臨時文件、網頁下載的文件、離線的文件、用戶的歷史記錄等,這些文件夾里有一些是系統只讀和隱藏的文件就不可以清除了,記得)
10 。清除系統備份的DLL文件:開始→運行→sfc.exe /purgecache這樣可以節省將近3xxM。
11。加快開始菜單顯示時間:
方法:打開HKEY_CURRENT_ USER\ControlPanel\Desktop子項,雙擊右邊窗口中的「MenuShowDelay」,在對數據框中輸入0~100000(單位為毫秒)之間數值,一般將數值設成20到400之間,數字越小,菜單顯示的速度就越快,建議用戶不要設置過低的值,比如0。
12.關閉計算機時自動結束任務
在關機的時候,有時會彈出討厭的對話框,提醒某個程序仍在運行,是否結束任務。其實完全可以通過一點點修改讓Windows自動結束這些仍在運行的程序。在注冊表中打開HKEY_CURRENT_USER\Control Panel\Desktop 目錄,把裡面的AugoEndTasks鍵值改為1:〕
13。加快結束無響應任務的時間
[HKEY_CURRENT_USER\Control Panel\Desktop]"HungAppTimeout"="1000"
14。應用程序出錯後自動結束任務
[HKEY_USERS\.DEFAULT\Control Panel\Desktop]
"AutoEndTasks"="1"
15。加快啟動速度去掉不需要的程序
運行「Regedit"找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion \Run"和"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"將不需要的程動程序刪掉。當然也可以用"MSCONFIG"去掉不需要的啟動程序,只是一下次重啟它會提示你。
16.快速瀏覽區域網絡的共享
通常情況下XP在連接其它計算機時,會全面檢查對方機子上所有預定的任務,這個檢查會讓你等上30秒鍾或更多時間。去掉的方法是開始→運行 →Regedit→在注冊表中找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Explorer\RemoteComputer\NameSpace。在此鍵值下,會有個{D6277990-4C6A -11CF-8D87-00AA0060F5BF}鍵,把它刪掉後,重新啟動計算機,Windows XP就不再檢查預定任務了,速度明顯提高!
========================================================================================================================
八、服務優化和安全配置
單擊「開始」→「設置」→「控制面板」。雙擊「管理工具」→「服務」,打開後將看到服務列表,有些服務已經啟動,有些則沒有。右鍵單擊要配置的服務,然後單擊「屬性」。在「常規」選項卡上選擇「自動」、「手動」或「禁用」,其中「自動」表示每次系統啟動時,Windows XP都自動啟動該服務;「手動」表示Windows XP不會自動啟動該服務,而是在你需要該服務時手動啟動該服務;而「禁用」則表示不允許啟動該服務。在實際配置時,選擇「手動」或者「禁用」都可以實現關閉該服務的目的,推薦使用手動功能,這樣你隨時可以啟動一些臨時需要的服務。
有些服務是Windows XP所必需的,不能關閉,否則將會造成系統崩潰。至於各項服務的功能,我們可以通過雙擊該服務或將滑鼠懸停在該服務名上查看。下面我們就先來看一看這些服務的說明,最後再看哪些服務可以關掉(見下表)。
Alerter:你未連上區域網並且不需要管理警報
Application Layer Gateway Service:為 Internet 連接共享和 Windows 防火牆提供,不用防火牆就關了
Automatic Updates:自動下載安裝Windows 更新
Background Intelligent Transfer Service:如果禁用了 BITS,一些功能,如 Windows Update,就無法正常運行。
Clipbook:你不需要查看遠程剪貼簿的剪貼頁面
distributed link tracking client:維護計算機中或網路內不同計算機中 NTFS 檔案間的連結。對於絕大多數用戶來說,形同虛設。
Error Reporting Service:服務和應用程序在非標准環境下運行時允許錯
Human Interface Device Access:啟用對智能界面設備 (HID)的通用輸入訪問(默認禁用)
Help and Support:微軟提供的可以支持說明和幫助文件的服務。(微軟的幫助實在太用了,我現在又不想禁用了)
IMAPI CD-Burning COM Service:用 Image Mastering Applications Programming Interface (IMAPI) 管理 CD 錄制,沒有刻錄機和不需要系統自帶的刻入功能就關
Indexing Service:通過靈活查詢語言提供文件快速訪問或者沒有連上區域網
Messenger:傳輸客戶端和伺服器之間的 NET SEND,比如網路之間互相傳送提示信息的功能,net send 功能,如不想被騷擾話可關
Net Logon:支持網路上計算機 pass-through 帳戶登錄,一般家用計算機不太可能去用到登入網路審查這個服務。
NetMeeting Remote Desktop Sharing (NetMeeting 遠程桌面共享) :讓使用者可以將計算機的控制權分享予網路上或網際網路上的其它使用者,如果你重視安全性不想多開後門,就關了吧。
Network DDE:為動態數據交換 (DDE) 對在相同或不同計算機上執行的程序提供網路傳輸和安全性。如果這個服務被停止,DDE 傳輸和安全性將無法使用。任何明確依存於它的服務將無法啟動。 一般人好像用不到
Network DDE DSDM:信息動態數據交換 (DDE) 網路共享。如果這個服務被停止,DDE 網路共享將無法使用。任何明確依存於它的服務將無法啟動。 一般人好像用不到
NT LM Security Support Provider:為沒有使用命名管道傳輸的遠程過程調用 (RPC) 程序提供安全性。如果不使用 Message Queuing 或是 Telnet Server 那就關了它,一般用戶也用不上。
Print Spooler:將文件載入到內存中以便遲後列印,沒有列印機可以關了;
Remote Desktop Help Session Manager:管理並控制遠程協助。如果此服務停止的話,遠程協助將無法使用
Remote Registry:使遠程用戶能修改此計算機上的注冊表設置,安全性的理由,如果沒有特別的需求,建議最好關了它,除非你需要遠程協助修改你的登錄設定
Routing and Remote Access:提供連到區域網及廣域網的公司的路由服務。提供撥號聯機到網路或是 VPN 服務,一般用戶用不到,可以關閉
Smart Card:管理這個計算機所讀取智能卡的存取。如果這個服務被停止,這個計算機將無法讀取智能卡,如果不使用智能卡關了。
SSDP Discovery Service:啟用對計算機使用的舊版非即插即用智能卡讀取的支持,如果不使用智能卡關了。
System Restore Service:系統還原不用就關
Task Scheler:用戶能夠在這個計算機上設定自動的工作的計劃,並執行。如果停止這個服務,這些工作在它們設定的時間時將不會執行。任何明確依存於它的服務將無法啟動。設定自動的工作計劃,像一些定時磁碟掃瞄、病毒定時掃瞄、更新等等,但是一般都很少用,可以關閉
Telnet:啟用一個遠程使用者來登入到這台計算機和執行應用程序,以及支持各種 TCP/IP Telnet 客戶端,基於安全性的理由,如果沒有特別的需求,建議最好關了。
Uninterruptible Power Supply:管理連接到這台計算機的不間斷電源供應 (UPS)。不間斷電源供應 (UPS)一般人有用到嗎?
上面就是我差不多關的服務了,如果不想手動一個一個關閉,可以使用"sc config "服務名稱」 start= disabled"命令做一個批外理,服務名稱是服務真實的名稱,而不是顯示名稱,記大家區分清楚。
《以下服務最好保留:
*Plug and Play 啟用計算機以使用者沒有或很少的輸入來識別及適應硬體變更,停止或停用這個服務將導致系統不穩定
*Remote Procere Call (RPC) -系統核心服務
*Windows Audio - 控制著你聽到的聲音。關了就沒聲音了!
*Windows Management Instrumentation - 滿重要的服務,是管」服務依靠」的,但關了會出現奇怪的問題.
*Workstation -很多服務都依靠這個服務,支持聯網和列印/文件共享的
* Server 支持此計算機通過網路的文件、列印、和命名 關這個無法給別人共享文件夾! 如果你不用不著可以關了這個!
*Network Connections 管理「網路和撥號連接」文件夾中對象 關了這個改ip很麻煩!》
11.安全設置
1.修改SHELL32.DLL防止格式化,和刪除文件和文件夾需要密碼。隱藏不保護的分區,將格式化命令「FORMAT"重命名;
2.禁用來賓帳號、統默認的計算機管理員「Administrator"設上強狀的密碼(如果計算機只有一個管理員就不要設上密碼了,因為會造成萬象無法登入
3.將管理工具中的「計算機管理」、「服務」、「本地安全策略」刪掉;
3.開機自動關閉默認共享。將以下批處理命令命名為擴展名為*.BAT批處理文件,運行「Gpedit.msc"組策略」\Windows設置\腳本\啟動\添加進去。
ECHO OFF
net share /delete c$
net share /delete ADMIN$
net share /delete d$
net share /delete e$ (有多少默認共享就刪多少)
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{450D8FBA-AD25-11D0-98A8-0800361B1103}]
@=""
"Removal Message"="@mydocs.dll,-900" ;隱藏卓面上我的文檔
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{208D2C60-3AEA-1069-A2D7-08002B30309D}"=dword:00000001 ;隱藏卓面上網上鄰居
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons]
"{208D2C60-3AEA-1069-A2D7-08002B30309D}"=dword:00000001 ;隱藏卓面上網上鄰居
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl]
"1"="Ncpa.cpl" ;隱藏控制面板網路
"2"="Nusrmgr.cpl" ;隱藏控制面板用戶
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\system]
"DisableChangePassword"=dword:00000001 ;禁止按下C+A+D更改密碼
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowCpl]
"1"="Ncpa.cpl" ;隱藏控制面板網路
"2"="Nusrmgr.cpl" ;隱藏控制面板用戶
"3"="Appwiz.cpl" ;隱藏控制面板添加或刪除程序
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}]
"Restrict_Run"=dword:00000001 ;禁用組策略
打上禁用安全模式和使用最後一次正確的補丁
12。在禁用組策略之前,運行「gpedit.msc"打開組策略,裡面有好多系統禁用和優化,大家自己慢慢看吧。我禁用」卓面上顯示我的文檔「、「開始菜單不顯行收藏夾和我的音樂等」、「禁用計算機管理」、「禁用服務」、「禁用磁碟管理」、「禁用安全選項」、「禁用用戶和組」等等了。。。
上面這些搞定之後,最後就是將系統盤做個GHO鏡像放到別的分區,這樣做出來的系統是沒有萬像和還原軟體的,將來升級萬像和換其它的還原軟體都有好處。然後再安裝萬像2004客戶端,設置「禁止使用注冊表」、「禁止運行」、「隱藏不保戶的分區」、和一些小小操作了,就看大家自己的選擇了。最後就是用幾天來測試系統和軟體了,一切都沒有問題之後。就開始網克了,網克完了之後在客戶機上是設好IP、計算機名、工作組等,最後再安裝還原軟體。
補上ARP綁定網關
@echo off
arp -s 192.168.1.1 00-0A-EB-B0-E7-BE
把上面的批處理復制進文本文檔,然後改擴展名為 CMD或BAT
Ⅳ 高分 java連接sql server 2000 詳細步驟
試試吧,
在JSP中訪問Oracle ,SqlServer ,DB2, Informix ,Access 資料庫
2007-1-13
在JSP中訪問Oracle ,SqlServer ,DB2, Informix ,Access 資料庫
現在有好多初學jsp的網友經常會問資料庫怎麼連接啊,怎麼老出錯啊?所以我集中的在這寫篇文章供大家參考,其實這種把資料庫邏輯全部放在jsp里未必是好的做法,但是有利於初學者學習,所以我就這樣做了,當大家學到一定程度的時候,可以考慮用MVC的模式開發。在練習這些代碼的時候,你一定將jdbc的驅動程序放到伺服器的類路徑里,然後要在資料庫里建一個表test,有兩個欄位比如為test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然後向這個表寫入一條測試紀錄,那麼現在開始我們的jsp和資料庫之旅吧。
一、jsp連接Oracle8/8i/9i資料庫(用thin模式)
testoracle.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl為你的資料庫的SID
String user="scott";
String password="tiger";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一個欄位內容為:<%=rs.getString(1)%>
您的第二個欄位內容為:<%=rs.getString(2)%>
<%}%>
<%out.print("資料庫操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
二、jsp連接Sql Server7.0/2000資料庫
testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs為你的資料庫的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一個欄位內容為:<%=rs.getString(1)%>
您的第二個欄位內容為:<%=rs.getString(2)%>
<%}%>
<%out.print("資料庫操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
三、jsp連接DB2資料庫
testdb2.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample為你的資料庫名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一個欄位內容為:<%=rs.getString(1)%>
您的第二個欄位內容為:<%=rs.getString(2)%>
<%}%>
<%out.print("資料庫操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
四、jsp連接Informix資料庫
testinformix.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB為你的資料庫名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一個欄位內容為:<%=rs.getString(1)%>
您的第二個欄位內容為:<%=rs.getString(2)%>
<%}%>
<%out.print("資料庫操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
五、jsp連接Access資料庫
<%@page import="java.sql.*"
import ="java.util.*"
import ="java.io.*"
import="java.text.*"
contentType="text/html; charset=gb2312"
buffer="20kb"
%><%! int all,i,m_count;
String odbcQuery;
Connection odbcconn;
Statement odbcstmt;
ResultSet odbcrs;
String username,title,content,work,email,url,time,date;
String datetime;
%>
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch (ClassNotFoundException e)
{ out.print ("驅動程序不存在");
}
try{
odbcconn = DriverManager.getConnection("jdbc:odbc:db1");
odbcstmt = odbcconn.createStatement();
odbcQuery="Select * From book where datetime>2001-4-26 Order By datetime DESC";
odbcrs=odbcstmt.executeQuery(odbcQuery);
int i=0;
while (i<130) odbcrs.next();
while (odbcrs.next())
{
//*/////////////////////////顯示資料庫的內容用於調試程序是用//
int ii;
try{
try{
for (ii=1;;ii++)
out.print ("<br>Cloumn "+ii+" is: "+odbcrs.getString(ii));
}catch (NullPointerException e) {
out.print ("有空的指針");
}
}catch (SQLException e){
}
}
odbcrs.close();
odbcstmt.close();
odbcconn.close();
}catch (SQLException e)
{ out.print (e);
}
%>
查看(24) 評論(0)
Hibernate快速入門
2006-11-10
其實Hibernate本身是個獨立的框架,它不需要任何web server或application server的支持。然而,大多數的Hibernate入門介紹都加入了很多非Hibernate的東西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。這容易讓人產生Hibernate復雜難懂的誤解,特別是打擊了初學者的積極性。
在這篇文章將不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安裝過程以及最基本的功能,從而給初學者一個低得不能再低的入門門檻。
下載文件
你需要Java SDK、 Hibernate包、Ant包、和JDBC Driver。
1、Hibernate包下載地址:
http://prdownloads.sourceforge.n ... t_by=date&sort=desc
2、Ant包下載地址:
http://archive.apache.org/dist/ant/
3、JDBC Driver要根據你用的database來定,一般database官方網站上都會有。Hibernate支持常用的database,比如 MySQL, Oracle, PostgreSQL, 和MS-SQL Server。這些資料庫都有JDBC Driver:
Oracle JDBC Driver下載地址(下載前必須同意Oracle協議書)
http://otn.oracle.com/software/h ... tdocs/jdbc9201.html
MySQL JDBC Driver下載地址
http://dev.mysql.com/downloads/connector/j/3.0.html
PostgreSQL JDBC Driver下載地址
http://jdbc.postgresql.org/download.html
MS-SQL Server JDBC Driver下載地址
http://www.microsoft.com/downloa ... bf71&displaylang=en
4、將Hibernate包和Ant包分別解壓至c:dev下(此目錄不重要,你可以換其它任何目錄)。
配置環境
1、你需要添加一個新的環境變數: ANT_HOME,讓它指向c:dev<的ANT包所在目錄>並在PATH環境變數里添加%ANT_HOME%in。
2、你需要添加一個新的環境變數: JAVA_HOME,讓它指向你的j2sdk根目錄。並在PATH環境變數里添加%JAVA_HOME%in。
3、創建一個項目ā?目錄,比如c:workspaceMy1stHibernate。
在項目目錄下,另外創建三個目錄: src, classes, lib。
在lib目錄下,創建兩個目錄: hibernate和db。
這樣你有了如下的文件結構:
c:workspaceMy1stHibernate
c:workspaceMy1stHibernatesrc
c:
c:workspaceMy1stHibernatelib
c:
c:workspaceMy1stHibernatelibdb
4、將c:dev<的Hibernate包所在目錄>hibernate2.jar文件到c:下。
將c:dev<的Hibernate包所在目錄>lib下的所有文件同樣到c:下。
將你的JDBC Driver文件(一般是一個jar文件)到c:workspaceMy1stHibernatelibdb下。
創建資料庫
1、用你最喜愛的database軟體,創建一個hibernate_test的資料庫。
2、在此資料庫下,新建一個table名為CUSTOMER
CREATE TABLE CUSTOMER
(
CID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12)
);
編寫Java文件
public class Customer {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public void setId(int id) {
this.id = id;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
}
將此類存為c:.java文件。
編寫Test類
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
public class Test {
public static void main(String[] args) {
try {
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
for (int i = 0; i <200; i++) {
Customer customer = new Customer();
custoā?mer.setUsername("customer" + i);
customer.setPassword("customer");
session.save(customer);
}
tx.commit();
session.close();
} catch (HibernateException e) {
e.printStackTrace();
}
}
}
將此類存為c:.java文件。
創建Hibernate映射文件
因為這里只有一個Class --- Customer 和一個Table --- CUSTOMER,你只需要建立一個映射文件--- Customer.hbm.xml,來對應Customer類和CUSTOMER表之間的關系。
<xml version="1.0"?>
<DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<ibernate-mapping>
<lass name="Customer" table="CUSTOMER">
<d name="id" column="CID">
<enerator class="increment" />
<id>
<roperty name="username" column="USERNAME" />
<roperty name="password" column="PASSWORD" />
<class>
<hibernate-mapping>
把此文件存為c:.hbm.xml,和Customer.java放在同一目錄下。
編寫Ant build.xml文件
你不一定要知道這個build.xml的細節,其實Ant也不是Hibernate所必須的。這里用Ant是為了簡化一些任務,比如: 編譯、、運行,等。
<xml version="1.0" ?>
<roject name="My1stHibernate" default="build" basedir=".">
<roperty name="base.dir" value="." />
<roperty name="src.dir" value="src" />
<roperty name="lib.dir" value="lib" />
<roperty name="build.dir" value="classes" />
<ath id="myclasspath">
<ileset dir="${lib.dir}">
<nclude name="**/*.jar" />
<fileset>
<athelement location="${build.dir}" />
<path>
<arget name="init">
<kdir dir="${build.dir}" />
<target>
<arget name="build" depends="init" description="compile the source files">
<avac classpathref="myclasspath" srcdir="${src.dir}" destdir="${build.dir}" />
<opy todir="${build.dir}" >
<ileset dir="${src.dir}" >
ā?<xclude name="**/*.java"/>
<fileset>
<>
<target>
<arget name="run" depends="build">
<ava classpathref="myclasspath" classname="Test" fork="true" />
<target>
<arget name="clean">
<elete includeEmptyDirs="true">
<ileset dir="${build.dir}" />
<delete>
<target>
<project>
配置Hibernate描述文件
Hibernate描述文件可以是一個properties或xml 文件,其中最重要的是定義資料庫的連接。我這里列出的是一個XML格式的hibernate.cfg.xml描述文件。
<xml version="1.0" encoding="utf-8" ?>
<DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<ibernate-configuration>
<ession-factory name="java:/hibernate/HibernateFactory">
<roperty name="show_sql">rue<property>
<roperty name="connection.driver_class">
oracle.jdbc.driver.OracleDriver <-- 這里是Oracle 9i的JDBC driver class名 -->
<property>
<roperty name="connection.url">
jdbc:oracle:oci8:@hibernate_test <-- 這里是Oracle的hibernate_test資料庫URL -->
<property>
<roperty name="connection.username">
你的資料庫用戶名
<property>
<roperty name="connection.password">
你的資料庫密碼
<property>
<roperty name="dialect">
net.sf.hibernate.dialect.Oracle9Dialect <-- 這里是Oracle 9i的Dialect -->
<property>
<apping resource="Customer.hbm.xml" /><-- 指定Customer的映射文件 -->
<session-factory>
<hibernate-configuration>
如果你用的不是Oracle 9i,可到C:dev<的Hibernate包所在目錄>srchibernate.properties文件里找到你的資料庫,然後替換以上相對應的值。
開始運行
到c:workspaceMy1stHibernate下,運行ant run。如果你嚴格依照以上步驟,應該看到
run:
[java] log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
[java] log4j:WARN Please initialize the log4j system properly.
[java] Hibernate: insert into CUSTOMER (USERNAME, PASSWORD, CID) values (?, ?, ?)
BUILD SUCCESSFUL
到你的hibernate_test資料庫看一下,在CUSTMOR表裡新添了200條記錄,但你沒有寫任何JDBC code。
以後如果你要更換資料庫,只需要改變hibernate.cfg.xml描述文件里相應的值即可。
查看(89) 評論(4)
掌握 Ajax, Ajax 簡介
2006-11-10
Ajax 由 HTML、JavaScript™ 技術、DHTML 和 DOM 組成,這一傑出的方法可以將笨拙的 Web 界面轉化成交互性的 Ajax 應用程序。本文的作者是一位 Ajax 專家,他演示了這些技術如何協同工作 —— 從總體概述到細節的討論 —— 使高效的 Web 開發成為現實。他還揭開了 Ajax 核心概念的神秘面紗,包括 XMLHttpRequest 對象。
五年前,如果不知道 XML,您就是一隻無人重視的丑小鴨。十八個月前,Ruby 成了關注的中心,不知道 Ruby 的程序員只能坐冷板凳了。今天,如果想跟上最新的技術時尚,那您的目標就是 Ajax。
但是,Ajax 不僅僅 是一種時尚,它是一種構建網站的強大方法,而且不像學習一種全新的語言那樣困難。
但在詳細探討 Ajax 是什麼之前,先讓我們花幾分鍾了解 Ajax 做 什麼。目前,編寫應用程序時有兩種基本的選擇:
桌面應用程序
Web 應用程序
兩者是類似的,桌面應用程序通常以 CD 為介質(有時候可從網站下載)並完全安裝到您的計算機上。桌面應用程序可能使用互聯網下載更新,但運行這些應用程序的代碼在桌面計算機上。Web 應用程序運行在某處的 Web 伺服器上 —— 毫不奇怪,要通過 Web 瀏覽器訪問這種應用程序。
不過,比這些應用程序的運行代碼放在何處更重要的是,應用程序如何運轉以及如何與其進行交互。桌面應用程序一般很快(就在您的計算機上運行,不用等待互聯網連接),具有漂亮的用戶界面(通常和操作系統有關)和非凡的動態性。可以單擊、選擇、輸入、打開菜單和子菜單、到處巡遊,基本上不需要等待。
另一方面,Web 應用程序是最新的潮流,它們提供了在桌面上不能實現的服務(比如 Amazon.com 和 eBay)。但是,伴隨著 Web 的強大而出現的是等待,等待伺服器響應,等待屏幕刷新,等待請求返回和生成新的頁面。
顯然這樣說過於簡略了,但基本的概念就是如此。您可能已經猜到,Ajax 嘗試建立桌面應用程序的功能和交互性,與不斷更新的 Web 應用程序之間的橋梁。可以使用像桌面應用程序中常見的動態用戶界面和漂亮的控制項,不過是在 Web 應用程序中。
還等什麼呢?我們來看看 Ajax 如何將笨拙的 Web 界面轉化成能迅速響應的 Ajax 應用程序吧。
老技術,新技巧
在談到 Ajax 時,實際上涉及到多種技術,要靈活地運用它必須深入了解這些不同的技術(本系列的頭幾篇文章將分別討論這些技術)。好消息是您可能已經非常熟悉其中的大部分技術,更好的是這些技術都很容易學習,並不像完整的編程語言(如 Java 或 Ruby)那樣困難。
Ajax 的定義
順便說一下,Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的縮寫。這個短語是 Adaptive Path 的 Jesse James Garrett 發明的(請參閱 參考資料),按照 Jesse 的解釋,這不是 個首字母縮寫詞。
下面是 Ajax 應用程序所用到的基本技術:
HTML 用於建立 Web 表單並確定應用程序其他部分使用的欄位。
JavaScript 代碼是運行 Ajax 應用程序的核心代碼,幫助改進與伺服器應用程序的通信。
DHTML 或 Dynamic HTML,用於動態更新表單。我們將使用 div、span 和其他動態 HTML 元素來標記 HTML。
文檔對象模型 DOM 用於(通過 JavaScript 代碼)處理 HTML 結構和(某些情況下)伺服器返回的 XML。
我們來進一步分析這些技術的職責。以後的文章中我將深入討論這些技術,目前只要熟悉這些組件和技術就可以了。對這些代碼越熟悉,就越容易從對這些技術的零散了解轉變到真正把握這些技術(同時也真正打開了 Web 應用程序開發的大門)。
XMLHttpRequest 對象
要了解的一個對象可能對您來說也是最陌生的,即 XMLHttpRequest。這是一個 JavaScript 對象,創建該對象很簡單,如清單 1 所示。
清單 1. 創建新的 XMLHttpRequest 對象
<script language="javascript" type="text/javascript">
var xmlHttp = new XMLHttpRequest();
</script>
下一期文章中將進一步討論這個對象,現在要知道這是處理所有伺服器通信的對象。繼續閱讀之前,先停下來想一想:通過 XMLHttpRequest 對象與伺服器進行對話的是 JavaScript 技術。這不是一般的應用程序流,這恰恰是 Ajax 的強大功能的來源。
在一般的 Web 應用程序中,用戶填寫表單欄位並單擊 Submit 按鈕。然後整個表單發送到伺服器,伺服器將它轉發給處理表單的腳本(通常是 PHP 或 Java,也可能是 CGI 進程或者類似的東西),腳本執行完成後再發送回全新的頁面。該頁面可能是帶有已經填充某些數據的新表單的 HTML,也可能是確認頁面,或者是具有根據原來表單中輸入數據選擇的某些選項的頁面。當然,在伺服器上的腳本或程序處理和返回新表單時用戶必須等待。屏幕變成一片空白,等到伺服器返回數據後再重新繪制。這就是交互性差的原因,用戶得不到立即反饋,因此感覺不同於桌面應用程序。
Ajax 基本上就是把 JavaScript 技術和 XMLHttpRequest 對象放在 Web 表單和伺服器之間。當用戶填寫表單時,數據發送給一些 JavaScript 代碼而不是 直接發送給伺服器。相反,JavaScript 代碼捕獲表單數據並向伺服器發送請求。同時用戶屏幕上的表單也不會閃爍、消失或延遲。換句話說,JavaScript 代碼在幕後發送請求,用戶甚至不知道請求的發出。更好的是,請求是非同步發送的,就是說 JavaScript 代碼(和用戶)不用等待伺服器的響應。因此用戶可以繼續輸入數據、滾動屏幕和使用應用程序。
然後,伺服器將數據返回 JavaScript 代碼(仍然在 Web 表單中),後者決定如何處理這些數據。它可以迅速更新表單數據,讓人感覺應用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數據。JavaScript 代碼甚至可以對收到的數據執行某種計算,再發送另一個請求,完全不需要用戶干預!這就是 XMLHttpRequest 的強大之處。它可以根據需要自行與伺服器進行交互,用戶甚至可以完全不知道幕後發生的一切。結果就是類似於桌面應用程序的動態、快速響應、高交互性的體驗,但是背後又擁有互聯網的全部強大力量。
加入一些 JavaScript
得到 XMLHttpRequest 的句柄後,其他的 JavaScript 代碼就非常簡單了。事實上,我們將使用 JavaScript 代碼完成非常基本的任務:
獲取表單數據:JavaScript 代碼很容易從 HTML 表單中抽取數據並發送到伺服器。
修改表單上的數據:更新表單也很簡單,從設置欄位值到迅速替換圖像。
解析 HTML 和 XML:使用 JavaScript 代碼操縱 DOM(請參閱 下一節),處理 HTML 表單伺服器返回的 XML 數據的結構。
對於前兩點,需要非常熟悉 getElementById() 方法,如 清單 2 所示。
清單 2. 用 JavaScript 代碼捕獲和設置欄位值
// Get the value of the "phone" field and stuff it in a variable called phone
var phone = document.getElementById("phone").value;
// Set some values on a form using an array called response
document.getElementById("order").value = response[0];
document.getElementById("address").value = response[1];
這里沒有特別需要注意的地方,真是好極了!您應該認識到這里並沒有非常復雜的東西。只要掌握了 XMLHttpRequest,Ajax 應用程序的其他部分就是如 清單 2 所示的簡單 JavaScript 代碼了,混合有少量的 HTML。同時,還要用一點兒 DOM,我們就來看看吧。
以 DOM 結束
最後還有 DOM,即文檔對象模型。可能對有些讀者來說 DOM 有點兒令人生畏,HTML 設計者很少使用它,即使 JavaScript 程序員也不大用到它,除非要完成某項高端編程任務。大量使用 DOM 的是 復雜的 Java 和 C/C++ 程序,這可能就是 DOM 被認為難以學習的原因。
幸運的是,在 JavaScript 技術中使用 DOM 很容易,也非常直觀。現在,按照常規也許應該說明如何使用 DOM,或者至少要給出一些示例代碼,但這樣做也可能誤導您。即使不理會 DOM,仍然能深入地探討 Ajax,這也是我准備採用的方法。以後的文章將再次討論 DOM,現在只要知道可能需要 DOM 就可以了。當需要在 JavaScript 代碼和伺服器之間傳遞 XML 和改變 HTML 表單的時候,我們再深入研究 DOM。沒有它也能做一些有趣的工作,因此現在就把 DOM 放到一邊吧。
回頁首
獲取 Request 對象
有了上面的基礎知識後,我們來看看一些具體的例子。XMLHttpRequest 是 Ajax 應用程序的核心,而且對很多讀者來說可能還比較陌生,我們就從這里開始吧。從 清單 1 可以看出,創建和使用這個對象非常簡單,不是嗎?等一等。
還記得幾年前的那些討厭的瀏覽器戰爭嗎?沒有一樣東西在不同的瀏覽器上得到同樣的結果。不管您是否相信,這些戰爭仍然在繼續,雖然規模較小。但令人奇怪的是,XMLHttpRequest 成了這場戰爭的犧牲品之一。因此獲得 XMLHttpRequest 對象可能需要採用不同的方法。下面我將詳細地進行解釋。
使用 Micr
Ⅵ 請問多個java程序能否共用一個jdk環境,如不能,為什麼
跟環境沒關系,可能是你程序的IO操作沒有關閉對象或者是做數據持久化的時候沒有釋放連接等等,建議排查一下做一下優化。可以對個別對象採用單例模式進行管理
Ⅶ eclipse寫js腳本,如何才算最規范的
1.打開eclipse→Windows→Preferences→JavaScript→Editor→Content Assist
2.打開File→Export→Genral→Preferences→導出一文件到任意位置,然後用記事本打開此文件 ,Ctrl+F查找 zjs 然後將其值改為 .
Ⅷ 怎樣用asp做目錄樹實現三級的最好給點代碼和注釋
腳本說明:
把如下代碼加入<body>區域中
<script>
//菜單一 first item----------------------------------------------------------
var item_num=3; //父層菜單的行數 Hom many rows is the parent item
var item02_word=new Array(); //菜單的文字 The words of the child item
for(i=0;i<item_num;i++)
item02_word[i]=new Array();
item02_word[0][0]="市長致詞02";
item02_word[0][1]="市民意見";
item02_word[0][2]="市民投訴";
item02_word[1][0]="市政領導02";
item02_word[1][1]="部門機構";
item02_word[1][2]="部門職責";
item02_word[2][0]="最新發布02";
item02_word[2][1]="綜合經濟";
item02_word[2][2]="科教文化";
var item02_link=new Array(); //菜單的鏈接 The links of the child item
for(i=0;i<item_num;i++)
item02_link[i]=new Array();
item02_link[0][0]="#none";
item02_link[0][1]="#none"
item02_link[0][2]="#none"
item02_link[1][0]="#none";
item02_link[1][1]="#none";
item02_link[1][2]="#none";
item02_link[2][0]="#none";
item02_link[2][1]="#none";
item02_link[2][2]="#none";
var item02=new Array(); //菜單的HTML The HTML code of the child item
for(i=0;i<item_num;i++)
item02[i]="";
for(i=0;i<item_num;i++)
for(j=0;j<item02_word[i].length;j++)
item02[i]+=" | -<img border=0 src=20020403/list3.gif><a class=childlink href="+item02_link[i][j]+" onclick=javascript:this.blur();>"+item02_word[i][j]+"</a><br>";
//------------定義一個清空各菜單的函數--------------
function closeItemTable02()
{
for(i=0;i<item_num;i++)
{
document.all.itemTable02.cells[2*i+1].innerHTML="";
item02Img[i].src="20020403/list.gif";
}
}
//------------------定義結束----------------------
//------------定義一個菜單展開的函數----------------
function openItemTable02(n)
{
if(document.all.itemTable02.cells[n*2+1].innerHTML=="")
{
closeItemTable02();
item02Img[n].src="20020403/list2.gif";
document.all.itemTable02.cells[n*2+1].innerHTML=item02[n];
}
else
closeItemTable02();
}
//------------------定義結束----------------------
var item02_view=new Array();
item02_view[0]="<table id=itemTable02 cellpadding=0 cellspacing=0 border=0>\n";
item02_view[1]=" <tr><td valign=bottom> -<img name=item02Img name=treeImg src=20020403/list.gif border=0><a id=item_1 class=parentlink href=javascript: onclick=javascript:openItemTable02(0);this.blur();>市長室</a></td></tr>\n";
item02_view[2]=" <tr><td class=childlink></td></tr>\n";
item02_view[3]=" <tr><td valign=bottom> -<img name=item02Img name=treeImg src=20020403/list.gif border=0><a id=item_2 class=parentlink href=javascript: onclick=javascript:openItemTable02(1);this.blur();>政府政務</a></td></tr>\n";
item02_view[4]=" <tr><td class=childlink></td></tr>\n";
item02_view[5]=" <tr><td valign=bottom> -<img name=item02Img name=treeImg src=20020403/list.gif border=0><a id=item_3 class=parentlink href=javascript: onclick=javascript:openItemTable02(2);this.blur();>政策法規</a></td></tr>\n";
item02_view[6]=" <tr><td class=childlink></td></tr>\n";
item02_view[7]="</table>\n";
var item02_all="";
for(i=0;i<item02_view.length;i++)
item02_all+=item02_view[i];
</script>
<script>
//菜單一 first item----------------------------------------------------------
var item_num=3; //父層菜單的行數 Hom many rows is the parent item
var item01_word=new Array(); //菜單的文字 The words of the child item
for(i=0;i<item_num;i++)
item01_word[i]=new Array();
item01_word[0][0]="市長致詞01";
item01_word[0][1]="市民意見";
item01_word[0][2]="市民投訴";
item01_word[1][0]="市政領導01";
item01_word[1][1]="部門機構";
item01_word[1][2]="部門職責";
item01_word[2][0]="最新發布01";
item01_word[2][1]="綜合經濟";
item01_word[2][2]="科教文化";
var item01_link=new Array(); //菜單的鏈接 The links of the child item
for(i=0;i<item_num;i++)
item01_link[i]=new Array();
item01_link[0][0]="#none";
item01_link[0][1]="#none"
item01_link[0][2]="#none"
item01_link[1][0]="#none";
item01_link[1][1]="#none";
item01_link[1][2]="#none";
item01_link[2][0]="#none";
item01_link[2][1]="#none";
item01_link[2][2]="#none";
var item01=new Array(); //菜單的HTML The HTML code of the child item
for(i=0;i<item_num;i++)
item01[i]="";
for(i=0;i<item_num;i++)
for(j=0;j<item01_word[i].length;j++)
item01[i]+=" | -<img border=0 src=20020403/list3.gif><a class=childlink href="+item01_link[i][j]+" onclick=javascript:this.blur();>"+item01_word[i][j]+"</a><br>";
//------------定義一個清空各菜單的函數--------------
function closeItemTable01()
{
for(i=0;i<item_num;i++)
{
document.all.itemTable01.cells[2*i+1].innerHTML="";
item01Img[i].src="20020403/list.gif";
}
}
//------------------定義結束----------------------
//------------定義一個菜單展開的函數----------------
function openItemTable01(n)
{
if(document.all.itemTable01.cells[n*2+1].innerHTML=="")
{
closeItemTable01();
item01Img[n].src="20020403/list2.gif";
document.all.itemTable01.cells[n*2+1].innerHTML=item01[n];
}
else
closeItemTable01();
}
//------------------定義結束----------------------
var item01_view=new Array();
item01_view[0]="<table id=itemTable01 cellpadding=0 cellspacing=0 border=0>\n";
item01_view[1]=" <tr><td valign=bottom> -<img name=item01Img name=treeImg src=20020403/list.gif border=0><a id=item_1 class=parentlink href=javascript: onclick=javascript:openItemTable01(0);this.blur();>市長室</a></td></tr>\n";
item01_view[2]=" <tr><td class=childlink></td></tr>\n";
item01_view[3]=" <tr><td valign=bottom> -<img name=item01Img name=treeImg src=20020403/list.gif border=0><a id=item_2 class=parentlink href=javascript: onclick=javascript:openItemTable01(1);this.blur();>政府政務</a></td></tr>\n";
item01_view[4]=" <tr><td class=childlink></td></tr>\n";
item01_view[5]=" <tr><td valign=bottom> -<img name=item01Img name=treeImg src=20020403/list.gif border=0><a id=item_3 class=parentlink href=javascript: onclick=javascript:openItemTable01(2);this.blur();>政策法規</a></td></tr>\n";
item01_view[6]=" <tr><td class=childlink></td></tr>\n";
item01_view[7]="</table>\n";
var item01_all="";
for(i=0;i<item01_view.length;i++)
item01_all+=item01_view[i];
</script>
<script>
//菜單一 first item----------------------------------------------------------
var item_num=3; //父層菜單的行數 Hom many rows is the parent item
var item00_word=new Array(); //菜單的文字 The words of the child item
for(i=0;i<item_num;i++)
item00_word[i]=new Array();
item00_word[0][0]="市長致詞00";
item00_word[0][1]="市民意見";
item00_word[0][2]="市民投訴";
item00_word[1][0]="市政領導00";
item00_word[1][1]="部門機構";
item00_word[1][2]="部門職責";
item00_word[2][0]="最新發布00";
item00_word[2][1]="綜合經濟";
item00_word[2][2]="科教文化";
var item00_link=new Array(); //菜單的鏈接 The links of the child item
for(i=0;i<item_num;i++)
item00_link[i]=new Array();
item00_link[0][0]="#none";
item00_link[0][1]="#none"
item00_link[0][2]="#none"
item00_link[1][0]="#none";
item00_link[1][1]="#none";
item00_link[1][2]="#none";
item00_link[2][0]="#none";
item00_link[2][1]="#none";
item00_link[2][2]="#none";
var item00=new Array(); //菜單的HTML The HTML code of the child item
for(i=0;i<item_num;i++)
item00[i]="";
for(i=0;i<item_num;i++)
for(j=0;j<item00_word[i].length;j++)
item00[i]+=" | -<img border=0 src=20020403/list3.gif><a class=childlink href="+item00_link[i][j]+" onclick=javascript:this.blur();>"+item00_word[i][j]+"</a><br>";
//------------定義一個清空各菜單的函數--------------
function closeItemTable00()
{
for(i=0;i<item_num;i++)
{
document.all.itemTable00.cells[2*i+1].innerHTML="";
item00Img[i].src="20020403/list.gif";
}
}
//------------------定義結束----------------------
//------------定義一個菜單展開的函數----------------
function openItemTable00(n)
{
if(document.all.itemTable00.cells[n*2+1].innerHTML=="")
{
closeItemTable00();
item00Img[n].src="20020403/list2.gif";
document.all.itemTable00.cells[n*2+1].innerHTML=item00[n];
}
else
closeItemTable00();
}
//------------------定義結束----------------------
var item00_view=new Array();
item00_view[0]="<table id=itemTable00 cellpadding=0 cellspacing=0 border=0>\n";
item00_view[1]=" <tr><td valign=bottom> -<img name=item00Img name=treeImg src=20020403/list.gif border=0><a id=item_1 class=parentlink href=javascript: onclick=javascript:openItemTable00(0);this.blur();>市長室</a></td></tr>\n";
item00_view[2]=" <tr><td class=childlink></td></tr>\n";
item00_view[3]=" <tr><td valign=bottom> -<img name=item00Img name=treeImg src=20020403/list.gif border=0><a id=item_2 class=parentlink href=javascript: onclick=javascript:openItemTable00(1);this.blur();>政府政務</a></td></tr>\n";
item00_view[4]=" <tr><td class=childlink></td></tr>\n";
item00_view[5]=" <tr><td valign=bottom> -<img name=item00Img name=treeImg src=20020403/list.gif border=0><a id=item_3 class=parentlink href=javascript: onclick=javascript:openItemTable00(2);this.blur();>政策法規</a></td></tr>\n";
item00_view[6]=" <tr><td class=childlink></td></tr>\n";
item00_view[7]="</table>\n";
var item00_all="";
for(i=0;i<item00_view.length;i++)
item00_all+=item00_view[i];
</script>
<script language=javascript>
function closeTopTree()
{
for(i=0;i<topTreeTable.cells.length/2;i++)
{
topTreeTable.cells[2*i+1].innerHTML="";
treeImg[i].src="20020403/list.gif";
}
}
function openTopTree(n)
{
if(topTreeTable.cells[2*n+1].innerHTML=="")
{
closeTopTree();
treeImg[n].src="20020403/list2.gif";
switch(n)
{
case 0 : {topTreeTable.cells[2*n+1].innerHTML=item00_all;break;}
case 1 : {topTreeTable.cells[2*n+1].innerHTML=item01_all;break;}
case 2 : {topTreeTable.cells[2*n+1].innerHTML=item02_all;break;}
}
}
else
closeTopTree();
}
</script>
<table id=topTreeTable background=20020403/line1 style="border-collapse: collapse; background-image: url('20020403/line.gif'); background-repeat: repeat-y; background-position-x: 0px" cellpadding=0 cellspacing=0 border=0>
<tr>
<td height=20><img name=treeImg src=20020403/list.gif border=0><a id=top1 href=#none onclick="openTopTree(0);">頂層一</a></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td height=20><img name=treeImg src=20020403/list.gif border=0><a href=#none onclick="openTopTree(1);">頂層二</a></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td height=20><img name=treeImg src=20020403/list.gif border=0><a href=#none onclick="openTopTree(2);">頂層三</a></td>
</tr>
<tr>
<td></td>
</tr>
</table>
Ⅸ ZJS再度升級, 新增加了哪些模塊
隨著Zephyr和 Ja vaS cript的 不斷 更新 , 為提 供更 完善的 功 能, Z JS也 在進 行 相應 的 升級 。今 年4 月 , Z JS 團 隊 在 Gi t h u b 上 發 布 了Z J S的0. 3 版 本 , 該版本 基 於 穩定的Z e ph yr 1. 7和 最新 的J e r r y Scr i pt 版 本進 行 開發 , 採用n ew l ib 技術實 現 動 態分 配內存 。 為了 更好 地滿 足 開 發者需 求 ,添加了新的功能模 塊, 包 括 O CF 模 塊、UD P 數據 傳 輸模 塊、文件 系 統模 塊 、 芯 片 溫度 檢測模 塊 。控 制台 模 塊 增 加 了新的對外 介面 : t ime、t i m e E n d 和 as se r t 。在as h e ll模 式下 和 W eb I D E 配 合 使 用, 可 以支持 Web U S B, 還 能更 好的清 除 運行 過 的腳本 文件, 避免 常 駐 。新 版 本 對 部分開 發 板 的支 持 內容也 做 了升 級, 在K 6 4 F 的開 發 板上支 持 I 2C數據傳 輸, 在 Arino 1 0 1 的引導 程 序中 增加 動 態 分 配x 86 / a rc的 存儲 空間 ;在 開 發 方 面,為 標准 參 數定義宏處 理 , 添 加 ZV AL宏變 量 去 完成j er r y_v a lue_t 自 動 清 理機 制, 使用 持 續 集成 工 具 T ra v i s 來 加速 合 並和 緩存 ; 在測試方 面, 為 常 用測 試 行 為添 加A ss e rt .j s模塊 。
Ⅹ as3.0的腳本。最好定義個實例,裡面有屬性和方法。
創建Object:
var obj:Object = {
property_number:0,
property_string:"String類型的屬性",
method_in:function():void{trace("寫在Object裡面的方法");},
method_out:method_trace
}
function method_trace():void{
trace("寫在Object外面的方法");
}
訪問Object:
trace(obj.property_number); // 通過「.」操作符訪問
trace(obj["property_string"]); // 通過「[ ]」訪問
obj.method_out(); // 調用Object中的方法
Object動態添加屬性和方法:
obj.property_boolean = false; // 添加一個Boolean類型的屬性
obj.method_count = function():void {trace(1+1);} // 添加方法的一種方式
obj.method_getTime = getTime; // 添加方法的另一種方式
function getTime():void { // 這是一個獲取當前系統時間的方法
var mydate = new Date();
var year = mydate.getFullYear();
var month = mydate.getMonth()+1;
var date2 = mydate.getDate();
var day = mydate.getDay();
var hour = mydate.getHours();
var minute = mydate.getMinutes();
var second = mydate.getSeconds();
var mill=mydate.getMilliseconds();
trace("現在時間是:"+hour+":"+minute+":"+second+":"+mill);
}
// 自己手打的,希望對你有幫助