开发者社区> 邵鸿鑫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ASP.NET页面传值

简介:   这个问题是上周去远洋公司面试的一道笔试题,面试的时候面试官也问到了,虽然事先有所准备当时也回答上了,但是从根本上说自己还不太理解。正好这两天做高效平台评教系统的时候用到了页面传值,就又从网上查了一些相关资料。
+关注继续查看

  这个问题是上周去远洋公司面试的一道笔试题,面试的时候面试官也问到了,虽然事先有所准备当时也回答上了,但是从根本上说自己还不太理解。正好这两天做高效平台评教系统的时候用到了页面传值,就又从网上查了一些相关资料。

  常用的页面传值有以下几种:QueryString传值,Session传值,Cookies传值,Application以及Transfer传值。下面我们就一起了解一下各种传值方式的工作机制、相互联系以及优缺点。

  QueryString传值:

  QueryString传值又称作URL传值,是我们常用的也是比较简单的传值方式,它通过把我们需要传的数据拼接到连接地址中传输到目标地址。

  优点:URL传值操作简单,而且被所有浏览器支持,对于字符串类型的数据传输十分有效。

  缺点:安全系数不高,它把我们需要传输的数据完全暴露在地址栏中,如果不通过加密技术,对于安全性高的数据采用URL传值就有些不太理智了。而且该方式对于数据类型有要求,一般只能传递字符串,对于数组以及对象的传递不可使用该方式。

  Session传值:

  Session传值相信大家肯定不会陌生,它跟Application有一些共同点,也有不同之处。它是一个有作用域的全局变量,举个例子吧:对于一个应用网站来说,Session可以单个用户的信息。Application是没有局域限制的全局变量,它可以存储整个网站的信息,比如说网站的实时访问量。

  优点:使用比较简单,不仅可以传输数据,还可以传输对象,数据量的大小不受限制。

  缺点:在Session变量中存储大量的数据会消耗较多的服务器资源,数据容易丢失。

  Application传值:

  这个传值方式大家可能听得或者用的比较少,反正我是没有用过。把它与上面的Session传值联系起来相信我们理解起来就好多了。它在整个应用程序的生命周期中都是有效的,跟全局变量一样,因此可以在任何一个页面对其进行存取操作。

  优点:使用简单,消耗较少的服务器资源,不仅可以传递数据,还可以传递对象,数据量大小不受限制。

  缺点:作为全局变量容易被误操作。

  Cookies传值:

  Cookies传值大家再熟悉不过了,经常用电脑和手机的人可能都会在清理垃圾的时候发现有一项就是清理Cookies,当我们清理了之后,发现一些常用网站先前保存的用户名和密码需要重新输入。这就是Cookies的作用所在,它常用于在用户浏览器上存储一些与用户相关的信息,比如我们的用户名密码,当我们登陆的时候选择了保存用户名密码,信息就会被存入Cookies,下次登录的时候不需要我们人为地输入。所以我们清理垃圾的时候要根据需要选择是否清除这一项。Cookies跟Session也有一些相似之处就是都是针对有单个用户的,但它们本质上的区别在于Session存储在服务器端,而Cookies存储在客户端。

  优点:使用简单,保存用户状态的一种非常有效的方法,信息全部存储在客户端不会给服务器造成压力。

  缺点:安全性不高,容易被伪造,给用户带来一定的内存垃圾。

  Transfer传值:

  Transfer传值比较比较先进,只有Transfer才能算得上是面向对象软件设计所使用的方法。使用Transfer方法把流程从当前页面引导到另一个页面中,也就是我们常说的重定向,新的页面使用前页面的应答流,所以这个方法是完全面向对象的。

  优点:直接在服务器端进行重定向,使用简单方便,减少了客户端对服务器的请求,可以传递各种数据类型的值和控件的值。

  缺点:客户端浏览器中URL地址不会发生变化,因此可能会导致在新的页面出现一些意向不到的情况。比如说原页面跟目标页不在同一个虚拟目录下或其子目录下,一些使用相对路径的图片或者超链接都会导致错误的定向。

  以上这些是我从网上找到的常用的一些ASP.NET页面传值方式,通过自己的一些理解整理出来,有不足之处请大家批评指正。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Asp.Net页面生命周期(多图)
原文 http://www.cnblogs.com/DotNetEnjoy/archive/2013/04/15/3022672.html asp.net的请求处理模型已经讲完几个星期了,但一直没有时间整理,一来是因为知识点确实繁杂,难以整理,二来了解得也不够清晰,存在一些误区。
954 0
ASP.NET 2.0页面的生命周期
在ASP.NET 2.0中,一个ASP.NET页面的生命周期主要为: 客户端请求页面 预初始化(OnPreInit) 初始化(OnInit) 完成初始化(OnInitComplete) 载入ViewState(LoadViewState) 处理回送数据(IPostBackDataHan...
465 0
ASP.NET页面生命周期
常规页生命周期阶段 阶段 说明 页请求 页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。
647 0
ASP.NET页面的生命周期
在ASP.NET 2.0中,一个ASP.NET页面的生命周期主要为: 客户端请求页面 预初始化(OnPreInit) 初始化(OnInit) 完成初始化(OnInitComplete) 载入ViewState(LoadViewState) 处理回送数据(IPostBackDa...
541 0
艾伟_转载:温习:ASP.NET页面生命周期
ASP.NET 页面生命周期虽然是最基础的东东,但我发现很多人不能准确地的说出,可能多数程序人员只是对深层技术感兴趣的原因吧?可是如果忘记了最基础的东西,有时会给你的开发制造很大的麻烦。现在把MSDN上的ASP.NET页面生命周期贴出来,大家温习一下吧(温习之前请问一下自己你知道吗): ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。
772 0
+关注
邵鸿鑫
java相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载