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所示。

图11-37 接收页面


转载于:https://www.cnblogs.com/liulanglang/archive/2007/07/19/823636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值