ASP的對象結構

來源:互聯網
上載者:User
對象   
現在我們要系統地瞭解一下ASP的對象結構,然後,大家就可以舉一反三,不用我過多解釋每一個例子了。這一部分,可能有些困難。

  一、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.