1、 ,#,第,6,章类与对象,目 录,6.1 ASP.NET,对象概述,6.2 ASP.NET,命名空间,6.3,内置对象,6.4,自定义对象,6.5,配置,Global.asax,文件,6.1 ASP.NET,对象和类的概述,在,ASP.NET,中,所有页面都是继承自,Page,对象,对象是,ASP.NET,中的基本概念。对象能够存储信息,对象也能够拥有一定的行为。,对象是应用程序的逻辑单元,就像高楼大厦是有砖瓦等不同的对象构成的一样,应用程序也是由不同的对象构成的,这些对象可能是系统已经存在的类型的对象,,也可能是用户自定义的类的对象。,6.1.1,对象与类,在,.NET,系统中一切都是对象
2、,每一个对象都是属于某一种类型的,因此构造对象时,我们首先需要知道对象的类型,:,例如:,Dataset ds=new Dataset(),;,/,声明一个对象是存放数据的对象,例如:,int a;a=new int10;/,声明一个一维数组对象,对象是属于某一种类型(即某一种类)的,换句话说任何类都是对象的抽象。,对象包括对象的,属性,和对象的,行为,,因此对对象的抽象其实包括对对象的状态的抽象和对象的行为的抽象。,在,.NET,中,我们通过类的成员变量来表示对象的状态(存储对象的信息),通过对象的成员方法来表示对象的行为。,6.1 ASP.NET,对象和类的概述,6.1.2,分部类,分部类
3、可以将类(结构或接口等)的声明拆分到两个或多个源文件中。若要拆分类的代码,被拆分类的每一部分的定义前边都要用,partial,关键字修饰。分部类的每一部分都可以存放在不同的文件中,编译时会将所有部分组合起来构成一个完整的类声明。,每个网页的逻辑代码中都声明了一个分部类,例如,WebForm3-3,网页的逻辑代码,WebForm3-3.aspx.cs,中有以下代码:,public partial class WebForm3_3:System.Web.UI.Page,6.1.3,定义类的对象,(,1,)定义对象引用,其语法格式如下:,类名 对象名,;,例如,以下语句定义,Person,类的对象引
4、用,p,:,Person p;,(,2,)创建类的实例,其语法格式如下:,对象名,=new,类名,();,例如,以下语句创建,Person,类的对象实例:,p=new Persone();,以上两步也可以合并成一步。其语法格式如下:,类名 对象名,=new,类名,();,例如:,Person p=new Person();,2.,访问对象的字段,访问对象字段的语法格式如下:,对象名,.,字段名,其中,“,.”,是一个运算符,该运算符的功能是表示对象的成员。,例如,前面定义的,p,对象的成员变量表示为:,p.pno,3.,调用对象的方法,调用对象的方法的语法格式如下:,对象名,.,方法名,(,参
5、数表,),例如,调用前面定义的,p,对象的成员方法,setdata,为:,p.setdata(101,Mary);,6.1.3,定义类的对象,C#,提供了各种功能丰富的内建类和结构,其中有些类和结构是经常使用的,本小节予以介绍。,1.String,类,string,类型表示字符串,实际上,,string,是,.NET,框架中的,String,类的别名。,string,类型定义了相等运算符(,=,和,!=,)用于比较两个,string,对象,另外,“,+”,运算符用于连接字符串,“,”,运算符可以用来访问,string,中的各个字符。,例如:,string a=new string(“HELLO
6、”);,a.Tolower;,6.1.4 C#,中常用类和结构,方法,说明,Compare,静态方法。比较两个指定的,String,对象,CompareTo,非静态方法。将此字符串与指定的对象或,String,进行比较,并返回两者相对值的指示,Concat,静态方法。连接,String,的一个或多个字符串,Contains,非静态方法。返回一个值,该值指示指定的,String,对象是否出现在此字符串中,Equals,非静态方法。确定两个,String,对象是否具有相同的值,Format,静态方法。将指定的,String,中的每个格式项替换为相应对象的值的文本等效项,IndexOf,非静态方法。
7、返回,String,或一个或多个字符在此字符串中的第一个匹配项的索引,Insert,非静态方法。在该,String,中的指定索引位置插入一个指定的,String,Remove,非静态方法。从该,String,中删除指定个数的字符,Replace,非静态方法。将该,String,中的指定,String,的所有匹配项替换为其他指定的,String,Split,非静态方法。返回包含该,String,中的子字符串(由指定,Char,或,String,数组的元素分隔)的,String,数组,Substring,非静态方法。从此字符串中检索子字符串,ToLower,非静态方法。返回该,String,转换为
8、小写形式的副本,ToUpper,非静态方法。返回该,String,转换为大写形式的副本,Trim,非静态方法。从此字符串的开始位置和末尾移除一组指定字符的所有匹配项,2.Math,类,名称,说明,Abs,返回指定数字的绝对值,Acos,返回余弦值为指定数字的角度,Asin,返回正弦值为指定数字的角度,Atan,返回正切值为指定数字的角度,Atan2,返回正切值为两个指定数字的商的角度,Ceiling,返回大于或等于指定数字的最小整数,Cos,返回指定角度的余弦值,Cosh,返回指定角度的双曲余弦值,DivRem,计算两个数字的商,并在输出参数中返回余数,Exp,返回,e,的指定次幂,Math,
9、类位于,System,命名空间中,它包含了实现,C#,中常用算术运算功能的方法,这些方法都是静态方法,可通过,“,Math.,方法名,(,参数,),”,来使用,其中常用的方法如下表所示。,Floor,返回小于或等于指定数字的最大整数,Log,返回指定数字的对数,Log10,返回指定数字以,10,为底的对数,Max,返回两个指定数字中较大的一个,Min,返回两个数字中较小的一个,Pow,返回指定数字的指定次幂。,Round,将值舍入到最接近的整数或指定的小数位数,Sign,返回表示数字符号的值,Sin,返回指定角度的正弦值,Sinh,返回指定角度的双曲正弦值,Sqrt,返回指定数字的平方根,Ta
10、n,返回指定角度的正切值,Tanh,返回指定角度的双曲正切值,Truncate,计算一个数字的整数部分,3.Convert,类,ToBoolean,将数据转换成,Boolean,类型,ToDataTime,将数据转换成日期时间类型,ToInt16,将数据转换成,16,位整数类型,ToInt32,将数据转换成,32,位整数类型,ToInt64,将数据转换成,64,位整数类型,ToNumber,将数据转换成,Double,类型,ToObject,将数据转换成,Object,类型,ToString,将数据转换成,string,类型,Convert,类位于,System,命名空间中,用于将一个值类型转
11、换成另一个值类型。其中的方法都是静态方法,可通过,“,Convert.,方法名,(,参数,),”,来使用,常用的方法如下表所示。,4.DateTime,结构,DateTime,结构类位于,System,命名空间中,,DateTime,类型变量表示值范围在公元,0001,年,1,月,1,日午夜,12:00:00,到公元,9999,年,12,月,31,日晚上,11:59:59,之间的日期和时间。可以通过以下语法格式定义一个日期时间变量:,DateTime,日期时间变量,=new DateTime(,年,月,日,时,分,秒,);,例如,以下语句定义了,2,个日期时间变量:,DateTime d1=n
12、ew DateTime(2009,10,1);,DateTime d2=new DateTime(2009,10,1,8,15,20);,6.2 ASP.NET,命名空间,6.2.1,什么是命名空间,在,.NET,中,组织类的方式是命名空间,命名空间是组织类的逻辑单元,命名空间是应用程序的内部组织形式,也成为应用程序的外部组织形式。,使用命名空间组织类还可以解决命名冲突问题。,要在现有的应用程序中包含其他的命名空间,我们可以使用,using,指令,6.2.2,导入命名空间,ASP.NET,提供了很多类,需要对这些类分门别类,给不同的类分配不同的命名空间,以便能找到这些类,命名控件是组织类的逻辑
13、组织,例如:导入命名空间,using System;,using System.Data;,/,数据访问的,using System.Configuration;,/,系统配置,using System.Web;,/,关于,web,using System.Web.Security;,/,安全,using System.Web.UI;,/,界面,using System.Web.UI.WebControls;,/,控件,using System.Web.UI.WebControls.WebParts;,using System.Web.UI.HtmlControls;,/html,控件,usi
14、ng System.Data.SqlClient;,/,连接数据库,6.3 ASP.net,内置对象,6.3.1 ASP.NET,内置对象概述,对象名,说明,ASP.NET,类,Page,对象,用来设置与网页有关的属性、方法和事件,Page,类,Response,提供向浏览器写入信息或者发送指令等功能,HttpResponse,Request,提供从浏览器读取信息或者取客户端信息等功能。,HttpRequest,Application,为所有用户提供共享信息,HttpApplicationState,Server,提供服务器端一些的属性和方法,HttpServerUtility,Session
15、,为某个用户提供共享信息,HttpSessionState,Context,页面上下文对象,使用此类共享页之间的信息,HttpContext,Trace,提供在,HTTP,页输出自定义跟踪诊断消息,TraceContext,6.3.2,Page,对象,Page,对象是由,System.Web.UI,命名空间中的,Page,类来实现的,当浏览器访问,Web,页面时,,Page,类与扩展名为,.aspx,的文件相关联,这些文件在运行时被编译为,Page,对象,,,缓存在服务器内存中。,Page,对象用来设置与当前网页有关的属性、方法和事件。,1,、,Page,对象的属性、方法、事件,名,称,功能说
16、明,IsPostBack,属性,获取一个值,该值用来判断该页是否被加载,IsVaid,属性,获取一个值,该值用来判断该页是否通过验证,Validators,属性,获取请求的网页所包含的全部验证控件集合,DataBind,方法,将数据源绑定到指定的服务器控件,Dispose,方法,强制服务器控件在内存释放之前执行清理操作,FindControl,方法,在页面上搜索指定的服务器控件,Init,事件,设置页面或控件的初始值,Load,事件,网页被加载时发生,Unload,事件,关闭文件、释放对象等时触发,2,、,ASP.NET,网页的处理过程,获取一个布尔值,为,True,表示当前网页是为响应客户端
17、回发(,PostBack,,指网页及操作状态传回服务器)而加载,为,False,时表示首次加载和访问网页。,在,Page_Load,事件处理过程中,通过该属性可以实现首次加载和回发时执行不同的程序代码。,IsPostBack,为,True,响应回发事件,IsPostBack,为,False,首次加载,3,、,Page.IsPostBack,属性,例如,6-1Page.IsPostBack.aspx,设计一个使用,Page,对象的,IsPostBack,属性的网页。,代码,protected void Page_Load(object sender,EventArgs e),if(,Page.I
18、sPostBack,=true),Label1.Text=TextBox1.Text+:,您好,已经提交了,!;,else,Label1.Text=,您还没有提交,!;,获取一个布尔值,指示网页上的验证控件是否验证成功。若网页验证控件全部验证成功,该值为,True,,否则为,False,。,IsValid,属性在网页验证中起着重要作用。,4,、,Page.IsValid,属性,例如,6_2.aspx,以下事件过程标签输出验证结果:,输入用户名和口令,点击按钮,如果验证控件都验证成功,显示验证通过,否则验证失败,若想让按钮,Click 事件绕开验证控件的验证,,可以设置按钮的属性,CausesV
19、alidation=false,,从而饶过验证,代码:,void Button1_Click(Object Sender,EventArgs E),Page.Validate,;,/,调用,Page.Validate,指示页面中所有验证控件进行验证,,如果这些控件中的任何一个未通过验证,,Page.IsValid,属性将返回,false,。,if(Page.IsValid),/,也可写成,if(Page.IsValid=true),label1.Text=,信息验证成功,!;,else,labell.Text=,信息验证失败,;,1.Init,事件,Init,事件对应的事件处理过程为,Page
20、_Init,。在初始化网页时触发该事件。,Init,事件只触发一次。,Init,事件通常用来完成系统所需的初始化,如设置网页、控件属性的初始值。,2.Load,事件,Load,事件对应的事件处理过程为,Page_Load,。当在内存中加载网页时触发该事件。,Load,事件可以触发多次。不管是首次加载,还是按用户要求回送信息再次调用网页的回发加载,,Page_Load,事件处理过程都会被执行。,3.Unload,事件,Unload,事件对应的事件处理过程为,Page_Unload,。当网页从内存中卸载并将输出结果发送给浏览器时触发该事件。,Unload,事件主要用来执行最后的资源清理工作,如关闭
21、文件、关闭数据库连接和释放对象等。,5,、,Page,对象的事件,Response,对象由,System.Web.HttpResponse,类来实现,主要功能是向浏览器中输出信息;,Response,对象的属性,6.3.3 Response,对象,名,称,功能说明,Buffer,属性,获取一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送,Charset,属性,获取或设置输出流的,HTTP,字符集,ContentType,属性,获取或设置输出流的,HTTP MIME,类型,Cookies,属性,获取响应,Cookie,集合,Write,方法,向浏览器输出信息,Redirect,方法
22、,将客户端重新定向到新的,URL,End,方法,将当前所有缓冲的输出发送到客户端,停止该页的执行,WriteFile,方法,向浏览器输出文本文件,Write,方法可以将一个字符串写入,HTTP,响应输出流。,例如:,Response.Write(,现在时间为:,+DateTime.Now.ToString();,用于输出当前的时间。,实际上,Write,方法将指定的字符串输出到客户端,由客户端浏览器解释后输出,所以这个输出字符串中可以包含一些,HTML,格外输出标记。,Response.write(),方法,例如,6_3response.write.aspx,设计一个使用,Response,对
23、象的,Write,方法输出若干文字的网页窗体,.,其设计界面中不包含任何内容。在该网页上设计如下事件过程:,protected void Page_Load(object sender,EventArgs e),Response.Write(,中华人民共和国,);,Response.Write(,中华人民共和国,);,Response.Write(,中华人民共和国,);,Response.Write(,中华人民共和国,);,使用,Redirect,方法可以实现在不同页面之间进行跳转的功能,也就是可以从一个网页地址转到另一个网页地址,可以是本机的网页,也可以是远程的网页地址。例如,输入以下代码:
24、,Response.Redirect(),方法,【,例,6-4.aspx】,功能描述:在一个网页中输入用户名和密码,若用户名和密码匹配,则显示另外一个页显示欢迎辞。,protected void Button1_Click(object sender,EventArgs e),if(TextBox1.Text=wang&TextBox2.Text=1234),Response.Redirect(newredirect.aspx);,End,方法用来输出当前缓冲区的内容,并中止当前页面的处理。例如:,Response.Write(,欢迎光临,);,Response.End();,Response
25、.Write(,我的网站!,);,只输出“欢迎光临”,而不会输出“我的网站!”。,End,方法常常用来帮助调试程序。,Response.End(),方法,例如:停止输出数据,可以直接写在,.aspx,文件中:,%,for(int i=1;i,例如,6_7.aspx,输出文本文件,当前路径,Request,对象由,System.Web.HttpRequest,类来实现,封装了来自客户端的请求信息,可以利用该对象获取客户端的数据;,6.3.4 Request,对象,名,称,功能说明,Browser,属性,获取客户端浏览器的信息,Form,属性,获取表单数据集合,QueryString,属性,获取,
26、HTTP,字符串变量集合,Cookies,属性,获取客户端发送的,Cookie,集合,ServerVariables,属性,获取,Web,服务器变量的集合,MapPath,方法,将指定的虚拟路径映射为物理路径,SaveAs,方法,将,HTTP,请求保存到磁盘,常用属性:,Request,对象功能是从客户端得到数据,常用的三种取得数据的方法是:,Request.Form,Request.QueryString,Request,其第三种是前两种的一个缩写,可以取代前两种情况。而前两种主要对应的,Form,提交时的两种不同的提交方法:分别是,Post,方法和,Get,方法。,使用,QueryStri
27、ng,属性在网页之间传递数据,在上网的过程中,经常发现网址后面跟一串字符,这就是通过,URL,后面的字符串在两个网页之间传递参数,,QueryString,属性保存这些参数和值,因此可以通过,Request,的,QueryString,在网页之间传递信息。,Request.QueryString,属性,6_5.aspx,文件,请单击以下超链接,显示,【,例,6_5.aspx】,设计两个网页,6_5.aspx,和,6_5_1.aspx,,说明,QueryString,属性的使用方法。,6_5_1.aspx.cs,protected void Page_Load(object sender,Eve
28、ntArgs e),string uname,uage;,uname=Request.QueryStringuname;,uage=Request.QueryStringuage;,Label1.Text=uname+:,您好,!,您的年龄为,+uage+,岁,;,或:在,IE,下输入:,localhost/Myaspnet/ch5/,6_5.aspx,?uname=,王华,&uage=20,例如:,WebForm5-11.aspx,设计一个界面输入学号、姓名、性别、班号,传递到,WebForm5-11-1.aspx,显示,WebForm5-11.aspx.cs,protected void
29、Button1_Click(object sender,EventArgs e),string xb,mystr;,if(RadioButton1.Checked),xb=,男,;,else,xb=,女,;,mystr=WebForm5-11-1.aspx?sno=+TextBox1.Text.Trim()+,&sname=+TextBox2.Text.Trim()+&ssex=+xb+,Server.Transfer(mystr);,Mystr=,“,WebForm5-11-1.aspx,?&sno=,张三,&ssex=,女,&sclass=2001,”,WebForm5-11-1.aspx
30、.cs,protected void Page_Load(object sender,EventArgs e),string sno=Request.QueryStringsno;,string sname=Request.QueryStringsname;,string ssex=Request.QueryStringssex;,string sclass=Request.QueryStringsclass;,Response.Write(,学生信息如下,:);,Response.Write(,学号,:+sno+);,Response.Write(,姓名,:+sname+);,Respons
31、e.Write(,性别,:+ssex+);,Response.Write(,班号,:+sclass);,使用,Form,属性在网页之间传递数据,使用,Request,的,Form,属性可以获取客户端通过,POST,方式,传递的表单数据,从而实现网页之间的数据传递。,Request.form,属性,例如:设计两个网页,6_6,和,6_6_1,,说明,Form,属性的使用方法。,请单击提交按钮,6_6_1.aspx.cs,中:,protected void Page_Load(object sender,EventArgs e),string uname,uage;,uname=Request.F
32、ormuname;,uage=Request.Formuage;,Response.Write(:,您好,!,您的年龄为,+uage+,岁”,);,在,6_6_1.aspx,中包含一个字符串,和一个标签,Label1,例如:从浏览器获取数据,客户表单输入,程序名称:,6_8.aspx,姓名:,兴趣:,程序名称:,6_8_1.aspx,姓名:,爱好:,Response.Write(strUserLove)%,Request,.MapPath,()方法,MapPath(VirtualPath),该方法将当前请求的,URL,中的虚拟路径,VirtualPath,映射到服务器上的物理路径。参数,Vir
33、tualPath,用于指定当前请求的虚拟路径(可以是绝对路径,也可以是相对路径)。返回值为与,VirtualPath,对应的服务器端物理路径。,例如,语句:,Response.Write(Request.MapPath(aa);,在浏览器中输出,aa,所在的物理路径。,其使用语法格式如下:,SaveAs(filename,includeHeaders),该方法将客户端的,HTTP,请求保存到磁盘。参数,filename,用于指定文件在服务器上保存的位置;布尔型参数,includeHearders,用于指示是否同时保存,HTTP,头。,例如:,Request.SaveAs(H:aaa,True)
34、;,则执行后在,H,盘根目录产生,aaa,文件。,Request,.SaveAs,()方法,得到客户端的信息,案例名称:读取客户端的信息,程序名称:,4-09.aspx,客户端浏览器:,客户端,IP,地址:,当前文件服务端物理路径:,通过,Server,对象可以访问服务器的方法和属性。,比如得到服务器上某文件的物理路径和设置某文件的执行期限,等等。,6.3.5 Server,对象,方法,说明,CreateObject,创建,COM,对象的一个服务器实例。,Execute,方法,运行另一个网页以执行当前请求,HtmlEncode,方法,对要在浏览器中显示的字符串进行编码,HtmlDecode,方
35、法,对已被编码以消除无效,HTML,字符的字符串进行解码,UrlEncode,方法,对指定字符串以,URL,格式进行编码,UrlPathEncode,对,URL,字符串的路径部分进行,URL,编码,并返回已编码的字符串。,MapPath,返回与,Web,服务器上的指定虚拟路径相对应的物理文件路径。,Transfer,终止当前网页的执行,并开始执行新的请求网页,MachineName,作用是获取服务器的名称,ScriptTimeOut,获取和设置请求超时值(以秒计),Server.MapPath(),方法,使用,MapPath,方法可以获得服务器文件的物理路径。其使用语法格式如下:,Server
36、.MapPath(,虚拟路径字符串,);,例如:,Server.MapPath(“.”)/,当前,路径,所在的物理路径,Server.MapPath(“/abc.txt),传回网站根路径下,abc.txt,文件的位置,取物理路径,案例名称:取物理路径,程序名称:,6-9.aspx,Server.MapPath(.),传回当前文件所在的物理路径:,Server.MapPath(/),传回网站的根路径:,Server.MapPath(/abc.txt),传回网站根路径下,abc.txt,文件的位置,Server.MapPath(/abc),传回网站根路径下,abc,目录的位置,Server.Map
37、Path(abc.txt),传回当前文件所在目录下,abc.txt,文件的位置,注意:直接的,vs2008,运行有问题,放在网站下面没有问题!,Server.HtmlEncode,()方法向浏览器输出,HTML,代码,案例名称:向浏览器输出,HTML,代码,程序名称:,6_10.aspx,Server.Transfer,方法,用户可能希望将用户从一个,ASP.NET,网页重定向到另一个网页。重定向页的方法很多,使用,Server.Transfer,方法就是其中的一种方法,其语法格式如下:,Server.Transfer(URL);,Transfer,方法执行完新的网页后,不再返回原网页执行。,
38、有时用户希望在网页运行时执行其他网页的内容后继续执行当前网页的内容,可以使用,Server.Execute,方法。其语法格式如下:,Server.Execute(URL);,Execute,方法执行完新的网页后再返回原网页执行。,Server.,Execute,方法,方法,Application,对象是共有的对象。所有的用户都可以对某个特定的,Application,对象进行修改。,。,一旦网站服务器被打开,就创建了,Application,对象;所有的用户共用一个,Application,对象并可以对其进行修改;,Application,对象的这一特性使得网站设计者可以方便地创建诸如聊天室和
39、网站计数器等常用,Web,应用程序。,6.3.6 Application,对象,Application,对象常用属性及方法,Application,对象由,System.Web.HttpApplicationState,类来实现,它所维护的是应用程序的状态,和应用程序的生命周期有关,它在用户请求第一个,ASP.NET,页面时开始创建,在程序关闭或进程撤销时结束;,名,称,功能说明,Count,属性,获取,Application,对象变量的数量,Add,方法,将新的对象添加到,Application,对象集合中,Clear,方法,清除全部,Application,对象变量,GetKey,方法,使
40、用索引值获取,Application,对象变量,Lock,方法,锁定,Application,对象变量,UnLock,方法,解除锁定的,Application,对象变量,Remove,方法,移除指定的,Application,对象变量,使用自定义属性,例如:,【,例,6_11.aspx】,设计一个实现简单聊天功能的网页,WebForm5-7,。,其设计界面如下图所示,其中包含一个标签(,Label1,,用于显示聊天内容)、两个文本框(,TextBox1,和,TextBox2,,分别用于输入姓名和聊天记录,,TextBox2,的,TextMode,属性设为,MultiLine,)和一个命令按钮(
41、,Button1,,用于提交聊天记录)。在该网页上设计如下事件过程:,设计界面,【,例,6_11.aspx.cs】,protected void Page_Load(object sender,EventArgs e),if(Applicationchat!=null),Label1.Text=(string)Applicationchat;,protected void Button1_Click(object sender,EventArgs e),if(TextBox1.Text!=),Application.Lock();,Applicationchat=TextBox1.Text+,
42、说,:+,TextBox2.Text+Applicationchat;,Application.UnLock();,Label1.Text=(string)Applicationchat;,else,Response.Write(alert(,必须输入姓名,);,例如,6_12.aspx,网页计数器,案例名称:网页计数器,您是本站点第,位贵宾!,Convert.ToInt32(),则可以将多种类型,(,包括,object,引用类型,),的值转换为,int,案例名称:图形网页计数器,程序名称:,4-14.aspx,public string G(int counter),string myima
43、ge=;,string S=counter.ToString();,for(int i=0;i=S.Length-1;i+),myimage=myimage+;,return myimage;,您是本站第,位贵宾,!,用于将新对象添加到,Application,集合中。其语法格式如下:,Application.Add(,字符串,对象值,),其中,“字符串”指定对象名。例如:,string str1=mystr;,int int1=34;,Application.Add(var1,str1);,Application.Add(var2,int1);,这样,Application,集合中新增了,v
44、ar1,和,var2,两个对象,它们的值分别是“,mystr”,和,34,。,Application,Add(),方法,它们都用删除,Application,集合中的指定对象,其使用语法格式如下:,Application.Remove(,对象名,);,Application.RemoveAt(,对象索引,);,例如:,Application.Remove(var1)/,删除,var1,对象,Application.RemoveAt(1);/,删除,var2,对象,Remove,和,RemoveAt,方法,Session,对象由,System.Web.SessionState.HttpSessi
45、onState,类实现,用来存储或跟踪用户的数据,,使用,Session,对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在,Session,对象中的变量不会清除;,与,Application,不同的是,,Session,存储的信息是局部的,属于某个特定的用户,而,Application,存储的信息是整个应用程序的,使用,Session,的方法,“,Abandon(),”,显式地结束一个会话,利用属性,“,Timeout,”,设置,Session,的失效时间。,6.3.7,Session,对象,属性及方法,名,称,功能说明,Count,属性,获取会话状态集合中的对象个数,
46、TimeOut,属性,获取并设置所允许的最长空闲时间,(,以分钟计,),Mode,属性,获取当前会话状态的模式,Add,方法,向会话状态集合中添加一个新项,Clear,方法,从会话状态集合中移除所有的键和值,Abandon,方法,取消当前会话,Remove,方法,移除指定的,Application,对象变量,【,例,WebForm5-8.aspx,】,设计一个采用,Session,对象在网页之间传递数据的网页,WebForm5-8,和,WebForm5-8-1.aspx,。,在,WebForm5-8.aspx,下,设计界面如下图所示,其中包含两个文本框(,TextBox1,和,TextBox2
47、,,分别用于输入用户名和口令,,TextBox2,的,TextMode,属性设置为,Password,)和一个命令按钮(,Button1,)。在该网页上设计如下事件过程:,protected void Button1_Click(object sender,EventArgs e),Sessionuname=TextBox1.Text;,Sessionupass=TextBox2.Text;,Server.Transfer(WebForm5-8-1.aspx);,protected void Page_Load(object sender,EventArgs e),string mystr;,
48、mystr=,用户名,:+Sessionuname.ToString()+,口 令,:+Sessionupass.ToString();,Response.Write(mystr);,WebForm5-8-1.aspx,的空网页,不放置任何控件,在该网页上设计如下事件过程,设置有效期和使,Session,失效,案例名称:设置,Session,的有效期,程序名称:,6_13.aspx,在另外页面查看,6_13_1.aspx.cs,/6_13_1.aspx.cs,运行结果:在,6_13_1.asp,看不到,session,结果,用于将新对象添加到,Session,集合中。其语法格式如下:,Sess
49、ion.Add(,字符串,对象值,),其中,“字符串”指定对象名。例如:,string str1=mystr;,int int1=34;,Session.Add(var1,str1);,Session.Add(var2,int1);,Session,.,Add,方法,用于清除,Session,集合中所有对象,其使用语法格式如下:,Session.Clear();,Session,.,clear,方法,Session,对象的事件,事件,说明,Start,建立,Session,对象时发生,End,结束,Session,对象时发生,Cookie,对象是,HttpCookieCollection,类的
50、一个实例,可用它存放非敏感的用户信息。当浏览网站时,,Cookies,可以记录用户的,ID,、密码、历史网页、停留的信息等。当用户再次浏览网站时,浏览器会在用户本地硬盘查找与之相关的,Cookies,信息,程序可以根据这些信息作出相应的操作;,Cookies,对象与,Session,对象相似,都可以用来存储或跟踪用户的数据,它们的主要区别在于:,Session,对象的信息保存在服务器上,而,Cookies,对象的信息保存在客户端的浏览器上。,6.3.8,Cookie,对象,Cookie,对象的属性,属性,说明,Name,获取或设置,Cookie,的名称,Expires,获取或设置,Cookie