自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)介紹ASP的六大對象(下)

開發(fā) 后端
本文介紹的是ASP的六大對象,分別是application,createobject,request,response,session,server。希望能夠給你帶來幫助,一起來看。

我們都知道,ASP中的六大內(nèi)置對象,分別是application,createobject,request,response,session,server。接上篇>>

下面詳細(xì)介紹這六大對象。

四、Response對象

Response對象用于向客戶端瀏覽器發(fā)送數(shù)據(jù),用戶可以使用該對象將服務(wù)器的數(shù)據(jù)以HTML的格式發(fā)送到用戶端的瀏覽器,它與Request組成了一對接收、發(fā)送數(shù)據(jù)的對象,這也是實現(xiàn)動態(tài)的基礎(chǔ)。下面介紹它常用的屬性和方法。

1、Buffer屬性

該屬性用于指定頁面輸出時是否要用到緩沖區(qū),默認(rèn)值為False。當(dāng)它為True時,直到整個Active Server Page執(zhí)行結(jié)束后才會將結(jié)果輸出到瀏覽器上。如:

以下為引用的內(nèi)容:

  1. <%Response.Buffer=True%> 
  2. <html> 
  3. <Head> 
  4. <title>Buffer示例</title> 
  5. </head> 
  6. <body> 
  7. <%  
  8. for i=1 to 500  
  9. response.write(i & "<br>")  
  10. next  
  11. %> 
  12. </body> 
  13. </html>  

 

這頁執(zhí)行時,整個主頁的所有內(nèi)容會同時顯示在瀏覽器上,這個主頁會存在緩存區(qū)中直到腳本執(zhí)行結(jié)束。

2、Expires屬性

該屬性用于設(shè)置瀏覽器緩存頁面的時間長度(單位為分),必須在服務(wù)器端刷新。通過如下設(shè)置:

 

  1. <%Response.Expires=0%> 

 

通過在ASP文件中加入這一行代碼,要求每次請求是刷新頁面,因為Response一收到頁面就會過期。

3、Write方法

該方法把數(shù)據(jù)發(fā)送到客戶端瀏覽器,如:

 

  1. <%Response.write "Hello,world!"%> 

 

4、Redirect方法

該方法使瀏覽器可以重新定位到另一個URL上,這樣,當(dāng)客戶發(fā)出Web請求時,客戶端的瀏覽器類型已經(jīng)確定,客戶被重新定位到相應(yīng)的頁面。如:

以下為引用的內(nèi)容:

  1. <html> 
  2. <head> 
  3. <title>Redirect示例</title> 
  4. </head> 
  5. <body> 
  6. <form aciton="formjump.asp" method="post"> 
  7. <select name="wheretogo"> 
  8. <option selected value="fun">Fun</option> 
  9. <option value="news">News</option> 
  10. <option value="sample">Sample</option> 
  11. </select> 
  12. <input type=submit name="jump" value="Jump"> 
  13. </form> 
  14. </body> 
  15. </html>   
  16.   以上是提交的表單,下面是處理表單的文件formjump.asp:  
  17. <%response.buff=true%> 
  18. <html> 
  19. <head> 
  20. <title>Redirect示例</title> 
  21. </head> 
  22. <body> 
  23. <%  
  24. thisurl="http://www.tinyu.com/";  
  25. where=Request.form("wheretogo")  
  26. Select Case where  
  27. case "fun"  
  28. response.redirect thisurl & "/fun/default.asp"  
  29. case "news"  
  30. response.redirect thisurl & "/news/default.asp"  
  31. case "sample"  
  32. response.redirect thisurl & "/sample/default.asp"  
  33. End Select  
  34. %> 
  35. </body> 
  36. <html>  

 

這個例子當(dāng)用戶選擇了以后,按"Jump"按鈕提交表單,服務(wù)器接到申請后調(diào)用formjump.asp判斷后定位到相應(yīng)的URL。不過這里有一點要注意,HTTP標(biāo)題已經(jīng)寫入到客戶瀏覽器,任何HTTP標(biāo)題的修改必須在寫入頁內(nèi)容之前,遇到這種問題時,可以如下做:

在文件的開始<@ Language=..>后寫:

Response.Buffer=True

在結(jié)尾定:

Response.Flush

這里Flush是Response的一個方法,它必須是Buffer屬性設(shè)置為True時才能使用,否則會產(chǎn)生一個運(yùn)行模式錯誤。另外一個Clear方法也是用于清除被緩存的頁面,同樣要Buffer屬性設(shè)置為True時才能使用。

5、End方法

