淺談ASP中Web頁面間的數(shù)據(jù)傳遞
發(fā)表時(shí)間:2024-06-08 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
【簡 介】
基于Web的動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)必會(huì)涉及到頁面間的數(shù)據(jù)傳遞,文章探討了ASP設(shè)計(jì)中常用的Web頁面間的數(shù)據(jù)傳遞方式,分析各種數(shù)據(jù)傳遞方式的使用方法、使用場(chǎng)合及優(yōu)缺點(diǎn),其都是設(shè)計(jì)階段選擇數(shù)據(jù)傳遞方式考慮的關(guān)鍵 往往使用動(dòng)態(tài)網(wǎng)頁技術(shù)制作ASP應(yīng)用程序時(shí)一般至少擁有二個(gè)或二個(gè)以上的Web頁面,這時(shí)就得考慮在多個(gè)Web頁面間傳遞數(shù)據(jù)的處理工作。而ASP應(yīng)用程序的各個(gè)頁面類似于Windows應(yīng)用程序的Form窗體,Windows應(yīng)用程序各Form間數(shù)據(jù)傳遞可以通過定義全局變量等方法來實(shí)現(xiàn)。網(wǎng)頁間的數(shù)據(jù)傳遞有多種不同的可使用方式,而Web頁面間的數(shù)據(jù)傳遞方式選擇是否恰當(dāng)對(duì)系統(tǒng)設(shè)計(jì)及運(yùn)行的合理性與安全性起到舉足輕重的作用。
1、Url方式
Url方式是實(shí)現(xiàn)Web間數(shù)據(jù)傳遞最基本的方法,操作簡單,可很方便地實(shí)現(xiàn)不同Web頁面間的數(shù)據(jù)傳遞,但其安全性比較差。將要傳遞的數(shù)據(jù)附加在網(wǎng)頁地址(Url)后面進(jìn)行傳遞。如:Http://Www.Dicky.Com/Test.Asp?UserName=Dicky,其中?后面所跟著的字符串便是傳遞的數(shù)據(jù),=前的是變量名,=后面是數(shù)值,可以使用Request對(duì)象來獲取傳遞的數(shù)據(jù)。如:Request("UserName")。這種方法在傳遞數(shù)據(jù)過程中其數(shù)據(jù)內(nèi)容在Url欄中是顯示的,用戶能看到提交的內(nèi)容。
2、Form方式
通過在網(wǎng)頁上制作表單交互區(qū)域,用戶在瀏覽器端輸入數(shù)據(jù),然后通過Form提交到服務(wù)器,在提交后的接受Form數(shù)據(jù)的頁面里就可以接收到相應(yīng)數(shù)據(jù),即Form的Action頁面中可以使用Request對(duì)象來接收所傳遞的數(shù)據(jù)。
如:
發(fā)送頁面:
<Form Name="Formtest" Action="Targetweb.Asp">
<Input Name="Testtext" Type="Text" value="">
<Input Name="Testbutton" Type="Submit" Value="提交">
</Form>
接收頁面:Request("Testtext")
利用Form頁面的文本框來接收用戶數(shù)據(jù)的輸入,通過submit按鈕提交后在targetweb頁面中使用Request來接收數(shù)據(jù)。
3、Cookie方式
Cookie是在瀏覽頁面時(shí)web服務(wù)器在瀏覽器端所寫入的一些小文件,Cookie是存放在瀏覽器端本機(jī)磁盤上,而不是存放在服務(wù)端的?梢栽诎l(fā)送數(shù)據(jù)時(shí)寫入Cookie,接收時(shí)讀取Cookie完成數(shù)據(jù)在web頁面間的傳送。
如:
發(fā)送頁面:Response.Cookies("CookieName")("Username") = "Dicky"
接收頁面:Request.Cookie("CookieName")("Username")
在發(fā)送頁面中對(duì)Cookie變量賦值,接收頁面中取Cookie變量的值就是所傳遞的數(shù)據(jù)。
4、Application對(duì)象
Application對(duì)象是用來記錄整個(gè)網(wǎng)站信息的,是記錄不同瀏覽器端共享的變量,無論有幾個(gè)瀏覽者同時(shí)存取網(wǎng)頁,都只會(huì)產(chǎn)生一個(gè) Application對(duì)象實(shí)例。用戶可以通過定義Application整站共享變量來實(shí)現(xiàn)網(wǎng)頁間的數(shù)據(jù)傳遞。其定義方法是:Application ("變量名")=數(shù)值
如:Application("UserName") = Dicky
application對(duì)象所定義的變量對(duì)于所有瀏覽端都是可見的,所以其使用場(chǎng)合是所有瀏覽端共享的全局?jǐn)?shù)據(jù)傳遞。
5、Session對(duì)象
Session對(duì)象是用來記錄瀏覽器端的變量,是個(gè)別瀏覽器端專用的變量,對(duì)于每一個(gè)瀏覽器訪問時(shí)都會(huì)自動(dòng)產(chǎn)生一個(gè)Seseion對(duì)象,該對(duì)象提供一個(gè)存儲(chǔ)場(chǎng)所,用來存儲(chǔ)僅僅對(duì)該訪問者在會(huì)話的活動(dòng)期間打開的網(wǎng)頁可用的變量和對(duì)象。這樣就用可以用來在Web間傳遞專對(duì)單個(gè)瀏覽器端使用的數(shù)據(jù)。其定義方法:Session("變量名")=數(shù)值
如:Session("UserName") = Dicky
Session對(duì)象所定義的變量只是瀏覽器端的專用變量,所以適用于局部會(huì)話間的網(wǎng)頁數(shù)據(jù)傳遞。
6、結(jié)束語
上述介紹的是網(wǎng)頁間數(shù)據(jù)傳遞的常用方法,各有千秋。其中Url方式和Form方式實(shí)現(xiàn)方法簡單,可實(shí)現(xiàn)網(wǎng)頁間的簡單數(shù)據(jù)傳遞,一般為字符串類型,其特點(diǎn)是安全性差,而且必須是連續(xù)訪問兩頁面間數(shù)據(jù)傳遞。Cookie只能存放String類型的數(shù)據(jù),如果想要存放更為復(fù)雜的數(shù)據(jù)類型,那么必須先將其轉(zhuǎn)換為 String類型。Application對(duì)象和Session對(duì)象操作相對(duì)復(fù)雜些,瀏覽量非常大的網(wǎng)頁使用時(shí)應(yīng)適量,而且使用結(jié)束后盡量清除,否則大量使用有可能會(huì)導(dǎo)致服務(wù)器的癱瘓。Session變量的安全性較高,可傳遞專用瀏覽端數(shù)據(jù)。具體應(yīng)用決定了數(shù)據(jù)傳遞方式的選擇,合理數(shù)據(jù)傳遞方式選擇是 Web頁面的設(shè)計(jì)中的關(guān)鍵考慮因素。