• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ASP實用大全-ASP對象(5)

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 9次 | 進入軟件測試論壇討論

    領測軟件測試網 ASP對象
    深入研究Application和Session對象(1)
         用ASP編寫虛擬社區、網上購物等程序時,Application和Session對象具有舉足輕重的作用,能夠靈活合理地運用這兩個對象是提高程序質量的關鍵。下面讓筆者根據自己在這方面的經驗,向大家深入介紹一下ASP的這兩個內建對象。

      一、Application對象的成員概述

      Application對象成員包括Application對象的集合、方法和事件。

     、盇pplication對象的集合

      Contents集合:沒有使用<OBJECT>元素定義的存儲于Applicaiton對象中的所有變量的集合

      StaticObjects:使用<OBJECT>元素定義的存儲于Application對象中的所有變量 的集合

      例:在default.asp中有如下賦值

      application("a")="a"

      application("b")=128

      application("c")=false

      則有contents集合

      application.contents(1)="a" '也可寫為application.contents("a")="a"

      application.contents(2)=128 '也可寫為application.contents("b")=128

      application.contents(3)=false '也可寫為application.contents("c")=false

      在此筆者推薦你在調用時使用類如application.contents("a")的方法,因為這樣更為直觀,如果用序號來表示的話則要考慮賦值的先后順序。

     、睞pplication對象的方法

      Contents.Remove("變量名"):從Application.Contents集合中刪除指定的變量

      Contents.RemoveAll() :把Application.Contents集合中的所有變量刪除

      Lock() :鎖定Application對象,使得只有當前的ASP頁對內容能進行訪問

      Unlock() :解除對Application對象的鎖定

      例:在default.asp中:

      application("a")="a"

      application("b")=128

      application("c")=false

      response.write application.contents(1)&"<br>"

      response.write application.contents(2)&"<br>"

      response.write application.contents(3)&"<br>"

      response.write "After Remove b:"

      application.contents.remove("b")

      response.write application.contents(1)&"<br>"

      response.write application.contents(2)&"<br>"

      執行結果:

      a

      128

      False

      After Remove b:

      a

      False

      如果要刪除集合中所有變量用application.contents.removeall即可,至于Lock和Unlock方法在實際中經常用到,讀者也比較熟悉,在此就不在累贅。

     、矨pplication對象事件

      OnStart:第一個訪問服務器的用戶第一次訪問某一頁面時發生

      OnEnd :當最后一個用戶的會話已經結束并且該會話的OnEnd事件所有代碼已經執行完畢后發生,或最后一個用戶訪問服務器一段時間(一般為20分鐘)后仍然沒有人訪問該服務器產生。

      想要定義application對象的OnStart和OnEnd事件里做什么需要將代碼寫在Global.asa這個文件里(下文有舉例),并且將該文件放在站點的根目錄下(一般是Inetpub\wwwroot\)

      二、Session對象的成員概述

      Session對象的成員比Application對象多一項屬性,即:集合、屬性、方法、事件

     、盨ession對象的集合

      Contents :沒有使用<OBJECT>元素定義的存儲于特定Session對象的所有變量的集合。

      StaticObject:使用<OBJECT>元素定義的、存儲于Session對象中的所有變量的集合。

      例:在default.asp中有如下賦值

      session("a")="a"

      session("b")=128

      session("c")=false

      則有contents集合

      session.contents(1)="a" '也可寫為session.contents("a")="a"

      session.contents(2)=128 '也可寫為session.contents("b")=128

      session.contents(3)=false '也可寫為session.contents("c")=false

     、睸ession對象的屬性

      CodePage: 可讀/可寫。整型。定義用于在瀏覽器中顯示頁內容的代碼頁。代碼頁是字符集的數字值,不同的語言使用不同的代碼頁。例如,ANSI代碼頁為1252,日文代碼頁為932,簡體中文代碼頁為936。

      LCID : 可讀/可寫。整型。定義發送給瀏覽器的頁面地區標識。LCID是唯一地標識地區的一個國際標準縮寫,例如,2057定義當前地區的貨幣符號是"£"。

      SessionID: 只讀。長整型。返回本會話的會話標識符。每創建一個會話,由服務器自動分配一個標識符?梢愿鶕闹蹬袛鄡蓚用戶是誰先訪問服務器。

      Timeout : 可讀/可寫。整型。為會話定義以分鐘為單位的超時限定。如果用戶在這個時間內沒有刷新或請求任何一個網頁,則該用戶產生的會話自動結束。缺省值是20。

    以上屬性在實際應用中作用不大,而且基本上不需要怎么修改,這幾個屬性也沒什么特殊的地方。

     、砈ession對象的方法

      Contents.Remove("變量名"): 從Session.contents集合中刪除指定的變量

      Contents.Removeall() : 刪除Session.contents集合中的所有變量

      Abandon() : 結束當前用戶會話并且撤消當前Session對象。

      Session對象的Contents.Remove("變量名")和Contents.Removeall()方法與Application對象的基本上沒什么區別,為幫助理解,大家可以參照上面的例子將Application改為Session。這里要說明一下的是Contents.Removeall()和Abandon()的區別,執行這兩個方法都會釋放當前

      用戶會話的所有Session變量,不同的是Contents.Removeall()單純地釋放Session變量的值而不終止當前的會話,而Abandon()除了釋放Session變量外還會終止會話引發Session_OnEnd事件,希望大家注意兩者的區別。

     、碨ession對象的事件

      OnStart: 當ASP用戶會話產生時觸發,一旦有任一用戶對本服務器請求任一頁面即產生該事件。

      OnEnd : 當ASP用戶會話結束時觸發,當使用Abandon()方法或超時也會觸發該事件。

      這兩個事件和Application的OnStart、OnEnd事件一樣,也是必須放在Global.asa文件里,下
    面就重點和大家研究一下這四個事件的使用。

      三、Global.asa

      ASP的Application和Session對象體現了其他ASP內置對象所沒有的特征--事件。每一個訪客訪問服務器時都會觸發一個OnStart事件(第一個訪客會同時觸發Application和Session的OnStart事件,但Application先于Session),每個訪客的會話結束時都會觸發一個OnEnd事件(最后一個訪客會話結束時會同時觸發Application和Session的OnEnd事件,但Session先于Application)。

      OnStart和OnEnd這兩個事件一般應用在虛擬社區中統計在線人數、修改用戶的在線離線狀態等。要具體定義這兩個事件,需要將代碼寫在Global.asa文件,并將該文件放在站點的根目錄下(缺省是\Inetpub\wwwroot\)。另外,Application和Session對象規定了在OnEnd事件里除了Application對象外其他ASP內置對象(Response、Request、Server、Session...)一概不能使用。以下舉一個虛擬社區統計在線人數的例子來說明如何使用這兩個事件。

      文件說明:

      global.asa 位于d:\Inetpub\wwwroot\目錄下

      default.asp 位于d:\Inetpub\wwwroot\目錄下,虛擬社區登錄頁面

      login.asp 位于d:\Inetpub\wwwroot\目錄下,用于檢測用戶輸入的用戶名及密碼

      index.asp 位于d:\Inetpub\wwwroot\目錄下,虛擬社區首頁

      bbs.mdb 位于d:\Inetpub\wwwroot\目錄下,存儲用戶信息的數據庫

      數據庫(ACCESS)結構:

       ===bbs表===

      id 用戶ID,長整型

      name 用戶名,文本型

      code 密碼,文本型

      online 在線狀態,是/否

     
      ===global.asa===

     。約cript LANGUAGE="VBScript" RUNAT="Server">

      Sub Application_OnStart

       application("online")=0

      End Sub

      sub Application_OnEnd

      nd Sub

      Sub Session_OnStart

      End Sub

      Sub Session_OnEnd

       if session.contents("pass") then '判斷是否為登錄用戶的Session_OnEnd

        application.lock

        application("online")=application("online")-1

        application.unlock

       end if

      End Sub

     。/script>

      ==============

      ===login.asp===

       ......'密碼驗證,連接數據庫,檢測用戶輸入的用戶名及密碼是否正確

      if 密碼驗證通過 then

       session("name")=rs("name")

       session("id")=rs("id")

       session("pass")=true

      else

       rs.close

       conn.close

       response.write "密碼錯誤!"

       response.end

      end if

      application.lock

      application("online")=application("online")+1

      conn.Execute ("update bbs set online=1 where id="&session("id"))'將用戶的狀態設為在線

      application.unlock

      rs.close

      conn.close

      response.redirect "index.asp" '初始化數據后跳轉到社區首頁

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>