該方法用于告知Active Server當(dāng)遇到該方法時停止處理ASP文件。如果Response對象的Buffer屬性設(shè)置為True,這時End方法即把緩存中的內(nèi)容發(fā)送到客戶并清除沖區(qū)。所以要取消所有向客戶的輸出民,可以先清除緩沖區(qū),然后利用End方法。如:

以下為引用的內(nèi)容:

  1. <%  
  2. Response.buffer=true 
  3. On error resume next  
  4. Err.clear  
  5. if Err.number<>0 then  
  6. Response.Clear  
  7. Response.End  
  8. end if  
  9. %>  

 

#p#

五、Server 對象

Server 對象提供對服務(wù)器上的方法和屬性的訪問。其中大多數(shù)方法和屬性是作為實用程序的功能服務(wù)的。

1、語法

Server.property|method

2、屬性

scriptTimeout:

scriptTimeout 屬性指定腳本在結(jié)束前***可運(yùn)行多長時間。 當(dāng)處理服務(wù)器組件時,超時限制將不再生效。

語法 Server.scriptTimeout = NumSeconds

參數(shù) NumSeconds

指定腳本在被服務(wù)器結(jié)束前***可運(yùn)行的秒數(shù)。默認(rèn)值為 90 秒。

3、注釋

通過使用元數(shù)據(jù)庫中的AspscriptTimeout屬性可以為 Web 服務(wù)或 Web 服務(wù)器設(shè)置缺省的scriptTimeout值。scriptTimeout屬性不能設(shè)置為小于在元數(shù)據(jù)庫中指定的值。例如,如果NumSeconds設(shè)置為10,而元數(shù)據(jù)庫設(shè)置包含了默認(rèn)值90秒,則腳本在90秒后超時。但如果NumSeconds設(shè)置為100,則腳本在100秒后超時。

關(guān)于使用元數(shù)據(jù)庫的詳細(xì)信息,參閱 關(guān)于元數(shù)據(jù)庫。

示例 以下示例中,如果服務(wù)器處理腳本超過 100 秒,將使之超時。

 

  1. <% Server.scriptTimeout = 100 %> 

 

以下示例獲取 scriptTimeout 屬性當(dāng)前值,并將其存儲在變量 TimeOut 中。

 

  1. <TimeOut = Server.scriptTimeout %> 

 

4、方法

(1)CreateObject

CreateObject 方法創(chuàng)建服務(wù)器組件的實例。如果該組件執(zhí)行了 OnStartPage 和 OnEndPage 方法,則此時就會調(diào)用 OnStartPage 方法。有關(guān)服務(wù)器組件的詳細(xì)信息,請參閱 可安裝的 ASP 組件。

語法 Server.CreateObject( progID )

參數(shù) progID 指定要創(chuàng)建的對象的類型。progID 的格式為 [Vendor.] component[.Version]。

注釋 默認(rèn)情況下,由 Server.CreateObject 方法創(chuàng)建的對象具有頁作用域。這就是說,再當(dāng)前 ASP 頁處理完成之后,服務(wù)器將自動破壞這些對象。要創(chuàng)建有會話或應(yīng)用程序作用域的對象,可以使用 <OBJECT> 標(biāo)記并設(shè)置 session 或 APPLICATION 的 SCOPE 屬性,也可以在對話及應(yīng)用程序變量中存儲該對象。

例如,在如下所示的腳本中,當(dāng) session 對象被破壞,即當(dāng)對話超時時或 Abandon 方法被調(diào)用時,存儲在會話變量中的對象也將被破壞。

 

  1. <% Set session("ad") = Server.CreateObject("MSWC.AdRotator")%> 

 

可以通過將變量設(shè)置為 Nothing 或新的值來破壞對象,如下所示。***個例子釋放 ad 對象,第二個例子用字串代替 ad 。

 

  1. <% session ("ad") = Nothing %>  
  2. <% session ("ad") = " Other Valum " %> 

 

不能創(chuàng)建與內(nèi)建對象同名的對象實例。 例如,下列腳本將返回錯誤。

 

  1. <% Set Response = Server.CreateObject("Response") %>  

 

示例 <% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>

上面的例子創(chuàng)建一個名為 MyAd 的 MSWC.AdRotator 服務(wù)器組件,MSWC.AdRotator 組件可用于在 Web 頁上的自動輪換廣告。

關(guān)于服務(wù)器組件的詳細(xì)信息, 請參閱 Creating Components for ASP.

HTMLEncode HTMLEncode方法對指定的字符串應(yīng)用 HTML 編碼。

語法 Server.HTMLEncode( string )

參數(shù) string 指定要編碼的字符串。

