您的位置:首页 > 编程语言 > ASP

Asp.net浅谈之——内置对象

2014-03-31 17:01 99 查看
学习ASP.NET过程中,接触了很多种保存信息的内置对象,甚至一些即使也没有学习之前也刚刚听说他们的大
名,如:Application,Session,Cookie等。下面简单介绍它们的用法和一些区别。

Response 服务器端将数据作为请求的结果发送到浏览器端(输出)
Request 浏览器端对当前页请求的访问发送到服务器端(输入)
Application 存储跨网页程序的变量或对象,中止于停止IIS服务(公用变量和对象)
Session 存储跨网页程序的变量或对象,中止于联机离线或有效时间(单一用户对象)
Server 定义一个与Web服务器相关的类提供对服务器上方法和属性的访问
Cookie 保存客户端浏览器请求的服务器页面,存放保留非敏感用户信息



Request对象

Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET方法传递的参数、
Cookie和用户认证。因为Request对象是Page对象的成员之一,所以在程序中不需要做任何的声明即可直接使用;

实例:查询浏览器的相关信息

Response.Write(Request.Browser.Platform);
Response.Write("<br>");
Response.Write(Request.UsrHostAddress);
Response.Write("<br>");
Response.Write(Request.QueryString);
Response.Write("<br>");


Response对象

Response对象用来访问所创建的并客户端的响应,输出信息到客户端,它提供了标识服务器和性能的HTTP变量,
发送给浏览器的信息和在cookie中存储的信息。它也提供了一系列用于创建输出页面的方法,如Response. Write方法。

Response.Write("欢迎光临天神的博客!<br>")
Response.WriteFile(@"E:\test.txt");
Response.Redirect("login.aspx");


Application对象

在asp.net环境下,Application对象来自HttpApplictionStat类。它可以在多个请求、连接之间共享公用信
息,也可以在各个请求连接之间充当信息传递的管道。使用Application对象来保存我们希望传递的变量。由于在整
个应用程序生存周期中,Application对象都是有效的,所以在不同的页面中都可以对它进行存取,就像使用全局变
量一样方便。

语法:

Application["变量"]="变量内容";

实例:


Application.Add("App1","Value1");
Application.Add("App2","Value2");
for(inti=0;i<Application.Count;i++)
{Response.Write("变量名:"+Application.GetKey(i));
 Response.Write(",值:"+Application[i]+"<p>");


Server对象

Server对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。Server对象也是Page对象的成员之一,主要提供一些处理页面请求时所需的功能;例如建立COM对象、将字符串的编译码等工作。

实例:
Response.Write(Server.MapPath("Default.aspx"));
Response.Write(Server.HtmlEncode("<b>天神</b>"));
Response.Write(Server.HtmlDecode("<b>天神羽翼</b>"));
Response.Write(Server.MachineName);
Response.Write(Server.ScriptTimeOut);


Session对象



Session对象用来保存与特定用户相关的信息,Session中的数据保存在服务器端,在客户端需要的时候创建

Session,在客户端不需要的时候销毁Session,使它不再占用服务器内存。前面说了服务器并不管客户端是否依然存
在,因而它也无法确定客户端什么时间不再使用它,但是如果在客户端不再用的时候不及时销毁Session的话,服务
器很快就会内存不足。为了解决这个问题,给Session加了一个生命周期,当服务器发现Session超过了它的生命周
期,就会释放该Session所占用的内存空间。

Session具有以下特点:

Session中的数据保存在服务器端;
Session中可以保存任意类型的数据;
Session默认的生命周期是20分钟,可以手动设置更长或更短的时间。

语法:

Sessionp["变量名"]="内容"; //对象中存放信息
VariablesName=Session["变量名"]; //从会话中读取信息

实例:


Session["name"]=this.Text1.Text;  //放入Default.aspx页面中的TextBox控件
Response.Redirect("Default.aspx");
this.Label1.Text=Session["name"].ToString();//在Default2.aspx页面中放入Label控件以读取会话中的信息。


Cookie对象

Cookie对象和Session对象一样也是用来保存特定的用户相关的数据,不过Session不同的是Cookie保存在客户
端而不是服务器上,每次客户端发出请求的时候都会把Cookie一起发送到服务器,服务器每次响应客户端请求的时候
会重新把Cookie发送到客户端保存。

Cookie保存数据有以下特点:

Cookie中的数据保存在客户端;
Cookie中只能保存字符串类型的数据,如果需要在Cookie中保存其它类型数据,需要将其转换成字符串类型后保存;
Cookie也有其默认生命周期,也可以手动设置,最大可设置成50年之后过期。

同Session的情况一样,有可能在一个网站中使用到的Cookie不止一个,我们仍通过Cookie的名称来区分不同
的Cookie。

实例14-18:获取客户端发送的Cookie信息
下面的示例是依次通过客户端发送的所有Cookie,并将每个Cookie的名称、过期日期、安全参数和值发送到HTTP输出。
int loop1, loop2;
HttpCookieCollection MyCookieColl;
HttpCookie MyCookie;
MyCookieColl = Request.Cookies;
//把所有的cookie名放到一个字符数组中
String[] arr1 = MyCookieColl.AllKeys;
//用cookie名获取单个cookie对象
for (loop1 = 0; loop1 < arr1.Length; loop1++)
{
   MyCookie = MyCookieColl[arr1[loop1]];
   Response.Write("Cookie: " + MyCookie.Name + "<br>");
   Response.Write("Expires: " + MyCookie.Expires + "<br>");
   Response.Write ("Secure:" + MyCookie.Secure + "<br>");
//将单个cookie的值放入一个对象数组
   String[] arr2 = MyCookie.Values.AllKeys;
//遍历cookie值集合打印所有值 
   for (loop2 = 0; loop2 < arr2.Length; loop2++)
   {
      Response.Write("Value" + loop2 + ": " + arr2[loop2] + "<br>");
   }


下面是Session、Cookie和Application的区别:


名称
使用范围
存储位置
存放数据类型
生命周期
Session
特定用户
服务器
Object,也就是任意类型
有,可以自行设置
Cookie
特定用户
客户端
String,也就是值字符串
可以自行设置
Application
所有用户
服务器
Object,也就是任意类型

总结:

Asp.net内置对象会被我们经常使用,了解他们的属性和方法以及各自的特点,方便我们在做项目的时候合理的使
用它们,同时了解他们的一些特征和彼此之间的区别,可以帮助我们避免一些不必要的错误,比如:Cookie的空间看
小,存放大量数据时容易丢失。合作开发时要慎重使用Session等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: