




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ASP動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)技術(shù)項(xiàng)目4ASP內(nèi)置對(duì)象及交互技術(shù)av72電影
項(xiàng)目4ASP內(nèi)置對(duì)象及交互技術(shù)av72電影http://w1圖書館學(xué)生用書信息調(diào)查網(wǎng)頁。包、剪、錘游戲程序。顯示戰(zhàn)報(bào)的包、剪、錘游戲程序。聊天室程序。本章任務(wù):
圖書館學(xué)生用書信息調(diào)查網(wǎng)頁。本章任務(wù):2ASP對(duì)象模型。表單及控件對(duì)象。Response對(duì)象及其應(yīng)用。Request對(duì)象及其應(yīng)用。Application對(duì)象及其應(yīng)用。Session對(duì)象及其應(yīng)用。Server對(duì)象及其應(yīng)用。本章要點(diǎn):
ASP對(duì)象模型。本章要點(diǎn):3在ASP引擎中提供了七大內(nèi)置對(duì)象,即Request對(duì)象、Response對(duì)象、Server對(duì)象、Application對(duì)象、Session對(duì)象、ASPError對(duì)象和ObjectContext對(duì)象,其中最為常用的是前5種。4.1ASP對(duì)象模型在ASP引擎中提供了七大內(nèi)置對(duì)象,即Request對(duì)象、Re41.Request對(duì)象該對(duì)象是ASP的請(qǐng)求對(duì)象,它所包含的信息是客戶端瀏覽器提出的請(qǐng)求。通過利用Request對(duì)象的GET或POST方法,可以接收用戶發(fā)送給服務(wù)器的信息和請(qǐng)求,同時(shí),還可以發(fā)送二進(jìn)制形式的數(shù)據(jù)到服務(wù)器。客戶端發(fā)送的所有信息和請(qǐng)求均被封裝在Request對(duì)象中。例如在一個(gè)用戶登錄網(wǎng)頁中,當(dāng)用戶輸入了用戶名和密碼后,按登錄按鈕,用戶輸入的用戶名和密碼將發(fā)送給服務(wù)器處理,服務(wù)器通過Request對(duì)象就可以獲取用戶輸入的用戶名和密碼信息。4.1ASP對(duì)象模型1.Request對(duì)象4.1ASP對(duì)象模型52.Server對(duì)象Server對(duì)象是ASP七大內(nèi)置對(duì)象之中與服務(wù)器關(guān)系最為密切的一個(gè)對(duì)象,它允許用戶存取Web服務(wù)器提供的功能。例如,使用Server對(duì)象的CreateObject方法可以創(chuàng)建服務(wù)器組件的實(shí)例。使用Server對(duì)象的MapPath可以將文件在服務(wù)器上的虛擬路徑轉(zhuǎn)換為物理路徑。
URLEncode方法將URL編碼規(guī)則,應(yīng)用到指定的字符串。4.1ASP對(duì)象模型ScriptTimeout屬性用它來設(shè)置在結(jié)束請(qǐng)求前,服務(wù)器處理ASP程序的時(shí)間。以秒數(shù)為單位,系統(tǒng)默認(rèn)的時(shí)間為90秒。2.Server對(duì)象4.1ASP對(duì)象模型Script63.Response對(duì)象
該對(duì)象主要用于響應(yīng)用戶操作,可以通過多種方式將服務(wù)器端數(shù)據(jù)發(fā)送到客戶端,如客戶端屏幕顯示、用戶瀏覽頁面的重定向以及在客戶端創(chuàng)建cookies等。4.1ASP對(duì)象模型Cookie就是服務(wù)器暫存放在你計(jì)算機(jī)上的一筆資料,好讓服務(wù)器用來辨認(rèn)你的計(jì)算機(jī)。
你在瀏覽網(wǎng)站的時(shí)候,WEB服務(wù)器會(huì)先送一小小資料放在你的計(jì)算機(jī)上,Cookie會(huì)幫你在網(wǎng)站上所打的文字或是一些選擇,都紀(jì)錄下來。當(dāng)下次你再光臨同一個(gè)網(wǎng)站,WEB服務(wù)器會(huì)先看看有沒有它上次留下的Cookie資料,有的話,就會(huì)依據(jù)Cookie里的內(nèi)容來判斷使用者,送出特定的網(wǎng)頁內(nèi)容給你。
Cookie的使用很普遍,許多有提供個(gè)人化服務(wù)的網(wǎng)站,都是利用Cookie來辨認(rèn)使用者,以方便送出使用者量身定做的內(nèi)容,像是Web接口的免費(fèi)email網(wǎng)站,都要用到Cookie。
Cookie會(huì)不會(huì)有危險(xiǎn)?其實(shí)Cookie中記載的資料相有限,Cookie是安全的。網(wǎng)站不可能經(jīng)由Cookie獲得你的email地址或是其它私人資料,更沒有辦法透過Cookie來存取你的計(jì)算機(jī)。
但是如果你實(shí)在不喜歡Web服務(wù)器亂丟餅干(Cookie)到你家,當(dāng)然可以讓瀏覽器拒絕網(wǎng)站存放Cookie到你的計(jì)算機(jī)。
工具>>Intertnet選項(xiàng)>>安全,按「自定義級(jí)別」,到Cookie的部分,全都設(shè)為關(guān)閉,按確定,關(guān)閉瀏覽器,再重新激活瀏覽器即可。
當(dāng)你關(guān)閉Cookie之后,很多網(wǎng)站的個(gè)人化服務(wù)功能很可能也不能再使用了。
Cookie存放位置是在:C:\WINDOWS\TemporaryInternetFiles
你可以直接刪掉這里面的東西或是利用IEinternet選項(xiàng)里的刪除文件按鈕來清除3.Response對(duì)象4.1ASP對(duì)象模型Cooki74.Session對(duì)象Session對(duì)象是ASP技術(shù)中實(shí)現(xiàn)用戶會(huì)話管理的手段,主要用來存儲(chǔ)特定用戶會(huì)話所需的信息。當(dāng)用戶在應(yīng)用程序的Web頁面之間跳轉(zhuǎn)時(shí),存儲(chǔ)在Session對(duì)象中的變量不會(huì)丟失,而且在整個(gè)用戶會(huì)話中會(huì)一直存在下去。4.1ASP對(duì)象模型4.Session對(duì)象4.1ASP對(duì)象模型85.Application對(duì)象
Application對(duì)象可以控制服務(wù)器端應(yīng)用程序的啟動(dòng)和終止?fàn)顟B(tài),并保存整個(gè)應(yīng)用程序過程中的信息。它將虛擬目錄及其子目錄也看成一個(gè)應(yīng)用程序,用來在給定的應(yīng)用程序的所有用戶之間共享信息。雖然它與Session對(duì)象比較相似,但在本質(zhì)上是不同的。例如,對(duì)于同一個(gè)網(wǎng)頁,創(chuàng)建了一個(gè)Session變量Hits,則不同的訪問者使用的Hits變量是不同的,在每個(gè)會(huì)話期間均被創(chuàng)建。而如果創(chuàng)建了一個(gè)Application變量Hits,該變量只被創(chuàng)建一次,所有的客戶均可以共享該Application變量。4.1ASP對(duì)象模型5.Application對(duì)象4.1ASP對(duì)象模型96.ObjectContext對(duì)象ObjectContext對(duì)象是微軟在IIS4.0中最新提供的對(duì)象,它主要用來處理與事務(wù)相關(guān)的問題。與ASP的其它對(duì)象有所不同,ObjectContext對(duì)象沒有屬性和集合,只有方法和事件。7.ASPError對(duì)象該對(duì)象包含了運(yùn)行ASP網(wǎng)頁發(fā)生錯(cuò)誤的詳細(xì)內(nèi)容。4.1ASP對(duì)象模型6.ObjectContext對(duì)象4.1ASP對(duì)象模型10在客戶端,通常利用表單向服務(wù)器端發(fā)送信息,在表單中可以包含許多DHTML控件,如前面課程中學(xué)到的文本框和按鈕。在服務(wù)器端可以使用Request對(duì)象獲取表單提交的數(shù)據(jù),使用Response對(duì)象把數(shù)據(jù)輸出到客戶的瀏覽器中。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)在客戶端,通常利用表單向服務(wù)器端發(fā)送信息,在表單中可以包含許11任務(wù)4-1描述:
為圖書館編寫一個(gè)“學(xué)生用書信息調(diào)查”網(wǎng)頁,如果學(xué)生在星期天登錄該網(wǎng)頁,將會(huì)出現(xiàn)如圖4-1所示的“開放時(shí)間提示”網(wǎng)頁,如果不是星期天,將會(huì)出現(xiàn)一個(gè)表單網(wǎng)頁供學(xué)生填寫用書調(diào)查信息,如圖4-2所示。學(xué)生填寫信息時(shí),如果發(fā)現(xiàn)填寫不正確,想重新填寫,只需按“重寫”按鈕,即可清除所有填寫的信息。如果信息已經(jīng)全部填寫完畢,可單擊“提交”按鈕向服務(wù)器提交填寫的信息,此時(shí)將會(huì)出現(xiàn)如圖4-3所示的“學(xué)生用書信息調(diào)查”確認(rèn)網(wǎng)頁。如果覺得填寫的信息不正確,可單擊“如不對(duì),返回”超鏈接,返回到“學(xué)生用書信息調(diào)查”輸入表單繼續(xù)輸入信息并提交。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)任務(wù)4-1描述:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使12圖4-1“開放時(shí)間提示”網(wǎng)頁圖4-2“學(xué)生用書信息調(diào)查”輸入網(wǎng)頁圖4-3“學(xué)生用書信息調(diào)查”確認(rèn)網(wǎng)頁圖4-1“開放時(shí)間提示”網(wǎng)頁圖4-2“學(xué)生用書信息13任務(wù)分析:
本任務(wù)首先要判斷當(dāng)天是否為星期日,如果是給出不開放信息,如果不是才出現(xiàn)“學(xué)生用書信息調(diào)查”輸入網(wǎng)頁,因此可設(shè)計(jì)一個(gè)初始網(wǎng)頁,在該初始網(wǎng)頁中通過調(diào)用WeekDay()獲取今天是星期幾的信息,然后進(jìn)行判斷,如果是星期日,則可以通過調(diào)用Response對(duì)象的Write方法向客戶端輸出提示信息,如果不是星期日,則可以通過調(diào)用Response對(duì)象的Redirect方法定位到“學(xué)生用書信息調(diào)查”輸入網(wǎng)頁。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)任務(wù)分析:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用PO14任務(wù)分析:“學(xué)生用書信息調(diào)查”輸入網(wǎng)頁可通過表單來實(shí)現(xiàn),在表單中,可通過設(shè)計(jì)一個(gè)表格,按圖4-2所示在表格的相應(yīng)行和相應(yīng)列安排相應(yīng)的DHTML控件即可。此處需注意的是,當(dāng)用戶的輸入信息提交給服務(wù)器后,由哪個(gè)ASP網(wǎng)頁進(jìn)行處理,以及怎樣處理,必須通過表單的Action屬性和Method屬性來指定。當(dāng)學(xué)生按“提交”按鈕向服務(wù)器提交信息后,服務(wù)器將查找并運(yùn)行表單所指出的ASP網(wǎng)頁,在該網(wǎng)頁中可通過Request對(duì)象來獲取用戶輸入的信息,通過Response對(duì)象向客戶端輸出信息。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)任務(wù)分析:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用PO15任務(wù)實(shí)現(xiàn):
本任務(wù)設(shè)計(jì)了三個(gè)網(wǎng)頁,初始網(wǎng)頁(文件名為Task4_1.ASP)、表單輸入網(wǎng)頁(Task4_1_1.ASP)和表單輸入信息處理網(wǎng)頁(Task4_1_2.ASP),表單輸入信息處理網(wǎng)頁,通常稱為表單處理程序。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(1)啟動(dòng)記事本,在記事本中輸入如下代碼。
任務(wù)實(shí)現(xiàn):4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用PO16<html><head><title>開放時(shí)間判斷</title></head><body><%Dimtoday'該變量用來存放今天是星期幾today=WeekDay(date)'獲取今天是星期幾iftoday<>1then'如果今天不是星期日Response.redirect"task4_1_1.asp"'定向?qū)π畔⑤斎氡韱蝒lse'如果是星期日,輸出提示信息并結(jié)束程序Response.write"對(duì)不起,今天是星期天,本館不開放。<br>"Response.write"本館的開放日期為星期一~星期六。"Response.Endendif%></body></html><html>17說明:
①上述代碼中使用了Response對(duì)象,該對(duì)象主要用來輸出信息到客戶端。上述代碼調(diào)用了Response對(duì)象的Redirect、Write和End方法。②Response對(duì)象的Write方法的作用是將信息從Web服務(wù)器輸出到瀏覽器。其調(diào)用的一般格式如下:Response.WriteVariant其中,Variant為要輸出的數(shù)據(jù),可以是任何VBScript的Variant數(shù)據(jù)類型,包括字符、字符串、整數(shù)等。如上述代碼中的語句“Response.write"本館的開放日期為星期一~星期六。"”就是向?yàn)g覽器輸出一個(gè)字符串。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST18說明:關(guān)于該方法的使用,讀者需注意以下幾個(gè)問題:ⅰ向?yàn)g覽器中傳遞的數(shù)據(jù)可以混合使用HTML標(biāo)記。
如本例中的語句“Response.write"對(duì)不起,今天是星期天,本館不開放。<br>"”就是向?yàn)g覽器輸出一個(gè)包含HTML標(biāo)記<BR>的字符串。ⅱ如果<%和%>之間只有一行Response.Write語句,則可以簡(jiǎn)寫。例如,有以下語句:
<%Response.write"<H2>今天是休息天,祝您快樂!</H2>"%>該語句可以簡(jiǎn)寫成:
<%="<H2>今天是休息天,祝您快樂!</H2>"%>ⅲ如果要在瀏覽器中顯示的信息包含符號(hào):%>,則必須寫為:%\>,以免被視為ASP代碼的結(jié)束。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST19說明:
③Response對(duì)象的Redirect方法可以使瀏覽器從當(dāng)前網(wǎng)頁轉(zhuǎn)向其他網(wǎng)頁。其一般格式如下:Response.Redirectpath其中“path”是要轉(zhuǎn)向的網(wǎng)頁的網(wǎng)址。④Response對(duì)象的End方法可以結(jié)束ASP程序的運(yùn)行。其一般格式如下。Response.End此時(shí),如果緩沖區(qū)內(nèi)有數(shù)據(jù),將會(huì)把數(shù)據(jù)輸出到瀏覽器端。使用該方法可以控制程序的執(zhí)行。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST204.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(2)把該網(wǎng)頁代碼保存到D:\ASPExample\CH04\Task4_1文件夾下,取名為Task4_1.ASP。再把系統(tǒng)日期設(shè)置成某個(gè)星期日,然后啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHost/ASPE/CH04/Task4_1/Task4_1.ASP后按回車鍵,將會(huì)出現(xiàn)如圖4-1所示的提示頁面。接著把系統(tǒng)日期設(shè)置為星期一~星期六之間的某一天,再運(yùn)行該網(wǎng)頁,將會(huì)出現(xiàn)找不到“task4_1_1.asp”網(wǎng)頁的錯(cuò)誤,原因是該網(wǎng)頁尚未編寫。(3)在記事本中,執(zhí)行“文件”→“新建”命令,新建一個(gè)文檔,在該文檔中輸入以下代碼。
4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從21<%Response.Expires=0%><HTML><Head><Title>學(xué)生用書信息調(diào)查</Title></Head><Body><Formalign=centerAction="Task4_1_2.asp"Method="post"><center><FONTsize=6face=華文彩云color=blue>感謝您填寫如下調(diào)查信息</FONT></center><TABLEALIGN=CenterBORDER=1>
</TABLE><palign=center><InputType="Submit"Value="提交"><InputType="Reset"Value="重寫"></Form></BODY></HTML><%Response.Expires=0%>22說明:①上述代碼的作用是定義一個(gè)表單,表單通過Post方式提交數(shù)據(jù),表單提交的數(shù)據(jù)由表單處理程序Task4_1_2.asp處理。使用Post方式提交的數(shù)據(jù),在表單處理程序中可通過Request對(duì)象的Form集合讀取。②代碼的第一行“<%Response.Expires=0%>”的作用是使用Response對(duì)象的Expires屬性設(shè)置網(wǎng)頁的失效時(shí)間為立即失效。該屬性取值為整數(shù),用來確定在瀏覽器上緩沖存儲(chǔ)的頁面距離過期還有多少時(shí)間(以分鐘為單位)。如果用戶在某個(gè)頁面過期之前返回該頁,就會(huì)顯示緩沖區(qū)中的頁面,否則將從服務(wù)器重新讀取該頁面。該屬性是一個(gè)較實(shí)用的屬性,當(dāng)客戶通過ASP的登錄頁面進(jìn)入Web站點(diǎn)后,應(yīng)該利用該屬性使登錄頁面立即過期(如設(shè)置Response.Expires=0),以確保安全。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST23說明:
③上述網(wǎng)頁采用<Form>標(biāo)記定義了一個(gè)表單,在動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)中,表單是必不可少的元素,許多功能的實(shí)現(xiàn)都與表單密不可分。表單的主要功能是接受用戶在客戶端的輸入,然后由客戶端瀏覽器將信息發(fā)送到服務(wù)器端,再由相應(yīng)的表單處理程序或其它方式進(jìn)行處理。④在HTML網(wǎng)頁中,表單以標(biāo)記<FORM></FORM>開始和結(jié)束。表單標(biāo)記的語法格式為:<FORMname=表單名method=傳送方式action="URL"Target=目標(biāo)框架名> …</FORM>其中,name屬性用來為表單指定一個(gè)名字,使用該名字來訪問表單;method屬性用來指定信息的傳送方式,“傳送方式”用于指明交互表單的信息傳送方式,有Post和Get兩種,本例采用了Post方式;action屬性用來指定表單處理程序的URL地址,“URL”是指表單處理程序的相對(duì)或絕對(duì)位置(若要將表單數(shù)據(jù)寄到電子郵件信箱,可以設(shè)置為該電子郵件信箱地址;若沒有設(shè)置Action屬性的值,表示使用默認(rèn)的表單處理程序);Target用來設(shè)置顯示表單處理程序結(jié)果的目標(biāo)框架.4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST24說明:
⑤代碼中的行“<InputType="Submit"Value="提交">”的作用是創(chuàng)建一個(gè)Submit按鈕,單擊該按鈕,將把用戶在表單中輸入的信息提交給表單處理程序。Value屬性值用來指定在按鈕上顯示的文字。⑥代碼中的行“<InputType="Reset"Value="重寫">”的作用是創(chuàng)建一個(gè)Reset按鈕,單擊該按鈕,將把用戶在表單中輸入的信息全部恢復(fù)到初始狀態(tài)。Value屬性值用來指定在按鈕上顯示的文字。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST254.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(4)把該網(wǎng)頁代碼保存到D:\ASPExample\CH04\Task4_1文件夾下,取名為Task4_1_1.ASP。(5)為表格添加一行,代碼如下。代碼放在<TABLE>…</TABLE>標(biāo)記之間。<trvalign=baseline><td>姓名:<InputType="text"Name="XingMing"Size=8><td>性別:男<InputType="radio"Name="Sex"Value="男"Checked>女<InputType="radio"Name="Sex"Value="女"><td>密碼:<InputType="Password"Name="pass"maxlength=8Size=12>4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從264.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:上述代碼為表格添加了一行,該行包含三列,每列均通過<Input>標(biāo)記放置控件,第一列放置了一個(gè)名為XingMing的文本框,其寬度為8個(gè)字符。第二列放置了一個(gè)名為Sex的單選鈕組,該單選鈕組有兩個(gè)單選鈕,值分別為“男”和“女”,默認(rèn)選中“男”;第三列放置了一個(gè)名為Password的密碼輸入框,該密碼輸入框的長(zhǎng)度為12個(gè)字符,最多只能輸入8個(gè)字符。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從274.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(6)啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHost/ASPE/CH04/Task4_1/Task4_1_1.ASP后按回車鍵,將會(huì)出現(xiàn)如圖4-4所示的網(wǎng)頁。可以發(fā)現(xiàn)表格的第一行已經(jīng)出現(xiàn)。圖4-4調(diào)試的中間網(wǎng)頁4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從284.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(7)在<TABLE>…</TABLE>標(biāo)記之間,繼續(xù)添加如下代碼并保存。為調(diào)試方便,讀者也可以采用與第(5)步和第(6)步相同的方法,每次為表格添加一行,就啟動(dòng)游覽器瀏覽一次網(wǎng)頁,看看運(yùn)行結(jié)果是不是與要求的相符。<tr><tdcolspan=3>愛好:<InputType="Checkbox"Name="Hobby"value="音樂">音樂<InputType="Checkbox"Name="Hobby"value="上網(wǎng)">上網(wǎng)<InputType="Checkbox"Name="Hobby"value="游戲">游戲<InputType="Checkbox"Name="Hobby"value="跳舞">跳舞<InputType="Checkbox"Name="Hobby"value="繪畫">繪畫<InputType="Checkbox"Name="Hobby"value="影視">影視4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從29<tr><td>學(xué)歷:<br><SelectName="XueLi"width=100><OptionValue="小學(xué)">小學(xué)<OptionValue="中學(xué)">中學(xué)<OptionValue="大專">大專<OptionValue="本科"Selected>本科<OptionValue="研究生">研究生</select><tdcolspan=2>專業(yè):<br><SelectName="zhuanye"width=200><OptionValue="計(jì)算機(jī)應(yīng)用">計(jì)算機(jī)應(yīng)用<OptionValue="無線電通信工程">無線電通信工程<OptionValue="程序控制工程">程序控制工程<OptionValue="移動(dòng)通信工程"Selected>移動(dòng)通信工程<OptionValue="衛(wèi)星通信工程">衛(wèi)星通信工程</select>
<tr><td>學(xué)歷:<br>30<tr><td>您最希望借閱的書的種類:<br><SelectName="BookKind"size=4><OptionValue="計(jì)算機(jī)類">計(jì)算機(jī)類<OptionValue="文學(xué)類">文學(xué)類<OptionValue="休閑類">休閑類<OptionValue="軍事類"Selected>軍事類<OptionValue="數(shù)理類">數(shù)理類<OptionValue="通信類">通信類</select><tdcolspan=2>請(qǐng)給出您對(duì)本館圖書訂購(gòu)的建議:<br><TextAreaName="bookbuy"Cols=30Rows=4></text<tr><td>您最希望借閱的書的種類:<br>31說明:
①上述代碼段的作用是在表單中放置DHTML控件。放置了一個(gè)名為Hobby的復(fù)選框控件數(shù)組(由6個(gè)復(fù)選框)用來供用戶選擇愛好。放置了一個(gè)名為XueLi的下拉式列表框供用戶選擇學(xué)歷。放置了一個(gè)名為zhuanye的下拉式列表框供用戶選擇專業(yè)。放置了一個(gè)名BookKind的簡(jiǎn)單列表框,供用戶選擇希望借閱的書的種類。放置了一個(gè)名為BookBuy的多行文本框供用戶輸入對(duì)圖書訂購(gòu)的建議。②上述代碼中的<INPUT>、<TextArea>、<Select>等標(biāo)記的作用都是向表單添加DHTML內(nèi)部控件。DHTML的內(nèi)部控件是一種預(yù)制的對(duì)象,由客戶端瀏覽器直接提供,無需從服務(wù)器上下載。可以使用<INPUT>、<SELECT>和<TEXTAREA>等標(biāo)記在網(wǎng)頁中添加DHTML的內(nèi)部控件。其中,<SELECT>標(biāo)記和<TEXTAREA>標(biāo)記分別添加列表框和多行文本區(qū)控件,而<INPUT>標(biāo)記則可以在網(wǎng)頁中添加多種DHTML控件。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST32說明:
③采用<INPUT>標(biāo)記定義DHTML內(nèi)部控件的一般格式如下:<INPUTname=名稱type=類型名Disabled=True|FalseTitle=提示信息Value=值……language=腳本語言名>其中,name屬性指定控件的名稱,用于在代碼中引用該控件;type屬性指定控件的類型,其取值與對(duì)應(yīng)的控件說明如表4_1所示;Disabled屬性用來指出控件是否可用,取值為True(默認(rèn))或False,設(shè)置或返回控件是否響應(yīng)用戶事件;Title屬性用來設(shè)置或返回當(dāng)鼠標(biāo)在控件上移動(dòng)時(shí)所顯示的提示信息;Value屬性用來設(shè)置或返回控件當(dāng)前狀態(tài)的對(duì)應(yīng)值,不同控件的值所表示的含義有所不同,如命令按鈕的值是指按鈕表面所顯示的標(biāo)題,而文本框的值是指文本框中的文本內(nèi)容;language屬性指定控件的事件代碼所使用的腳本語言名稱,取值如VBScript、JavaScript、Jscript等。以上屬性也可在代碼中使用。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST33ASP內(nèi)置對(duì)象及交互技術(shù)課件34說明:④Text控件又稱為文本框,通常用來接收用戶的輸入或輸出提示信息。經(jīng)常使用的Text控件的屬性還有MaxLength屬性和Size屬性。MaxLength屬性:用于返回或設(shè)置用戶可以輸入的字符數(shù)。可以在<INPUT>標(biāo)記或代碼中使用。Size屬性:用于返回或設(shè)置文本框的寬度。可以在<INPUT>標(biāo)記或代碼中使用。Password控件與Text控件極其類似,只是它不顯示文本的內(nèi)容,通常用于驗(yàn)證口令。當(dāng)用戶輸入口令時(shí),鍵入的字符都以星號(hào)(*)出現(xiàn)。Password控件所支持的屬性與Text控件也大致相同。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST35說明:
⑦Select控件又稱為列表框,可以用<SELECT>標(biāo)記和<OPTION>標(biāo)記來定義列表框,其定義的一般格式如下:<SELECTsize=xname=列表框名稱multiple> <OPTIONselectedvalue=選項(xiàng)值1>選項(xiàng)文本1</OPTION> <OPTIONselectedvalue=選項(xiàng)值2>選項(xiàng)文本2</OPTION> …</SELECT>4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST36說明:其中,<SELECT>標(biāo)記定義列表框,即Select對(duì)象,<OPTION>標(biāo)記定義列表框中的選項(xiàng),即Option對(duì)象;列表框的Size屬性用來表示在帶滾動(dòng)條的列表框中一次可見的列表項(xiàng)數(shù),沒有設(shè)置該屬性則為下拉式列表框;列表框的Multiple可選項(xiàng)用來表示列表框是否可以多選,加上本選項(xiàng),列表框可以多選,否則只能單選。列表框還有兩個(gè)重要的屬性:Length屬性和SelectedIndex屬性。其中,Length屬性用來返回列表框中選項(xiàng)的個(gè)數(shù),SelectedIndex屬性用來指出或設(shè)置哪個(gè)選項(xiàng)被選中。列表框中的每一項(xiàng)是一個(gè)Option對(duì)象,主要使用該對(duì)象的selected和Value兩個(gè)屬性,Selected是一個(gè)可選項(xiàng),加上它表示該項(xiàng)是被預(yù)選的,同一個(gè)<Select>標(biāo)記中只能有一個(gè)該可選項(xiàng)。Value屬性用來指定選項(xiàng)的值。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST37說明:⑧TextArea控件又稱為多行文本框,可使用<TEXTAREA>標(biāo)記進(jìn)行定義,定義的一般格式如下:<TEXTAREAname=名稱rows=行數(shù)cols=列數(shù)>……</TEXTAREA>其中,行數(shù)和列數(shù)是指不用滾動(dòng)條就可看到的部分;在<TEXTAREA>…</TEXTAREA>之間的內(nèi)容是文本框的初始值,為多行文本框的value屬性值。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST384.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(8)啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHost/ASPE/CH04/Task4_1/Task4_1_1.ASP后按回車鍵,將會(huì)出現(xiàn)如圖4-2所示的“學(xué)生用書信息調(diào)查”輸入網(wǎng)頁。在該網(wǎng)頁中輸入信息后按“重寫”按鈕,將會(huì)發(fā)現(xiàn)輸入的信息被清除,輸入信息后按“提交”按鈕,將會(huì)出現(xiàn)找不到“task4_1_2.ASP”網(wǎng)頁的錯(cuò)誤,原因是該網(wǎng)頁尚未編寫。(9)在記事本中,執(zhí)行“文件”→“新建”命令,新建一個(gè)文檔,在該文檔中輸入以下代碼。
4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從39<%dimxm,xbxb=Request.Form("sex")'獲取性別信息xm=Request.Form("XingMing")'獲取姓名信息Response.write"<FONTsize=6face=華文新魏color=blue>"ifxb="男"then'判斷性別,確定稱呼及歡迎詞Response.writexm&"先生,感謝您參加本次網(wǎng)上調(diào)查!"elseResponse.writexm&"女士,感謝您參加本次網(wǎng)上調(diào)查!"endifResponse.write"</FONT><p>"Response.Write"您填寫的信息如下,請(qǐng)確認(rèn)!"'以下在向客戶端發(fā)送用戶的輸入信息
<%40Response.write"您的姓名是:"&Request.Form("XingMing")&"<BR>"Response.write"您的性別是:"&Request.Form("Sex")&"<BR>"Response.write"您的密碼是:"&Request.Form("Pass")&"<BR>"Response.write"您的愛好是:"&Request.Form("Hobby")&"<BR>"Response.write"您的學(xué)歷是:"&Request.Form("XueLi")&"<BR>"Response.write"您的專業(yè)是:"&Request.Form("zhuanye")&"<BR>"Response.write"您最希望借閱的書的種類是:"&Request.Form("bookkind")&"<BR>"Response.Write"您對(duì)本館的圖書訂購(gòu)的建議是:"Response.WriteRequest.Form("bookbuy")&"<BR>"Response.Write"<Palign=center>這些信息對(duì)嗎?"Response.Write"<ahref=task4_1_1.asp>如不對(duì),返回</a></P>"Response.end%>Response.write"您的姓名是:"&Requ41說明:
①上述代碼中出現(xiàn)了許多類似于“Request.Form("sex")”的語句,其作用是獲取表單中相應(yīng)控件提交過來的數(shù)據(jù)。②Request對(duì)象是負(fù)責(zé)從客戶端瀏覽器獲取用戶信息的對(duì)象,它是ASP中重要的服務(wù)器內(nèi)置對(duì)象,它連接著Web服務(wù)器和Web客戶端程序,是Web交互式網(wǎng)頁設(shè)計(jì)的基礎(chǔ)。Request對(duì)象提供了5個(gè)集合,分別是ClientCertificate、Cookies、Form、QueryString和ServerVariables,上述代碼就使用它Form集合。Request對(duì)象的屬性和方法很少使用。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST42說明:
③當(dāng)請(qǐng)求提交數(shù)據(jù)的表單的METHOD屬性值為POST時(shí),請(qǐng)求提交的<FORM>段中的DHTML控件的值將存放在Request對(duì)象的Form集合中,該集合的每個(gè)成員均為只讀。因此在表單處理程序中,可用Request對(duì)象的Form集合獲取表單提交的數(shù)據(jù)。使用Form集合來獲取傳遞數(shù)據(jù)的語法格式有以下幾種。格式一:Request.Form("控件名")其作用是獲取表單中指定控件傳遞過來的值。格式二:Request.Form("控件名")(index)其作用是獲取表單中指定控件傳遞過來的多個(gè)值中的一個(gè),具體是哪一個(gè)由Index確定。格式三:Request.Form("控件名").Count其作用是獲取表單中指定控件傳遞過來的值的個(gè)數(shù)。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST43說明:
④上述代碼段中讀取并向?yàn)g覽器輸出愛好的值采用了代碼“Response.write"您的愛好是:"&Request.Form("Hobby")&"<BR>"”,由于愛好是多個(gè)值,該行代碼一次讀取并輸出了多個(gè)。對(duì)于這種傳遞過來的多個(gè)值,也可以一個(gè)值一個(gè)值地讀取并輸出,例如該行代碼也可以由以下幾行代碼代替。ForI=1toRequest.Form("愛好").countResponse.Write(Request.Form("xm")&"的第"&I&"愛好是:")Response.Write(Request.Form("ah")(I)&"<BR>")Next4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)說明:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST444.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)(10)把該網(wǎng)頁代碼保存到D:\ASPExample\CH04\Task4_1文件夾下,取名為Task4_1_2.ASP。(11)啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHost/ASPE/CH04/Task4_1/Task4_1.ASP后按回車鍵,然后對(duì)各網(wǎng)頁進(jìn)行測(cè)試,如無錯(cuò)誤則該任務(wù)基本完成。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從45拓展提高:
(1)表單網(wǎng)頁與表單處理程序的合并把兩個(gè)文件合并成一個(gè)文件的思路是:當(dāng)?shù)谝淮卧L問文件時(shí),應(yīng)執(zhí)行顯示表單部分(表單網(wǎng)頁),而當(dāng)表單內(nèi)容輸入后提交時(shí),應(yīng)執(zhí)行接受并處理表單信息的部分(表單處理程序)。根據(jù)訪問該網(wǎng)頁時(shí)是否同時(shí)采用POST方式發(fā)送了表單信息,可以判斷出該網(wǎng)頁是不是第一次被訪問,可以使用如下形式的表達(dá)式:Request.ServerVariables("CONTENT_LENGTH")<>0或Request.ServerVariables("HTTP_METHOD")<>"POST"如果上述條件為False,表示沒有發(fā)送信息,應(yīng)是第一次訪問網(wǎng)頁,如果上述條件為True,表示發(fā)送了信息,應(yīng)是第二次訪問網(wǎng)頁。4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)拓展提高:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用PO46<%optionexplicitResponse.Expires=0ifRequest.servervariables("CONTENT_LENGTH")=0then%><HTML><Head><Title>學(xué)生用書信息調(diào)查</Title></Head><Body><Formalign=centerAction="<%=Request.servervariables("SCRIPT_NAME")%>"Method="post"><center><FONTsize=6face=華文彩云color=blue>感謝您填寫如下調(diào)查信息</FONT></center><TABLEALIGN=CenterBORDER=1>'此處省略的內(nèi)容與Task4_1_1.asp中的相應(yīng)內(nèi)容完成一致</TABLE><palign=center><InputType="Submit"Value="提交"><InputType="Reset"Value="重寫"></Form></BODY></HTML><%optionexplicit47<%else%><%dimxm,xbxb=Request.Form("sex")'此處省略的內(nèi)容與Task4_1_2.asp中的相應(yīng)內(nèi)容完成一致Response.end%><%endif%><%else%>48拓展提高:(2)緩沖輸出緩出輸出的含義是先把輸出內(nèi)容預(yù)先存放到服務(wù)器的緩沖區(qū)中,在適當(dāng)?shù)臅r(shí)候再發(fā)送到客戶端。緩沖輸出涉及到Response對(duì)象的Buffer屬性及其Clear、Flush和End方法。設(shè)置緩沖輸出的形式為:Response.Buffer=True該語句應(yīng)放在語言類型說明之后,所有文檔輸出之前。設(shè)定后,無論是使用一般的HTML代碼還是使用Response的Write方法形成的輸出都將先存放到緩沖區(qū)中。當(dāng)希望將緩沖區(qū)的內(nèi)容輸出時(shí),可使用Response對(duì)象的Flush方法,一般形式如下:Response.Flush調(diào)用Response對(duì)象的End方法的一般格式如下:Response.End4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用POST方式從Request對(duì)象的FORM集合中獲取數(shù)據(jù)拓展提高:4.2任務(wù)4-1:學(xué)生用書信息調(diào)查——使用PO49概述:
通過表單,不但可以使用POST方式向服務(wù)器提交數(shù)據(jù),而且可以使用GET方式向服務(wù)器提交數(shù)據(jù)。若表單通過GET方式向服務(wù)器提交數(shù)據(jù),則表單處理程序可以使用Request對(duì)象的QueryString集合獲取用戶提交的數(shù)據(jù)。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
概述:4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式50任務(wù)4-2描述:編寫一個(gè)包、剪、錘網(wǎng)絡(luò)游戲,網(wǎng)頁的初始運(yùn)行情況如圖4-7所示,當(dāng)玩家單擊某個(gè)單選鈕出手后,將會(huì)出現(xiàn)如圖4-8的游戲結(jié)果網(wǎng)頁。單擊返回超鏈接將返回到如圖4-7的頁面繼續(xù)玩游戲。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
圖4-7游戲網(wǎng)頁的初始運(yùn)行情況圖4-8顯示游戲結(jié)果任務(wù)4-2描述:編寫一個(gè)包、剪、錘網(wǎng)絡(luò)游戲,網(wǎng)頁的初始運(yùn)行情51任務(wù)分析:首先應(yīng)制作6張圖片,分別代表玩家和計(jì)算機(jī)的三種出手,這6張圖片的文件名分別是P1.JPG(玩家出石頭)、P2.JPG(玩家出剪刀)、P3.JPG(玩家出布)、C1.JPG(計(jì)算機(jī)出石頭)、C2.JPG(計(jì)算機(jī)出剪刀)和C3.JPG(計(jì)算機(jī)出布),如圖4-9所示。
4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
任務(wù)分析:首先應(yīng)制作6張圖片,分別代表玩家和計(jì)算機(jī)的三種出手52任務(wù)分析:玩家出手可通過在表單中添加一個(gè)“單選按鈕組”來實(shí)現(xiàn),玩家“出手”即單擊單選按鈕,此時(shí)將會(huì)發(fā)生單選按鈕組的OnClick事件,可在該事件代碼中調(diào)用表單的Submit方法把數(shù)據(jù)提交給表單處理程序。可把表單的Method屬性值設(shè)置為GET,則在表單處理程序中,就可以使用Request對(duì)象的QueryString集合獲取玩家提交的信息即出手情況。在表單處理程序中,通過對(duì)玩家出手情況的判斷(1代表石頭、2代表剪刀、3代表布),決定要顯示的玩家出手圖片的圖片文件名,再讓計(jì)算機(jī)產(chǎn)生一個(gè)1~3之間的隨機(jī)數(shù)作為計(jì)算機(jī)的出手情況,通過判斷計(jì)算機(jī)的出手情況,決定要顯示的計(jì)算機(jī)出手圖片的圖片文件名。提著判斷輸贏情況并產(chǎn)生輸贏提示信息。最后在網(wǎng)頁上輸出圖片和輸贏提示信息。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
任務(wù)分析:4.3任務(wù)4-2:包、剪、錘游戲——使用GET53任務(wù)實(shí)現(xiàn):
(1)啟動(dòng)記事本,在記事本中輸入如下代碼。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
<%optionexplicit'強(qiáng)制變量定義dimPlayerChoice'存放玩家的出手情況dimComputerChoice'存放計(jì)算機(jī)的出手情況dimPlayerPicfile'用來存放玩家出手的圖片文件名,以便顯示圖片dimComputerPicfile'存放計(jì)算機(jī)出手的圖片文件名,以便顯示圖片dimBCMessage'該變量用來存放提示輸贏的信息%>任務(wù)實(shí)現(xiàn):4.3任務(wù)4-2:包、剪、錘游戲——使用GET54(2)把該網(wǎng)頁代碼保存到D:\ASPExample\CH04\文件夾下,取名為Task4_2.ASP。(3)在上述代碼的后面,接著添加如下代碼。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
<%IfRequest.servervariables("QUERY_STRING")<>""Then'如果接受到表單提交的信息%><!--在此處編寫處理表單信息的表單處理程序--><%else%><!--在此處顯示表單--><%endif%>(2)把該網(wǎng)頁代碼保存到D:\ASPExample\CH0455說明:
上述代碼的作用是把表單和表單處理程序集中到一個(gè)文件中。當(dāng)表單采用GET方式提交了數(shù)據(jù),則表達(dá)式“Request.servervariables("QUERY_STRING")”的值為包含提交數(shù)據(jù)的查詢字符串,不為空字符串。如果沒有提交數(shù)據(jù),則表達(dá)式“Request.servervariables("QUERY_STRING")”的值為空字符串。因此通過判斷表達(dá)式“Request.servervariables("QUERY_STRING")”的值是否為空字符串,就可以知道是顯示表單,還是執(zhí)行表單處理程序。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
說明:4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式56(4)在<%else%>和<%endif%>之間添加下列代碼并保存,以顯示表單(游戲界面)。
4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
<html><head><title>石頭、剪子、布小游戲</title></head><body><center><FONTsize=6face=華文彩云color=blue>包、剪、錘大戰(zhàn)</FONT><hr><!--采用get方法向ASP網(wǎng)頁提交數(shù)據(jù)-->(4)在<%else%>和<%endif%>之間添加下列代57<formaction="<%=Request.servervariables("SCRIPT_NAME")%>"method=getname=Game>請(qǐng)出手:<inputtype=radioname=choicevalue=1>石頭<inputtype=radioname=choicevalue=2>剪子<inputtype=radioname=choicevalue=3>布<p><scriptfor=choiceevent=onclicklanguage=vbscript>Game.submit'調(diào)用表單Game的submit方法向ASP網(wǎng)頁提交數(shù)據(jù)</script></form></center></body></html><formaction="<%=Request.serv58說明:
①上述代碼定義了一個(gè)名為Game的表單,該表單采用Get方式提交數(shù)據(jù),提交的數(shù)據(jù)由本網(wǎng)頁自身進(jìn)行處理。表單中定義了一個(gè)名為Choice的單選按鈕組,用來供玩家選擇出手,在單選按鈕組的OnClick事件中,調(diào)用了表單Game的Submit方法提交數(shù)據(jù)。②代碼“Request.servervariables("SCRIPT_NAME")”的作用是獲取環(huán)境變量SCRIPT_NAME的值,通過該環(huán)境變量可以獲得當(dāng)前腳本的虛擬路徑。當(dāng)需要將表單的數(shù)據(jù)提交給網(wǎng)頁本身時(shí),而不管本網(wǎng)頁存放在哪個(gè)目錄下,就可以使用環(huán)境變量SCRIPT_NAME,如上述代碼就使用該環(huán)境變量使表單提交的數(shù)據(jù)由本網(wǎng)頁自身處理。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
說明:4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式59說明:
③環(huán)境變量是Request對(duì)象的又一集合(servervariables集合),通過它可以獲得有關(guān)服務(wù)器的一些信息和用戶發(fā)送請(qǐng)求時(shí)瀏覽器通過HTTP報(bào)頭傳送的一些信息,如前面使用的SCRIPT_NAME、CONTENT_LENGTH、QUERY_STRING等均是環(huán)境變量。獲取某個(gè)環(huán)境變量值的一般形式如下:Request.ServerVariables("環(huán)境變量名")例如:Request.ServerVariables("HTTP_USER_AGENT")的作用是獲得瀏覽器名。Request.ServerVariables("REMOTE_ADDR")的作用是獲取連接到本服務(wù)器上的計(jì)算機(jī)的IP地址,若用戶是通過代理服務(wù)器訪問該網(wǎng)頁的,則獲得的是代理服務(wù)器的IP地址。Request.ServerVariables("SERVER_NAME")的作用是獲取服務(wù)器的域名。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
說明:4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式60
(5)啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHost/ASPE/CH04/Task4_2.ASP后按回車鍵,將會(huì)出現(xiàn)如圖4-7所示的網(wǎng)頁,但此時(shí)單擊單選鈕,出現(xiàn)的只是一個(gè)空白網(wǎng)頁,原因是表單處理程序代碼尚未編寫。(6)在行“<!--在此處編寫處理表單信息的表單處理程序-->”的下面添加下列代碼并保存。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
(5)啟動(dòng)瀏覽器,在地址欄輸入:http://Local61<%playerchoice=request.querystring("choice")'獲取用戶的選擇,即出手'下述多分支語句用來判斷用戶出手情況,以決定顯示哪個(gè)圖片,并把圖片文件名賦值給變量playerpicfileselectcaseplayerchoicecase1PlayerPicfile="P1.JPG"case2PlayerPicfile="P2.JPG"case3PlayerPicfile="P3.JPG"endselectrandomize'隨機(jī)數(shù)初始化ComputerChoice=int(rnd*3)+1'通過調(diào)用隨機(jī)數(shù)函數(shù)產(chǎn)生計(jì)算機(jī)的出手情況<%62'下述多分支語句用來判斷計(jì)算機(jī)出手情況,以決定顯示哪個(gè)圖片,并把圖片文件名賦值給變量ComputerpicfileselectcaseComputerChoicecase1ComputerPicfile="C1.JPG"case2ComputerPicfile="C2.JPG"case3ComputerPicfile="C3.JPG"endselectifplayerChoice-ComputerChoice=0thenBCMessage="打成平手!"elseifplayerChoice-ComputerChoice=-1orplayerChoice-ComputerChoice=2thenBCMessage="恭喜你,你贏了!"elseBCMessage="這次電腦贏了!"endif%>'下述多分支語句用來判斷計(jì)算機(jī)出手情況,以決定顯示哪個(gè)圖片63說明:
①上述代碼首先通過Request對(duì)象的QueryString集合獲取用戶的出手情況并存放在變量PlayerChoice中,然后通過一個(gè)多分支語句判斷PlayerChoice的值是幾以決定要顯示的圖片文件名,并把圖片文件名保存在變量PlayerPicfile中。接著通過調(diào)用Rnd函數(shù)產(chǎn)生一個(gè)1~3之間的隨機(jī)數(shù)作為計(jì)算機(jī)的出手并存放在變量ComputerChoice中,然后通過一個(gè)多分支語句判斷ComputerChoice的值是幾以決定要顯示的圖片文件名,并把圖片文件名保存在變量ComputerPicfile中。最后通過If語句比較變量PlayerChoice的值和變量ComputerChoice的值以決定誰輸誰贏,并產(chǎn)生輸贏提示信息。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
說明:4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式64說明:②請(qǐng)求提交數(shù)據(jù)的表單的METHOD屬性值為GET時(shí),在表單處理程序中,可用Request對(duì)象的QueryString集合獲取表單提交的數(shù)據(jù)。使用QueryString集合來傳遞數(shù)據(jù)的語法格式有以下幾種。格式一:Request.QueryString("控件名")其作用是獲取表單中指定控件傳遞過來的值。格式二:Request.QueryString("控件名")(index) 其作用是獲取表單中指定控件傳遞過來的多個(gè)值中的一個(gè),具體是哪一個(gè)由Index確定。格式三:Request.QueryString("控件名").Count其作用是獲取表單中指定控件傳遞過來的值的個(gè)數(shù)。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
說明:4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式65
(7)在上述代碼之下“<%else%>”行之上,添加下列代碼并保存。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
<center><FONTsize=6face=華文新魏color=blue>包、剪、錘大戰(zhàn)結(jié)果</FONT></center><tableborder=1align=center><tralign=center><td>玩家<td>電腦<tralign=center><!--顯示玩家出手的圖片--><td><IMGSRC=<%=PlayerPicfile%>><!--'顯示計(jì)算機(jī)出手的圖片--><td><IMGSRC=<%=ComputerPicFile%>></tr><tralign=center><tdcolspan=2><%=BCMessage%></tr><!--顯示本次輸贏提示信息--></table><center><ahref=task4_2.asp>返回</a></P></center>(7)在上述代碼之下“<%else%>”行之上,添加下列66(8)啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHost/ASPE/CH04/Task4_2.ASP后按回車鍵,然后對(duì)網(wǎng)頁功能進(jìn)行測(cè)試,如無錯(cuò)誤則該任務(wù)順利完成。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
說明:值得讀者注意的是,用戶出手后,地址欄上的地址已經(jīng)發(fā)生了變化,變成了類似“http://localhost/aspe/ch04/task4_2.asp?choice=1”的形式,也就是說通過GET方法發(fā)送數(shù)據(jù)時(shí),發(fā)送的數(shù)據(jù)以查詢字符串的形式出現(xiàn)在地址欄中,保密性不強(qiáng)。而使用POST方式提交數(shù)據(jù)時(shí),則不會(huì)出現(xiàn)這種情況,保密性較好。(8)啟動(dòng)瀏覽器,在地址欄輸入:http://LocalHo67歸納說明:
把表單的Method屬性值設(shè)置為GET時(shí),在表單處理程序中可以使用Request對(duì)象的QueryString集合獲取表單提交的信息,本例通過一個(gè)任務(wù)——“包、剪、錘游戲”的具體實(shí)現(xiàn)過程,詳細(xì)講解了這種交互技術(shù)的實(shí)現(xiàn)方法。另外,本節(jié)還介紹了服務(wù)器環(huán)境變量的概念,以及通過Request對(duì)象的ServerVariables集合獲取服務(wù)器環(huán)境變量的方法,讀者需著重掌握CONTENT_LENGTH、QUERY_STRING和SCRIPT_NAME環(huán)境變量的含義及其使用方法。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
歸納說明:4.3任務(wù)4-2:包、剪、錘游戲——使用GET68拓展提高:
可以通過三種方式向ASP網(wǎng)頁傳送數(shù)據(jù)。一種是把表單的METHOD屬性值設(shè)置為POST,在ASP網(wǎng)頁中通過Request對(duì)象的Form集合獲取表單提交的信息,該種方式在“圖書館學(xué)生用書信息調(diào)查”任務(wù)中已經(jīng)詳細(xì)介紹;一種是把表單的METHOD屬性值設(shè)置為GET,在ASP網(wǎng)頁中通過Request對(duì)象的QueryString集合獲取表單提交的信息,該種方式在“包、剪、錘游戲”任務(wù)中已經(jīng)詳細(xì)介紹;還有一種向ASP網(wǎng)頁傳送數(shù)據(jù)的方法是直接使用查詢字符串。4.3任務(wù)4-2:包、剪、錘游戲——使用GET方式從Request對(duì)象的QueryString集合中獲取數(shù)據(jù)
拓展提高:4.3任務(wù)4-2:包、剪、錘游戲——使用GET69<%DimXM,ZCXM=Request.QueryString("XM")ZC=Request.QueryString("ZC")Response.Write"歡迎"&XM&ZC&"蒞臨指導(dǎo)!"%>在瀏覽器的地址欄輸入地址“http://localhost/aspe/ch04/Exam4_1.asp?XM=吳天&ZC=助教”后按回車鍵,ASP網(wǎng)頁的運(yùn)行情況如圖4-10所示。圖4-10通過查詢字符串提交數(shù)據(jù)的ASP網(wǎng)頁運(yùn)行情況<%圖4-10通過查詢字符串提交數(shù)據(jù)的ASP網(wǎng)頁運(yùn)行情況70概念:隨著Web技術(shù)的發(fā)展,基于Web的應(yīng)用程序越來越大,經(jīng)常會(huì)見到在一個(gè)網(wǎng)站上安裝了多個(gè)Web應(yīng)用程序。所謂應(yīng)用程序是指Web服務(wù)器硬盤上的一組文件,也就是虛擬目錄及其子目錄下的一組HTML文檔、ASP文檔及其它文件,它們組合在一起完成一個(gè)實(shí)際的應(yīng)用。在ASP中為了保存與應(yīng)用程序有關(guān)的一些公共信息,設(shè)置了Application(應(yīng)用程序)對(duì)象,又為了保存訪問應(yīng)用程序的各用戶的一些個(gè)人信息,設(shè)置了Session(會(huì)話)對(duì)象。Application對(duì)象的所有數(shù)據(jù)可以在整個(gè)應(yīng)用程序內(nèi)部共享,并且對(duì)所有用戶都是可見的,在Application對(duì)象中創(chuàng)建的變量或?qū)ο罂梢詾樗性L問該站點(diǎn)的用戶共享。Session對(duì)象存儲(chǔ)特定用戶的信息,不同用戶的Session不同,用戶之間不能共享在Session對(duì)象中創(chuàng)建的變量或?qū)ο蟆?.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲——Application對(duì)象與Session對(duì)象及其使用
概念:4.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲——Appl71任務(wù)4-3描述:對(duì)“包、剪、錘游戲”進(jìn)行改進(jìn),使之能夠顯示玩家的戰(zhàn)況,即輸、贏和平手的次數(shù)。并且為該網(wǎng)頁裝上用戶計(jì)數(shù)器、訪客編號(hào)器和點(diǎn)擊計(jì)數(shù)器。用戶計(jì)數(shù)器用來統(tǒng)計(jì)使用該網(wǎng)頁的總用戶數(shù),訪客編號(hào)器用來給出當(dāng)前訪客是第幾位訪客,點(diǎn)擊計(jì)數(shù)器用來統(tǒng)計(jì)在整個(gè)應(yīng)用程序期間該網(wǎng)頁被點(diǎn)擊多少次及在本會(huì)話期間本網(wǎng)頁被點(diǎn)擊的次數(shù)。兩個(gè)不同玩家A和B在瀏覽器中運(yùn)行該游戲網(wǎng)頁的情況分別如圖4-13和圖4-14所示,當(dāng)玩家單擊某個(gè)單選鈕出手后,將會(huì)出現(xiàn)類似如圖4-15所示的游戲結(jié)果網(wǎng)頁。單擊返回超鏈接將返回到如圖4-13或圖4-14的頁面繼續(xù)玩游戲。4.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲——Application對(duì)象與Session對(duì)象及其使用
任務(wù)4-3描述:4.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲—72圖4-13玩家A運(yùn)行游戲網(wǎng)頁的界面圖4-14玩家B運(yùn)行游戲網(wǎng)頁的界面圖4-15顯示游戲結(jié)果圖4-13玩家A運(yùn)行游戲網(wǎng)頁的界面圖4-14玩家B73任務(wù)分析:為記錄訪問者的數(shù)目,可使用一個(gè)應(yīng)用程序級(jí)變量,當(dāng)任一用戶訪問該網(wǎng)站時(shí),將該變量的值加1。為記錄當(dāng)前訪問者是第幾位訪問者可定義一個(gè)會(huì)話級(jí)變量,當(dāng)訪問者訪問該網(wǎng)站時(shí),當(dāng)前的用戶數(shù)就是當(dāng)前訪問者的序號(hào),以后雖然訪問者會(huì)隨著時(shí)間的變化不斷增多,但記錄當(dāng)前訪問者的序號(hào)的會(huì)話級(jí)變量的值不會(huì)改變。為記錄網(wǎng)頁總共被點(diǎn)擊的次數(shù),可定義一個(gè)應(yīng)用程序級(jí)變量,當(dāng)該網(wǎng)頁被任意用戶訪問或刷新一次,則把該變量的值加1。為記錄本會(huì)話期間網(wǎng)頁被點(diǎn)擊了多少次,可定義一個(gè)會(huì)話級(jí)變量,在本會(huì)話期間,用戶訪問或刷新一次該網(wǎng)頁,則把該變量的值加1。某個(gè)玩家與計(jì)算機(jī)交手的輸、贏和平手的次數(shù),只對(duì)該玩家有效,與其他玩家無關(guān),因此可定義三個(gè)會(huì)話級(jí)變量來記錄玩家的輸、贏和平手的次數(shù)。4.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲——Application對(duì)象與Session對(duì)象及其使用
任務(wù)分析:4.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲——Ap74任務(wù)實(shí)現(xiàn):
(1)打開記事本,在記事本中輸入以下代碼。并把該文件保存到D:\ASPExample目錄中(虛擬目錄的根目錄下),并取名為Global.asa。4.4任務(wù)4-3:改進(jìn)的包、剪、錘游戲——Application對(duì)象與Session對(duì)象及其使用
<ScriptLanguage=VBScriptRunat=Server>SubApplication_OnStartApplication.Lock'變量AppHitNum用來記錄整個(gè)應(yīng)用程序運(yùn)行期間網(wǎng)頁被點(diǎn)擊的總的次數(shù)Application("AppHitsNum")=0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)家庭影院音頻和視頻接收器市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 設(shè)計(jì)單位質(zhì)量管理制度
- 評(píng)估監(jiān)理補(bǔ)貼管理制度
- 診所醫(yī)用織物管理制度
- 診療技術(shù)準(zhǔn)入管理制度
- 試驗(yàn)耗材訂購(gòu)管理制度
- 財(cái)務(wù)資金結(jié)算管理制度
- 財(cái)政行政票據(jù)管理制度
- 貨物消毒價(jià)格管理制度
- 貨運(yùn)運(yùn)價(jià)分離管理制度
- 特種設(shè)備風(fēng)險(xiǎn)分級(jí)管控清單(叉車)
- 《創(chuàng)新創(chuàng)業(yè)實(shí)踐》課程思政教學(xué)案例(一等獎(jiǎng))
- 項(xiàng)目激勵(lì)管理制度
- 核酸的降解與核苷酸代謝課件
- T∕CGMA 033001-2018 壓縮空氣站能效分級(jí)指南
- 設(shè)備安全操作培訓(xùn).ppt
- 淺談新興縣禪宗文化旅游開發(fā)分析解析
- 40篇短文搞定高考英語3500詞(共42頁)
- 消防設(shè)施巡查記錄表
- 工程材料與成型工藝說課
- 設(shè)備基礎(chǔ)維護(hù)培訓(xùn)系列之氣動(dòng)元件故障診斷維護(hù)(課堂PPT)
評(píng)論
0/150
提交評(píng)論