【asp.net】常用内置对象(session,Application,ViewSate)
来源:互联网 发布:网络舆情重要性 编辑:程序博客网 时间:2024/05/21 11:00
(一)Session
Session对象可以为每个用户的会话存储信息,而且这个信息只能被用户自己使用,而不能被其他用户访问.它可以在不同的页面间共享数据,但是不能再用户间共享数据. SessionID作为session的一个特殊的标志符,就起到了这样的作用.
Session允许程序员把任何类型的数据存储在服务器上,它不会传送给客户端.它是理想的信息存储器,我们常见的例子,就是当我们从一个页面跳转到另一个页面时,可以在它里面存储购物篮的内容.
事件
Session有两个事件:session_OnStart和Session_OnEnd.前者在创建一个Session时被触发,后者在Session结束(或者超时或者调用了Abandon方法)被调用.可以在Global.asax中为这两个事件增加处理代码.
(二)application
Application的原理是在服务器端建立一个状态变量,来存储所需的信息,.
这个状态变量是存在内存中的,其次这个状态变量时可以被网站的所有页面访问的.
一些特点
1. 一个网站可以有不止一个Application对象.典型情况下,可以针对个别任务的一些文件创建个别的application对象.比如可以创建一个Application对象来适用于全部共用用户,再创建另外一个只适用于网络管理员的application对象
2. 在服务器运行期间永久的保存数据.当关闭IIS或者使用Clear时,其生命周期终止
3. 因为多个用户可以共用一个Application所以必须要有Lock和Unlock方法,以此来保证多个用户之间无法同时改变某一属性
(三)ViewState
ViewState(视图)是asp.net的一种重要机制,使用这种机制,可以用来根据服务器控件的状态值,否则这些值将不作为HTTP窗体的一部分而回传。例如,由label控件显示的文本默认情况下就保存在ViewState中。
在asp时代, 一个html控件的值(比如input 控件值),当我们把表单提交到服务器后, 页面再刷新回来的时候, input里面的数据已经被清空. 这是因为web的无状态性导致的, 服务端每次把html输出到客户端后就不再于客户端有联系.而使用ViewState就可以改变这一点。
也就是说,当页面提交的时候,页面控件中的值会保存到这个对象中,当页面刷新后我们可以从这个对象中提取出这些控件原来的值。从而保存以前的值。
但是使用ViewState安全性不是太高,它只是经过一个Base64加密过的字符串,很容易通过反向工程得到该数据
下面是一段实例
web页创建了一个Button控件和一个TextBox控件
protected void Button1_Click(object sender, EventArgs e) { //判断是否有ViewState,没有的话则创建一个ViewState. if (ViewState["count"] == null) { ViewState["count"] = 0; //创建一个viewState,并赋值为0 } int ncount = (int)ViewState["count"];//此处需要类型转换 ncount += 1; ViewState["count"] = ncount; TextBox1.Text = ViewState["count"].ToString(); }
ViewState和Session
ViewState和Session在代码上看是很相近的。但是在运行过程中确有很大的不同。
1. 从保存方式。Session是保存在内存中的,所以说如果大量使用Session,内存消耗很大。而ViewState是通过隐藏控件来实现保存的。所以说大量使用会增加页面html的输出量,占用更都的带宽
2. Session的使用期默认20分钟,而ViewState则没有这个限制
3. viewstate并不是能存储所有的.net类型数据,它仅仅支持String、Integer、Boolean、Array、ArrayList、Hashtable 以及自定义的一些类型.
- 【asp.net】常用内置对象(session,Application,ViewSate)
- ASP.NET内置对象之Application 与Session对比
- ASP.NET内置对象之Session ,Cookie ,Application
- Asp.Net Application和Session内置对象讲解
- asp.net 内置对象session
- ASP.NET的内置对象:Application对象
- ASP内置对象之Application对象&Server对象&Session对象
- ASP.NET~常用内置对象
- ASP.NET~常用内置对象
- ASP.NET~常用内置对象
- ASP.NET内置对象Session对象
- ASP.NET的内置对象:Session对象
- asp.net Application对象session对象
- ASP.NET,保存信息的内置对象,如Application,Session,Cookie,Viewstate和Cache等
- ASP.NET的内置对象session
- ASP.NET的内置对象-Session
- ASP中常用Application和Session对象
- 内置对象(Session、Application、ViewState)
- Linux导入导出Oracle数据库
- [002] 微信公众帐号开发教程第2篇-微信公众帐号的类型(普通和会议)
- 在熟练使用2B铅笔前,请不要打开Axure
- XPOSED源码研究之XposedInstaller(6)DownloadFragment
- hdu 3465 Life is a Line 树状数组求逆序数
- 【asp.net】常用内置对象(session,Application,ViewSate)
- [Elasticsearch] 过滤查询以及聚合(Filtering Queries and Aggregations) 5
- JAVA 集合
- 初学数据结构之队列
- git学习笔记
- LeetCode(39) Combination Sum
- 欢迎使用CSDN-markdown编辑器
- 位运算
- hdoj 3062 Party 【2-sat入门 :布尔表达式建边 有向图tarjan求SCC】 【离散没学好是硬伤】