您的位置:首页 > 编程语言 > ASP

介绍ASP.NET页面之间数据传递的几种方法,并介绍一些这些方法的优缺点?

2008-03-30 19:46 701 查看
1)Request.QueryString 在ASP时代,这个是较常用的方法,到了ASP.NET,好像用的人不多了,但是不管怎么说,这是一个没有过时,且很值得推荐的方法,因为不管是ASP还是ASP.NET,最基本的都还是基于HTTp协议的。 缺点是非常明显的,让在多个页面传递时,可能就Request不到了

2)Session 这个是最常用的一个方法,Session的优点是使用简单,缺点是占用服务器资源,因为每一个Session都意味这服务器需要维护相应客户的会话信息,自然如果登录的用户多了,那么将非常占用服务器资源。另外Session还有一个缺点,默认的如果你登录后20分钟内没有任何动作,服务器自动会取消该会话,所以那时你又需要登录。 PS。这里使得我想起一个事情,前几天有一个公司让我看了一段代码,在登录时,就是使用Session记录用户登录的,My GOD,微软知道了肯定要吐血!!它辛辛苦苦给你提供的web.config里的配置 <deny user="*"/> 就要这一个配置,你不用,仍然用ASP时代的Session,岂不是浪费了MS的一片苦心

3)Application 这个在ASP时代还是比较常用的,主要用去存储全局变量,例如数据库链接信息,到了ASP.NET时代,用的不多,至少我好象一直没有用过。

4)Cookie 这个是我的最爱,Cookie最大的特点是由客户端维护,不用占用服务器资源,而且你可以设定用户登录时,Cookie的有效期,例如一天,这样在一天内你不用担心系统再让你登录。当然Cookie也有缺点,那就是安全性,因为Cookie在客户端,确实有些软件可以分析Cookie的登录信息,所以你写入Cookie的内容不要过于敏感,例如不要存储密码,还有作为安全,写入Cookie的内容最好要加密。

5)Viewstate ASP.NET新增的,Viewstate使用简单,缺点是只能够在同一个页面使用,在ASP.NET2.0里这个问题可以使用Button的PostBackUrl进行结果。

6)Cache 使用Cache存储数据还想不多,但是毕竟也是一种手段,另外,在使用Cache存储DataSet时,其实还是引用而不是内容的拷贝。

一、目前在ASP.NET中页面传值共有这么几种方式:

1、表单提交, <form action= "target.aspx" method = "post" name = "form1"> <input name = "param1" value = "1111"/> <input name = "param2" value = "2222"/> </form> .... form1.submit(); .... 此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。

2、<A href="target.aspx?param1=1111&m2=2222">链接地址传送</A> 接收页面: string str = Request["param1"]

3、Session共享 发送页面:Session("param1") = "1111"; 按收页面 string str = Session("param1").ToString();

4、Application共享 发送页面: Application("param1") = "1111"; 按收页面: string str = Application("param1").ToString(); 此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。

5、Cookie

6、Response.Redirect()方式 Response.Redirect("target.aspx?param1=1111&m2=2222") 接收页面: string str = Request["param1"]

7、Server.Transfer()方式。 Server.Transfer("target.aspx?param1=1111&m2=2222") 接收页面: string str = Request["param1"]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: