WEB程序設(shè)計(jì)-第六章-Response和Request_第1頁
WEB程序設(shè)計(jì)-第六章-Response和Request_第2頁
WEB程序設(shè)計(jì)-第六章-Response和Request_第3頁
WEB程序設(shè)計(jì)-第六章-Response和Request_第4頁
WEB程序設(shè)計(jì)-第六章-Response和Request_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六章Response和Request6.1Response對(duì)象對(duì)象Response集合Cookies屬性BufferExpiresExpiresAbsoluteIsClientConnected方法BinaryWriteClearEndFlushRedirectWrite6.1.1Response對(duì)象的方法【例】使用Response對(duì)象的Write方法向客戶端瀏覽器輸出一個(gè)完整的HTML文件。輸入以下內(nèi)容,以response1.ASP作為文件名保存:<%@LANGUAGE="VBScript"%><HTML><HEAD><TITLE>Write方法應(yīng)用例如</TITLE></HEAD><BODY><%Fori=1To7Response.Write"<FONTSIZE="&i&">字號(hào)大小:"&i&"</FONT>"&"<BR>"Next%></BODY></HTML>6.1.1Response對(duì)象的方法用瀏覽器翻開文檔,將顯示如下圖的頁面。Response.Write方法與VBScript中的Document.Write區(qū)別:Response對(duì)象是ASP內(nèi)置對(duì)象,其Write方法的功能是從Web效勞器向客戶端瀏覽器輸出數(shù)據(jù);Document是瀏覽器的對(duì)象,其Write方法的功能是直接向?yàn)g覽器輸出數(shù)據(jù)。6.1.2Response對(duì)象的方法1.Buffer屬性─設(shè)置頁面輸出緩沖Response對(duì)象的Buffer屬性指定是否緩沖頁面輸出。語法格式如下:Response.Buffer=Ture|False如果將Buffer屬性設(shè)置為True,那么只有當(dāng)前頁的所有效勞器腳本處理完畢或者調(diào)用了Flush或End方法后,效勞器才將響應(yīng)發(fā)送給客戶端。使用Buffer屬性時(shí),要注意以下幾點(diǎn):(1)設(shè)置Buffer屬性的語句應(yīng)該放在<%@LANGUAGE=…%>命令后面的第一行。(2)在IIS5.0及以后版本中,Buffer屬性的默認(rèn)值為True(在早期版本中默認(rèn)值為False),也可以使用Internet信息效勞管理單元來設(shè)置Buffer屬性的默認(rèn)值。

6.1.2Buffer屬性Response對(duì)象的Buffer屬性指定是否要緩存輸出結(jié)果。

<%response.Buffer=true%><html><body><%fori=1to100response.write(i&"<br/>")next%></body></html>6.1.3Response對(duì)象的方法Flush方法─發(fā)送緩沖區(qū)中的內(nèi)容調(diào)用Response對(duì)象的Flush方法可以立即發(fā)送緩沖區(qū)中的內(nèi)容輸出。因?yàn)楫?dāng)Response對(duì)象的Buffer屬性設(shè)置為True,response對(duì)象先輸出到緩沖區(qū)。當(dāng)緩沖頁面輸出后,將刪除緩沖區(qū)中的所有內(nèi)容。Clear方法─刪除緩沖區(qū)中的內(nèi)容調(diào)用Response對(duì)象的Clear方法可以刪除緩沖區(qū)中的所有HTML輸出,但只刪除響應(yīng)正文而不刪除響應(yīng)標(biāo)題。注意,如果在Buffer屬性設(shè)置為False的頁面中調(diào)用Clear或Flush方法,都將導(dǎo)致運(yùn)行錯(cuò)誤。End方法─停止處理腳本使用Response對(duì)象的End方法可以使Web效勞器停止處理ASP腳本并返回當(dāng)前結(jié)果,文件中剩余的內(nèi)容將不處理。如果Response對(duì)象的Buffer屬性被設(shè)置成True,那么調(diào)用End方法會(huì)立即把緩沖區(qū)中的內(nèi)容發(fā)送到客戶端并去除緩沖區(qū)。Clear和End方法<%response.Buffer=true%><html><body><%fori=1to100response.write(i&"<br/>")nextresponse.clear%></body></html>Clear方法用于去除到目前為止緩存的輸出結(jié)果。End方法將停止處理腳本并將當(dāng)前結(jié)果返回到瀏覽器。

<%response.Buffer=true%><html><body><%fori=1to50response.write(i&"<br/>")nextresponse.Endfori=51to100response.write(i&"<br/>")next%></body></html>6.1.4Response對(duì)象的屬性Expires屬性─設(shè)置頁面在客戶端保存時(shí)間

Response對(duì)象的Expires屬性用于指定該頁面多長(zhǎng)時(shí)間過期。語法格式為:

Response.Expires[=number]

其中number參數(shù)指定緩存的頁面多少分鐘過期。ExpiresAbsolute屬性─設(shè)置頁面在客戶端保存到什么時(shí)間

Response對(duì)象的ExpiresAbsolute屬性指定緩存于瀏覽器中的頁面到期的日期和時(shí)間。語法格式如下:

Response.ExpiresAbsolute[=[date][time]]

其中date參數(shù)指定頁面的到期日期,time參數(shù)指定頁的到期時(shí)間。Expires<%response.Expires=1440%><%response.ExpiresAbsolute=#October11,200616:00:00#%>6.1.5IsClientConnected屬性<%Ifresponse.IsClientConnected=truethenresponse.write("用戶仍處于連接狀態(tài)!")elseresponse.write("用戶已斷開連接!")endif%>IsClientConnected屬性可用于確定用戶是否仍連接著效勞器。6.1.6Response對(duì)象的方法Redirect方法─連接到指定URLResponse對(duì)象的Redirect方法可以使瀏覽器連接到其他URL。語法格式如下:

Response.RedirectURL【例】使用Response對(duì)象的Redirect方法。(1)輸入以下內(nèi)容,以redirect1.HTM作為文件名保存:<HTML><BODY><FORMACTION="redirect2.ASP"METHOD=post><INPUTTYPE="radio"NAME="radGN"VALUE="1"CHECKED>教師<BR><INPUTTYPE="radio"NAME="radGN"VALUE="2">學(xué)生<BR><INPUTTYPE="radio"NAME="radGN"VALUE="3">教務(wù)員<BR><INPUTTYPE="radio"NAME="radGN"VALUE="4">管理員<BR><BR><INPUTTYPE=submitVALUE="轉(zhuǎn)到網(wǎng)頁"></FORM></BODY></HTML>6.1.6Response對(duì)象的方法〔2〕輸入以下內(nèi)容,以redirect2.ASP作為文件名保存:<%n=Request.Form("radGN") '獲得選擇的值SelectcasenCase"1"Response.Redirect"CJGL_JS.asp"Case"2"Response.Redirect"CJGL_XS.asp"Case"3"Response.Redirect"CJGL_JWY.asp"Case"4"Response.Redirect"CJGL_GLY.asp"Endselect%>6.1.7Response對(duì)象的集合

Response對(duì)象只有一個(gè)集合,即Cookies集合。關(guān)于該集合及其屬性的簡(jiǎn)要描述在表中列出。集合說明Cookies設(shè)置Cookie的值Cookies集合的屬性Domain指定Cookie僅被發(fā)送到對(duì)該域的請(qǐng)求中Expires指定Cookie的過期日期HasKeys指定Cookie是否包含關(guān)鍵字Path指定Cookie僅只發(fā)送到對(duì)該路徑的請(qǐng)求中Secure指定Cookie是否安全Cookies是用戶訪問某些網(wǎng)站時(shí),由Web效勞器在客戶端磁盤上寫入的一些小文件,用于記錄瀏覽者的個(gè)人信息、瀏覽器類型、何時(shí)訪問該網(wǎng)站以及執(zhí)行過哪些操作等。6.1.7Response對(duì)象的集合1.設(shè)置Cookie的值使用Response對(duì)象的Cookies集合可以設(shè)置客戶端的Cookie值。語法格式如下:Response.Cookies(name)[(key)]=value其中參數(shù)name指定Cookie的名稱。參數(shù)value指定分配給Cookie的值。參數(shù)key是可選的,用于指定Cooike的關(guān)鍵字。2.設(shè)置Cookie的屬性Cookie的屬性用于指定Cookie自身的有關(guān)信息。語法格式如下:Response.Cookies(name).attribute=value其中參數(shù)attribute指定屬性的名稱,可以是以下屬性之一。Domain:只允許寫。如果設(shè)置該屬性,那么Cookie將被發(fā)送到對(duì)該域的請(qǐng)求中去。Expires:只允許寫,用于指定Cookie的過期日期。為了會(huì)話結(jié)束后將Cookie存儲(chǔ)在客戶端磁盤上,必須設(shè)置該日期。HasKeys:只允許讀,用于確定Cookie是否包含關(guān)鍵字。Path:只允許寫。如果被指定,那么Cookie將只發(fā)送到對(duì)該路徑中。Secure:只允許寫,用于指定Cookies是否平安。6.1.7Response對(duì)象的集合【例】使用Response對(duì)象Cookie向客戶端寫入Cookie值。輸入以下內(nèi)容,以Cookie.ASP作為文件名保存:<%@LANGUAGE="VBScript"%><%Response.Cookies("University")=“內(nèi)蒙古大學(xué)"Response.Cookies("Dept")="計(jì)算機(jī)系"Response.Cookies("User")("Name")="王紅"Response.Cookies("User")("LoginName")="wanghong"Response.Cookies("User")("E-mail")="wh@"Response.Cookies("User")("Visited")=Now()Response.Cookies("User").Expires=Date()+7%><HTML><HEAD><TITLE>向客戶端寫入Cookies值</TITLE></HEAD><BODY></P>保存登錄用戶的單位、系和登錄信息</P></BODY></HTML>6.1.7Response對(duì)象的集合Cookie文件的存儲(chǔ)位置與所使用的操作系統(tǒng)有關(guān):如果使用的是Windows,并且以管理員Administrator身份登錄,可以在\DocumentsandSettings\Administrator\Cookies文件夾中找到該文件。在記事本程序中翻開Cookie文件,將會(huì)發(fā)現(xiàn)其中記錄著Cookies字典名稱、各個(gè)鍵的名稱和值。Settings\zzz\Cookies文件夾中有的zzz@127.0.0[1].txt文件內(nèi)容如圖。6.2Request對(duì)象

Request對(duì)象的主要功能是從客戶端取得信息,包括獲取瀏覽器種類、表單中的數(shù)據(jù)、Cookies中的數(shù)據(jù)和客戶端認(rèn)證等,語法如下:Request[.數(shù)據(jù)集合|屬性|方法](變量)內(nèi)部對(duì)象Request擁有以下5個(gè)數(shù)據(jù)集合:Form 取得客戶端表格元素中所填入的信息。QueryString 取回URL請(qǐng)求字符串。ServerVariables 取得效勞器端環(huán)境變量的值。ClientCertificate 從客戶端取得身份驗(yàn)證的信息。Cookies 取得客戶端瀏覽器的Cookies值對(duì)象Request集合FormQueryStringServerVariablesClientCertificateCookies屬性TotalBytes方法BinaryRead6.2.1Request對(duì)象集合應(yīng)用1.檢索查詢字符串使用Request對(duì)象的QueryString集合可以檢索HTTP查詢字符串中變量的值,語法格式如下:Request.QueryString(variable)[(index)|.Count]其中variable指定要檢索的變量名;Count給出QueryString集合中變量的個(gè)數(shù),如果沒有查詢字符串被發(fā)送,那么Count屬性值為0。生成HTTP查詢字符串比較常用的方法有以下3種〔1〕在瀏覽器地址欄中鍵入請(qǐng)求網(wǎng)頁的URL時(shí),可以在URL后面鍵入問號(hào)“?”和查詢字符串。〔2〕當(dāng)通過HTML表單提交數(shù)據(jù)時(shí),如果將表單的METHOD屬性設(shè)置為get,那么表單數(shù)據(jù)將附在查詢字符串中被發(fā)送到效勞器端。6.2.1Request對(duì)象介紹【例】表單信息的提交。輸入以下內(nèi)容,以Flogin1.HTM作為文件名保存:<HTML><HEAD><TITLE>用戶信息</TITLE></HEAD><BODY><H1>登錄個(gè)人信息</H1><FORMNAME="flogin"METHOD="get"ACTION="E5_Flogin1.ASP"><P>學(xué)號(hào):<INPUTTYPE="text"NAME="txtXH"></P><P>姓名:<INPUTTYPE="text"NAME="txtXM"></P><P>專業(yè):<INPUTTYPE="text"NAME="txtZY"></P><P><INPUTTYPE="submit"NAME="btnOk"VALUE="提交"><INPUTTYPE="reset"NAME="btnEsc"VALUE="重置"></P></FORM></BODY></HTML>6.2.1Request對(duì)象介紹【例】在靜態(tài)網(wǎng)頁中通過Get方法提交表單數(shù)據(jù),在動(dòng)態(tài)網(wǎng)頁E5_Flogin1.ASP中通過QueryString集合檢索數(shù)據(jù)。輸入以下內(nèi)容,以E5_flogin1.ASP作為文件名保存:<HTML><HEAD><TITLE>檢索查詢字符串例如</TITLE></HEAD><BODY><H4>你輸入的登錄個(gè)人信息如下</H4><%Response.Write"學(xué)號(hào):"&Request.QueryString("txtXH")&"<BR>"Response.Write"姓名:"&Request.QueryString("txtXM")&"<BR>"Response.Write"專業(yè):"&Request.QueryString("txtZY")&"<BR>"%></BODY>6.2.1Request對(duì)象介紹用瀏覽器翻開文檔,將顯示如下圖的單擊“提交”,將顯示如下圖的頁面。6.2.1Request對(duì)象介紹(3)使用A標(biāo)記創(chuàng)立超文本鏈接時(shí),可以將查詢字符串放在URL后面,并使用問號(hào)“?”來分隔URL與查詢字符串。例如:<AHREF=:///dept/MCS.asp?xm=“王紅”>進(jìn)入個(gè)人頁面</A>使用Request對(duì)象的QueryString集合檢索HTTP查詢字符串中變量的值可分別以下情況處理:根據(jù)變量名稱得到相應(yīng)的值多個(gè)值指派給同一個(gè)變量如果將多個(gè)值指派給同一個(gè)QueryString變量,那么檢索變量時(shí)應(yīng)指定index的值,index參數(shù)可以是1到Request.QueryString(variable).Count的任意值。得到QueryString集合中的所有變量的值使用For…Next或ForEach…Next語句可以得到QueryString集合中的所有工程。<%Dimuname() Uname(i)=Request.QueryString(i)Next%>Request.QueryString使用例如<HTML><BODY><P>單擊該鏈接以創(chuàng)立查詢字符串。</P><BR><ahref="Ch2ex6b.asp?name=Mark&name=Twain&name=Richard">具有查詢字符串的超鏈接</a></BODY></HTML><HTML><BODY><P>查詢字符串的值是:</P><%fori=1toRequest.QueryString("name").CountResponse.Write(Request.QueryString("name")(i)&"<br>")

next%></BODY></HTML>查詢字符串可包含多個(gè)值6.2.2Request對(duì)象介紹

檢索表單數(shù)據(jù)使用Form集合可以檢索在HTTP請(qǐng)求中通過post方法發(fā)送的表單控件的值,語法格式如下:

Request.Form(element)[(index)|.Count]

其中element指定集合要檢索的表單控件的名稱;

index是可選參數(shù),使用該參數(shù)可以訪問某參數(shù)中多個(gè)值中的一個(gè),可以是1到Request.Form(element).Count之間的任意整數(shù),Request.Form(element)的值是請(qǐng)求正文中所有element值的數(shù)組。使用ForEach…Next語句可以遍歷表單請(qǐng)求中的所有數(shù)據(jù)值。使用下面的腳本可以Form集合中所有控件的名稱和值:

<%ForEachnrInRequest.FormResponse.Writenr&“=“&Reqyest.Form(nr)&“<BR>“Next%>

