ASP.Net篇之QueryString与页面传值的总结

来源:互联网 发布:百度一下淘宝网首页 编辑:程序博客网 时间:2024/06/07 17:23
首先补充一下Session的删除:
移除个别:Session.Remove("aa");


全部清除:Session.Clear(); (一般应用于注销)


 


QueryString:
如果传中文的时候出了问题的话,解决方法:


编码问题:


<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>


另外一个方法是在QueryString中先用它对汉字编码: Server.UrlEncode(汉字).ToString(); 
例如:http://localhost/test.aspx?lanmu=Server.UrlEncode(汉字).ToString()


 


QueryString在ASP.Net中的基本用法:
发送端:


string querystr = "xxxxx";


Response.Redirect(”text.aspx?a="+querystr);


接收端:


Request.QueryString["a"];


 


QueryString的主要特点:
简单快捷,但是传递的值会显示在浏览器的地址栏上面,考虑到安全性的问题,则需要(如果中文的话,则进行编码,还有取值时候的反编码)。


同时QueryString是不能传递对象的,顾名思义,传递的是string字符串,所以,在传递一些对安全性要求不高的数值,或者一些短小的字符串时,可以考虑使用。


 


QueryString的编码方面Server.UrlEncode、HttpUtility.UrlDecode的区别:
Server.UrlEncode的编码方式是按照本地程序设置的编码方式进行编码的,而HttpUtility.UrlEncode是默认的按照.net的utf-8格式进行编码的。


 


 


Response.Redirect和Server.Transfer区别


请求的过程: 
1)浏览器aspx文件请求--->服务器执行--->遇到Response.Redirect语句->服务器发送Response.Redirect后面的地址给客户机端的浏览器--->浏览器请求执行新的地址 
2)浏览器aspx文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件 
可以见Server.Transfer比Response.Redirect少了一次服务器发送回来和客户端再请求的过程. 
跳转对象: 
1)Response.Redirect可以切换到任何存在的网页。 
2)Server.Transfer只能切换到同目录或者子目录的网页. 
数据保密: 
1、Response.Redirect后地址会变成跳转后的页面地址。 
2、Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值。具有数据保密功能。 
传递的数据量(网址后附带的参数): 
1、Response.Redirect能够传递的数据以2KB(也就是地址栏中地址的最大的长度)为限。 
2、传递的数据超过2KB时,务必使用Server.Transfer。
 


页面传值的总结:
客户端


1.查询字苻串QueryString---利用URL在客户机和服务器间进行数据交换 
2.隐藏的窗体字段hidden---在窗体字段中设置和读取数据 
3.COOKIE---保存在客户浏览器上的数据 
4.视图状态ViewState---保存页面相关数据


服务器端:


5.应用程序Application---这种数据在应用程序整个生命周期内可以被所有用户利用 
6.会话Session---这种数据和每个用户联系 
7.暂存状态Context---这种数据在单个请求过程中存在 
8.缓存Cache---这种数据与应用程序相类似 
9.其他物理数据存放媒体---例如数据库,TXT文本,XML文件等等 
10. 使用Server.Transfer方法


 


请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。 
QueryString  传递一个或多个安全性要求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了 
session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储会导致服务器内存资源的耗尽。  
application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock 
cookie 简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用 
input ttype="hidden" 简单,可能被伪造 
url参数简单,显示于地址栏,长度有限 
Server.Transfer  把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流 
数据库稳定,安全,但性能相对弱


 


什么是Viewstate?它有什么作用?


ViewState用来保存页面状态,就是说提交之后我们还可以看到文本框里面的内容就是ViewState保存的功劳。 
ViewState只维护当前页面的状态,不同页面之间不能共享,Session可以。 
ViewState你可以理解为一个隐藏控件。
原创粉丝点击