基於Web的動態網頁設計必會涉及到頁面間的資料傳遞,往往使用動態網頁技術製作ASP應用程式時一般至少擁有二個或二個以上的Web頁面,這時就得考慮在多個Web頁面間傳遞資料的處理工作。而ASP應用程式的各個頁面類似於Windows應用程式的Form表單,Windows應用程式各Form間資料傳遞可以通過定義全域變數等方法來實現。網頁間的資料傳遞有多種不同的可使用方式,而Web頁面間的資料傳遞方式選擇是否恰當對系統設計及啟動並執行合理性與安全性起到舉足輕重的作用。
1、Url方式
Url方式是實現Web間資料傳遞最基本的方法,操作簡單,可很方便地實現不同Web頁面間的資料傳遞,但其安全性比較差。將要傳遞的資料附加在網頁地址(Url)後面進行傳遞。如:Http://Www.Dicky.Com/Test.Asp?UserName=Dicky,其中?後面所跟著的字串便是傳遞的資料,=前的是變數名,=後面是數值,可以使用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") = "Dicky"
接收頁面:Request.Cookie("CookieName")("Username")
在發送頁面中對Cookie變數賦值,接收頁面中取Cookie變數的值就是所傳遞的資料。
4、Application對象
Application對象是用來記錄整個網站資訊的,是記錄不同瀏覽器端共用的變數,無論有幾個瀏覽者同時存取網頁,都只會產生一個 Application對象執行個體。使用者可以通過定義Application整站共用變數來實現網頁間的資料傳遞。其定義方法是:Application ("變數名")=數值
如:Application("UserName") = Dicky
application對象所定義的變數對於所有瀏覽端都是可見的,所以其使用場合是所有瀏覽端共用的全域資料傳遞。
5、Session對象
Session對象是用來記錄瀏覽器端的變數,是個別瀏覽器端專用的變數,對於每一個瀏覽器訪問時都會自動產生一個Seseion對象,該對象提供一個儲存場所,用來儲存僅僅對該訪問者在會話的活動期間開啟的網頁可用的變數和對象。這樣就用可以用來在Web間傳遞專對單個瀏覽器端使用的資料。其定義方法:Session("變數名")=數值
如:Session("UserName") = Dicky
Session對象所定義的變數只是瀏覽器端的專用變數,所以適用於局部會話間的網頁資料傳遞。
6、結束語
上述介紹的是網頁間資料傳遞的常用方法,各有千秋。其中Url方式和Form方式實現方法簡單,可實現網頁間的簡單資料傳遞,一般為字串類型,其特點是安全性差,而且必須是連續訪問兩頁面間資料傳遞。Cookie只能存放String類型的資料,如果想要存放更為複雜的資料類型,那麼必須先將其轉換為 String類型。Application對象和Session對象操作相對複雜些,瀏覽量非常大的網頁使用時應適量,而且使用結束後盡量清除,否則大量使用有可能會導致伺服器的癱瘓。Session變數的安全性較高,可傳遞專用瀏覽端資料。具體應用決定了資料傳遞方式的選擇,合理資料傳遞方式選擇是 Web頁面的設計中的關鍵考慮因素。