6.2.2Request對(duì)象介紹【例】創(chuàng)立登錄表單,并且通過POST方法提交表單數(shù)據(jù)。輸入以下內(nèi)容,以E5_Flogin2.HTM作為文件名保存:<TITLE>用戶信息</TITLE></HEAD><BODY><H3>登錄個(gè)人信息</H3><FORMNAME="flogin"METHOD="post"ACTION="E5_Flogin2.ASP"><P>學(xué)號(hào):<INPUTTYPE="text"NAME="txtXH"></P><P>姓名:<INPUTTYPE="text"NAME="txtXM"></P><P>專業(yè):<INPUTTYPE="text"NAME="txtZY"></P><P>性別:<INPUTTYPE="radio"NAME="radXB"VALUE="男"CHECKED>男  <INPUTTYPE="radio"NAME="radXB"VALUE="女">女</P><P>班干否:<INPUTTYPE="checkbox"NAME="chkBG"VALUE="是">  團(tuán)員否:<INPUTTYPE="checkbox"NAME="chkTY"VALUE="是">  助學(xué)貸款否:<INPUTTYPE="checkbox"NAME="chkZXDK"VALUE="是"><P>來源:6.2.2Request對(duì)象介紹<SELECTSIZE=1NAME="optLY"><OPTIONSELECTED>江蘇

<OPTION>上海

<OPTION>浙江

<OPTION>其他</SELECT><P><INPUTTYPE="submit"NAME="btnOk"VALUE="提交"><INPUTTYPE="reset"NAME="btnESC"VALUE="重置"></P></FORM></BODY></HTML>

【例】創(chuàng)立登錄表單,并且通過POST方法提交表單數(shù)據(jù)。6.2.2Request對(duì)象介紹〔2〕輸入以下內(nèi)容,以Flogin2.ASP作為文件名保存:<%@LANGUAGE="VBScript"%><HTML><HEAD><TITLE>檢索表單數(shù)據(jù)例如</TITLE></HEAD><BODY><H3>你輸入的登錄個(gè)人信息如下</H3>學(xué)號(hào):<%=Request.Form("txtXH")%><P>姓名:<%=Request.Form("txtXM")%><P>專業(yè):<%=Request.Form("txtZY")%><P>性別:<%=Request.Form("radXB")%><P>班干否:<%IfRequest.Form("chkBG")<>""ThenResponse.WriteRequest.Form("chkBG")EndIf%>6.2.2Request對(duì)象介紹

團(tuán)員否:<%IfRequest.Form("chkTY")<>""ThenResponse.WriteRequest.Form("chkTY")EndIf%>

助學(xué)貸款否:<%IfRequest.Form("chkZXDK")<>""ThenResponse.WriteRequest.Form("chkZXDK")EndIfResponse.Write"<P>來源:"&Request.Form("optLY")&"<P>"%></BODY></HTML>〔2〕輸入以下內(nèi)容,以Flogin2.ASP作為文件名保存6.2.2Request對(duì)象介紹用瀏覽器翻開文檔,將顯示如下圖的頁面。單擊“提交”,將顯示如下圖的頁面。6.2.3TotalBytes和BinaryRead<%DimintA,arrayBintA=Request.TotalBytesarrayB=Request.BinaryRead(intA)%><%DimintAintA=Request.TotalBytes%>TotalBytes

屬性:返回客戶端在請(qǐng)求正文中發(fā)送的字節(jié)總數(shù)。BinaryRead方法:用于獲取作為POST請(qǐng)求而從客戶端傳送到效勞器的局部數(shù)據(jù)。6.2.4Request.ServerVariables集合<%@LANGUAGE="VBScript"%><HTML><HEAD><TITLE>使用Request對(duì)象</TITLE></HEAD><BODY><%ForEachiteminRequest.ServerVariablesResponse.Write(item&"="&Request.ServerVariables(item)&"<BR>")Next%></BODY></HTML>用于取得預(yù)定義環(huán)境變量的值。6.2.5Request對(duì)象介紹

檢索Cookies信息使用Request對(duì)象的Cookies集合可以檢索在HTTP請(qǐng)求中發(fā)送的Cookie的值,語法格式如下:

Request.Cookies(name)[(key)|.attribute

其中參數(shù)name指定要檢索其值的Cookie的名稱;

key是可選參數(shù),用于指定name下的幾個(gè)方面關(guān)鍵字;

attribute參數(shù)僅支持HasKeys屬性,用于確定Cookie是否包含關(guān)鍵字。保存Cookie值到客戶端計(jì)算機(jī)<%Response.Cookies(“University”)=“內(nèi)蒙古大學(xué)”Response.Cookies(“Dept”)=“計(jì)算機(jī)系”Response.Cookies(“User”)(“Name”)=“王紅”Response.Cookies(“User”)(“LoginName”)=“wangho

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論