[點(diǎn)晴永久免費(fèi)OA]ASP基礎(chǔ)入門(mén)第六篇(ASP內(nèi)建對(duì)象Request)
在正式開(kāi)始學(xué)習(xí) ASP 的內(nèi)建對(duì)象和組件之前,先讓我們來(lái)認(rèn)識(shí)一些基本概念,這將對(duì)各位今后的學(xué)習(xí)大有幫助。請(qǐng)看下表 : Active Server 隨 Windows NT 交付的服務(wù)器方技術(shù)的集合。這些 技術(shù)為組件應(yīng)用程序管理、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)、事務(wù)和消息 提供一致的服務(wù)器方組件、腳本模型和一套集成的系 統(tǒng)服務(wù)。 Active Server Pages (ASP) 在服務(wù)器上運(yùn)行 ActiveX 腳本和 ActiveX 組件的服 務(wù)器方腳本環(huán)境。開(kāi)發(fā)人員可以將腳本和組件結(jié)合在 一起創(chuàng)建基于 Web 的應(yīng)用程序。 ActiveX 允許開(kāi)發(fā)人員為 World Wide Web 創(chuàng)建交互式組件的 內(nèi)涵豐富的Microsoft 技術(shù)術(shù)語(yǔ)。允許用不同語(yǔ)言編寫(xiě)的軟 件組件在網(wǎng)絡(luò)環(huán)境中一起工作的一組不依賴(lài)語(yǔ)言的 互操作技術(shù)。ActiveX 的關(guān)鍵元素是組件對(duì)象模型 (COM) 和 分布組件對(duì)象模型 (DCOM)。這些技術(shù)已得到開(kāi)放組織的 許可,已移植到許多平臺(tái)上。 ADO Active 數(shù)據(jù)對(duì)象。為基于 Internet 以數(shù)據(jù)為中心的 應(yīng)用程序而優(yōu)化的一組基于對(duì)象的數(shù)據(jù)訪(fǎng)問(wèn)接口。ADO 基于已發(fā)布的規(guī)范并且隨帶在Microsoft Internet Information Server 和 Microsoft Visual InterDev 中。 DSN 數(shù)據(jù)源名稱(chēng)。開(kāi)放式數(shù)據(jù)庫(kù)接口 (ODBC)用于引 用訪(fǎng)問(wèn)數(shù)據(jù)所需的驅(qū)動(dòng)程序或其他信息的邏輯名稱(chēng)。Internet信 息服務(wù)器用于連接到 ODBC 數(shù)據(jù)源(如 SQL Server 數(shù)據(jù)庫(kù))的 名稱(chēng)。 event: 事件 由用戶(hù)或 ActiveX 控件產(chǎn)生的程序響應(yīng)的任何 操作。一般事件包括按鍵盤(pán)鍵、通過(guò)使用鼠標(biāo)單擊選 擇按鈕和其他鼠標(biāo)操作。編程人員編寫(xiě)響應(yīng)這些操作 的代碼。 object: 對(duì)象 在面向?qū)ο缶幊讨校僧?dāng)作完整實(shí)體的操作 和數(shù)據(jù)組成的變量。對(duì)象是基于特定模型的,在對(duì)象 中客戶(hù)使用對(duì)象的服務(wù)通過(guò)由一組方法或相關(guān)函數(shù) 的接口訪(fǎng)問(wèn)對(duì)象的數(shù)據(jù)。然后客戶(hù)端可以調(diào)用這些方 法執(zhí)行某中操作。 ODBC 開(kāi)放式數(shù)據(jù)庫(kù)接口。允許應(yīng)用程序從各種跨 平臺(tái)數(shù)據(jù)訪(fǎng)問(wèn)的已有數(shù)據(jù)源標(biāo)準(zhǔn)規(guī)格中訪(fǎng)問(wèn)數(shù)據(jù)的 應(yīng)用程序編程接口。 SQL 結(jié)構(gòu)化查詢(xún)語(yǔ)言 Structured Query Language。定義和訪(fǎng) 問(wèn)關(guān)系型數(shù)據(jù)庫(kù)的國(guó)際標(biāo)準(zhǔn)。 什么是對(duì)象? 它可不是指你戀愛(ài)的男伴或女伴。在面向?qū)ο缶幊讨?,?duì)象就是指由當(dāng)作完整實(shí)體的操作和數(shù)據(jù)組成的變量。對(duì)象是基于特定模型的,在對(duì)象中客戶(hù)使用對(duì)象的服務(wù)通過(guò)由一組方法或相關(guān)函數(shù)的接口訪(fǎng)問(wèn)對(duì)象的數(shù)據(jù),然后客戶(hù)端可以調(diào)用這些方法執(zhí)行某中操作。 ActiveX 組件是建立 Web 應(yīng)用程序的關(guān)鍵,組件提供了在腳本中執(zhí)行任務(wù)的對(duì)象。ActiveX 組件是一個(gè)文件,該文件包含執(zhí)行某項(xiàng)或一組任務(wù)的代碼,由于組件可以執(zhí)行公用任務(wù),這樣程序員們就不必自己去創(chuàng)建執(zhí)行這些任務(wù)的代碼??梢岳媒M件作為腳本和基于 Web 應(yīng)用程序的基本構(gòu)造塊。只要知道如何訪(fǎng)問(wèn)組件提供的對(duì)象,即使是位編寫(xiě)腳本的新手,也可以在不了解組件運(yùn)作方式的情況下編寫(xiě)腳本。 總之,組件使您不用學(xué)習(xí)編程就能夠編寫(xiě)強(qiáng)大的腳本。組件是包含在動(dòng)態(tài)鏈接庫(kù) .dll 或可執(zhí)行文件 .exe 中的可執(zhí)行代碼。組件可以提供一個(gè)或多個(gè)對(duì)象以及對(duì)象的方法和屬性。要使用組件提供的對(duì)象,請(qǐng)創(chuàng)建對(duì)象的實(shí)例并將這個(gè)新的實(shí)例分配變量名。使用 ASP 的 Server.createObject 方法可以創(chuàng)建對(duì)象的實(shí)例,使用腳本語(yǔ)言的變量分配指令可以為對(duì)象實(shí)例命名。如下例: Active Server Pages 提供了可在腳本中使用的內(nèi)建對(duì)象。這些對(duì)象使用戶(hù)更容易收集通過(guò)瀏覽器請(qǐng)求發(fā)送的信息、響應(yīng)瀏覽器以及存儲(chǔ)用戶(hù)信息 , 從而使對(duì)象開(kāi)發(fā)者擺脫了很多煩瑣的工作。目前的 ASP 版本總共提供了六個(gè)內(nèi)建對(duì)象,下面讓我們將通過(guò)實(shí)例分別來(lái)進(jìn)行學(xué)習(xí)。 一、Request 對(duì)象 可以使用 Request 對(duì)象訪(fǎng)問(wèn)任何基于 HTTP 請(qǐng)求傳遞的所有信息,包括從 HTML 表格用 POST 方法或 GET 方法傳遞的參數(shù)、cookie 和用戶(hù)認(rèn)證。Request 對(duì)象使您能夠訪(fǎng)問(wèn)客戶(hù)端發(fā)送給服務(wù)器的二進(jìn)制數(shù)據(jù)。 Request 的語(yǔ)法 : Request[. 集合 | 屬性 | 方法 ]( 變量 ) 在這里作者將挑選一些常用的對(duì)象語(yǔ)法進(jìn)行分析 Form 集合通過(guò)使用 POST 方法的表格檢索郵送到 HTTP 請(qǐng)求正文中的表格元素的值。 語(yǔ)法 Request.Form(element)[(index)|.Count]
對(duì)于 hobby 參數(shù),您可以使用下面的腳本檢索這些值。 <html> <head> <title></title> </head> <body> <p> 請(qǐng)?zhí)顚?xiě)你的愛(ài)好 </p> <form method="POST" action="form.asp"> <p><input type="text" name="hobby" size="20"><br> <input type="checkbox" name="hobby" value=" 足球"> 足球 <input type="checkbox" name="hobby" value=" 乒乓球"> 乒乓球 </p> <p><input type="submit" value=" 發(fā)送 " name="B1"> <input type="reset" value=" 重填 " name="B2"> </form> <% For Each i In Request.Form("hobby") Response.Write i & "<BR>" Next % > </body> </html> 將以上代碼剪貼到記事簿中,保存為 form.asp 文件并運(yùn)行,request 對(duì)象可以根據(jù)你在 form 中填入或選擇元素內(nèi)容的不同將元素逐個(gè)顯示出來(lái)。 當(dāng)然使用 For...Next 循環(huán)也可以生成同樣的輸出,如下所示 : For i = 1 To Request.Form("hobby").Count Response.Write Request.Form("hobby")(i) & "<BR>" Next %> 2、QueryString Request.QueryString(variable)[(index)|.Count] For Each i In Request.querystring("hobby") Response.Write i & "<BR>" Next %> 3、Cookies 如果客戶(hù)端瀏覽器發(fā)送了兩個(gè)同名的 cookie,那么 Request.Cookie 將返回其中路徑結(jié)構(gòu)較深的一個(gè)。例如,如果有兩個(gè)同名的的 cookie,但其中一個(gè)的路徑屬性為 /www/ 而另一個(gè)為 /www/home/,客戶(hù)端瀏覽器同時(shí)將兩個(gè) cookie 都發(fā)送到 /www/home/ 目錄中,那么 Request.Cookie 將只返回第二個(gè) cookie。 要確定某個(gè) cookie 是不是 cookie 字典(cookie 有否有關(guān)鍵字),可使用下列腳本。 如果 myCookie 是一個(gè) cookie 字典,則前面的賦值為 TRUE。否則,為 FALSE。下面我們來(lái)看看一個(gè) cookie 的應(yīng)用實(shí)例: <% nickname=request.form("nick") response.cookies("nick")=nickname ' 用 response 對(duì)象將用戶(hù)名寫(xiě)入 Cookie 之中 response.write " 歡迎 "&request.cookies("nick")&" 光臨小站!" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>cookie</title> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> </head> <body> <form method="POST" action="cookie.asp"> <p> <input type="text" name="nick" size="20"> <input type="submit" value=" 發(fā)送 " name="B1"> <input type="reset" value=" 重填 " name="B2"> </p> </form> </body> </html> 這其實(shí)是一個(gè)在基于 WEB 的 BBS 或 CHAT 的 ASP 程序中常用的手法,它將用戶(hù)在起始頁(yè)面上填入的姓名保存在 cookie 中,這樣后面的程序就可以很容易地調(diào)用該用戶(hù)的 nick 了。 4、ServerVariables 大家都知道在瀏覽器中瀏覽網(wǎng)頁(yè)的時(shí)候使用的傳輸協(xié)議是 HTTP,在 HTTP 的標(biāo)題文件中會(huì)記錄一些客戶(hù)端的信息,如 : 客戶(hù)的 IP 地址等等,有時(shí)服務(wù)器端需要根據(jù)不同的客戶(hù)端信息做出不同的反映,這時(shí)候就需要用 ServerVariables 集合獲取所需信息。 由于服務(wù)器環(huán)境變量較多,作者僅將一些常用的變量在下表中列出 : ALL_HTTP: 客戶(hù)端發(fā)送的所有 HTTP 標(biāo)題文件。 CONTENT_LENGTH: 客戶(hù)端發(fā)出內(nèi)容的長(zhǎng)度。 CONTENT_TYPE: 內(nèi)容的數(shù)據(jù)類(lèi)型。如:“text/html”。同附加信息 的查詢(xún)一起使用,如 HTTP 查詢(xún) GET、POST 和 PUT。 LOCAL_ADDR: 返回接受請(qǐng)求的服務(wù)器地址。如果在綁定多 個(gè) IP 地址的多宿主機(jī)器上查找請(qǐng)求所使用的地址 時(shí),這條變量非常重要。 LOGON_USER: 用戶(hù)登錄 Windows NT 的帳號(hào)。 QUERY_STRING:查詢(xún) HTTP 請(qǐng)求中問(wèn)號(hào)(?)后的信息。 REMOTE_ADDR:發(fā)出請(qǐng)求的遠(yuǎn)程主機(jī) (client) 的 IP 地址。 REMOTE_HOST:發(fā)出請(qǐng)求的主機(jī) (client) 名稱(chēng)。如果服務(wù)器無(wú)此 信息,它將設(shè)置為空的 MOTE_ADDR 變量。 REQUEST_METHOD:該方法用于提出請(qǐng)求。相當(dāng)于用于 HTTP 的 GET、HEAD、POST等 等。 SERVER_NAME:出現(xiàn)在自引用 URL 中的服務(wù)器主機(jī)名、DNS 化名 或 IP 地址。 SERVER_PORT:發(fā)送請(qǐng)求的端口號(hào)。 我們可以使用以下腳本打印出所有的服務(wù)器環(huán)境變量。 <TABLE> <TR> <TD><B>Server Variable</B>〈/td〉 <TD><B>Value</B>〈/td〉 </tr> <% For Each name In Request.ServerVariables %> <TR> <TD> <%= name %> 〈/td〉 <TD><%= Request.ServerVariables(name) %> 〈/td〉 〈/tr〉 </TABLE> <% Next %> 今天我們?cè)敿?xì)學(xué)習(xí)了ASP 內(nèi)建對(duì)象中的request 對(duì)象,這也是ASP 程序中使用最頻繁的對(duì)象,希望大家在課后多多實(shí)踐。 該文章在 2022/6/21 14:36:44 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |