状态管理是对同一页或不同页的多个请求维护状态和页信息的过程。
1、Application说明:
应用程序级,保存于服务器端的内存区域的全局性数据。对所有用户而言对指向同一个内存区域。
赋值:
Application.Lock();
Application["数据标识"]=数据内容;
Application.UnLock();
获取:
Object obj=(Object)Application["数据标识"];
特点:
Application.Clear();
2、Cache说明:
应用程序级,保存于服务器端的内存区域的全局性数据。对所有用户而言对指向同一个内存区域。
赋值:
Cache["数据标识"]=数据内容;
Cache.Insert("数据标识", 数据内容, null, DateTime.Now.AddSeconds(10), TimeSpan.Zero); // 创建10秒后缓存过期
Cache.Insert("数据标识", 数据内容, null, DateTime.MaxValue, TimeSpan.FromSeconds(10)); // 创建后10秒不使用时过期
Cache.Insert("数据标识", 数据内容, new CacheDependency("文件路径")); //以文件的是否过期判别
获取:
Object obj=(Object)Cache["数据标识"];
特定:
支持并发处理,无须向Application那样需要lock。
可以设置过期时间。
也可以使用Cache.Add()插入,不过当存在相同名称的项时不会进行覆盖操作或继续添加操作,它会引发异常,但异常并不暴露出来。
而Cache.Insert()方法遇到该情况会执行修改原项操作。
3、Session说明:
用户会话级,保存于服务器端的内存区域的局部性数据。对每个用户而言对指向特定的一个内存区域
赋值:
Session["数据标识"]=数据内容
获取:
Object obj=(Object)Session["数据标识"];
特点:
Session.Timeout = 20;
Session.Clear();
4、ViewState说明:
页面视图级,保存于服务器端的内存区域的局部性数据。对每个用户的每个页面都指派一个特定的内存区域
赋值:
ViewState["数据标识"]=数据内容
获取:
Object obj=(Object)ViewState["数据标识"];
特点:
ViewState是存在页面上的导致ViewState不能跨页面使用,而每个用户访问到的ViewState都是独立的。
ViewState无周期概念,页面在它就在。
可使用Encoding.UTF8.GetString(Convert.FromBase64String(Request["__VIEWSTATE"]))解析。
5、Cookie说明:
应用程序级,保存于客户端的临时文件夹中,有服务端指派,浏览器维护的文本文件。
赋值:
HttpCookie cookie = HttpContext.Current.Request.Cookies["集合名称"]
cookie.Values.Add("数据标识", 数据文本);
Response.Cookies.Add(cookie);
获取:
string 数据文本 = cookie.Values["数据标识"];
特点:
cookie.Expires=DateTime.Now;
客户端可清除。
大多浏览器规定Cookie大小不超过4K,每个站点能保存的Cookie不超过20个,所有站点保存的Cookie总和不超过300个。
UserInfo Sent UserName=jbzhang&UserPassWord=1111 / localhost Wed, 04-Aug-2010 08:41:39 GMT
ASP.NET中有那些内置对象?
1、Response说明:
用于输出数据到客户端,包括向浏览器输出数据、重定向浏览器到另一个URL或向浏览器输出Cookie文件。
类名称是httpResponse。
Response.Write(“字符串”);
Response.Redirect("网页地址"); //客户端跳转
Response.End(); //终止当前页的运行
Response.WriteFile("文件路径"); //向浏览器输出的文件
2、Request说明:
用于让服务器取得客户端浏览器的一些数据(包括从HTML表单用Post或者GET方法传递的参数、Cookie和用户认证)。
类名称是HttpRequest
Request.Form["数据标识"]; //获取Post提交方式的数据;
Request.QueryString["数据标识"]; //获取Get提交方式的数据;
Request["数据标识"]; //获取任何方式的数据;
Request.ServerVariables; //获取环境变量集合。
...
3、Server说明:
用于提供对服务器上的方法和属性进行的访问。
类名称是HttpServerUtility。
Server.MachineName; //获取服务器的计算机名称。
Server.ScriptTimeout; //获取和设置请求超时(以秒计)。
Server.Execute("网页地址"); //执行当前服务器上的另一个aspx页,执行完该页后再返回本页继续执行
Server.HtmlEncode("页面html"); //对要在浏览器中显示的字符串进行HTML编码并返回已编码的字符串。
Server.HtmlDecode("页面html"); //对HTML编码的字符串进行解码,并返回已解码的字符串。
Server.MapPath("文件路径"); //返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径
Server.Transfer("网页地址"); //终止当前页的执行,并为当前请求开始执行新页。
Server.UrlEncode("页面url"); //将代表URL的字符串进行编码。
Server.UrlDecode("页面url"); //对已被编码的URL字符串进行解码,并返回已解码的字符串。
4、Application说明:
5、Session说明:
6、Cookie说明:
浙公网安备 33010602011771号