熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP內建對象Request

2013-11-13 10:37:19  來源: .NET編程 

  從本篇開始作者從 ASP 內建對象著手為大家詳細剖析 ASP 的六個內建對象和各種組件的特性和方法

  在正式開始學習 ASP 的內建對象和組件之前先讓我們來認識一些基本概念這將對各位今後的學習大有幫助請看下表 :

Active Server 隨 Windows NT 交付的服務器方技術的集合這些 技術為組件應用程序管理數據庫訪問事務和消息 提供一致的服務器方組件腳本模型和一套集成的系 統服務   Active Server Pages (ASP) 在服務器上運行 ActiveX 腳本和 ActiveX 組件的服 務器方腳本環境開發人員可以將腳本和組件結合在 一起創建基於 Web 的應用程序 ActiveX 允許開發人員為 World Wide Web 創建交互式組件的 內涵豐富的Microsoft 技術術語允許用不同語言編寫的軟 件組件在網絡環境中一起工作的一組不依賴語言的 互操作技術ActiveX 的關鍵元素是組件對象模型 (COM) 和 分布組件對象模型 (DCOM)這些技術已得到開放組織的 許可已移植到許多平台上 ADO Active 數據對象為基於 Internet 以數據為中心的 應用程序而優化的一組基於對象的數據訪問接口ADO 基於已發布的規范並且隨帶在Microsoft Internet Information Server 和 Microsoft Visual InterDev 中 DSN 數據源名稱開放式數據庫接口 (ODBC)用於引 用訪問數據所需的驅動程序或其他信息的邏輯名稱Internet信 息服務器用於連接到 ODBC 數據源(如 SQL Server 數據庫)的 名稱 event: 事件 由用戶或 ActiveX 控件產生的程序響應的任何 操作一般事件包括按鍵盤鍵通過使用鼠標單擊選 擇按鈕和其他鼠標操作編程人員編寫響應這些操作 的代碼   object: 對象 在面向對象編程中由當作完整實體的操作 和數據組成的變量對象是基於特定模型的在對象 中客戶使用對象的服務通過由一組方法或相關函數 的接口訪問對象的數據然後客戶端可以調用這些方 法執行某中操作 ODBC 開放式數據庫接口允許應用程序從各種跨 平台數據訪問的已有數據源標准規格中訪問數據的 應用程序編程接口   SQL 結構化查詢語言 Structured Query Language定義和訪 問關系型數據庫的國際標准  

  
     什麼是對象?它可不是指你戀愛的男伴或女伴在面向對象編程中對象就是指由當作完整實體的操作和數據組成的變量對象是基於特定模型的在對象中客戶使用對象的服務通過由一組方法或相關函數的接口訪問對象的數據然後客戶端可以調用這些方法執行某中操作ActiveX 組件是建立 Web 應用程序的關鍵組件提供了在腳本中執行任務的對象ActiveX 組件是一個文件該文件包含執行某項或一組任務的代碼由於組件可以執行公用任務這樣程序員們就不必自己去創建執行這些任務的代碼可以利用組件作為腳本和基於 Web 應用程序的基本構造塊只要知道如何訪問組件提供的對象即使是位編寫腳本的新手也可以在不了解組件運作方式的情況下編寫腳本總之組件使您不用學習編程就能夠編寫強大的腳本組件是包含在動態鏈接庫 dll 或可執行文件 exe 中的可執行代碼組件可以提供一個或多個對象以及對象的方法和屬性要使用組件提供的對象請創建對象的實例並將這個新的實例分配變量名使用 ASP 的 ServerCreateObject 方法可以創建對象的實例使用腳本語言的變量分配指令可以為對象實例命名如下例

  Set db=ServerCreateObject("ADODBConnection")

  這裡的變量 db 就是 ASP 程序創建的訪問數據庫的對象實例

  Active Server Pages 提供了可在腳本中使用的內建對象這些對象使用戶更容易收集通過浏覽器請求發送的信息響應浏覽器以及存儲用戶信息 從而使對象開發者擺脫了很多煩瑣的工作目前的 ASP 版本總共提供了六個內建對象下面讓我們將通過實例分別來進行學習

  一Request 對象

  可以使用 Request 對象訪問任何基於 HTTP 請求傳遞的所有信息包括從 HTML 表格用 POST 方法或 GET 方法傳遞的參數cookie 和用戶認證Request 對象使您能夠訪問客戶端發送給服務器的二進制數據

  Request 的語法 :

  Request[ 集合 | 屬性 | 方法 ]( 變量 )

  在這裡作者將挑選一些常用的對象語法進行分析

  Form

  Form 集合通過使用 POST 方法的表格檢索郵送到 HTTP 請求正文中的表格元素的值

  語法

  RequestForm(element)[(index)|Count]

  參數

  element 指定集合要檢索的表格元素的名稱

  index 可選參數使用該參數可以訪問某參數中多個值中的一個它可以是 到 RequestForm(parameter)Count 之間的任意整數

  Count 集合中元素的個數
Form 集合按請求正文中參數的名稱來索引RequestForm(element) 的值是請求正文中所有 element 值的數組通過調用 RequestForm(element)Count 來確定參數中值的個數如果參數未關聯多個值則計數為 如果找不到參數計數為 要引用有多個值的表格元素中的單個值必須指定 index 值index 參數可以是從 到 RequestForm(element)Count 中的任意數字如果引用多個表格參數中的一個而未指定 index 值返回的數據將是以逗號分隔的字符串

  可以使用重述符來顯示表格請求中的所有數據值例如用戶通過指定幾個值填寫表格見下圖

  ASP內建對象Request

  對於 hobby 參數您可以使用下面的腳本檢索這些值  

  < html>   
< head>< title>< /title>< /head>   < body>   
< p> 請填寫你的愛好 < /p>   
< form method="POST" action="formasp">   
< p>< input type="text" name="hobby" size="">< br>   
< input type="checkbox" name="hobby" value=" 足球 "> 足球 < input type="checkbox"   name="hobby" value=" 乒乓球 "> 乒乓球 < /p>   
< p>< input type="submit" value=" 發送 " name="B">< input type="reset" value=" 重填 "   name="B">< /p>   
< /form>   
< %   For Each i In RequestForm("hobby")   ResponseWrite i & "< BR>"   Next   %>   
< /body>< /html>

  將以上代碼剪貼到記事簿中(注意將“< ”後面的空格去掉)保存為 formasp 文件並運行request 對象可以根據你在 form 中填入或選擇元素內容的不同將元素逐個顯示出來

  當然使用 ForNext 循環也可以生成同樣的輸出如下所示 :

  < %
For i = To RequestForm("hobby")Count<
ResponseWrite RequestForm("hobby")(i) & "< BR>"Next<
%>

QueryString
QueryString 集合檢索 HTTP 查詢字符串中變量的值 HTTP 查詢字符串由問號 (?) 後的值指定
< A HREF= "exampleasp?string=this is a sample">string sample< /A>

  生成值為 "this is a sample" 的變量名字符串通過發送表格或由用戶在其浏覽器的地址框中鍵入查詢也可以生成查詢字符串

  語法

  RequestQueryString(variable)[(index)|Count]

  QueryString 集合可以讓您以名稱檢索 QUERY_STRING 變量RequestQueryString( 參數 ) 的值是出現在 QUERY_STRING 中所有參數的值的數組通過調用RequestQueryString(parameter)Count 可以確定參數有多少個值

  我們也可以使用 QueryString 來達到與前一個范例相同的功能只需要將 requestform 部分替換如下

  < %
