主頁 > 知識(shí)庫 > asp 內(nèi)置對(duì)象 Application 詳解

asp 內(nèi)置對(duì)象 Application 詳解

熱門標(biāo)簽:河北智能外呼系統(tǒng)軟件 調(diào)度系統(tǒng)外呼 綿陽防封電銷卡價(jià)格 福建外呼增值業(yè)務(wù)線路 宜賓語音外呼系統(tǒng)軟件 電銷機(jī)器人教育 中國辦理電信400電話 伊春外呼業(yè)務(wù)系統(tǒng) 電銷機(jī)器人源碼網(wǎng)盤下載
asp內(nèi)置對(duì)象 Application 詳解

   在 ASP 的內(nèi)建對(duì)象中除了用于發(fā)送、接收和處理數(shù)據(jù)的對(duì)象外,還有一些非常實(shí)用的代表 Active Server 應(yīng)用程序和單個(gè)用戶信息的對(duì)象。

   讓我們先來看看 Application 對(duì)象。在同一虛擬目錄及其子目錄下的所有 .asp 文件構(gòu)成了 ASP 應(yīng)用程序。我們非但可以使用 Application 對(duì)象,在給定的應(yīng)用程序的所有用戶之間共享信息,并在服務(wù)器運(yùn)行期間持久的保存數(shù)據(jù)。而且,Application 對(duì)象還有控制訪問應(yīng)用層數(shù)據(jù)的方法和可用于在應(yīng)用程序啟動(dòng)和停止時(shí)觸發(fā)過程的事件。 
   下面就讓我們一起來學(xué)習(xí) Application 對(duì)象。 

   一、屬性 

   雖然 Application 對(duì)象沒有內(nèi)置的屬性,但我們可以使用以下句法設(shè)置用戶定義的屬性也可稱為集合。 

   Application(" 屬性 / 集合名稱 ")= 值 

   我們可以使用如下腳本聲明并建立 Application 對(duì)象的屬性。 
 %
Application("MyVar") = "Hello"
Set Application("MyObj") = Server.CreateObject("MyComponent")
%>


   一旦我們分配了 Application 對(duì)象的屬性,它就會(huì)持久地存在,直到關(guān)閉 WEB 服務(wù)器服務(wù)使得 Application 停止。由于存儲(chǔ)在 Application 對(duì)象中的數(shù)值可以被應(yīng)用程序的所有用戶讀取,所以 Application 對(duì)象的屬性特別適合在應(yīng)用程序的用戶之間傳遞信息。 
   二、方法 

   Application 對(duì)象有兩個(gè)方法,它們都是用于處理多個(gè)用戶對(duì)存儲(chǔ)在 Application 中的數(shù)據(jù)進(jìn)行寫入的問題 

   1、Lock 方法禁止其他客戶修改 Application 對(duì)象的屬性。 

   Lock 方法阻止其他客戶修改存儲(chǔ)在 Application 對(duì)象中的變量,以確保在同一時(shí)刻僅有一個(gè)客戶可修改和存取 Application 變量。如果用戶沒有明確調(diào)用 Unlock 方法,則服務(wù)器將在 .asp 文件結(jié)束或超時(shí)后即解除對(duì) Application 對(duì)象的鎖定。 

   讓我們來看看下面這段用 Application 來記錄頁面訪問次數(shù)的程序 : 
 %
