一个班的开学典礼

不抛弃,不放弃!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET的状态管理有哪些?什么作用?

Posted on 2010-07-26 13:19  章魚姐!  阅读(511)  评论(0)    收藏  举报

状态管理是对同一页或不同页的多个请求维护状态和页信息的过程。

 

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说明: