濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > ASP基礎(chǔ)入門(mén)第八篇(ASP內(nèi)建對(duì)象Application和Session)

ASP基礎(chǔ)入門(mén)第八篇(ASP內(nèi)建對(duì)象Application和Session)

熱門(mén)標(biāo)簽:鄭州語(yǔ)音電銷(xiāo)機(jī)器人官網(wǎng) 北京大興區(qū)地圖標(biāo)注 濰坊呼叫中心外呼系統(tǒng)供應(yīng)商 電銷(xiāo)機(jī)器人一個(gè)多少錢(qián) 重慶外呼電銷(xiāo)系統(tǒng)費(fèi)用 微信地圖標(biāo)注有什么用 地圖標(biāo)注中心多少錢(qián)注冊(cè) 不封卡外呼系統(tǒng)一般多少錢(qián) 地圖標(biāo)注不完整被罰款

 在上一篇中作者給大家詳細(xì)介紹了 ASP 內(nèi)建對(duì)象 Response 的使用方法,在這一篇中作者將繼續(xù)給大家介紹另兩個(gè)非常實(shí)用且重要的 ASP 的內(nèi)建對(duì)象 Application 和 Session。   

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

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

一、屬性

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

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

我們可以使用如下腳本聲明并建立 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)用程序的所有用戶(hù)讀取,所以 Application 對(duì)象的屬性特別適合在應(yīng)用程序的用戶(hù)之間傳遞信息。
二、方法

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

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

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

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

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

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

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

三、事件

1、Application_OnStart

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

   Application_OnStart 事件的語(yǔ)法如下 :

 SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Application_OnStart. . .
End Sub
 /SCRIPT>

2、Application_OnEnd

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

下面讓我們來(lái)看看在使用 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ù)組中的元素。例如,下列的腳本無(wú)法運(yùn)行。
% Application("StoredArray")(3) = "new value" %>

   這是因?yàn)?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ǔ)下來(lái)。下列的腳本對(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ǔ)特定的用戶(hù)會(huì)話(huà)所需的信息。當(dāng)用戶(hù)在應(yīng)用程序的頁(yè)之間跳轉(zhuǎn)時(shí),存儲(chǔ)在 Session 對(duì)象中的變量不會(huì)清除,而用戶(hù)在應(yīng)用程序中訪(fǎng)問(wèn)頁(yè)面時(shí),這些變量始終存在。當(dāng)用戶(hù)請(qǐng)求來(lái)自應(yīng)用程序的 Web 頁(yè)時(shí),如果該用戶(hù)還沒(méi)有會(huì)話(huà),則 Web 服務(wù)器將自動(dòng)創(chuàng)建一個(gè) Session 對(duì)象。當(dāng)會(huì)話(huà)過(guò)期或被放棄后,服務(wù)器將終止該會(huì)話(huà)。   

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

1、SessionID

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

2、TimeOut

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

二、方法

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

