常使用動態網頁技術製作ASP應用程式時一般至少擁有二個或二個以上的Web頁面,這時就得考慮在多個Web頁間傳遞資料的處理工作。而ASP應用程式的各個頁面類似Windows應用程式的form窗體,Windows應用程式各form間資料傳遞可以透過定義全域變數等方法來實現。網頁間的資料傳遞有多種不同的可使用方式,而Web頁間的資料傳遞方式選擇是否恰當對系統設計及運作的合理性與安全性起到舉足輕重的作用。
1.URL方式
URL方式是實現Web間資料傳遞最基本的方法,操作簡單,可很方便實現不同Web頁間的資料傳遞,但其安全性比較差。將要傳遞的資料附加在網頁地址(URL)後面進行傳遞。如: http://www.downcodes.com/testweb?username=liming ,其中?後面所跟著的字串便是傳遞的數據,=前的是變數名,=後面是數值,可以使用request物件來取得傳遞的資料。如:request(“username”)。這種方法在傳遞資料過程中其資料內容在URL欄中是顯示的,使用者能看到提交的內容。
2、form方式
透過在網頁上製作表單互動區域,使用者在瀏覽器端輸入數據,然後透過form提交到伺服器,在提交後的接受form數據的頁面裡就可以接收到相應數據,即form的action頁面中可以使用request物件來接收所傳遞的資料。
如:
發送頁面:
<form name=“formtest” action=“targetweb.asp”>
<input name=“testtext” type=“text” value=“”>
<input name=“testbutton” type =“submit”value =“提交”>
</form>
接收頁面:request(「testtext」)
利用form頁面的文字方塊來接收使用者資料的輸入,透過submit按鈕提交後在targetweb頁面中使用request來接收資料。
3.cookie方式
cookie是在瀏覽頁面時Web伺服器在瀏覽器端所寫入的一些小文件,cookie是存放在瀏覽器端本機磁碟上,而不是存放在服務端的。可以在傳送資料時寫入cookie,接收時讀取cookie完成資料在Web頁間的傳送。
如:
傳送頁面:response.cookies(「cookiename」)(「username」)=「liming」
接收頁面:request.cookie(「cookiename」)(「username」)
在傳送頁面中對cookie變數賦值,接收頁面中取cookie變數的值就是所傳遞的資料。
4.application物件
application物件是用來記錄整個網站資訊的,是記錄不同瀏覽器端共享的變量,無論有幾個瀏覽者同時造訪網頁,都只會產生一個application物件實例。使用者可以透過定義application整站共享變數來實現網頁間的資料傳遞。其定義方法為:application(「變數名稱」)=數值
如:application(「usrname」)=liming
application物件所定義的變數對於所有瀏覽端都是可見的,所以其使用場合是所有瀏覽端共享的全域數據傳遞。
5.session物件session
物件是用來記錄瀏覽器端的變量,是個別瀏覽器端專用的變量,對於每一個瀏覽器存取時都會自動產生一個seseion對象,該物件提供一個儲存場所,用來儲存僅僅對該訪客在會話的活動期間開啟的網頁可用的變數和物件。這樣就用可以用來在Web間傳遞專對單一瀏覽器端所使用的資料。其定義方法:session(「變數名稱」)=數值
如:session(「usename」)=liming
session物件所定義的變數只是瀏覽器端的專用變量,所以適用於局部會話間的網頁資料傳遞。
6.結束語
上述介紹的是網頁間資料傳遞的常用方法,各有千秋。其中URL方式和form方式實作方法簡單,可實現網頁間的簡單資料傳遞,一般為字串類型,其特點是安全性差,且必須是連續存取兩個頁間資料傳遞。 Cookie只能存放string類型的數據,如果想要存放更為複雜的資料類型,那麼必須先將其轉換為string類型。 Application物件和Session物件操作相對複雜些,瀏覽量非常大的網頁使用時應適量,而且使用結束後儘量清除,否則大量使用有可能會導致伺服器的癱瘓。 Session變數的安全性較高,可傳遞專用瀏覽端資料。具體應用決定了資料傳遞方式的選擇,合理資料傳遞方式選擇是Web頁面的設計中的關鍵考慮因素。