Asp.net状态管理
来源:互联网 发布:易名中国域名注册 编辑:程序博客网 时间:2024/05/02 02:15
目录
一、基于客户端的状态管理
1、视图状态ViewState
2、隐藏域
3、Cookie集合
4、查询字符串
二、基于服务器端的状态管理
1、Application状态
2、Session
正文
一、基于客户端的状态管理
● 视图状态ViewState
● 隐藏的窗体域
● Cookie
● 查询字符串
1、视图状态ViewState
● ViewState视图状态是所有控件的一个属性。
● HTML源代码中对应一个__ViewState的隐藏字段。
● 以Hash的方式存储(键值对)。
● ASP.NET服务器控件的生命周期
◆ (1)初始化 -Init事件(OnInit方法)
◆ (2)加载视图状态 -LoadViewState方法
◆ (3)处理回发数据 -LoadPostData方法
◆ (4)加载 -Load事件(OnLoad方法)
◆ (5)发送回发更改通知 –RaisePostDataChangedEvent方法
◆ (6)处理回发事件 –RaisePostBackEvent方法
◆ (7)预呈现 –PreRender事件(OnPreRender方法)
◆ (8)保存视图状态 –SaveViewState方法
◆ (9)呈现 –Render方法
◆ (10)处置 –Dispose方法
◆ (11)卸载 –UnLoad事件(OnUnLoad方法)
● 启用视图状态
EnableViewState=”true”
默认为true,如果为false,那么该控件和子控件的视图状态就不会被串行化
● 可以在视图中存储的类型
Int32、Bool、String、Color、Array、ArrayList、Unit及其以上类型的HashTable对象
● 视图状态与安全
视图状态串行化的字符串表达式作为明文来往返传送。这是不安全的。在视图状态中决
不能保存任何信息(例如口令、连接字符、文件路径)。
● 示例
if (ViewState["Count"] == null)
ViewState["Count"] = 0;
int nCount = (int)ViewState["Count"];
nCount += 1;
ViewState["Count"] = nCount;
Label1.Text = nCount.ToString();
2、隐藏域
HtmlInputHidden
<input type=”hidden” value=””/>
可以作为服务器端控件使用
3、Cookie集合
● 存储在客户端的小量文本信息。
● 使用Response对象设置Cookie状态
Response.Cookies[“UserName”].Value=”张三”;
● 使用Request对象读取已有的Cookie
String strName = Request.Cookies[“UserName”].Value;
● 清除Cookie
Response.Cookies[“UserName”].Value=null;
Response.Cookies[“UserName”].Expires=new DateTime(1999,10,12);--设置过期时间
● Cookie的属性
Value:值,String类型。
Domain:设置这个属性后,只有在这个域下才能访问该Cookie。
Path:该属性指定哪些路径下的页面可以访问该Cookie。
Expires:指定Cookie过期的日期。
4、查询字符串
……/a.aspx?para1=abc¶2=123;
QueryString[“para1”].ToString();
大多数浏览器限制URL长度为255个字符长。
二、基于服务器端的状态管理
● Application对象
● Session对象
1、Application状态
● 应用程序级的状态存取
● 变量状态的存储和提取
Application[“Name”]=”张三”;
String strUserName=Application[“Name”];
● 同时访问要加锁
Application.Lock();
……
Application.UnLock();
2、Session
● 对网站的一次访问,超时后,会自动结束会话。
● Session的属性和方法
TimeOut属性:超时时间。默认为20分钟。
Abandon():结束当前会话。会话中的所有信息都被清空。
Clear():删除当前会话中的所有信息,但不结束会话。
IsNewSession:判断是否是一个新的会话,比如用于统计访问量。
- [ASP.NET]状态管理
- ASP.NET状态管理
- ASP.Net状态管理
- ASP.Net状态管理
- ASP.NET状态管理
- ASP.NET状态管理
- ASP.Net状态管理
- ASP.Net状态管理
- ASP.NET状态管理
- ASP.NET状态管理
- Asp.net状态管理
- ASP.NET状态管理
- ASP.NET状态管理
- ASP.NET状态管理
- ASP.NET状态管理
- asp.net状态管理
- ASP.Net状态管理
- Asp.net状态管理
- linux FTP lftp 命令 使用方法
- C# 日期格式大全
- Qt精简编译方法总结
- C语言平面几何16-三角形的外心和外接圆
- HDU 1061 The rightmost digit
- Asp.net状态管理
- Windows 2003 中没有“本地用户和组”
- 来无
- 泛型编程
- 匿名方法、Lambda表达式
- Delphi中高级DLL的编写和调用 收藏
- 算法导论1_排序相关
- vs2005中水晶报表实现
- Datalist Repeater分页