摘要:基于web的動(dòng)態(tài)網(wǎng)頁(yè)設計必會(huì )涉及到頁(yè)面間的數據傳遞,文章探討了asp設計中常用的web頁(yè)面間的數據傳遞方式,分析各種數據傳遞方式的使用方法、使用場(chǎng)合及優(yōu)缺點(diǎn),其都是設計階段選擇數據傳遞方式考慮的關(guān)鍵。
關(guān)鍵詞 數據傳遞變量瀏覽器端網(wǎng)頁(yè)
往往使用動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)制作asp應用程序時(shí)一般至少擁有二個(gè)或二個(gè)以上的web頁(yè)面,這時(shí)就得考慮在多個(gè)web頁(yè)面間傳遞數據的處理工作。而asp應用程序的各個(gè)頁(yè)面類(lèi)似于windows應用程序的form窗體,windows應用程序各form間數據傳遞可以通過(guò)定義全局變量等方法來(lái)實(shí)現。網(wǎng)頁(yè)間的數據傳遞有多種不同的可使用方式,而web頁(yè)面間的數據傳遞方式選擇是否恰當對系統設計及運行的合理性與安全性起到舉足輕重的作用。
1、url方式
url方式是實(shí)現web間數據傳遞最基本的方法,操作簡(jiǎn)單,可很方便地實(shí)現不同web頁(yè)面間的數據傳遞,但其安全性比較差。將要傳遞的數據附加在網(wǎng)頁(yè)地址(url)后面進(jìn)行傳遞。如:http://www.cstvu.com/testweb?username=liming,其中?后面所跟著(zhù)的字符串便是傳遞的數據,=前的是變量名,=后面是數值,可以使用request對象來(lái)獲取傳遞的數據。如:request(“username”)。這種方法在傳遞數據過(guò)程中其數據內容在url欄中是顯示的,用戶(hù)能看到提交的內容。
2、form方式
通過(guò)在網(wǎng)頁(yè)上制作表單交互區域,用戶(hù)在瀏覽器端輸入數據,然后通過(guò)form提交到服務(wù)器,在提交后的接受form數據的頁(yè)面里就可以接收到相應數據,即form的action頁(yè)面中可以使用request對象來(lái)接收所傳遞的數據。
如:
發(fā)送頁(yè)面:
<form name=“formtest” action=“targetweb.asp”>
<input name=“testtext” type=“text”value=“”>
<input name=“testbutton” type =“submit”value =“提交”>
</form>
接收頁(yè)面:request(“testtext”)
利用form頁(yè)面的文本框來(lái)接收用戶(hù)數據的輸入,通過(guò)submit按鈕提交后在targetweb頁(yè)面中使用request來(lái)接收數據。
3、cookie方式
cookie是在瀏覽頁(yè)面時(shí)web服務(wù)器在瀏覽器端所寫(xiě)入的一些小文件,cookie是存放在瀏覽器端本機磁盤(pán)上,而不是存放在服務(wù)端的??梢栽诎l(fā)送數據時(shí)寫(xiě)入cookie,接收時(shí)讀取cookie完成數據在web頁(yè)面間的傳送。
如:
發(fā)送頁(yè)面:response.cookies(“cookiename”)(“username”)=“l(fā)iming”
接收頁(yè)面:request.cookie(“cookiename”)(“username”)
在發(fā)送頁(yè)面中對cookie變量賦值,接收頁(yè)面中取cookie變量的值就是所傳遞的數據。
4、application對象
application對象是用來(lái)記錄整個(gè)網(wǎng)站信息的,是記錄不同瀏覽器端共享的變量,無(wú)論有幾個(gè)瀏覽者同時(shí)存取網(wǎng)頁(yè),都只會(huì )產(chǎn)生一個(gè)application對象實(shí)例。用戶(hù)可以通過(guò)定義application整站共享變量來(lái)實(shí)現網(wǎng)頁(yè)間的數據傳遞。其定義方法是:application(“變量名”)=數值
如:application(“usrname”)=liming
application對象所定義的變量對于所有瀏覽端都是可見(jiàn)的,所以其使用場(chǎng)合是所有瀏覽端共享的全局數據傳遞。
5、session對象
session對象是用來(lái)記錄瀏覽器端的變量,是個(gè)別瀏覽器端專(zhuān)用的變量,對于每一個(gè)瀏覽器訪(fǎng)問(wèn)時(shí)都會(huì )自動(dòng)產(chǎn)生一個(gè)seseion對象,該對象提供一個(gè)存儲場(chǎng)所,用來(lái)存儲僅僅對該訪(fǎng)問(wèn)者在會(huì )話(huà)的活動(dòng)期間打開(kāi)的網(wǎng)頁(yè)可用的變量和對象。這樣就用可以用來(lái)在web間傳遞專(zhuān)對單個(gè)瀏覽器端使用的數據。其定義方法:session(“變量名”)=數值
如:session(“usename”)=liming
session對象所定義的變量只是瀏覽器端的專(zhuān)用變量,所以適用于局部會(huì )話(huà)間的網(wǎng)頁(yè)數據傳遞。
6、結束語(yǔ)
上述介紹的是網(wǎng)頁(yè)間數據傳遞的常用方法,各有千秋。其中url方式和form方式實(shí)現方法簡(jiǎn)單,可實(shí)現網(wǎng)頁(yè)間的簡(jiǎn)單數據傳遞,一般為字符串類(lèi)型,其特點(diǎn)是安全性差,而且必須是連續訪(fǎng)問(wèn)兩頁(yè)面間數據傳遞。cookie只能存放string類(lèi)型的數據,如果想要存放更為復雜的數據類(lèi)型,那么必須先將其轉換為string類(lèi)型。application對象和session對象操作相對復雜些,瀏覽量非常大的網(wǎng)頁(yè)使用時(shí)應適量,而且使用結束后盡量清除,否則大量使用有可能會(huì )導致服務(wù)器的癱瘓。session變量的安全性較高,可傳遞專(zhuān)用瀏覽端數據。具體應用決定了數據傳遞方式的選擇,合理數據傳遞方式選擇是web頁(yè)面的設計中的關(guān)鍵考慮因素。