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