For Each i In Requestquerystring("hobby")
ResponseWrite i & "< BR>"
Next
%>

     Cookies

  什麼是 Cookie?Cookie 其實是一個標簽當你訪問一個需要唯一標識你的站址的 WEB 站點時它會在你的硬盤上留下一個標記下一次你訪問同一個站點時站點的頁面會查找這個標記每個 WEB 站點都有自己的標記標記的內容可以隨時讀取但只能由該站點的頁面完成每個站點的 Cookie 與其他所有站點的 Cookie 存在同一文件夾中的不同文件內(你可以在 Windows 的目錄下的 Cookie 文件夾中找到它們)一個 Cookie 就是一個唯一標識客戶的標記Cookie 可以包含在一個對話期或幾個對話期之間某個 WEB 站點的所有頁面共享的信息使用 Cookie 還可以在頁面之間交換信息Request 提供的 Cookies 集合允許用戶檢索在 HTTP 請求中發送的 cookie 的值這項功能經常被使用在要求認證客戶密碼以及電子公告板WEB 聊天室等 ASP 程序中

  語法

  RequestCookies(cookie)[(key)|attribute]

  參數

  cookie 指定要檢索其值的 cookie

  key 可選參數用於從 cookie 字典中檢索子關鍵字的值

  attribe 指定 cookie 自身的有關信息HasKeys 只讀指定 cookie 是否包含關鍵字

  可以通過包含一個 key 值來訪問 cookie 字典的子關鍵字如果訪問 cookie 字典時未指定 key則所有關鍵字都會作為單個查詢字符串返回例如如果 MyCookie 有兩個關鍵字 First 和 Second而在調用 RequestCookies 時並未指定其中任何一個關鍵字那麼將返回下列字符串

  First=firstkeyvalue&Second=secondkeyvalue

  如果客戶端浏覽器發送了兩個同名的 cookie那麼 RequestCookie 將返回其中路徑結構較深的一個例如如果有兩個同名的的 cookie但其中一個的路徑屬性為 /www/ 而另一個為 /www/home/客戶端浏覽器同時將兩個 cookie 都發送到 /www/home/ 目錄中那麼 RequestCookie 將只返回第二個 cookie

  要確定某個 cookie 是不是 cookie 字典(cookie 有否有關鍵字)可使用下列腳本

  < %= RequestCookies("myCookie")HasKeys %>

  如果 myCookie 是一個 cookie 字典則前面的賦值為 TRUE否則為 FALSE下面我們來看看一個 cookie 的應用實例

  < %
nickname=requestform("nick")responsecookies("nick")=nickname
用 response 對象將用戶名寫入 Cookie 之中
responsewrite " 歡迎 "&requestcookies("nick")&" 光臨小站!"
%>
< html>< head>< meta httpequiv="ContentType" content="text/html; charset=gb">
< title>cookie< /title>
< meta name="GENERATOR" content="Microsoft FrontPage ">< /head>
< body>
< form method="POST" action="cookieasp">
< p>< input type="text" name="nick" size="">
< input type="submit" value=" 發送 " name="B">< input type="reset" value=" 重填 " name="B">< /p>< /form>
< /body>< /html>

  這其實是一個在基於 WEB 的 BBS 或 CHAT 的 ASP 程序中常用的手法它將用戶在起始頁面上填入的姓名保存在 cookie 中這樣後面的程序就可以很容易地調用該用戶的 nick 了

  ServerVariables

  大家都知道在浏覽器中浏覽網頁的時候使用的傳輸協議是 HTTP在 HTTP 的標題文件中會記錄一些客戶端的信息如 : 客戶的 IP 地址等等有時服務器端需要根據不同的客戶端信息做出不同的反映這時候就需要用 ServerVariables 集合獲取所需信息

  語法

  RequestServerVariables ( 服務器環境變量 )

  由於服務器環境變量較多作者僅將一些常用的變量在下表中列出 :

ALL_HTTP 客戶端發送的所有 HTTP 標題文件 CONTENT_LENGTH 客戶端發出內容的長度 CONTENT_TYPE 內容的數據類型“text/html”同附加信息 的查詢一起使用如 HTTP 查詢 GETPOST 和 PUT LOCAL_ADDR 返回接受請求的服務器地址如果在綁定多 個 IP 地址的多宿主機器上查找請求所使用的地址 時這條變量非常重要 LOGON_USER 用戶登錄 Windows NT 的帳號 QUERY_STRING 查詢 HTTP 請求中問號(?)後的信息 REMOTE_ADDR 發出請求的遠程主機 (client) 的 IP 地址 REMOTE_HOST 發出請求的主機 (client) 名稱如果服務器無此 信息它將設置為空的 MOTE_ADDR 變量 REQUEST_METHOD 該方法用於提出請求相當於用於 HTTP 的 GETHEADPOST等 等 SERVER_NAME 出現在自引用 URL 中的服務器主機名DNS 化名 或 IP 地址 SERVER_PORT 發送請求的端口號

  我們可以使用以下腳本打印出所有的服務器環境變量

  < TABLE>
< TR>< TD>< B>Server Variable< /B>< /TD>< TD>< B>Value< /B>< /TD>< /TR>< % For Each name In RequestServerVariables %>
< TR>< TD> < %= name %> < /TD>< TD> < %= RequestServerVariables(name) %> < /TD>< /TR>< /TABLE>
< % Next %>

  今天我們詳細學習了 ASP 內建對象中的 request 對象這也是 ASP 程序中使用最頻繁的對象希望大家在課後多多實踐


From:http://tw.wingwit.com/Article/program/net/201311/14143.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.