?? asp教程:global_asa文件的使用及chat程序.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0052)http://chinese.pku.edu.cn/netstudy/aspteach/asp9.htm -->
<HTML><HEAD><TITLE>ASP教程:Global.asa文件的使用及Chat程序</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<META content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot"
name=Template><LINK href="../../cpcw.css" rel=stylesheet></HEAD>
<BODY vLink=#800080 link=#0000ff background="">
<TABLE width="85%" align=center border=0>
<TBODY>
<TR bgColor=#ffffff>
<TD>
<P align=center><FONT class=title
color=#ff3333><B>ASP教程:Global.asa文件的使用及Chat程序 </B></FONT></P>
<P align=right><B>作者:<FONT color=#ff3333><A
href="mailto:shusheng@pchome.net">書生</A></FONT></B></P>
<P align=justify></P>
<HR>
在上一篇中作者給大家詳細介紹了兩個非常實用的 ASP 內建對象 Application 和 Session 的使用方法。由于這兩者的
OnStart、OnEnd 事件的腳本都必須在 Global.asa 文件中聲明 , 因此,本篇將給大家詳細介紹 Global.asa
文件的使用方法。為使大家熟練掌握至今所學過的知識,本篇還將舉出一個 ASP 的 Chat 程序,供各位參考。<BR><BR>
最近很多朋友來信問我,為什么前兩期的范例程序運行時有這樣那樣的錯。首先,我要向大家聲明,這些程序都是我自己寫的,在出“廠”前都經過合格檢驗,絕無“假冒偽劣產品”。:)
由于程序中使用了 cookie 記錄客戶信息,所以如果你在瀏覽器中沒有設置接受 cookie
則程序將不能正常運行。另外,程序將客戶信息記錄在客戶端的 cookie 所使用的方法是 Response.Cookie,此語句必須寫在 ASP
文件中的第一個 < HTML> 標記前,這是因為 Cookie 是作為 HTTP 傳輸的頭信息的一部分發送給客戶的,如果當 HTTP
報頭信息已經傳輸給客戶后再使用 Response.Cookie,將出現以下錯誤 :“HTTP 標題已經寫入到客戶瀏覽器。任何 HTTP
標題的修改必須在寫入頁內容之前。”,可能一些朋友在剪貼程序的時候沒有注意,打亂了程序的前后次序 , 或者是錯誤的將 HTML 代碼添加在 ASP
范例程序之前,因而導致程序運行出錯。因此,我建議大家一方面在首次運行例程的時候不要對程序進行任何改動,盡量在看懂程序的基礎上逐步改進,另一方面在運行
ASP 程序時至少要在瀏覽器中選擇可接受 Cookie,否則一旦 ASP 程序中使用了 Cookie 或 Session,它們都將無法正常運行。
<P> 下面我來向大家介紹 Global.asa 文件的使用方法。 </P> 什么是 Global.asa
文件?它其實是一個可選文件,程序編寫者可以在該文件中指定事件腳本,并聲明具有會話和應用程序作用域的對象。該文件的內容不是用來給用戶顯示的,而是用來存儲事件信息和由應用程序全局使用的對象。該文件的名稱必須是
Global.asa 且必須存放在應用程序的根目錄中。每個應用程序只能有一個 Global.asa 文件。<BR><BR> 在
Global.asa 文件中,如果包含的腳本沒有用 < SCRIPT>
標記封裝,或定義的對象沒有會話或應用程序作用域,則服務器將返回錯誤。我們可以用任何支持腳本的語言編寫 Global.asa
文件中包含的腳本。如果多個事件使用同一種腳本語言,就可以將它們組織在一組 < SCRIPT> 標記中。<BR><BR> 在
Global.asa 文件中聲明的過程只能從一個或多個與
Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd
事件相關的腳本中調用。在基于 ASP 的應用程序的 ASP
頁中,它們是不可用的。如果要在應用程序之間共享過程,可在單獨的文件中聲明這些過程,然后使用服務器端包容 (SSI) 語句將該文件包含在調用該過程的
ASP 程序中。通常,包含文件的擴展名應為 .inc。<BR><BR> 下面是一個很標準的 Global.asa 文件 : <BR><
SCRIPT LANGUAGE="VBScript" RUNAT="Server"><BR>'Session_OnStart 當客戶首次運行
ASP 應用程序中的任何一個頁面時運行<BR>'Session_OnEnd
當一個客戶的會話超時或退出應用程序時運行<BR>'Application_OnStart
當任何客戶首次訪問該應用程序的首頁時運行<BR>'Application_OnEnd 當該站點的 WEB 服務器關閉時運行<BR><
/SCRIPT><BR><BR>< SCRIPT LANGUAGE="VBScript"
RUNAT="Server"><BR>Sub Application_OnStart<BR>VisitorCountFilename =
Server.MapPath ("/ex2") + "\VisitCount.txt"<BR>Set FileObject =
Server.CreateObject("Scripting.FileSystemObject")<BR>Set Out=
FileObject.OpenTextFile (VisitorCountFilename, 1, FALSE,
FALSE)<BR>Application("visitors") =
Out.ReadLine<BR>Application("VisitorCountFilename") =
VisitorCountFilename<BR>End
Sub<BR>'=========================================================<BR>SUB
Application_OnEnd<BR>Set FileOutObject =
Server.CreateObject("Scripting.FileSystemObject")<BR>Set Out=
FileOutObject.CreateTextFile (Application("VisitorCountFilename"),
TRUE,FALSE)<BR>Out.WriteLine(application("visitors"))<BR>End
Sub<BR>'=========================================================Sub
Session_OnStart<BR>Session.Timeout = 5<BR>Application("visitors") =
Application("visitors") + 1<BR>Session("ID")=Session.SessionID<BR>End
Sub<BR>< /SCRIPT><BR><BR> 在這個 Global.asa 程序中,涉及到了 ASP 的 File
Access 組件,它可以提供用于訪問文件系統的方法、屬性和集合。這將在以后 ASP
的組件中進行展開討論。在這里,它起到了在服務器上創建新文件并對文件進行寫操作的作用。這其實是一個 ASP 頁面訪問記數器應用程序的 Global
文件,首先當客戶首次訪問該應用程序的首頁時 , 過程 Application_OnStart 定義了在服務器上指定的虛擬目錄下新建一個
VisitCount.txt 的文本文件,并將文件的路徑和內容保存在應用程序級的變量中。而當任何一個客戶訪問 ASP
應用程序中的任何一個頁面時,過程 Session_OnStart 定義將應用程序級的變量 visitors
的值自動加一。這樣,每當有客戶訪問頁面時,變量 visitors 都將自動加一,以起到統計點擊率的作用。由于變量 visitors
的值是存儲在系統內存之中,所以如果服務器關閉或重新啟動,存儲在變量中的數據將自動丟失,所以通過定義過程
Application_OnEnd,在服務器關閉或重啟之前將數據寫入事先建立的文本文件之中,這樣就能確保當服務器再次啟動時,Application_OnStart
過程可以從 VisitCount.txt 文件中讀取以前的統計數。<BR><BR>
經過這段時間的學習,相信大家已經能夠比較熟練的運用我們所學過的這些 ASP 內建對象來編寫一些較簡單的 ASP 應用程序,可別小看你現在所掌握的這些
ASP 基本知識哦 ! 其實你已經能夠開發一些簡單但實用的 ASP 應用程序了。下面我就舉一個非常簡單的 ASP WEB
聊天室程序,你會發覺寫聊天室原來是一件這么容易、輕松的事??赡芘笥褌円呀浽谝恍╇s志上看到過 ASP
聊天程序的編寫方法,但作者在這里自己寫了一個更簡單的程序,僅僅使用了一個 .asp 文件。請將以下代碼剪貼到記事簿并保存為 chat.asp。
<BR>< %@ Language=VBScript %><BR>< %<BR>Response.Buffer=true '
設置輸出緩存,用于顯示不同頁面。<BR>On error resume next ' 忽略程序出錯部分<BR>If
Request.ServerVariables("Request_Method")="GET" then<BR>' 判斷客戶是以什么方式請求 WEB
頁面<BR>'------------------------<BR>' 客戶登陸界面
<BR>'------------------------<BR>%><BR><BR>< form method="POST"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -