国产毛片午夜福利,国产黄网,国产亚洲天堂,97国产精品

  •  
    ASP六大對(duì)象介紹
    發(fā)布時(shí)間:2008-05-14   瀏覽次數(shù):1183221

    ASP六大對(duì)象介紹

    Application對(duì)象

      Application對(duì)象是個(gè)應(yīng)用程序級(jí)的對(duì)象,用來(lái)在所有用戶間共享信息,并可以在Web應(yīng)用程序運(yùn)行期間持久地保持?jǐn)?shù)據(jù)。
    Application的屬性:
      方法如下:
      Application對(duì)象沒(méi)有內(nèi)置的屬性,但是我們可以自行創(chuàng)建其屬性。
      <% Application("屬性名")=值 %>
      其實(shí)大部分Application變量都 存放在Contents集合中,當(dāng)你創(chuàng)建一個(gè)新的Application變量時(shí),其實(shí)是在Contents集合中添加了一項(xiàng)。下面兩個(gè)腳本是等效的:
      <% Application("greeting")="hello!" %> 或 <% Application.contents("greeting")="hello!"由于Application變量存在集合里,所以如果想要全部顯示,其方法我們已經(jīng)多次使用,例如For Each循環(huán)! 
    <%
    For Each item IN Application.Contents
      Response.write("<br>"&item&Application.Contents(item))
    next
    %>
    Application的方法:
      Application的方法只有兩個(gè)方法:一個(gè)是Lock,另一個(gè)是Unlock。其中Lock方法用于保證同一時(shí)刻只能一個(gè)用戶對(duì)Application操作。Unlock則用于取消Lock方法的限制。如:
    <%
    Application.Lock
    Application("visitor_num")=Application("visitor_num")+1
    Application.Unlock
    %>
    Application的事件:
    1、Application_OnStart()
      當(dāng)事件應(yīng)用程序啟動(dòng)時(shí)觸發(fā)。
    2、Application_OnEnd()
      此事件應(yīng)用程序結(jié)束時(shí)觸發(fā)。
      這兩個(gè)事件過(guò)程都是必須定義在Global.asp文件中,一般把連接數(shù)據(jù)的函數(shù)定義在這兩個(gè)事件,然后放在Global.asp中。例如:
    Sub Application_OnStart
        Application("tt18_ConnectionString") = "driver={SQL     
                        Server};server=jeff;uid=sa;pwd=;database=test"
    End Sub
      一個(gè)數(shù)組能夠被定義成Application對(duì)象,不過(guò)這個(gè)數(shù)組只能作為一個(gè)對(duì)象保存,而不能用Application(0)取出其值?梢远x一個(gè)臨時(shí)數(shù)組實(shí)現(xiàn)這種功能。如:
    <%
    dim Array()
    Array=Application("array")
    for i = 0 to ubound(array)
      Response.write Array(i)
    next i
    %>
      同樣要修改這個(gè)Application對(duì)象也可以定義一個(gè)臨時(shí)數(shù)組,把Application對(duì)象賦給數(shù)組,然后修改這個(gè)數(shù)組的元素,把數(shù)組賦回Application對(duì)象。如:
    <%
    dim Array()
    Array=Application("array")
    Array(0)="jeff"
    Array(1)="zhu"
    Application.lock
    Application("array")=Array
    Application.unlock
    %>
    ObjectContext對(duì)象

    該對(duì)象用于控制Active Server Pages的事務(wù)處理。事務(wù)處理由Microsoft Transaction Server (MTS)管理。

    事件

    ObjectContext.OnTransactionAbort

    由放棄的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生。

    ObjectContext.OnTransactionCommit

    由成功的事務(wù)處理事件激發(fā),在腳本完成處理后發(fā)生。

    方法

    ObjectContext.SetAbort

    顯式的放棄一次事務(wù)處理。

    ObjectContext.SetComplete

    覆蓋前面任何調(diào)用ObjectContext.SetAbort方法的調(diào)用。 
    Request對(duì)象
     
    Request對(duì)象用于接受所有從瀏覽器發(fā)往你的服務(wù)器的請(qǐng)求內(nèi)的所有信息。

    集合

    Request.ClientCertificate(key[SubField])

    所有客戶證書的信息的集合。對(duì)于Key,該集合具有如下的關(guān)鍵字:

    Subject
    證書的主題。包含所有關(guān)于證書收據(jù)的信息。能和所有的子域后綴一起使用。

    Issuer
    證書的發(fā)行人。包含所有關(guān)于證書驗(yàn)證的信息。除了CN外,能和所有的子域后綴一起使用。

    VadidFrom
    證書發(fā)行的日期。使用VBScript格式。

    ValidUntil
    該證書不在有效的時(shí)間。

    SerialNumber
    包含該證書的序列號(hào)。

    Certificate
    包含整個(gè)證書內(nèi)容的二進(jìn)制流,使用ASN.1格式。


    對(duì)于SubField,Subject和Issuer關(guān)鍵字可以具有如下的子域后綴:(比如:SubjectOU或IssuerL)

    C
    起源國(guó)家。

    O
    公司或組織名稱。

    OU
    組織單元。

    CN
    用戶的常規(guī)名稱。

    L
    局部。

    S
    州(或。。

    T
    個(gè)人或公司的標(biāo)題。

    GN
    給定名稱。

    I
    初始。


    當(dāng)文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通過(guò)使用#INCLUDE導(dǎo)向包含在你的Active Server Page里時(shí),下面兩個(gè)標(biāo)志可以使用:

    ceCertPresent
    指明客戶證書是否存在,其值為TRUE或FALSE。

    ceUnrecongnizedIssure
    指明在該鏈表中的的證書的發(fā)行者是否未知,其值為TRUE或FALSE。


    Request.Cookies(Cookie[(key).Attribute])

    Cookie的集合。允許獲得瀏覽器的Cookie。Cookie指明返回那一個(gè)Cookie。Key用于從Cookie字典中返回具有某一關(guān)鍵字的Cookie值。對(duì)于Attribute,你能使用屬性HasKeys來(lái)確定某一Cookie是否具有子關(guān)鍵字。HasKeys的值為TRUE或FALSE。

    Request.Form(Parameter)[(Index).Count]

    填寫在HTML的表單中所有的數(shù)據(jù)的集合。Parameter是在HTML表單中某一元素的名稱。當(dāng)某一參數(shù)具有不止一個(gè)值(比如,當(dāng)在<SELECT>中使用MULTIPLE屬性時(shí))時(shí),使用Index。當(dāng)某一參數(shù)具有多值時(shí),Count指明多值個(gè)數(shù)。

    Request.QueryString(Varible)[(Index).Count]

    查詢字符串的所有值的集合。Varible是在查詢字符串某一變量的名稱。當(dāng)某一變量具有多于一個(gè)值時(shí),使用Index。當(dāng)某一參數(shù)具有多值時(shí),Count指明值的個(gè)數(shù)。

    Request.ServerVaribles(Server Environment Variable)

    環(huán)境變量的集合。允許讀取HTTP頭。你可以通過(guò)使用HTTP_前綴來(lái)讀取任何頭信息。比如,HTTP_USER_AGENT接受客戶代理HTTP頭(瀏覽器類型)。除此外,你可以使用下表所示的變量獲得任何環(huán)境信息。

    ALL_HTTP
    客戶端發(fā)送的所有HTTP標(biāo)頭,他的結(jié)果都有前綴HTTP_。

    ALL_RAW
    客戶端發(fā)送的所有HTTP標(biāo)頭,其結(jié)果和客戶端發(fā)送時(shí)一樣,沒(méi)有前綴HTTP_

    APPL_MD_PATH
    應(yīng)用程序的元數(shù)據(jù)庫(kù)路徑。

    APPL_PHYSICAL_PATH
    與應(yīng)用程序元數(shù)據(jù)庫(kù)路徑相應(yīng)的物理路徑。

    AUTH_PASSWORD
    當(dāng)使用基本驗(yàn)證模式時(shí),客戶在密碼對(duì)話框中輸入的密碼。

    AUTH_TYPE
    這是用戶訪問(wèn)受保護(hù)的腳本時(shí),服務(wù)器用于檢驗(yàn)用戶的驗(yàn)證方法。

    AUTH_USER
    代驗(yàn)證的用戶名。

    CERT_COOKIE
    的客戶證書ID號(hào)。

    CERT_FLAG
    客戶證書標(biāo)志,如有客戶端證書,則bit0為0。如果客戶端證書驗(yàn)證無(wú)效,bit1被設(shè)置為1。

    CERT_ISSUER
    用戶證書中的發(fā)行者字段。

    CERT_KEYSIZE
    套接字層連接關(guān)鍵字的位數(shù),如128。

    CERT_SECRETKEYSIZE
    服務(wù)器驗(yàn)證私人關(guān)鍵字的位數(shù)。如1024。

    CERT_SERIALNUMBER
    客戶證書的序列號(hào)字段。

    CERT_SERVER_ISSUER
    服務(wù)器證書的發(fā)行者字段

    CERT_SERVER_SUBJECT
    服務(wù)器證書的主題字段。

    CERT_SUBJECT
    客戶端證書的主題字段。

    CONTENT_LENGTH
    客戶端發(fā)出內(nèi)容的長(zhǎng)度。

    CONTENT_TYPE
    客戶發(fā)送的form內(nèi)容或HTTP PUT的數(shù)據(jù)類型。

    GATEWAY_INTERFACE
    服務(wù)器使用的網(wǎng)關(guān)界面。

    HTTPS
    如果請(qǐng)求穿過(guò)通道(SSL),則返回ON。如果請(qǐng)求來(lái)自非通道,則返回OFF。

    HTTPS_KEYSIZE
    套接字層連接關(guān)鍵字的位數(shù),如128。

    HTTPS_SECRETKEYSIZE
    服務(wù)器驗(yàn)證私人關(guān)鍵字的位數(shù)。如1024。

    HTTPS_SERVER_ISSUER
    服務(wù)器證書的發(fā)行者字段。

    HTTPS_SERVER_SUBJECT
    服務(wù)器證書的主題字段。

    INSTANCE_ID
    IIS實(shí)例的ID號(hào)。

    INSTANCE_META_PATH
    響應(yīng)請(qǐng)求的IIS實(shí)例的元數(shù)據(jù)庫(kù)路徑。

    LOCAL_ADDR
    返回接受請(qǐng)求的服務(wù)器地址。

    LOGON_USER
    用戶登錄Windows NT的帳號(hào)

    PATH_INFO
    客戶端提供的路徑信息。

    PATH_TRANSLATED
    通過(guò)由虛擬至物理的映射后得到的路徑。

    QUERY_STRING
    查詢字符串內(nèi)容。

    REMOTE_ADDR
    發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī)的IP地址。

    REMOTE_HOST
    發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī)名稱。

    REQUEST_METHOD
    提出請(qǐng)求的方法。比如GET、HEAD、POST等等。

    SCRIPT_NAME
    執(zhí)行腳本的名稱。

    SERVER_NAME
    服務(wù)器的主機(jī)名、DNS地址或IP地址。

    SERVER_PORT
    接受請(qǐng)求的服務(wù)器端口號(hào)。

    SERVER_PORT_SECURE
    如果接受請(qǐng)求的服務(wù)器端口為端口時(shí),則為1,否則為0。

    SERVER_PROTOCOL
    服務(wù)器使用的協(xié)議的名稱和版本。

    SERVER_SOFTWARE
    應(yīng)答請(qǐng)求并運(yùn)行網(wǎng)關(guān)的服務(wù)器軟件的名稱和版本。

    URL
    提供URL的基本部分。


     

    方法

    Request.BinaryRead(Count)

    接收一個(gè)HTML表單的未經(jīng)過(guò)處理的內(nèi)容。當(dāng)調(diào)用此方法時(shí),Count指明要接收多少字節(jié)。在調(diào)用此方法后,Count指明實(shí)際上接收到多少個(gè)字節(jié)。

    屬性

    Request.TotalBytes

    查詢體的長(zhǎng)度,以字節(jié)為單位
    Response對(duì)象

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

     

    1、Buffer屬性  
      該屬性用于指定頁(yè)面輸出時(shí)是否要用到緩沖區(qū),默認(rèn)值為False。當(dāng)它為True時(shí),直到整個(gè)Active Server Page執(zhí)行結(jié)束后才會(huì)將結(jié)果輸出到瀏覽器上。如:
    <%Response.Buffer=True%>
    <html>
    <Head>
    <title>Buffer示例</title>
    </head>
    <body>
    <%
      for i=1 to 500
        response.write(i & "<br>")
      next
    %>
    </body>
    </html>
      這頁(yè)執(zhí)行時(shí),整個(gè)主頁(yè)的所有內(nèi)容會(huì)同時(shí)顯示在瀏覽器上,這個(gè)主頁(yè)會(huì)存在緩存區(qū)中直到腳本執(zhí)行結(jié)束。

     

    2、Expires屬性
      該屬性用于設(shè)置瀏覽器緩存頁(yè)面的時(shí)間長(zhǎng)度(單位為分),必須在服務(wù)器端刷新。通過(guò)如下設(shè)置:
    <%Response.Expires=0%>
      通過(guò)在ASP文件中加入這一行代碼,要求每次請(qǐng)求是刷新頁(yè)面,因?yàn)镽esponse一收到頁(yè)面會(huì)過(guò)期。

     

    3、Write方法
      該方法把數(shù)據(jù)發(fā)送到客戶端瀏覽器,如:  
    <%Response.write "Hello,world!"%>

     

    4、Redirect方法
      該方法使瀏覽器可以重新定位到另一個(gè)URL上,這樣,當(dāng)客戶發(fā)出Web請(qǐng)求時(shí),客戶端的瀏覽器類型已經(jīng)確定,客戶被重新定位到相應(yīng)的頁(yè)面。如:
    <html>
    <head>
    <title>Redirect示例</title>
    </head>
    <body>
    <form aciton="formjump.asp" method="post">
      <select name="wheretogo">
        <option selected value="fun">Fun</option>
        <option value="news">News</option>
        <option value="sample">Sample</option>
      </select>
    <input type=submit name="jump" value="Jump">
    </form>
    </body>
    </html>
      以上是提交的表單,下面是處理表單的文件formjump.asp:
    <%response.buff=true%>
    <html>
    <head>
    <title>Redirect示例</title>
    </head>
    <body>
    <%
    thisurl="Select Case where
      case "fun"
        response.redirect thisurl & "/fun/default.asp"
      case "news"
        response.redirect thisurl & "/news/default.asp"
      case "sample"
        response.redirect thisurl & "/sample/default.asp"
    End Select
    %>
    </body>
    <html>
      這個(gè)例子當(dāng)用戶選擇了以后,按"Jump"按鈕提交表單,服務(wù)器接到申請(qǐng)后調(diào)用formjump.asp判斷后定位到相應(yīng)的URL。不過(guò)這里有一點(diǎn)要注意,HTTP標(biāo)題已經(jīng)寫入到客戶瀏覽器,任何HTTP標(biāo)題的修改必須在寫入頁(yè)內(nèi)容之前,遇到這種問(wèn)題時(shí),可以如下做:
    在文件的開(kāi)始<@ Language=..>后寫:   
      Response.Buffer=True
    在結(jié)尾定:
      Response.Flush
      這里Flush是Response的一個(gè)方法,它必須是Buffer屬性設(shè)置為True時(shí)才能使用,否則會(huì)產(chǎn)生一個(gè)運(yùn)行模式錯(cuò)誤。另外一個(gè)Clear方法也是用于被緩存的頁(yè)面,同樣要Buffer屬性設(shè)置為True時(shí)才能使用。

     

    5、End方法
      該方法用于告知Active Server當(dāng)遇到該方法時(shí)停止處理ASP文件。如果Response對(duì)象的Buffer屬性設(shè)置為True,這時(shí)End方法即把緩存中的內(nèi)容發(fā)送到客戶并沖區(qū)。所以要取消所有向客戶的輸出民,可以先緩沖區(qū),然后利用End方法。如:
    <%
    Response.buffer=true
    On error resume next
    Err.clear
    if Err.number<>0 then
      Response.Clear
      Response.End
    end if
    %>
    Server 對(duì)象:

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

    語(yǔ)法

    Server.property|method

    屬性

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

    語(yǔ)法  Server.ScriptTimeout = NumSeconds

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

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

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

    示例    以下示例中,如果服務(wù)器處理腳本超過(guò) 100 秒,將使之超時(shí)。
    <% Server.ScriptTimeout = 100 %>
    以下示例獲取 ScriptTimeout 屬性當(dāng)前值,并將其存儲(chǔ)在變量 TimeOut 中。
    <% TimeOut = Server.ScriptTimeout %>

    方法

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

    語(yǔ)法  Server.CreateObject( progID )

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

    注釋 默認(rèn)情況下,由 Server.CreateObject 方法創(chuàng)建的對(duì)象具有頁(yè)作用域。這是說(shuō),再當(dāng)前 ASP 頁(yè)處理完成之后,服務(wù)器將自動(dòng)破壞這些對(duì)象。要?jiǎng)?chuàng)建有會(huì)話或應(yīng)用程序作用域的對(duì)象,可以使用 <OBJECT> 標(biāo)記并設(shè)置 SESSION 或 APPLICATION 的 SCOPE 屬性,也可以在對(duì)話及應(yīng)用程序變量中存儲(chǔ)該對(duì)象。
    例如,在如下所示的腳本中,當(dāng) Session 對(duì)象被破壞,即當(dāng)對(duì)話超時(shí)時(shí)或 Abandon 方法被調(diào)用時(shí),存儲(chǔ)在會(huì)話變量中的對(duì)象也將被破壞。
    <% Set Session("ad") = Server.CreateObject("MSWC.AdRotator")%>
    可以通過(guò)將變量設(shè)置為 Nothing 或新的值來(lái)破壞對(duì)象,如下所示。個(gè)例子釋放 ad 對(duì)象,第二個(gè)例子用字串代替 ad 。
    <% Session ("ad") = Nothing %>
    <% Session ("ad") = " Other Valum " %>
    不能創(chuàng)建與內(nèi)建對(duì)象同名的對(duì)象實(shí)例。 例如,下列腳本將返回錯(cuò)誤。
    <% Set Response = Server.CreateObject("Response") %>

    示例  <% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>
    上面的例子創(chuàng)建一個(gè)名為 MyAd 的 MSWC.AdRotator 服務(wù)器組件,MSWC.AdRotator 組件可用于在 Web 頁(yè)上的自動(dòng)輪換廣告。
    關(guān)于服務(wù)器組件的詳細(xì)信息, 請(qǐng)參閱 Creating Components for ASP.

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

    語(yǔ)法    Server.HTMLEncode( string )

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

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

    輸出    The paragraph tag: <P>

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


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

    語(yǔ)法
    Server.MapPath( Path )

    參數(shù)
    Path
    指定要映射物理目錄的相對(duì)或虛擬路徑。若 Path 以一個(gè)正斜杠 (/) 或反斜杠 (\) 開(kāi)始,則 MapPath 方法返回路徑時(shí)將 Path 視為完整的虛擬路徑。若 Path 不是以斜杠開(kāi)始,則 MapPath 方法返回同 .asp 文件中已有的路徑相對(duì)的路徑。
    注釋
    MapPath 方法不支持相對(duì)路徑語(yǔ)法 (.) 或 (..)。例如,下列相對(duì)路徑 ../MyDir/MyFile.txt 返回一個(gè)錯(cuò)誤。

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

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

    示例
    對(duì)于下列示例,文件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ù)不是以斜杠字符開(kāi)始的,所以它們被相對(duì)映射到當(dāng)前目錄,此處是 C:\Inetpub\Wwwroot\Script。腳本
    <%= server.mappath("data.txt")%><BR>
    <%= server.mappath("script/data.txt")%><BR>

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

    接下來(lái)的兩個(gè)示例使用斜杠字符指定返回的路徑應(yīng)被視為在服務(wù)器的完整虛擬路徑。腳本
    <%= server.mappath("/script/data.txt")%><BR>
    <%= server.mappath("\script")%><BR>

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

    下列示例演示如何使用正斜杠 (/) 或反斜杠 (\) 返回宿主目錄的物理路徑。腳本
    <%= server.mappath("/")%><BR>
    <%= server.mappath("\")%><BR>

    輸出
    c:\inetpub\wwwroot<BR>
    c:\inetpub\wwwroot<BR>
     

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

    語(yǔ)法
    Server.URLEncode( string )
    參數(shù)
    String 指定要編碼的字符串。
    示例
    腳本 <%Response.Write(Server.URLEncode("

    輸出 http%3A%2F%2Fwww%2Etinyu%2Ecom
    Session對(duì)象

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

     

    1、SessionID屬性
      該屬性返回當(dāng)前會(huì)話的標(biāo)志,為每一個(gè)Session分配不同的編號(hào)。
      我曾在開(kāi)發(fā)過(guò)程中遇到對(duì)用戶的控制問(wèn)題。它要實(shí)現(xiàn)的功能是,針對(duì)某個(gè)網(wǎng)站的一個(gè)模塊,當(dāng)一個(gè)會(huì)員登錄后正在看此模塊時(shí),另一個(gè)人用同樣的會(huì)員名登錄,不能瀏覽這個(gè)模塊。也是說(shuō)一個(gè)會(huì)員名同時(shí)只能一個(gè)人瀏覽此模塊。我通過(guò)用會(huì)員名(假設(shè)為UserID,)和SessionID來(lái)實(shí)現(xiàn)了控制。當(dāng)會(huì)員登錄時(shí),給這個(gè)會(huì)員一個(gè)Session記錄登錄狀態(tài)如:Session("Status")="Logged",同時(shí)把這個(gè)會(huì)員的Session.SessionID寫入數(shù)據(jù)庫(kù)。當(dāng)他要瀏覽此模塊時(shí),先判斷其是否登錄,若已經(jīng)登錄再判斷它的SessionID是否與數(shù)據(jù)庫(kù)記錄的相同,如果不同則不能訪問(wèn)。這樣,當(dāng)另一個(gè)用戶用相同的會(huì)員名登錄時(shí),那么數(shù)據(jù)庫(kù)中記錄的是新的SessionID,前者訪問(wèn)此模塊時(shí)不能通過(guò)檢查。這實(shí)現(xiàn)了一個(gè)會(huì)員名同時(shí)只能一個(gè)人瀏覽某個(gè)模塊。這個(gè)功能在一些收費(fèi)網(wǎng)站有很有特別作用,它防止了一個(gè)會(huì)員名給多個(gè)人瀏覽的問(wèn)題,為公司保障了利益。

     

    2、TimeOut屬性
      該屬性用來(lái)定義用戶Session對(duì)象的時(shí)限。如果用戶在規(guī)定的時(shí)間內(nèi)沒(méi)有刷新網(wǎng)頁(yè),則Session對(duì)象會(huì)終止。一般默認(rèn)為分鐘! 

     

    3、Abandon方法
      該方法是Session對(duì)象的方法,可以Session對(duì)象,用來(lái)用戶的Session對(duì)象并釋放其所占的資源。如: <% Session.Abandon %>
    4、Session_OnStart和Session_OnEnd事件
      和Application一樣,當(dāng)對(duì)象的例程每一次啟動(dòng)時(shí)觸發(fā)Session_OnStart事件,然后運(yùn)行Session_Onstart事件的處理過(guò)程。也是說(shuō),當(dāng)服務(wù)器接收到應(yīng)用程序中的URL的HTTP請(qǐng)求時(shí),觸發(fā)此事件,并建立一個(gè)Session對(duì)象。同理,這個(gè)事件也必須定在Global.asa文件中。
      當(dāng)調(diào)用Session.Abandon方法時(shí)或者在TimeOut的時(shí)間內(nèi)沒(méi)有刷新,這會(huì)觸發(fā)Session_OnEnd事件,然后執(zhí)行里面的腳本。Session變量與特定的用戶相聯(lián)系,針對(duì)某一個(gè)用戶賦值的Session變量是和其他用戶的Session變量完全獨(dú)立的,不會(huì)存在相互影響。
    Session應(yīng)用一列:
      與Application一樣,一個(gè)被定義為Session類型的數(shù)組只能將整個(gè)數(shù)組作為一個(gè)對(duì)象,用戶不能直接改變Session數(shù)組中某個(gè)元素的值。為了創(chuàng)建一個(gè)Session數(shù)組,需先定義一個(gè)普通的數(shù)組,并對(duì)它的每一個(gè)元素賦初值,把它定義為一個(gè)Session數(shù)組。如:
    <%
    dim array()
    array=array("李","明","男")
    Session("info")=array
    Response.write Session("info")(0) &"-"
    Response.write Session("info")(1) &"-"
    Response.write Session("info")(2) &"<br>"
    %>
    <hr>
    <%
    array(0)="天"
    array(1)="宇"
    array(2)="男"
    Session("info")=array
    Response.write Session("info")(0) & "-"
    Response.write Session("info")(1) & "-"
    Response.write Session("info")(2) & "<br>"
    %>

    立即預(yù)約