- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
a sp.net 页面间数据传递方法
页面间数据传递方法
0、引言
web 页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。在用 设计开发一个web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确、安全和高效地传送, 提供了状态管理等多种技术来解决保存和传递数据问题,以下来探讨.net 下的解决此问题的各种方法和各自的适用场合。
1、数据传递的各种方法和分析
1.1 使用querystring 方法
querystring 也叫查询字符串, 这种方法将要传递的数据附加在网页地址(url)后面进行传递。如页面a.aspx 跳转到页面b.aspx,可以用request.redirect(b.aspx?参数名称=参数值)方法,也可以用超链接:,页面跳转后,在目标页面中可用ruquest[参数名称]来接收参数。使用querysting 方法的优点是实现简单, 不使用服务器资源;缺点是传递的值会显示在浏览器的地址栏上,有被篡改的风险,不能传递对象,只有在通过url 请求页时查询字符串才是可行的。
1.2 利用隐藏域
隐藏域不会显示在用户的浏览器中, 一般是在页面中加入一个隐藏控件, 与服务器进行交互时把值赋给隐藏控件并提交给下一页面。隐藏域可以是任何存储在网页中的与网页有关的信息的存储库。使用隐藏域存入数值时用:hidden 控件.value=数值,取出接收数值时用:变量=hidden 控件.value。使用隐藏域的优点是实现简单, 隐藏域是标准的html 控件,不需要复杂的编程逻辑。隐藏域在页上存储和读取,不需要任何服务器资源,几乎所有浏览器和客户端设备都支持具有隐藏域的窗体。缺点是存储结构少,仅仅支持简单的数据结构,存储量少,因为它被存储在页面本身,所以无法存储较大的值,而且大的数据量会受到防火墙和代理的阻止。
1.3 viewstate
viewstate 是由 页面框架管理的一个隐藏的窗体字段。当 执行某个页面时,该页面上的viewstate 值和所有控件将被收集并格式化成一个编码字符串, 然后被分配给隐藏窗体字段的值属性。使用viewstate 传递数据时可用:viewstate [ 变量名]=数值,在取出数据时用:变量=viewstate[变量名]。使用viewstate 的优点是:在对同一页的多个请求间自动保留值,不用服务器端资源,实现简单,视图状态中的值经过哈希计算和压缩,并且针对unicode 实现进行编码,其安全性要高于使用隐藏域;缺点是因为viewstate 存储在页面本身,因此如果
存储较大的值,用户显示页和发送页时的速度可能会减慢。虽然视图状态以哈希格式存储数据,但它仍可以被篡改。
1.4 使用cookie
cookie 可以在页面之间传递少量信息, 可以存储在客户端的文本文件中,也可存储在客户端的内存中。cookie 方法适用于存储少量页面中经常改动的信息, 如为登陆过的网站保存登陆用户名,为用户输入提供方便,还有在一些用户自定义项目上保存用户的个性化设置。使用cookie传递数据时可用:response.cookies[键名]=键值;取出数据用:变量名=request.cookies[键名]。使用cookie 优点是:cookie 存储在客户端, 不使用服务器资源,实现简单,可配置到期时间。缺点是:可以存储的数据量比较少,由于cookie 并不被所有的浏览器支持,而且还可能被用户禁止或删除,所以不能用于保存关键数据。另外,cookie 保存的形式是简单的明文文本,在它里面不宜保存敏感的、未加密的
数据。
1.5 使用application 变量
使用application 变量也可以实现页面间的传值,application变量是全局性的,所有用户共享一个application 变量,一旦定义,它将影响到程序的所有部分。如果想在整个应用程序范围使用某个变量值application 对象将是最佳的选择。存入数据时, 把值添加到application 变量里:application[变量名]=数值;取出数据用:变量=application[变量名];在不需要使用该application 时,要显式清除它:application[量名]=null。
application 优点:易于使用,全局范围。可供应用程序中的所有页来访问。缺点:若保存数据的服务器端进程被损坏(如因服务器崩溃、升级或关闭而损坏),那么数据就会丢失,所以利用application 一定要有保底的策略;占用服务器端的内存,这可能会影响服务器的性能以及应用程序的可伸缩性。
1.6 使用session 变量
session 对象可以用来存
文档评论(0)