Dim NumVisitsNumVisits=0
Application.LockApplication("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%>
歡迎光臨本網(wǎng)頁,你是本頁的第  %= Application("NumVisits") %> 位訪客 !


   將以上腳本保存在你的 .asp 文件中,就輕而易舉地給你的頁面添加了一個(gè)計(jì)數(shù)器。 

   2、和 Lock 方法相反,Unlock 方法允許其他客戶修改 Application 對(duì)象的屬性。 

   在上面的例子中,上述例子中,Unlock 方法解除對(duì)象的鎖定,使得下一個(gè)客戶端能夠增加 NumVisits 的值。 

   三、事件 

   1、Application_OnStart 

   Application_OnStart 事件在首次創(chuàng)建新的會(huì)話 ( 即 Session_OnStart 事件 ) 之前發(fā)生。當(dāng) WEB 服務(wù)器啟動(dòng)并允許對(duì)應(yīng)用程序所包含的文件進(jìn)行請(qǐng)求時(shí)就觸發(fā) Application_OnStart 事件。Application_OnStart 事件的處理過程必須寫在 Global.asa 文件之中。

   Application_OnStart 事件的語法如下 : 
 SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnStart. . .
End Sub
 /SCRIPT>


   2、Application_OnEnd 

   Application_OnEnd 事件在應(yīng)用程序退出時(shí)于 Session_OnEnd 事件之后發(fā)生,Application_OnEnd 事件的處理過程也必須寫在 Global.asa 文件之中。 

   下面讓我們來看看在使用 Application 對(duì)象時(shí)必須注意的一些事項(xiàng)。 

   不能在 Application 對(duì)象中存儲(chǔ) ASP 內(nèi)建對(duì)象。例如,下面的每一行都返回一個(gè)錯(cuò)誤。 
 %
Set Application("var1")=Session
Set Application("var2")=Request
Set Application("var3")=Response
Set Application("var4")=Server
Set Application("var5")=Application
Set Application("var6")=ObjectContext
%>


   若您將一個(gè)數(shù)組存儲(chǔ)在 Application 對(duì)象中,請(qǐng)不要直接更改存儲(chǔ)在數(shù)組中的元素。例如,下列的腳本無法運(yùn)行。 
 % Application("StoredArray")(3) = "new value" %>


   這是因?yàn)?nbsp;Application 對(duì)象是作為集合被實(shí)現(xiàn)的。數(shù)組元素 StoredArray(3) 未獲得新的賦值。而此值將包含在 Application 對(duì)象集合中,并將覆蓋此位置以前存儲(chǔ)的任何信息。建議您在將數(shù)組存儲(chǔ)在 Application 對(duì)象中時(shí),在檢索或改變數(shù)組中的對(duì)象前獲取數(shù)組的一個(gè)副本。在對(duì)數(shù)組操作時(shí),您應(yīng)再將數(shù)組全部存儲(chǔ)在 Application 對(duì)象中,這樣您所做的任何改動(dòng)將被存儲(chǔ)下來。下列的腳本對(duì)此進(jìn)行演示。 
---asp8a.asp---
 %
dim MyArray()
Redim MyArray(5)
MyArray(0)="hello"
MyArray(1)="some other string"
Application.Lock
Application("StoredArray")=MyArray
Application.Unlock
Response.Redirect "asp8b.asp"
%>

---asp8b.asp---
 %
