




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 ASP 3.0高級編程(一)ASP 3.0高級編程(一) ASP 3.0高級編程(一) ASP 3.0高級編程(一)ASP 3.0請求和響應的處理這兩個對象是ASP所提供的內置對象中最常用的兩個。在瀏覽器(或其他用戶代理)和Web服務器之間, 請求與響應中發(fā)生的信息交流可以通過ASP中的兩個內置對象來進行訪問和管理, 這兩個對象稱為Request和Response對象。在ASP頁中所要進行的工作幾乎都要訪問這兩個對象, 使用這兩個對象的方式將影響頁面的效率及可靠性。當然, 它們的主要用途是訪問用戶發(fā)回到服務器的值, 即從HTML頁的段獲得或附在URL后面作為查詢字符串, 并創(chuàng)建合適的輸出返回
2、給用戶, 且它們可以共享很多相同的因素。例如兩個對象都可以使用存儲在客戶端計算機上的cookie。因此, 我們把內容分成兩個獨立的部分(每個對象一部分), 并且首先從客戶端與服務器這間的信息交流入手, 然后再研究每一個對象。研究的內容是: 客戶端與服務器如何交流以傳遞Web或其他資源。 Request和Response對象的細節(jié), 以及它們之間的共同點。 如何通過一個窗體和查詢字符串訪問相應的值。 如何讀入或創(chuàng)建cookie并存放在客戶端的計算機上。 服務器的變量是什么?如何訪問和修改HTTP報頭。 說明其他相關條目的變化, 如客戶的證書使用。客戶端和服務器的交流為節(jié)省篇幅, 后面的內容中使用
3、“瀏覽器”(browser)一詞。但需要記住的是, 能夠訪問Web頁面的應用程序絕不僅只有瀏覽器, 有許多特殊的應用程序從站點上下載網(wǎng)頁, 如為那些視力有缺陷用戶設計的特殊的客戶端程序或者是用通常的瀏覽器有其他困難的人。最顯而易見的例子是搜索引擎用來訪問Web上的站點的robot。全面考慮這些因素, 包括普通的Web瀏覽器, 準確的詞匯應該是用戶代理(user agent)。頁面請求的對話當一個瀏覽器向Web站點提出頁面請求時, 顯然必須告訴服務器, 其請求的是哪一個頁面。首先要做的是通過域名與服務器建立連接, 然后提供所請求的頁面的全路徑和名稱。為什么要全路徑和名稱?Web是一個無國界的環(huán)境
4、, 所以必須創(chuàng)造一個會話標識每個客戶(將在以后介紹ASP如p” target=_blank>/Store>當把鼠標指向一個頁面的鏈接時, 可在瀏覽器的狀態(tài)欄中看到。當前頁面的路徑和當前域名或基域名或基路徑已經(jīng)與請求的頁面名結合在一起了。1、 客戶請求的細節(jié)所請求頁面的全路徑和名稱的組合是瀏覽器請求頁面時發(fā)住服務器的唯一住處瀏覽器的請求也能包含瀏覽器宿主的住處和客戶端運行的操作系統(tǒng)。實際的信息內容將隨著瀏覽器的不同而有相應的變化, 只有很少一部分能夠由其他的應用程序如搜索引擎robot提供。為了更清楚地了解該信息, 下面是從IE 5.0發(fā)出的一個對
5、頁/Store/Download.asp的請求信息:Accept: application/msword, application/vnd.ms-execl, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-comet, */*Accept-Language: en-usEncoding: gzip, deflateReferer: /main_menu.aspCookie: V
6、isitCount=2&LASTDATE=6%2F4%2F99+10%3A10%3A13+AMUser-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows98)Connection: Keep-Alive從中可以看出, 這些信息中有關于用戶代理和用戶連接的細節(jié)(如缺省的語言), 也有能夠接受的文件或應用程序的類型列表, 這些都是MIME類型的, 在后面將會見到更多。瀏覽器能夠接受幾種圖像文件及多種Microsoft Office文件類型?!皹藴省钡奈募愋? 如tesx/html和text/text沒有列在其中。文件列表中*/*表示可向瀏
7、覽器發(fā)回任何類型的文件, 由瀏覽器解釋或通過一個插件(plug-in)應用程序來進行解釋。cookie: 條目包含的cookie存放在客戶端的計算機上, 并僅對該域有效。假如請求是點擊鏈接的結果, 而不是在瀏覽器的地址欄直接輸入URL, 則Referer:條目被顯示出來, 它包含了鏈接頁面的完整的URL。Host:條目包含客戶計算機的IP地址或名稱。然而, 這還不足以準確辨別客戶機。因為它們通過ISP連接時, IP地址是動態(tài)分配的, 或者通過一個代理服務器連接時, IP地址是代理機的而不是實際的客戶機的。2、 服務器響應的細節(jié)信息為響應上述的請求, 并對匿名的瀏覽器(即用戶不必提供用戶名和訪問
8、口令)提供請求的頁面, 下面的內容是從服務器發(fā)往客戶機的:Server: Microsoft-IIS/5.0Connection: Keep-AliveContent-Type: text/htmlAccept-Ranges: bytesContent-Length: 2946Cookie: VisitCount=3&LASTDATE=7%2F8%2F99+10%3A27%3A16+AM rest of page 可以看出服務器向客戶端說明自己所用的軟件及版本, 第一行表明所使用的是HTTP協(xié)議, 及返回碼的狀態(tài)。信息“200 OK”表示請求被接受并得到了滿足。后面的信息是被返回的頁面
9、的細節(jié), 包括MIME類型(Content-Length:)、大?。ㄗ止?jié))、最近更改時間, 和返回客戶端存儲的cookie。響應中的其他信息是頁面內容的信息流。在某些情況下, 服務器響應一個請求后, 不能返回一個頁面, 也許因為頁面不存在, 或都客戶沒有相應的權限來訪問它。我們將在后面討論安全問題?,F(xiàn)在, 對于請求頁面不存在的情況(例如用戶在瀏覽器的地址欄輸入了錯誤的URL), 返回的信息開頭為:Server: Microsoft-IIS/5.0這里, 狀態(tài)碼和信息表明客戶請求的頁面無法找到。瀏覽器可使用這個信息向用戶顯示相應的信息(這種情況在IE 5.0中不顯示服務器的響應信息, 而顯示相應
10、“幫助性”的錯誤提示頁面), 也可顯示服務器創(chuàng)建的缺省頁面(依賴服務器的設置)。Request和Response對象從ASP中能夠應用客戶請求和服務器響應的細節(jié)是通過ASP內置的Request和Response對象來實現(xiàn)的。 Request對象:為腳本提供了當客戶端請求一個頁面或者傳遞一個窗體時, 客戶端提供的全部信息。這包括能指明瀏覽器和用戶的HTTP變量, 在這個域名下存放在瀏覽器中的cookie, 任何作為查詢字符串而附于URL后面的字符串或頁面的段中的HTML控件的值。也提供使用Secure Socket Layer(SSL)或其他加密通信協(xié)議的授權訪問, 及有助于對連接進行管理的屬性
11、。 Response對象:用來訪問服務器端所創(chuàng)建的并發(fā)回到客戶端的響應信息。為腳本提供HTTP變量, 指明服務器和服務器的功能和關于發(fā)回瀏覽器的內容的信息, 以及任何將為這個域而存放在瀏覽器里新的cookie。它也提供了一系列的方法用來創(chuàng)建輸出, 例如無處不在的Response.Write方法。1、 Request對象成員的概述a) Request對象的集合Request對象提供了5個集合, 可以用來訪問客戶端對Web服務器請求的各類信息, 這些集合如下表:Request對象的集合及說明集合名稱說明ClientCertificate當客戶端訪問一個頁面或其他資源時, 用來向服務器表明身份的客戶
12、證書的所有字段或條目的數(shù)值集合, 每個成員均是只讀Cookies根據(jù)用戶的請求, 用戶系統(tǒng)發(fā)出的所有cookie的值的集合, 這些cookie僅對相應的域有效, 每個成員均為只讀FormMETHOD的屬性值為POST時, 所有作為請求提交的段中的HTML控件單元的值的集合, 每個成員均為只讀QueryString依附于用戶請求的URL后面的名稱/數(shù)值對或者作為請求提交的且METHOD屬性為GET(或者省略其屬性)的, 或中所有HTML控件單元的值, 每個成員均為只讀ServerVariables隨同客戶端請求發(fā)出的HTTP報頭值, 以及Web服務器的幾種環(huán)境變量的值的集合, 每個成員均為只讀b
13、) Request對象的屬性Request對象唯一的屬性及說明如下表所示, 它提供用戶請求的字節(jié)數(shù)量的信息, 它很少用于ASP頁, 我們通常關注指定值而不是整個請求字符串。屬性說明TotlBytes只讀, 返回由客戶端發(fā)出的請求的整個字節(jié)數(shù)量c) Request對象的方法Request對象唯一的方法及說明如下表所示, 它允許訪問從一個段中傳遞給服務器的用戶請求部分的完整內容。Request對象的方法及說明方法說明BinaryRead(count)當數(shù)據(jù)作為POST請求的一部分發(fā)往服務器時, 從客戶請求中獲得count字節(jié)的數(shù)據(jù), 返回一個Variant數(shù)組(或者SafeArray)。如果ASP
14、代碼已經(jīng)引用了Request.Form集合, 這個方法就不能用。同時, 如果用了BinaryRead方法, 就不能訪問Request.Form集合2、 Response對象成員概述a) Response對象的集合Response對象只有一個集合, 如下表所示, 該集合設置希望放置在客戶系統(tǒng)上的cookie的值, 它直接等同于Request.Cookies集合。Response對象的集合及說明集合名稱說明Cookies在當前響應中, 發(fā)回客戶端的所有cookie的值, 這個集合為只寫b) Response對象的屬性Response對象也提供一系列的屬性, 可以讀取(多數(shù)情況下)和修改, 使響應能
15、夠適應請求。這些由服務器設置, 我們不需要設置它們。需要注意的是, 當設置某些屬性時, 使用的語法可能與通常所使用的有一定的差異。Response對象的屬性及說明屬性說明Buuffer=True|False讀/寫, 布爾型, 表明由一個ASP頁所創(chuàng)建的輸出是否一直存放在IIS緩沖區(qū), 直到當前頁面的所有服務器腳本處理完畢或Flush、End方法被調用。在任何輸出(包括HTTP報送信息)送住IIS之前這個屬性必須設置。因此在.asp文件中, 這個設置應該在語句后面的第一行。ASP 3.0缺省設置緩沖為開(True), 而在早期版本中缺省為關(False)CacheControl”setting”
16、讀/寫, 字符型, 設置這個屬性為“Public”允許代理服務器緩存頁面, 如為“Private”則禁止代理服務器緩存的發(fā)生Charset=”value”讀/寫, 字符型, 在由服務器為每個響應創(chuàng)建的HTTP Content-Type報頭中附上所用的字符集名稱(例如:ISO-LATIN-7)Content Type=”MIME-type”讀/寫, 字符型, 指明響應的HTTP內容類型, 標準的MIME類型(例如“text/xml”或者“Image/gif”)。假如缺省, 表示使用MIME類型“text/html”, 內容類型告訴瀏覽器所期望內容的類型Expires minutes讀/寫, 數(shù)值
17、型, 指明頁面有效的以分鐘計算的時間長度, 假如用戶請求其有效期滿之前的相同頁面, 將直接讀取顯示緩沖中的內容, 這個有效期間過后, 頁面將不再保留在私有(用戶)或公用(代理服務器)緩沖中Expires Absolute #date time#讀/寫, 日期/時間型, 指明當一個頁面過期和不再有效時的絕對日期和時間IsClientConnected只讀, 布爾型, 返回客戶是否仍然連接和下載頁面的狀態(tài)標志。在當前的頁面已執(zhí)行完畢之前, 假如一個客戶轉移到別一個頁面, 這個標志可用來中止處理(使用Response.End方法)PICS(“PICS-Label-string”)只寫, 字符型, 創(chuàng)
18、建一個PICS報頭定義頁面內容中的詞匯等級, 如暴力、性、不良語言等Status=”Code message”讀/寫, 字符型, 指明發(fā)回客戶的響應的HTTP報頭中表明錯誤或頁面處理是否成功的狀態(tài)值和信息。例如“200 OK”和“404 Not Found”c) Response對象的方法Response對象提供一系列的方法, 如下表所示, 允許直接處理為返回給客戶端而創(chuàng)建的頁面內容。Response對象的方法及說明方法說明AddHeader(“name”,”content”)通過使用name和Content值, 創(chuàng)建一個定制的HTTP報頭, 并增加到響應之中。不能替換現(xiàn)有的相同名稱的報頭。一旦已經(jīng)增加了一個報頭就不能被刪除。這個方法必須在任何頁面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無堿玻璃纖維帶企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 縫衣針、織補針或刺繡針企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 代育苗合同樣本
- 出售山合同樣本
- 醫(yī)院采購清單合同樣本
- 人教版小學數(shù)學五年上冊復習計劃復習教案
- 裝修項目進度管理合同
- 農(nóng)村別墅裝修包工合同樣本
- 加盟密室逃脫合同標準文本
- 《猜猜我是誰》(教案)人美版(2012)美術四年級上冊
- 2025年吉林工程職業(yè)學院單招職業(yè)技能考試題庫附答案
- 日語專業(yè)的畢業(yè)論文
- 膏方基本知識
- T-GDEIIA 56-2024 垂直起降低空航空器起降場基礎設施配置技術要求
- 《如何科學減重》課件
- 第1課時 收獲的季節(jié)(教學設計)-2024-2025學年一年級上冊數(shù)學北師大版
- 整本書閱讀《林海雪原》【知識精研】六年級語文下冊 (統(tǒng)編版五四制2024)
- 建筑工程項目管理經(jīng)驗分享
- 科技與金融結合的對公金融服務營銷實踐案例分析
- Unit 4 Writing說課稿 -2024-2025學年滬教版(五四制)英語六年級上冊001
- 消防公務車管理制度內容
評論
0/150
提交評論