三、事件

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

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

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

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

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

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

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

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

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

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

   如果用戶(hù)在指定時(shí)間內(nèi)沒(méi)有請(qǐng)求或刷新應(yīng)用程序中的任何頁(yè),會(huì)話(huà)將自動(dòng)結(jié)束。這段時(shí)間的默認(rèn)值是 20 分鐘??梢酝ㄟ^(guò)在 Internet 服務(wù)管理器中設(shè)置“應(yīng)用程序選項(xiàng)”屬性頁(yè)中的“會(huì)話(huà)超時(shí)”屬性改變應(yīng)用程序的默認(rèn)超時(shí)限制設(shè)置。應(yīng)依據(jù)您的 Web 應(yīng)用程序的要求和服務(wù)器的內(nèi)存空間來(lái)設(shè)置此值。例如,如果您希望瀏覽您的 Web 應(yīng)用程序的用戶(hù)在每一頁(yè)僅停留幾分鐘,就應(yīng)該縮短會(huì)話(huà)的默認(rèn)超時(shí)值。過(guò)長(zhǎng)的會(huì)話(huà)超時(shí)值將導(dǎo)致打開(kāi)的會(huì)話(huà)過(guò)多而耗盡您的服務(wù)器的內(nèi)存資源。對(duì)于一個(gè)特定的會(huì)話(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í)值。你還可以通過(guò) Session 對(duì)象的 Abandon 方法顯式結(jié)束一個(gè)會(huì)話(huà)。例如,在表格中提供一個(gè)“退出”按鈕,將按鈕的 ACTION 參數(shù)設(shè)置為包含下列命令的 .asp 文件的 URL。
   % Session.Abandon %>

   今天,我們學(xué)習(xí)了兩個(gè)在WEB 頁(yè)面特別是基于WEB 的BBS 或Chat 上經(jīng)常使用 ASP 內(nèi)建對(duì)象,由于這兩個(gè)對(duì)象在實(shí)際運(yùn)用中很實(shí)用,因此在下一篇中作者將運(yùn)用至此我們所學(xué)過(guò)的4 個(gè)ASP 內(nèi)建對(duì)象,給大家演示一個(gè)完整的 ASP 應(yīng)用程序,相信通過(guò)這個(gè)練習(xí),能大大加深你對(duì) ASP 應(yīng)用程序的理解和掌握。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)ASP內(nèi)建對(duì)象Application和Session有所幫助。

您可能感興趣的文章:
  • ASP編程入門(mén)進(jìn)階(九):內(nèi)置對(duì)象Application
  • javascript asp教程第十一課--Application 對(duì)象
  • asp清空application的方法
  • ASP javascript Application對(duì)象的Contents和StaticObjects做Cache的一些經(jīng)驗(yàn)
  • asp之讓Session永不過(guò)期
  • ASP.NET內(nèi)置對(duì)象之Application對(duì)象
  • asp.net Reporting Service在Web Application中的應(yīng)用
  • php和asp利用Shell.Application來(lái)執(zhí)行程序的代碼
  • ASP.NET Session使用詳解
  • ASP所有的Session變量獲取實(shí)現(xiàn)代碼
  • asp自帶的內(nèi)存緩存 application
  • ASP.NET中Application和Cache的區(qū)別分析
  • ASP中Session技巧 默認(rèn)過(guò)期時(shí)間為20分鐘
  • asp中設(shè)置session過(guò)期時(shí)間方法總結(jié)
  • asp.net錯(cuò)誤處理Application_Error事件示例
  • ASP.NET 使用application與session對(duì)象寫(xiě)的簡(jiǎn)單聊天室程序
  • asp.net網(wǎng)站防惡意刷新的Cookies與Session解決方法
  • ASP.NET中Session和Cache的區(qū)別總結(jié)

標(biāo)簽:鶴崗 唐山 海南 攀枝花 揭陽(yáng) 汕頭 佛山 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP基礎(chǔ)入門(mén)第八篇(ASP內(nèi)建對(duì)象Application和Session)》,本文關(guān)鍵詞  ASP,基礎(chǔ),入門(mén),第八,篇,內(nèi)建,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP基礎(chǔ)入門(mén)第八篇(ASP內(nèi)建對(duì)象Application和Session)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于A(yíng)SP基礎(chǔ)入門(mén)第八篇(ASP內(nèi)建對(duì)象Application和Session)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    手游| 炎陵县| 梓潼县| 常德市| 南充市| 昭苏县| 巴楚县| 嘉义县| 那曲县| 汝州市| 西盟| 扶绥县| 东丰县| 宁陕县| 平度市| 阿合奇县| 启东市| 宜君县| 池州市| 乌什县| 柳林县| 常德市| 从江县| 阜新市| 安乡县| 科尔| 游戏| 罗田县| 武宁县| 治县。| 大石桥市| 定襄县| 贺州市| 南康市| 霍城县| 桑植县| 十堰市| 伊春市| 安陆市| 陇川县| 大宁县|