LocalArray=Application("StoredArray")
LocalArray(1)=" there"
Response.Write LocalArray(0)LocalArray(1)
Application.Lock
Application("StoredArray")=LocalArray
Application.Unlock
%>

   與 Application 對(duì)象具有相近作用的另一個(gè)非常實(shí)用的 ASP 內(nèi)建對(duì)象就是 Session。我們可以使用 Session 對(duì)象存儲(chǔ)特定的用戶會(huì)話所需的信息。當(dāng)用戶在應(yīng)用程序的頁之間跳轉(zhuǎn)時(shí),存儲(chǔ)在 Session 對(duì)象中的變量不會(huì)清除,而用戶在應(yīng)用程序中訪問頁面時(shí),這些變量始終存在。當(dāng)用戶請(qǐng)求來自應(yīng)用程序的 Web 頁時(shí),如果該用戶還沒有會(huì)話,則 Web 服務(wù)器將自動(dòng)創(chuàng)建一個(gè) Session 對(duì)象。當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該會(huì)話。

   通過向客戶程序發(fā)送唯一的 Cookie 可以管理服務(wù)器上的 Session 對(duì)象。當(dāng)用戶第一次請(qǐng)求 ASP 應(yīng)用程序中的某個(gè)頁面時(shí),ASP 要檢查 HTTP 頭信息,查看是否有在報(bào)文中有名為 ASPSESSIONID 的 Cookie 發(fā)送過來,如果有,則服務(wù)器會(huì)啟動(dòng)新的會(huì)話,并為該會(huì)話生成一個(gè)全局唯一的值,在把這個(gè)值作為新 ASPSESSIONID Cookie 的值發(fā)送給客戶端,正是使用這種 Cookie,可以訪問存儲(chǔ)在服務(wù)器上的屬于客戶程序的信息。Session 對(duì)象最常見的作用就是存儲(chǔ)用戶的首選項(xiàng)。例如,如果用戶指明不喜歡查看圖形,就可以將該信息存儲(chǔ)在 Session 對(duì)象中。另外其還經(jīng)常被用在鑒別客戶身份的程序中。要注意的是,會(huì)話狀態(tài)僅在支持 cookie 的瀏覽器中保留,如果客戶關(guān)閉了 Cookie 選項(xiàng),Session 也就不能發(fā)揮作用了。 
   一、屬性 

   1、SessionID 

   SessionID 屬性返回用戶的會(huì)話標(biāo)識(shí)。在創(chuàng)建會(huì)話時(shí),服務(wù)器會(huì)為每一個(gè)會(huì)話生成一個(gè)單獨(dú)的標(biāo)識(shí)。會(huì)話標(biāo)識(shí)以長整形數(shù)據(jù)類型返回。在很多情況下 SessionID 可以用于 WEB 頁面注冊(cè)統(tǒng)計(jì)。 

   2、TimeOut 

   Timeout 屬性以分鐘為單位為該應(yīng)用程序的 Session 對(duì)象指定超時(shí)時(shí)限。如果用戶在該超時(shí)時(shí)限之內(nèi)不刷新或請(qǐng)求網(wǎng)頁,則該會(huì)話將終止。 

   二、方法 

   Session 對(duì)象僅有一個(gè)方法,就是 Abandon,Abandon 方法刪除所有存儲(chǔ)在 Session 對(duì)象中的對(duì)象并釋放這些對(duì)象的源。如果您未明確地調(diào)用 Abandon 方法,一旦會(huì)話超時(shí),服務(wù)器將刪除這些對(duì)象。當(dāng)服務(wù)器處理完當(dāng)前頁時(shí),下面示例將釋放會(huì)話狀態(tài)。 
   % Session.Abandon %>


   三、事件 

   Session 對(duì)象有兩個(gè)事件可用于在 Session 對(duì)象啟動(dòng)和釋放是運(yùn)行過程。 

   1、Session_OnStart 事件在服務(wù)器創(chuàng)建新會(huì)話時(shí)發(fā)生。服務(wù)器在執(zhí)行請(qǐng)求的頁之前先處理該腳本。Session_OnStart 事件是設(shè)置會(huì)話期變量的最佳時(shí)機(jī),因?yàn)樵谠L問任何頁之前都會(huì)先設(shè)置它們。 

   盡管在 Session_OnStart 事件包含 Redirect 或 End 方法調(diào)用的情況下 Session 對(duì)象仍會(huì)保持,然而服務(wù)器將停止處理 Global.asa 文件并觸發(fā) Session_OnStart 事件的文件中的腳本。 

   為了確保用戶在打開某個(gè)特定的 Web 頁時(shí)始終啟動(dòng)一個(gè)會(huì)話,就可以在 Session_OnStart 事件中調(diào)用 Redirect 方法。當(dāng)用戶進(jìn)入應(yīng)用程序時(shí),服務(wù)器將為用戶創(chuàng)建一個(gè)會(huì)話并處理 Session_OnStart 事件腳本。您可以將腳本包含在該事件中以便檢查用戶打開的頁是不是啟動(dòng)頁,如果不是,就指示用戶調(diào)用 Response.Redirect 方法啟動(dòng)網(wǎng)頁。程序如下 : 

 SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
if strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
end if
End Sub
 /SCRIPT>

   上述程序只能在支持 cookie 的瀏覽器中運(yùn)行。因?yàn)椴恢С?nbsp;cookie 的瀏覽器不能返回 SessionID cookie,所以,每當(dāng)用戶請(qǐng)求 Web 頁時(shí),服務(wù)器都會(huì)創(chuàng)建一個(gè)新會(huì)話。這樣,對(duì)于每個(gè)請(qǐng)求服務(wù)器都將處理 Session_OnStart 腳本并將用戶重定向到啟動(dòng)頁中。 
   2、Session_OnEnd 事件在會(huì)話被放棄或超時(shí)發(fā)生。 

   關(guān)于使用 Session 對(duì)象需要注意的事項(xiàng) Application 對(duì)象相近,請(qǐng)參照前文。 

   會(huì)話可以通過以下三種方式啟動(dòng) : 

   1、一個(gè)新用戶請(qǐng)求訪問一個(gè) URL,該 URL 標(biāo)識(shí)了某個(gè)應(yīng)用程序中的 .asp 文件,并且該應(yīng)用程序的 Global.asa 文件包含 Session_OnStart 過程。 

   2、用戶在 Session 對(duì)象中存儲(chǔ)了一個(gè)值。 

   3、用戶請(qǐng)求了一個(gè)應(yīng)用程序的 .asp 文件,并且該應(yīng)用程序的Global.asa 文件使用  OBJECT> 標(biāo)簽創(chuàng)建帶有會(huì)話作用域的對(duì)象的實(shí)例。 

   如果用戶在指定時(shí)間內(nèi)沒有請(qǐng)求或刷新應(yīng)用程序中的任何頁,會(huì)話將自動(dòng)結(jié)束。這段時(shí)間的默認(rèn)值是 20 分鐘。可以通過在 Internet 服務(wù)管理器中設(shè)置“應(yīng)用程序選項(xiàng)”屬性頁中的“會(huì)話超時(shí)”屬性改變應(yīng)用程序的默認(rèn)超時(shí)限制設(shè)置。應(yīng)依據(jù)您的 Web 應(yīng)用程序的要求和服務(wù)器的內(nèi)存空間來設(shè)置此值。例如,如果您希望瀏覽您的 Web 應(yīng)用程序的用戶在每一頁僅停留幾分鐘,就應(yīng)該縮短會(huì)話的默認(rèn)超時(shí)值。過長的會(huì)話超時(shí)值將導(dǎo)致打開的會(huì)話過多而耗盡您的服務(wù)器的內(nèi)存資源。對(duì)于一個(gè)特定的會(huì)話,如果您想設(shè)置一個(gè)小于默認(rèn)超時(shí)值的超時(shí)值,可以設(shè)置 Session 對(duì)象的 Timeout 屬性。例如,下面這段腳本將超時(shí)值設(shè)置為 5 分鐘。 
   % Session.Timeout = 5 %>

   當(dāng)然你也可以設(shè)置一個(gè)大于默認(rèn)設(shè)置的超時(shí)值,Session.Timeout 屬性決定超時(shí)值。你還可以通過 Session 對(duì)象的 Abandon 方法顯式結(jié)束一個(gè)會(huì)話。例如,在表格中提供一個(gè)“退出”按鈕,將按鈕的 ACTION 參數(shù)設(shè)置為包含下列命令的 .asp 文件的 URL。 
   % Session.Abandon %>  

  

標(biāo)簽:優(yōu)質(zhì)小號(hào) 電商邀評(píng) 那曲 新鄉(xiāng) 河池 延邊 銅川 蘇州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp 內(nèi)置對(duì)象 Application 詳解》,本文關(guān)鍵詞  asp,內(nèi)置,對(duì)象,Application,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp 內(nèi)置對(duì)象 Application 詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp 內(nèi)置對(duì)象 Application 詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章