ASP的對象結構

來源:互聯網
上載者:User

ASP的對象結構

前面我們學習了ASP的基礎應用,現在我們要系統地瞭解一下ASP的對象結構,然後,大家就可以舉一反三,不用我過多解釋每一個例子了。這一部分,可能有些困難,不過,要學習東西,是不能怕的,是不是?

Request對象

Response對象

Application對象

Session對象

Server對象

一、Request

Request對象把客戶資訊儲存在幾個集合中,供ASP應用使用。通用的存取方法為:

Request.Collection("membername")

當你不指定集合名時,以(1)QueryString,(2)Form,(3)Cookie和(4)ServerVariable

的順序搜尋所有集合,當發現第一個匹配的變數時,就認定他是要引用的成員。當然,為了提高效率,你最好顯式指定是那個集合中的成員。

QueryString集合

當HTML表單使用GET方法向ASP檔案傳遞資料時,資料被儲存在集合QueryString中。其成員可以具有與之相關的多個值,也就是說,同一個表單中,多個元素可以有相同的名字,下面的代碼訪問這些資料:

<%For each item in Request.QueryString("Name")

Response.write Item &"<br>"

Next %>

Form集合

當表單用POST方法時,資料被儲存在Form集合中。

ServerVariable集合

儲存了隨HTTP請求一起傳送HTTP頭的資訊,可以通過他擷取有關瀏覽器的資訊,主要成員有:

REMOTE_ADDR 遠程主機IP地址

REMOTE_HOST 遠程主機名稱

REMOTE_USER 客戶名稱

REQUEST_METHOD 要求方法(如POST,GET,HEAD)

SERVER_NAME 伺服器名

SERVER_PROTOCOL 伺服器版本號碼(如HTTP/1。0)

 

二、Response對象

用來控制向客戶返回的HTML的內容,有若干屬性和方法。下面介紹我認為重要的:

Buffer屬性

如果為True,則Response的內容要寫入緩衝區,當指令碼處理完時再發給客戶。

Status屬性

傳遞HTTP Response報文的狀態。伺服器返回的狀態碼由三位元字組成,可以用於測試階段和轉換控制到其他網站(即Forward)

Write方法

向客戶輸出HTML,可以是任何合法的HTML指令碼。

Redirect方法

使瀏覽器重新定向到另外一個URL上,如:

<%browsetype=Request.ServerVariables("HTTP_USER_AGENT")

IF Left(browsetype,11)="Mozilla/2.0" then

Response.Redirect "FancyStart.asp"

Else

Response.Redirect "OldStart.asp"

End if%>

Clear方法

如果設Buffer屬性為True,則Clear方法清楚所有緩衝區內容。

Flush方法

將緩衝內容立即發送給客戶。

End方法

當Active Server遇到該方法時,立即停止處理ASP檔案,如果有緩衝,立即發送內容到客戶。

BinaryWrite方法

輸出位元據

 

三、Request對象和Response對象的Cookies集合

1.寫入Cookies

Response.Cookies("Cookie名稱")[("鍵名稱").屬性]=值

如果該Cookie已經存在,則值被新值替代,否則,建立該cookie

例如:

<% Response.Cookies("NewCookie")="New Cookie Value" %>

2.讀取Cookies

如:

<%=Request.Cookies("NewCookie")%>

Cookie還有一些屬性,請參見有關資料。

 

四、Application對象

Active Server應用程式是虛擬目錄及其子目錄下的所有檔案,即一個WEB。可以使用Application對象在應用軟體的所有使用者中共用資訊,並可以在伺服器運行期間持久地儲存資料。他有一些控制訪問應用程式層資料的方法和事件。

Application本身沒有內建屬性,可以有使用者定義:

Application("屬性名稱")=值

儲存在Application對象中的資料可以被Application的所有使用者讀取。如用來做訪問記數:

Application("aVisits")=Application("aVisits")+1

方法有兩個:

Lock:

當使用者調用Lock時,只有目前使用者能夠編輯或增加Application對象的屬性。

Unlock:

一定要記住,調用了Lock,完成時一定要調用Unlock.

事件也有兩個:

