ASP.Net篇之QueryString與頁面傳值的總結

ASP.Net篇之QueryString與頁面傳值的總結

首先補充一下Session的刪除:

移除個別:Session.Remove("aa");

全部清除:Session.Clear(); (一般應用於註銷)

 

QueryString:

如果傳中文的時候出了問題的話,解決方法:

編碼問題:

<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>

另外一個方法是在QueryString中先用它對漢字編碼: Server.UrlEncode(漢字).ToString(); 
例如:http://localhost/test.aspx?lanmu=Server.UrlEncode(漢字).ToString()

 

QueryString在ASP.Net中的基本用法:

發送端:

string querystr = "xxxxx";

Response.Redirect(”text.aspx?a="+querystr);

接收端:

Request.QueryString["a"];

 

QueryString的主要特點:

簡單快捷,但是傳遞的值會顯示在瀏覽器的地址欄上面,考慮到安全性的問題,則需要(如果中文的話,則進行編碼,還有取值時候的反編碼)。

同時QueryString是不能傳遞對象的,顧名思義,傳遞的是string字符串,所以,在傳遞一些對安全性要求不高的數值,或者一些短小的字符串時,可以考慮使用。

 

QueryString的編碼方面Server.UrlEncode、HttpUtility.UrlDecode的區別:

Server.UrlEncode的編碼方式是按照本地程序設置的編碼方式進行編碼的,而HttpUtility.UrlEncode是默認的按照.net的utf-8格式進行編碼的。

 

 

Response.Redirect和Server.Transfer區別


請求的過程: 
1)瀏覽器aspx文件請求--->服務器執行--->遇到Response.Redirect語句->服務器發送Response.Redirect後面的地址給客戶機端的瀏覽器--->瀏覽器請求執行新的地址 
2)瀏覽器aspx文件請求->服務器執行->遇到Server.Transfer語句->服務器轉向新的文件 
可以見Server.Transfer比Response.Redirect少了一次服務器發送回來和客戶端再請求的過程. 
跳轉對象: 
1)Response.Redirect可以切換到任何存在的網頁。 
2)Server.Transfer只能切換到同目錄或者子目錄的網頁. 
數據保密: 
1、Response.Redirect後地址會變成跳轉後的頁面地址。 
2、Server.Transfer後地址不變,隱藏了新網頁的地址及附帶在地址後邊的參數值。具有數據保密功能。 
傳遞的數據量(網址後附帶的參數): 
1、Response.Redirect能夠傳遞的數據以2KB(也就是地址欄中地址的最大的長度)爲限。 
2、傳遞的數據超過2KB時,務必使用Server.Transfer。

 

頁面傳值的總結:

客戶端

1.查詢字苻串QueryString---利用URL在客戶機和服務器間進行數據交換 
2.隱藏的窗體字段hidden---在窗體字段中設置和讀取數據 
3.COOKIE---保存在客戶瀏覽器上的數據 
4.視圖狀態ViewState---保存頁面相關數據

服務器端:

5.應用程序Application---這種數據在應用程序整個生命週期內可以被所有用戶利用 
6.會話Session---這種數據和每個用戶聯繫 
7.暫存狀態Context---這種數據在單個請求過程中存在 
8.緩存Cache---這種數據與應用程序相類似 
9.其他物理數據存放媒體---例如數據庫,TXT文本,XML文件等等 
10. 使用Server.Transfer方法

 

請說明在.net中常用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。 
QueryString  傳遞一個或多個安全性要求不高或是結構簡單的數值。但是對於傳遞數組或對象的話,就不能用這個方法了 
session(viewstate) 簡單,但易丟失 作用於用戶個人,過量的存儲會導致服務器內存資源的耗盡。  
application 對象的作用範圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock 
cookie 簡單,但可能不支持,可能被僞造 Cookie是存放在客戶端的,而session是存放在服務器端的。而且Cookie的使用要配合ASP.NET內置對象Request來使用
input ttype="hidden" 簡單,可能被僞造 
url參數簡單,顯示於地址欄,長度有限 
Server.Transfer  把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流 
數據庫穩定,安全,但性能相對弱

 

什麼是Viewstate?它有什麼作用?

ViewState用來保存頁面狀態,就是說提交之後我們還可以看到文本框裏面的內容就是ViewState保存的功勞。 
ViewState只維護當前頁面的狀態,不同頁面之間不能共享,Session可以。 
ViewState你可以理解爲一個隱藏控件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章