明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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

[摘要]ASP內建對象Request和Respones(2)  一、Asp的基本對象   Asp(Active Server Page)是一種類似于VB的面向對象的程序語言。在這里并不想詳述對象等一些基本概念,而是直接介紹其語言特性,以便開發(fā)人員能夠熟練地對asp程序進行修改和編制(因為很多人都只是...

ASP內建對象Request和Respones(2)

     一、Asp的基本對象

  Asp(Active Server Page)是一種類似于VB的面向對象的程序語言。在這里并不想詳述對象等一些基本概念,而是直接介紹其語言特性,以便開發(fā)人員能夠熟練地對asp程序進行修改和編制(因為很多人都只是直接利用開發(fā)工具如InterDev來生成asp程序)。

  首先,Asp程序的存檔名稱肯定是“asp”;其次,在asp程序里面,服務器端的Script要放在字符串中間,例如。如果你想在一個Asp文件中調用另一個Asp文件,則可在Asp中加上下面的聲明: < ! -- #INCLUDE VIRTUAL FILE="***.asp" -- >,這有些象C語言中的#include。其中,Virtual表示虛擬文件路徑,F(xiàn)ile表示真實文件路徑。

  Asp有五個主要的內建對象:Request、Response、Server、Session、Application,下面將分別舉例對其進行說明。

  1、Request

  Asp依然遵從流行的、利用客戶端的Form進行數(shù)據(jù)交換的方法。Asp內建的request對象擁有五個獲取客戶端資料的方法(QueryString/Form/Cookies/ServerVariables/ClientCertificate)。

   語法:request.方法名稱("參數(shù)") request("參數(shù)")

   如果采用后者,系統(tǒng)會自動選擇相應的方法。

   Form


    這里再重新強調Form的一些屬性:

    Enctype=資料傳送的MIME形態(tài)

    Method=傳送資料的方式Get/Post

    Onrest=按下rest鍵調用的程序

    Onsubmit=按下sumit鍵調用程序

    Target=輸出內容的frame窗口>

    使用Form傳送信息一般有三種方式:由html網(wǎng)頁內的Form傳信息給其他Asp;由Asp內的Form傳信息給另外一個Asp;Asp內的信息傳送給自身。

     語法:Request.Form(參數(shù))[(索引)]

     其中參數(shù)表示Form中元素的名稱,索引表示相同名稱元素的順序號。
   例:
  可循環(huán)讀取名稱為user的元素,其中Count是Form的系統(tǒng)屬性,用于計算同名元素的個數(shù),如果該元素不存在,則其值為零。如果沒有指明要讀取第幾個同名元素,則系統(tǒng)會把全部同名元素的值都讀取出來,并用“,”作間隔。
  例:Request.form("user")=abc,bcd,cde

   2、QueryString

   語法:Request.QueryString(參數(shù))[(索引)]

   除了用Form傳輸資料外,還可通過在超鏈接后接“?”的方式傳輸信息,如:,這時可通過Request.QueryString("user")讀取傳輸?shù)男畔;如果出現(xiàn)多個重名的參數(shù),如:,則第一次

  Resquest.QueryString("user")=abc,第二次

  Resquest.QueryString("user")=bcd,第三次

  Resquest.QueryString("user")=cde。

  3、ServerVariables

   語法:ServerVariables(參數(shù)名稱)

   我們知道Web/Browse的傳輸協(xié)議是http,http的報頭會有一些客戶端的信息,如

    客戶IP地址、瀏覽器的語言系統(tǒng)等。這時可通過Request.ServerVariables("***")獲取相關信息,如Request.ServerVariables("Accept_Language")可獲取客戶端瀏覽器 的語系。其他系統(tǒng)參數(shù)見下表:

    SERVER_NAME server的機器名稱或IP地址。

     SERVER_PORT server正在運行的端口號

     REQUEST_METHOD 發(fā)出request的方法(GET/POST/HEAD

     SCRIPT_NAME 程序被調用的路徑,如:cgi-bin/a.pl。

     REMOTE_HOST 發(fā)出request請求的遠端機器(client)的名稱。

     REMOTE_ADDR 發(fā)出request請求的遠端機器(client)的IP地址。

     REMOTE_IDENT 發(fā)出request的使用者名稱(如是撥號上網(wǎng),則為用戶ID),當NCSA IdentityCheck為enabled,而且client機器支持RFC 931時,該變量有效。

     CONTENT_TYPE 數(shù)據(jù)的MIME類型,如:“text/html”。

     HTTP_ACCEPT client可以接受的MIME類型列表。

     HTTP_USER_AGENT client發(fā)出request的瀏覽器類型。

     HTTP_REFERER 在讀取CGI程序之前,client所指的文本URL。

  4、Cookies

  在客戶端,Cookies記錄了客戶端瀏覽器很多的信息,我們可通過Request.Cookies("名稱")命令獲取它的值,也可通過Response.Cookies("名稱")="值"在客戶端記錄一些信息,以便控制訪問者。設置多重Cookies的方法為Response.Cookies("名稱")("名稱")="值"。

  5、Cache

  我們可以在瀏覽器上設置從Cache中抽取已經(jīng)訪問過的頁面的信息,同樣,在Asp程序中也可進行類似的設置。其中Response.Clear為清空客戶端的內存。Response.Buffer=True設置可從Cache中讀取資料(缺省時為False)。

  6、ClientCertificate

   ClientCertificate用于獲取客戶端瀏覽器的身份確認信息(符合X.509標準),但客戶端瀏覽器必須支持SSL3.0或PCT1協(xié)議。這里需做兩步工作,第一步:web server必須啟動用戶端認證選項;第二步:對客戶端瀏覽器進行相應設置,這樣,該方法才會生效,否則,傳回empty值。

  2、Response

   當要從服務器傳送資料到客戶端時,可通過下面的方法:

   1)Response.Write直接輸出信息,如Response.write ""。

   2)Response.Redirect引導客戶端到另一個url位置,如Response.Redirect "http://zyr.yeah.net",但這里有一個問題需要注意,就是該語句一定要放在標記前執(zhí)行,也就是說在服務器未向客戶端送出html文本報頭前就要被執(zhí)行,否則會出現(xiàn)傳輸錯誤信息。

  3)Response.ContentType控制輸出的文件類型,服務器送給客戶端的數(shù)據(jù)包類型可以是text/html文本,也可以是gif/jpeg圖形文件,所以每次傳輸前,我們都必須告知客戶端將要傳輸?shù)奈募愋,一般默認情況下為“Text/Html”類型。

  4)Response.Cookies 用于設置Cookies的值,語法為:Response.cookies(變量名稱)[(key) 屬性]=寫入的信息。(key的用法前面已作說明,這里不在敘述)cookies系統(tǒng)默認有五個屬性,包括Expires(時間)、Domain(域名)、Path(路徑)、Secure(安全性)、Haskeys(判斷cookies下是否還有其它cookies文本)。

   5)Response.Buffer用于確定是否把信息傳輸?shù)骄彌_區(qū)。因為有時候我們希望把部分中間信息送到緩沖區(qū),然后繼續(xù)工作。當所有處理工作都完成后,才把信息輸出到客戶端。但當在處理過程中Flush或End方法被調用,則緩沖區(qū)內容將被輸出。

  Response的其它屬性:

   Expires:設定網(wǎng)頁保留在客戶端瀏覽器的時間長度。

   ExpiresAbsolute:設定網(wǎng)頁保留在客戶端瀏覽器的日期與時間。

  Response的其它方法:

   AddHeader:設定HTML文件的HTTP報頭。

   AppendToLog:在Web Server記錄檔案末尾,添加字串。

   Clear:清除在緩沖區(qū)中的HTML輸出資料。

   End:停止處理asp檔案,并回傳當時狀態(tài)。

   Flush:立刻送出緩沖區(qū)的HTML資料。