Application_OnStart事件:應用程式啟動時調用。

Application_OnStart事件:應用程式終止時調用。

這兩個事件再加上Session的兩個事件的處理常式都放在檔案Global.asp中,一個Web應用只有一個Global.asa檔案,且放在該應用的根目錄下。一個Global.asp檔案的例子如下:

<Script Language="VBScript" Runat="Server">

Sub Application_OnStart

Dim laChats(15)

Application("gaChats")=maChats

Application("giCounter")=0

End Sub

 

五、Session對象

Active Server使用會話設定為使用應用程式的單個使用者持久保持資料。當使用者請求Active Server應用程式中ASP檔案的URL時,要啟動Session。在預設情況下,如果沒有使用者請求,則伺服器只保留Session20分鐘。使用者也可以通過設Session的屬性TimeOut來改變。或顯示地調用Session.Abandon方法來釋放Session對象。

SessionID屬性

唯一標識一個會話的標識符。

TimeOut屬性

定義Session保留的時限,單位為分鐘,如

Session.TimeOut=10

像Application一樣,Session也可由使用者來定義屬性。

Session的唯一方法是Abandon,用來取消使用者的Session對象,並釋放其佔用的伺服器資源。如:

<%Session.Abandon%>

事件有Session_OnStart和Session_OnEnd,其處理常式應放在檔案Glabal.asa中。

 

六、Server對象

1.HTMLEncode方法

對特定的字串進行HTML編碼,如你本來要顯示下列內容:

The Underline tag(<u></u>) is used to underline the surrounded text.

但很可能實際顯示成:

The Underline tag() is used to underline the surrounded text.

為了避免這種情況,可以調用Server對象的HTMLEncode方法,如:

<%

Response.Write Server.HTMLEncode("The Underline tag(<U></U>) is used to underline the surrounded text.")

%>

2.URLEncode方法

根據URL規則對字串進行編碼。當字串資料以URL格式傳遞到伺服器時,串中間不能有空格,不能有特殊字元,這時,你就必須用URL編碼。

3.CreateObject方法

用於建立登入到伺服器機器上的ActiveX組件常式,這恐怕是最重要的一個方法了:-)

句法如下:

Server.CreateObject("ComponentName")

可以作為常式啟動的組件可以是ActiveX能夠使用的所有內建群組件,實際上是存在於伺服器上的任何ActiveX組件。比如,要使用金融計算,步驟如下:

1.建立對象

<%

set x=server.createobject("extend.financial");

%>

2.調用對象的方法

<%

set x=server.createobject("extend.financial")

response.write Format(x.futval(.07/12,200,-500),"###,###,##0.00")

%>

3.釋放常式

<%

set x=Nothing

%>

 

七、FileSystem和TextStream對象

FileSystem和TextStream對象可用於建立對檔案系統的訪問,並提供順序訪問檔案的機制。FileSystem沒有屬性,只有兩個方法,第一個方法是CreateTextFile方法,可以在宿主機上建立新的文字檔,並返回TextStream對象以提供對新建立檔案的訪問機制。第二個是OpenTextFile方法,用於開啟文字檔供順序訪問並返回一個TextStream對象。如:

<%

set fsFilesys=CreateObject("Scripting.FileSystemObject")

set tsCoffee=fsFilesys.CreateTextFile("c:\coffe.txt",True)

tsCoffee.WriteLine("Man,I Could use some coffee.")

tsCoffee.Close

%>

TextStream對象的使用有:

AtEndOfLine:如果檔案當前字元處在行的末尾則返回true

AtEndOfScreen:如果當前字元在檔案的末尾則返回true

Column:返回當前字元的列號

Line:返回當前字元的行號

TextStream對象的方法為:

Close:關閉並釋放TextStream對象

Read:從一個檔案中讀取給定個數的字元到一個變數中

ReadAll:讀取檔案的全部內容到一個變數中

ReadLine:讀取給定行號的內容到一個變數中

Skip:跳過給定個數的字元

SkipLine:跳過給頂的行書

Write:寫如字串

WriteLine:寫入以換行結束的字串

WriteBlankLines:寫入給頂數量的空格

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.