示例腳本 <%= Server.HTMLEncode("The paragraph tag: <P>") %>

輸出 The paragraph tag: <P>

注意 以上輸出將被 Web 瀏覽器顯示為The paragraph tag: <P>如果查看一下源文件或以文本方式打開一個 Web 頁,您就可以看到已編碼的 HTML。

(2)MapPath

MapPath 方法將指定的相對或虛擬路徑映射到服務(wù)器上相應(yīng)的物理目錄上。

語法

Server.MapPath( Path )

參數(shù)

Path

指定要映射物理目錄的相對或虛擬路徑。若 Path 以一個正斜杠 (/) 或反斜杠 (\) 開始,則 MapPath 方法返回路徑時將 Path 視為完整的虛擬路徑。若 Path 不是以斜杠開始,則 MapPath 方法返回同 .asp 文件中已有的路徑相對的路徑。

注釋

MapPath 方法不支持相對路徑語法 (.) 或 (..)。例如,下列相對路徑 ../MyDir/MyFile.txt 返回一個錯誤。

MapPath 方法不檢查返回的路徑是否正確或在服務(wù)器上是否存在。

因為 MapPath 方法只映射路徑而不管指定的目錄是否存在,所以,您可以先用 MapPath 方法映射物理目錄結(jié)構(gòu)的路徑,然后將其傳遞給在服務(wù)器上創(chuàng)建指定目錄或文件的組件。

示例

對于下列示例,文件data.txt和包含下列腳本的test.asp文件都位于目錄C:\Inetpub\Wwwroot\script下。C:\Inetpub\Wwwroot目錄被設(shè)置為服務(wù)器的宿主目錄。

下列示例使用服務(wù)器變量 PATH_INFO 映射當(dāng)前文件的物理路徑。腳本

<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>

輸出

c:\inetpub\wwwroot\script\test.asp<BR>

由于下列示例中的路徑參數(shù)不是以斜杠字符開始的,所以它們被相對映射到當(dāng)前目錄,此處是 C:\Inetpub\Wwwroot\script。腳本

 

  1. <%= server.mappath("data.txt")%><BR> 
  2. <%= server.mappath("script/data.txt")%><BR> 

 

輸出

c:\inetpub\wwwroot\script\data.txt<BR>

c:\inetpub\wwwroot\script\script\data.txt<BR>

接下來的兩個示例使用斜杠字符指定返回的路徑應(yīng)被視為在服務(wù)器的完整虛擬路徑。腳本

 

  1. <%= server.mappath("/script/data.txt")%><BR> 
  2. <%= server.mappath("\script")%><BR> 

 

輸出

c:\inetpub\script\data.txt<BR>

c:\inetpub\script<BR>

