移除个别:Session.Remove("aa");
全部清除:Session.Clear(); (一般应用于注销)
如果传中文的时候出了问题的话,解决方法:
编码问题:
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
另外一个方法是在QueryString中先用它对汉字编码: Server.UrlEncode(汉字).ToString();
例如:http://localhost/test.aspx?lanmu=Server.UrlEncode(汉字).ToString()
发送端:
string querystr = "xxxxx";
Response.Redirect(”text.aspx?a="+querystr);
接收端:
Request.QueryString["a"];
简单快捷,但是传递的值会显示在浏览器的地址栏上面,考虑到安全性的问题,则需要(如果中文的话,则进行编码,还有取值时候的反编码)。
同时QueryString是不能传递对象的,顾名思义,传递的是string字符串,所以,在传递一些对安全性要求不高的数值,或者一些短小的字符串时,可以考虑使用。
Server.UrlEncode的编码方式是按照本地程序设置的编码方式进行编码的,而HttpUtility.UrlEncode是默认的按照.net的utf-8格式进行编码的。
客户端
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你可以理解为一个隐藏控件。