QueryString參數傳遞和Session參數傳遞的對比

首先介紹一下幾種數據類型
5中數據源綁定控件中提供了一下6種常用到的參數類型:
u       Control:參數是網頁中的控件的屬性值。使用控件的編號、名稱來確定控件的屬性值。主要是針對控件的參數。

u       Cookie:參數是HttpCookie對象的值。Cookie能爲Web應用程序保存用戶相關信息,不至於使用戶信息丟失。當用戶下次再訪問這個的站點時,應用程序就可以檢索以前保存的信息。

u       Form:適用於頁面之間傳遞參數。用Form傳遞參數的好處是:參數隱含傳遞,別人無法通過查看文件屬性來看到參數的值,比較適合於在頁面之間傳遞口令等保密參數。

u       Profile:適用於保存當前用戶配置文件中的屬性的值。

u       QueryString:同樣適用用頁面之間傳遞參數。這種方法的主要優點是實現起來非常簡單,然而它的缺點是傳遞的值是會顯示在瀏覽器的地址欄上的,這樣做很不安全,同時又不能傳遞對象,但是在傳遞的值少而安全性要求不高的情況下,這個方法還是一個不錯的方案。

u         Session:適用用頁面之間傳遞參數通過瀏覽器來。把控件中的值存在Session變量中,然後在另一個頁面中使用它,以不同頁面間實現值傳遞的目的。但是,需要注意的是在Session變量存儲過多的數據會消耗比較多的服務器資源,有時候也會造成Session值的丟失。


下面對一下QueryString參數傳遞和Session參數傳遞

A.QueryString參數傳遞

WEB程序開發的過程中常常使用使用QueryString參數傳遞方式。QuerySting在頁面間傳遞值是一種很老的傳參機制。

使用QueryString方法的主要優點是實現起來非常簡單;然而它的缺點是傳遞的值會顯示在瀏覽器的地址欄裏面,這樣對於安全性要求較高的程序來說是很不安全的。但是在傳遞的值少而安全性要求不高的情況下,使用這個方法還是一個不錯的。QueryString方法傳遞值很方便,但是這種方法不能傳遞對象。

使用這種方法的步驟如下:

1.啓動VS2005

2.創建兩個web頁面。

3.添加TextBox控件和按鈕。

4.在按鈕的單擊事件裏創建一個保存URL的字符變量。

5.在保存的URL裏添加QueryString參數。

6.使用Response.Redirect重定向到上面保存的URLDefault頁面

實例代碼如下所示。

源頁面代碼:

protected void Button1_Click(object sender, EventArgs e)

{

//添加url,裏面存放兩個參數,學好和姓名,傳遞給Default頁面

string url;

url = "Default.aspx?xueh=" + TextBox1.Text + "&xingm=" + TextBox2.Text;

Response.Redirect(url);

}

目標頁面代碼:

protected void Page_Load(object sender, EventArgs e)

{

//使用QueryString方法接收從上個頁面傳遞過來的參數信息,學號、姓名

Label1.Text = Label1.Text + Request.QueryString["xueh"];

Label2.Text = Label2.Text + Request.QueryString["xingm"];

}

運行結果
運行頁面程序,運行結果如圖11-34所示。在學號和姓名輸入欄中要傳遞的學號和姓名。

圖11-34 傳值頁面

單擊“傳遞”按鈕,跳轉到下一個頁面,顯示傳遞的學號和姓名。如圖11-35所示。

圖11-35 接收頁面

B.使用Session變量

WEB程序開發的過程中另一種常用的頁面傳值方式是使用Session傳遞方式。這種方式與QueryString傳值方式不同。

通常是把前一個頁面的值保存在Session變量中,然後在另的頁面中使用這些值。但是,需要注意的是在Session變量存儲過多的數據會消耗比較多的服務器資源,所以對於不用的Session值要及時從內存中移除掉。並且長時間不用的Session值會丟失。

使用Session變量傳遞值的一般步驟如下:

1.啓動VS2005

2.創建兩個web頁面。

3.添加TextBox控件和按鈕。

4.在按鈕的單擊事件裏,把控件的值添加到session變量裏。

5.使用Response.Redirect方法重定向到另一個頁面Default頁面

6.在另一個頁面提取session的值,在確定不需要使用該session時,要顯式清除它。

實例代碼如下所示。

源頁面代碼:

protected void Button1_Click(object sender, EventArgs e)

{

//創建兩個Session變量傳值,學好和姓名,傳遞給Default頁面

Session["xueh"] = TextBox1.Text;

Session["xingm"] = TextBox2.Text;

Server.Transfer("Default.aspx");

}

目標頁面代碼:

protected void Page_Load(object sender, EventArgs e)

{

//Default頁面接收傳遞過來的參數信息,學號、姓名

Label1.Text = Label1.Text + Session["xueh"].ToString();

Label2.Text = Label2.Text + Session["xingm"].ToString();

//Session值從內存中移除,避免佔用內存

Session.Remove("xueh");

Session.Remove("xingm");

}

運行結果
運行頁面程序,運行結果如圖11-36所示。在學號和姓名輸入欄中要傳遞的學號和姓名。

圖11-36 傳值頁面

單擊“傳遞”按鈕,跳轉到下一個頁面,顯示傳遞的學號和姓名。如圖11-37所示。

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