下列示例演示如何使用正斜杠 (/) 或反斜杠 (\) 返回宿主目錄的物理路徑。腳本

 

  1. <%= server.mappath("/")%><BR> 
  2. <%= server.mappath("\")%><BR> 

 

輸出

c:\inetpub\wwwroot<BR>

c:\inetpub\wwwroot<BR>

(3)URLEncode

URLEncode 方法將 URL 編碼規(guī)則,包括轉(zhuǎn)義字符,應(yīng)用到指定的字符串。

語法

Server.URLEncode( string )

參數(shù)

String 指定要編碼的字符串。

示例

腳本 <%Response.Write(Server.URLEncode("http://www.tinyu.com";)) %>

輸出 http%3A%2F%2Fwww%2Etinyu%2Ecom

#p#

六、session對象

Session其實指的就是訪問者從到達(dá)某個特定主頁到離開為止的那段時間。每一訪問者都會單獨獲得一個Session。在Web應(yīng)用程序中,當(dāng)一個用戶訪問該應(yīng)用時,Session類型的變量可以供這個用戶在該Web應(yīng)用的所有頁面中共享數(shù)據(jù);如果另一個用戶也同時訪問該Web應(yīng)用,他也擁有自己的Session變量,但兩個用戶之間無法通過session變量共享信息,而Application類型的變更則可以實現(xiàn)站點多個用戶之間在所有頁面中共享信息。

1、sessionID屬性

該屬性返回當(dāng)前會話的唯一標(biāo)志,為每一個session分配不同的編號。

我曾在開發(fā)過程中就遇到對用戶的控制問題。它要實現(xiàn)的功能就是,針對某個網(wǎng)站的一個模塊,當(dāng)一個會員登錄后正在看此模塊時,另一個人用同樣的會員名登錄,就不能瀏覽這個模塊。也就是說一個會員名同時只能一個人瀏覽此模塊。我通過用會員名(假設(shè)為UserID,唯一)和SessionID來實現(xiàn)了控制。

當(dāng)會員登錄時,給這個會員一個Session記錄登錄狀態(tài)如:Session("Status")="Logged",同時把這個會員的Session.sessionID寫入數(shù)據(jù)庫。當(dāng)他要瀏覽此模塊時,先判斷其是否登錄,若已經(jīng)登錄再判斷它的sessionID是否與數(shù)據(jù)庫記錄的相同,如果不同則不能訪問。

這樣,當(dāng)另一個用戶用相同的會員名登錄時,那么數(shù)據(jù)庫中記錄的就是新的sessionID,前者訪問此模塊時就不能通過檢查。這就實現(xiàn)了一個會員名同時只能一個人瀏覽某個模塊。這個功能在一些收費網(wǎng)站有很有特別作用,它防止了一個會員名給多個人瀏覽的問題,為公司保障了利益。

2、TimeOut屬性

該屬性用來定義用戶Session對象的時限。如果用戶在規(guī)定的時間內(nèi)沒有刷新網(wǎng)頁,則session對象就會終止。一般默認(rèn)為20分鐘。

3、Abandon方法

該方法是Session對象的唯一方法,可以清除Session對象,用來消除用戶的Session對象并釋放其所占的資源。如: <% session.Abandon %>

4、Session_OnStart和session_OnEnd事件

和Application一樣,當(dāng)對象的例程每一次啟動時觸發(fā)Session_OnStart事件,然后運(yùn)行session_Onstart事件的處理過程。也就是說,當(dāng)服務(wù)器接收到應(yīng)用程序中的URL的HTTP請求時,觸發(fā)此事件,并建立一個session對象。同理,這個事件也必須定在Global.asa文件中。

當(dāng)調(diào)用Session.Abandon方法時或者在TimeOut的時間內(nèi)沒有刷新,這會觸發(fā)Session_OnEnd事件,然后執(zhí)行里面的腳本。Session變量與特定的用戶相聯(lián)系,針對某一個用戶賦值的Session變量是和其他用戶的session變量完全獨立的,不會存在相互影響。

session應(yīng)用一列:

與Application一樣,一個被定義為Session類型的數(shù)組只能將整個數(shù)組作為一個對象,用戶不能直接改變Session數(shù)組中某個元素的值。為了創(chuàng)建一個Session數(shù)組,需先定義一個普通的數(shù)組,并對它的每一個元素賦初值,***把它定義為一個session數(shù)組。如:

以下為引用的內(nèi)容:

 

  1. <%  
  2. dim array()  
  3. array=array("李","明","男")  
  4. session("info")=array  
  5. Response.write session("info")(0) &"-" 
  6. Response.write session("info")(1) &"-" 
  7. Response.write session("info")(2) &"<br>" 
  8. %>  
  9. <hr>  
  10. <%  
  11. array(0)="天" 
  12. array(1)="宇" 
  13. array(2)="男" 
  14. session("info")=array  
  15. Response.write session("info")(0) & "-" 
  16. Response.write session("info")(1) & "-" 
  17. Response.write session("info")(2) & "<br>" 
  18. %> 

到這,ASP的六大內(nèi)置對象,就大家介紹完了。希望對你有幫助。

【編輯推薦】

  1. 利用ASP和SQL Server構(gòu)建網(wǎng)頁防火墻
  2. 經(jīng)驗分享ASP編碼八原則
  3. ASP新手之常用ASP內(nèi)置函數(shù)大總結(jié)
  4. 介紹ASP程序所使用的幾種腳本語言
  5. 解決ASP無法更新ACCESS數(shù)據(jù)庫的問題
責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-06 17:25:20

2010-07-29 16:31:34

Flex開源項目

2024-10-22 14:42:14

2019-01-29 10:22:08

Web漏洞攻擊XSS

2011-03-16 10:44:19

2023-07-24 11:01:32

2023-05-11 11:36:56

云計算云供應(yīng)商

2010-09-09 10:54:58

2013-08-23 10:18:06

Hadoop

2016-07-06 11:16:47

2023-08-31 22:12:51

低代碼隱患技術(shù)

2022-01-23 10:44:39

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2013-08-23 10:42:03

Hadoop

2021-08-12 14:31:52

邊緣計算云計算數(shù)據(jù)

2023-06-02 12:48:16

2010-08-16 10:14:23

云計算誤區(qū)

2010-09-25 15:22:19

DHCP故障處理

2010-07-30 13:15:17

Flex優(yōu)勢

2023-10-18 10:48:44

Python解釋器

2010-07-02 12:53:07

UML對象圖
點贊
收藏

51CTO技術(shù)棧公眾號