ASPnet1开发环境和内置对象

上传人:痛*** 文档编号:161439314 上传时间:2022-10-14 格式:PPT 页数:72 大小:2.06MB
收藏 版权申诉 举报 下载
ASPnet1开发环境和内置对象_第1页
第1页 / 共72页
ASPnet1开发环境和内置对象_第2页
第2页 / 共72页
ASPnet1开发环境和内置对象_第3页
第3页 / 共72页
资源描述:

《ASPnet1开发环境和内置对象》由会员分享,可在线阅读,更多相关《ASPnet1开发环境和内置对象(72页珍藏版)》请在装配图网上搜索。

1、3.1一个简单的一个简单的ASP.NET3.2 ASP.NET3.3 ASP.NET控件和内置对象控件和内置对象ResponseRequestSessionApplicationCookie第第3-1章章 开发环境和内置对象开发环境和内置对象3.1一个简单的ASP.NET应用程序3.1.1 创建创建ASP.NET应用程序应用程序【例例11.1】基于基于C#的简单的简单ASP.NET应用程序。应用程序。这是一个简单的这是一个简单的ASP.NET应用程序,其作用是将文本框中输入的字符串应用程序,其作用是将文本框中输入的字符串显示在网页上。显示在网页上。创建步骤如下:创建步骤如下:(1)启动)启动V

2、S 2008,选择,选择“文件文件”|“新建新建”|“项目项目”,打开,打开“新建项目新建项目”对话框。在此对话框的对话框。在此对话框的“项目类型项目类型”框中选择框中选择“Visual C#”项,在项,在“模模板板”框中选择框中选择“ASP.NET Web应用程序应用程序”,表示要创建基于,表示要创建基于C#的的ASP.NET应用程序,将程序名设置为应用程序,将程序名设置为MyFirstWebApp:(2)单击)单击【确定确定】按钮,然后在生成界面的按钮,然后在生成界面的“解决方案资源管理器解决方案资源管理器”中右击中右击“Default.aspx”节点,在弹出的菜单中选择节点,在弹出的菜单

3、中选择“视图设计器视图设计器”,以,以可打开页面的视图设计器。可打开页面的视图设计器。(3)将工具箱中的三个控件拖到设计界面中,这三个控件分别是)将工具箱中的三个控件拖到设计界面中,这三个控件分别是Label、TextBox和和Button控件,并适当设置它们的属性和位置:控件,并适当设置它们的属性和位置:3.1一个简单的ASP.NET应用程序3.1.1 创建创建ASP.NET应用程序应用程序(4)在设计界面中,双击)在设计界面中,双击【访问控件访问控件】按钮,即可进入到该按钮的事按钮,即可进入到该按钮的事件处理函数中,实际上是在件处理函数中,实际上是在Default.aspx.cs文件中生成

4、了文件中生成了Button1_Click函数。在该函数中,添加下列代码:函数。在该函数中,添加下列代码:Label1.Text=TextBox1.Text;Label1.Font.Size=20;(5)运行程序)运行程序MyFirstWebApp。方法是:按。方法是:按【Ctrl】+【F5】按钮直按钮直接运行,也可以单击快捷菜单栏上的接运行,也可以单击快捷菜单栏上的“启动调试启动调试”按钮(相当于按按钮(相当于按【F5】)。在打开的)。在打开的IE浏览器界面的文本框中输入一些字符串,然后单浏览器界面的文本框中输入一些字符串,然后单击击【访问控件访问控件】按钮:按钮:至此,一个简单的至此,一个简

5、单的ASP.NET应用程序开发完毕。应用程序开发完毕。3.1一个简单的ASP.NET应用程序3.1.1 创建创建ASP.NET应用程序应用程序读者可能注意到,虽然做的是网页程序,但没有感觉到要编写任何的网读者可能注意到,虽然做的是网页程序,但没有感觉到要编写任何的网页代码(编写页代码(编写HTML代码是一件烦杂的事情),而只是进行控件的拖放、代码是一件烦杂的事情),而只是进行控件的拖放、控件属性的设置以及控件属性的设置以及C#代码的编写,这与开发代码的编写,这与开发C#窗体应用程序几乎没窗体应用程序几乎没有什么区别。这是有什么区别。这是ASP.NET对对Web应用程序设计的极大改进。应用程序设

6、计的极大改进。造成这种改进主要是由于造成这种改进主要是由于.NET平台采用了平台采用了界面和代码分开的策略界面和代码分开的策略,即,即网页文件放在网页文件放在Default.aspx文件文件中,而中,而C#代码则放在代码则放在Default.aspx.cs文件文件中。中。3.1一个简单的ASP.NET应用程序3.1.1 创建创建ASP.NET应用程序应用程序Default.aspx.cs文件文件是与页面元素相关联的是与页面元素相关联的C#文件,它就是文件,它就是ASP.NET代代码隐藏的地方。对码隐藏的地方。对ASP.NET应用程序来说,这里就是程序员的应用程序来说,这里就是程序员的“用武之用

7、武之地地”。前面指出的。前面指出的“界面元素和代码分开界面元素和代码分开”,指的就是将程序文件分为,指的就是将程序文件分为ASP.NET应用中的应用中的.aspx文件和文件和.aspx.cs文件。文件。ASP(Active Server Pages)是)是Microsfot公司于公司于1996年年11月推出的面向月推出的面向WEB应用程序开发的技术框架,但它不是程序设计语言,也不是开发应用程序开发的技术框架,但它不是程序设计语言,也不是开发工具。简单地,工具。简单地,ASP主要是由主要是由“”挂起来的代码嵌入到挂起来的代码嵌入到HTML中的一种技术。这些代码是在服务器端执行,执行时无需编译,中

8、的一种技术。这些代码是在服务器端执行,执行时无需编译,可以用任何的文本编辑器编写(如记事本等)。此外,可以用任何的文本编辑器编写(如记事本等)。此外,ASP可以通过内可以通过内置的组件实现更强大的功能,如使用置的组件实现更强大的功能,如使用ADO可以轻松地访问数据库。可以轻松地访问数据库。ASP.NET则是从则是从HTML发展到发展到ASP,然后伴随着微软的,然后伴随着微软的.NET技术的推技术的推出而出现的。出而出现的。ASP.NET不是不是ASP的简单升级,而是全新一代的动态网页的简单升级,而是全新一代的动态网页开发系统,用于在一台开发系统,用于在一台Web服务器上建立强大的应用程序。它是

9、服务器上建立强大的应用程序。它是Microsoft.NET技术的一个组成部分,是技术的一个组成部分,是ASP和和.NET技术结合的产物。技术结合的产物。在在Microsoft Visual Studio 2005/2008中,利用中,利用.NET提供的控件,可快速提供的控件,可快速开发开发ASP.NET应用程序,大大简化了编码的过程。应用程序,大大简化了编码的过程。3.2 关于ASP.NET3.1.1 创建创建ASP.NET应用程序应用程序相对相对ASP而言,而言,ASP.NET具有的主要优势包括:具有的主要优势包括:u实现界面和代码的分开实现界面和代码的分开u编译执行编译执行u使用强类型(使

10、用强类型(strongly-type)编程语言)编程语言3.2 关于ASP.NET3.1.1 创建创建ASP.NET应用程序应用程序ASP.NET主要包括两种编程模型:主要包括两种编程模型:WebForm:提供了建立功能强大、外观丰富的基于表单:提供了建立功能强大、外观丰富的基于表单(Form)的可的可编程编程Web页面,这几乎与页面,这几乎与VB.NET、C#.NET的窗体开发界面是一样的窗体开发界面是一样的的WebService:通过对:通过对HTTP、XML、SOAP、WSDL等等Internet标准标准的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远的支持提供在异构网络环境

11、下获取远程服务、连接远程设备、交互远程应用的编程界面程应用的编程界面ASP.NET提供了大量的提供了大量的控件,当用户将控件拖控件,当用户将控件拖到到Web窗体设计界面时,窗体设计界面时,会自动生成相应的会自动生成相应的HTML代码和代码和C#代码。代码。这为这为Web应用程序的可应用程序的可视化界面设计提供极大视化界面设计提供极大的便利,避免了使用的便利,避免了使用HTML标记语言编写大标记语言编写大量代码的麻烦。量代码的麻烦。ASP.NET控件主要分为控件主要分为两大类两大类:Web窗体控件窗体控件和和HTML控件:控件:3.3 ASP.NET控件和对象3.3.1 ASP.NET控件控件对

12、于对于Web窗体控件和窗体控件和HTML控件,需要注意以下几点:控件,需要注意以下几点:(1)Web窗体控件是服务器端控件,即它们在服务器端运行,因此不窗体控件是服务器端控件,即它们在服务器端运行,因此不要求客户端浏览器支持要求客户端浏览器支持Web窗体控件(如不要求安装窗体控件(如不要求安装.NET Framework等),我们在浏览器看到的只是这些控件运行后输出的结果;等),我们在浏览器看到的只是这些控件运行后输出的结果;HTML控控件是客户端控件,只有浏览器支持这些控件,它们才能运行。件是客户端控件,只有浏览器支持这些控件,它们才能运行。(2)Web窗体控件是以窗体控件是以C#为脚本语言

13、,其功能十分强大。为脚本语言,其功能十分强大。HTML控件控件则以则以javascript等为脚本语言,其功能较前者弱得多。等为脚本语言,其功能较前者弱得多。(3)在设计界面上,当双击)在设计界面上,当双击Web窗体控件时,会自动在窗体控件时,会自动在.cs文件中形成文件中形成并打开控件的并打开控件的Click事件处理函数(事件处理函数(C#语言),以供用户编写代码;当语言),以供用户编写代码;当双击双击HTML控件时,则会自动在控件时,则会自动在.aspx文件中形成并打开控件的文件中形成并打开控件的onclick事件处理函数(事件处理函数(javascript语言)。语言)。3.3 ASP.

14、NET控件和对象3.3.1 ASP.NET控件控件【例例11.2】使用使用ASP.NET控件实现页面之间传递数据的控件实现页面之间传递数据的ASP.NET应用程应用程序。序。本例介绍如何使用本例介绍如何使用QueryString来解决这个问题。来解决这个问题。3.3 ASP.NET控件和对象3.3.1 ASP.NET控件控件(1)在)在VS2008中创建一个中创建一个ASP.NET应用程序应用程序testWebControlApp。(2)添加一个)添加一个Web页,方法是:选择页,方法是:选择“项目项目”|“添加新项添加新项”,在打开的,在打开的“添加新项添加新项”对话框中选择对话框中选择“W

15、eb窗体窗体”。(3)在视图设计器中打开文件)在视图设计器中打开文件Default.aspx的设计界面,然后在其设计界的设计界面,然后在其设计界面中分别添加面中分别添加2个个Label控件、控件、2个个TextBox控件和控件和1个个Button控件,并在属控件,并在属性编辑器中修改性编辑器中修改Label和和Button控件的控件的Text属性、将属性、将TextBox控件的控件的ID分别分别改为改为username和和password,还将后一个,还将后一个TextBox控件的控件的TextModel属性值属性值设置为设置为password,以将框作为密码输入框。,以将框作为密码输入框。设

16、计界面如下:设计界面如下:(4)在视图设计器中打开文件)在视图设计器中打开文件WebForm1.aspx的设计界面,在设计界的设计界面,在设计界面中直接添加面中直接添加2个个Label控件即可,它们的控件即可,它们的ID自动被设置为自动被设置为Label1和和Label2。(5)在文件)在文件Default.aspx的设计界面中,双击的设计界面中,双击【登录登录】按钮,在产生的按钮,在产生的Click事件处理函数中添加如下代码:事件处理函数中添加如下代码:string dataStr;dataStr=WebForm1.aspx?username=+username.Text+&password

17、=+password.Text;Response.Redirect(dataStr);(6)在文件)在文件WebForm1.aspx的设计界面中,双击任意一个空白处,将的设计界面中,双击任意一个空白处,将自动产生自动产生Page_Load函数,在该函数中添加下列代码:函数,在该函数中添加下列代码:Label1.Text=Request.QueryStringusername;Label2.Text=Request.QueryStringpassword;3.3 ASP.NET控件和对象3.3.1 ASP.NET控件控件(7)运行文件)运行文件Default.aspx,在文本框中输入用户名和密码

18、。然后单击,在文本框中输入用户名和密码。然后单击【登录登录】按钮,结果输入的用户名和密码被传送到文件按钮,结果输入的用户名和密码被传送到文件WebForm1.aspx对应的页面中。对应的页面中。3.3 ASP.NET控件和对象3.3.1 ASP.NET控件控件从运行结果可以看到,从运行结果可以看到,Default.aspx页面中的数据已经成功传送页面中的数据已经成功传送到到WebForm1.aspx页面中。页面中。1.Response对象对象 系统根据用户的请求(打开一个页面)自动创建一个系统根据用户的请求(打开一个页面)自动创建一个Response对象。该对象。该对象用于向客户端传递或输出相

19、关的信息,这些信息包括用户定义的内对象用于向客户端传递或输出相关的信息,这些信息包括用户定义的内容、内容的报头、服务器的状态等。其常用的属性和方法包括:容、内容的报头、服务器的状态等。其常用的属性和方法包括:Buffer属性属性该属性用于设置服务器端是否开启缓存功能。如果其值为该属性用于设置服务器端是否开启缓存功能。如果其值为true,表示开,表示开启启IIS缓存功能,这时服务器会处理整个页面后再发给客户端,这样用缓存功能,这时服务器会处理整个页面后再发给客户端,这样用户就可以看到连续的界面,当然这是以牺牲服务器的内存资源为代价;户就可以看到连续的界面,当然这是以牺牲服务器的内存资源为代价;如

20、果其值为如果其值为false,表示不开启,表示不开启IIS缓存功能,这时服务器会一边处理一缓存功能,这时服务器会一边处理一边发送,这时用户看到的界面可能是间断的。边发送,这时用户看到的界面可能是间断的。Expires属性属性该属性的值表示页面的有效期,单位为分钟。如果用户请求其有效期满该属性的值表示页面的有效期,单位为分钟。如果用户请求其有效期满之前的相同页面,将直接读取显示缓冲区中的内容,这个有效期间过后,之前的相同页面,将直接读取显示缓冲区中的内容,这个有效期间过后,页面将不再保留缓冲区中的内容。页面将不再保留缓冲区中的内容。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象

21、常用对象Write()方法方法该方法用于向客户端输出指定的内容,由客户端解释执行。例如:该方法用于向客户端输出指定的内容,由客户端解释执行。例如:Response.Write(今天的日期时间:今天的日期时间:);Response.Write(DateTime.Now.ToString();Redirect()方法方法该方法用于重定向到指定的该方法用于重定向到指定的URL。例如:。例如:Response.Redirect();/重定向到重定向到“搜狐搜狐”主页主页Response.Redirect(WebForm1.aspx);/重定向到重定向到WebForm1.aspx页面页面也可以在重定向的

22、同时传递一些数据,例如,下列语句在重定向到也可以在重定向的同时传递一些数据,例如,下列语句在重定向到WebForm1.aspx页面的同时传递字符串页面的同时传递字符串“abc”:Response.Redirect(WebForm1.aspx?strname=+abc);3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象AddHeade()方法方法增加增加HTTP头的集合中的元素。如:头的集合中的元素。如:Response.AddHeader(headname,headvalue);Clear()方法方法 该方法用于清空该方法用于清空IIS缓冲区中的内容(缓冲区中的内容(R

23、esponse.Buffer为为True时)。时)。Flush()方法方法执行该方法时,将执行该方法时,将IIS缓冲区中的内容发给客户端(缓冲区中的内容发给客户端(Response.Buffer为为True时),对客户端来说,其作用就是刷新网页。时),对客户端来说,其作用就是刷新网页。End()方法方法当程序执行到该方法时,将终止脚本的处理,起到终止程序继续运行的当程序执行到该方法时,将终止脚本的处理,起到终止程序继续运行的作用。作用。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象2.Request对象对象 当客户端浏览器向当客户端浏览器向ASP.NET服务器端程序发

24、出请求时,服务器端程序将服务器端程序发出请求时,服务器端程序将针对请求的答应信息封装在针对请求的答应信息封装在Request对象中,客户端通过调用对象中,客户端通过调用Request对对象的属性和方法可以获取想要的信息。象的属性和方法可以获取想要的信息。Request对象的常用属性和方法包括:对象的常用属性和方法包括:ApplicationPath属性属性返回服务器上返回服务器上ASP.NET应用程序的虚拟根路径(应用程序的虚拟根路径(string类型)。类型)。Path属性属性返回当前请求页的虚拟路径(包含请求页对应的返回当前请求页的虚拟路径(包含请求页对应的.aspx文件名)。文件名)。P

25、hysicalPath属性属性返回与请求的返回与请求的URL相对应的物理文件系统的绝对路径(包含请求页对应相对应的物理文件系统的绝对路径(包含请求页对应的的.aspx文件名)。文件名)。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象PhysicalApplicationPath属性属性返回当前正在执行的服务器应用程序的根目录在物理文件系统中的绝对返回当前正在执行的服务器应用程序的根目录在物理文件系统中的绝对路径。路径。ContentLength属性属性返回所获得内容的长度。返回所获得内容的长度。ContentEncoding属性属性返回所获得内容的编码方式。返回所获得

26、内容的编码方式。ContentType属性属性返回所获得内容的类型。返回所获得内容的类型。Headers属性属性返回返回HTTP头的集合。头的集合。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象HttpMethod属性属性返回客户端使用的返回客户端使用的HTTP数据传输的方法,如数据传输的方法,如GET、POST或或HEAD。Url属性属性返回当前请求的返回当前请求的URL。Browser属性属性这个属性返回浏览器的有关信息,这些信息十分丰富,包括浏览器是否这个属性返回浏览器的有关信息,这些信息十分丰富,包括浏览器是否支持支持ActiveX控件、是否为测试版、浏览器的

27、名称和版本号等信息。控件、是否为测试版、浏览器的名称和版本号等信息。UserHostAddress属性属性返回客户机的返回客户机的IP地址(地址(string类型)。利用这个属性可以拒绝恶意用户类型)。利用这个属性可以拒绝恶意用户的访问。的访问。UserHostName属性属性返回客户机的返回客户机的DNS名称。名称。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象QueryString属性属性 该属性返回该属性返回URL所带的附加信息项的集合,集合的类型为所带的附加信息项的集合,集合的类型为System.Collections.Specialized.NameValu

28、eCollection,通常用于实现页,通常用于实现页面之间的数据传递。面之间的数据传递。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象例如,下面语句重定向到例如,下面语句重定向到WebForm1.aspx页面,同时传递三个信息项:页面,同时传递三个信息项:Response.Redirect(WebForm1.aspx?s1=str1&s2=str2&s3=str3);在在WebForm1.aspx页面中可以用下面三条语句分别获取这三项信息:页面中可以用下面三条语句分别获取这三项信息:string s;s=Request.QueryStrings1;/结果结果s=st

29、r1s=Request.QueryStrings2;/结果结果s=str2s=Request.QueryStrings3;/结果结果s=str3当然,也可以通过下标访问集合中的元素来获取信息项:当然,也可以通过下标访问集合中的元素来获取信息项:string s;System.Collections.Specialized.NameValueCollection strs=Request.QueryString;for(int i=0;i strs.Count;i+)s=strsi;显然,显然,QueryString属性通常与属性通常与Response对象的对象的Redirect属性搭配使用。实

30、际上,属性搭配使用。实际上,例例11.2中的程序中的程序testWebControlApp已经已经使用过这两个属性来实现页面之间的数使用过这两个属性来实现页面之间的数据传递。据传递。用Request对象获取表单传递值 使用Request对象的Form属性获取表单传递的信息,一般格式为:Request.Form(表单元素名)通过POST方式发送的数据不会显示在URL中,因此POST发送数据会比GET发送安全。用Request对象获取服务器变量值 当用户向服务器请求信息或者服务器对用户的请求做出应答时,他们的信息都包含在HTTP Header(HTTP头)中。HTTP头提供了有关请求和响应的附加信

31、息,同时还包括浏览器生成请求和服务器做出响应的过程信息。通过Request对象的ServerVariables属性,可以获得当前环境的这些信息。ServerVariables属性属性 该属性是一个该属性是一个string类型对象的集合,它保存了服务器的有关信息。类型对象的集合,它保存了服务器的有关信息。3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象例如,我们可以用下列语句输出该属性包含的所有有关服务器的信息:例如,我们可以用下列语句输出该属性包含的所有有关服务器的信息:for(int i=0;i Request.ServerVariables.Count;i+)Res

32、ponse.Write(i+1).ToString()+:+Request.ServerVariablesi.ToString()+);一般情况下是通过对象的名称来访问一般情况下是通过对象的名称来访问ServerVariables属性中有关服务器的属性中有关服务器的信息。常用的包括:信息。常用的包括:Request.ServerVariablesLocal_Addr/返回服务器的返回服务器的IPRequest.ServerVariablesPath_Info /返回被请求页的虚拟路径返回被请求页的虚拟路径Request.ServerVariablesPath_Translated/返回被请求页

33、的绝对路径返回被请求页的绝对路径Request.ServerVariablesServer_Name/返回服务器的名称返回服务器的名称Request.ServerVariablesServer_Port/返回服务器所使用的端口返回服务器所使用的端口Request.ServerVariablesUrl/返回请求页的返回请求页的URL地址地址Request.ServerVariables“REMOTE_ADDR”/返回请求者的返回请求者的IP地址地址3.Server对象对象 Server对象封装了服务器的相关信息,利用该对象提供的方法可以获取对象封装了服务器的相关信息,利用该对象提供的方法可以获取

34、这些信息。这些信息。MapPath()方法方法返回与返回与Web服务器上的指定虚拟路径相对应的物理文件路径,如服务器上的指定虚拟路径相对应的物理文件路径,如Server.MapPath(“WebForm1.aspx”)返回返回“D:VS2008第第11章章test1test1WebForm1.aspx”。Transfer()方法方法该方法与该方法与Response对象的对象的Redirect()方法具有相同调用方法。例如,下方法具有相同调用方法。例如,下面两个语句的作用是一样的:面两个语句的作用是一样的:Response.Redirect(WebForm1.aspx?s1=str1&s2=st

35、r2);Server.Transfer(WebForm1.aspx?s1=str1&s2=str2);3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象Transfer与Redirect的区别:Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服

36、务器已经执行了一次页面变换。Response.Redirect则是客户端第一次请求服务器返回状态代码302及新URL,客户端再次请求新URL,服务器再返回新页面,比Server.Transfer多一次应答。注意使用方式 Post表单 请求表单不runat=“server”通过提交按钮自动切换到Action对应的目标页面 目标页可以用Request.Form的形式访问请求信息 例(1-1)非Post表单-Web窗体表单 Runat=“server”,无提交按钮 Request.QueryString Server.TransferWeb窗体表单传递数据 Request.QueryString形式

37、 把表单各个元素的名字和值形成QueryString里的参数 例(1-2)Server.Transfer 例(1-3)HtmlEncode()方法方法 对给定的字符串进行对给定的字符串进行HTML编码,使得浏览器不再按照编码,使得浏览器不再按照HTML语法对其语法对其进行解释,而是原样输出。例如,对于下面的两条语句:进行解释,而是原样输出。例如,对于下面的两条语句:Response.Write(中国人中国人+);Response.Write(Server.HtmlEncode(中国人中国人)+);3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象因此,如果想将因此,如果想

38、将HTML语法中的代码在浏览器输出,就需要使用语法中的代码在浏览器输出,就需要使用HtmlEncode()方法方法。Global.asaxGlobal.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或 HTTP 模块所引发的应用程序级别和会话级别事件的代码。Global.asax 文件驻留在 ASP.NET 应用程序的根目录中。运行时,分析 Global.asax 并将其编译到一个动态生成的.NET Framework 类,该类是从 HttpApplication 基类派生的。配置 ASP.NET,以便自动拒绝对 Global.asax

39、 文件的任何直接的 URL 请求;外部用户不能下载或查看其中的代码。Global.asax 文件是可选的。只在希望处理应用程序事件或会话事件时,才应创建它。2022年年10月月4日日373.3.2 Application对象 利用Application对象存取变量 创建Application对象 同步和互斥 Application的事件和Global.asax 2022年年10月月4日日38利用Application对象存取变量Application对象可以存取变量,并且这些变量可以被多个用户共享。对Application对象的变量赋值的格式为:Application变量名=值 引用变量的值用

40、Application(变量名)就可以了。2022年年10月月4日日39同步和互斥在页面共享变量时也引发一个问题,那就是各个页面都可以修改共享变量的值。为了避免这种冲突出现,Application对象提供了Lock方法解决这样的问题。其语句如下:Application.Lock 在这个语句之后,Application对象变量的值只能由一个用户改动,这样就避免了多个用户同时改变一个变量值的情况。当用户改动结束后,应该允许其他用户改动该变量,这就要求解除对变量值的锁定。语句如下:Application.UnLock 2022年年10月月4日日40Application的事件和Global.asax

41、Application拥有自己的事件和生命周期,当Application开始启动时,会触发Application_Start事件;当Application终止时或者或者webconfig被修改保被修改保存时存时,会触发Application_End事件。这两个事件代码都存放在Global.asax文件中。Global.asax文件中主要定义了8个主要事件:Application_Start、Session_Start、Application_BeginRequest、Application_EndRequest、Application_AuthenticateRequest、Applicati

42、on_Error、Session_End和Application_End。2022年年10月月4日日41Session对象 利用Session对象存取变量 Session的唯一性和Session的终止 Session事件 2022年年10月月4日日42利用Session对象存取变量 与Application对象一样,Session对象也可以存取变量,但它和Application对象在存储信息所使用的对象是完全不同的。Application对象存储的是共享信息,而Session对象存储的信息是局部的,它只是针对某个特定的用户。Session对象对象3.3 ASP.NET控件和对象3.3.2 AS

43、P.NE常用对象常用对象例如,下面两条语句的作用是将字符串例如,下面两条语句的作用是将字符串“Petter”和和“C_sharp”依次添加依次添加到到Session对象中:对象中:Session“username”=“Petter”;/Session.Add(“username”,”peter”);Sessionuserpass=C_sharp;这两个字符串在这两个字符串在Session中的中的“名称名称”分别为分别为username和和userpass,通过,通过它们的名称即可访问相应的数据和对象。例如,对于下列语句:它们的名称即可访问相应的数据和对象。例如,对于下列语句:Response.

44、Write(Sessionusername+);Response.Write(Sessionuserpass+);执行后将输出:执行后将输出:Petter C_sharp当然,也可以通过下标来访问当然,也可以通过下标来访问Session对象中的数据:对象中的数据:Response.Write(Session0+);Response.Write(Session1+);语句输出语句输出Session对象中的所有数据:对象中的所有数据:for(int i=0;i Session.Count;i+)Response.Write(Sessioni+);2022年年10月月4日日44Session事件与A

45、pplication对象相同,Session对象也拥有自己的事件。正如在介绍关于Global.asax文件内容时所见到的,Session对象拥有Start和End事件,他们都存在于文件Global.asax中。当一个Session对象被创建时,触发Session_Start事件;当一个Session对象被终止时,触发Session_End事件。利用这两个事件可以处理一些有用的事情,如用户信息初始化等等。45Session的方法Abandon()方法 删除存储在session对象中的所有会话变量并释放它们占用的服务器资源,所以要慎慎重使用重使用 不过在当前页中所有脚本命令都处理完后,对象才会被真

46、正删除。在SessionState=“proc”的设置下,会触发Session_End事件Clear()或Remove()方法 Session.Clear只是清除Session中的所有数据并不会中止该Session,因此也不会触发Session_End46Session Web.config 节的定义 Timeout Cookieless4.Session对象和对象和Application对象对象 3.3 ASP.NET控件和对象3.3.2 ASP.NE常用对象常用对象共同点共同点:都是用于在服务器端保存数据和对象,它们都是:都是用于在服务器端保存数据和对象,它们都是object类型的类型的数

47、组,使用方法相同,可以通过对象名或下标引用其中的对象。通常用数组,使用方法相同,可以通过对象名或下标引用其中的对象。通常用于保存用户信息、实现网站访问计数等功能。于保存用户信息、实现网站访问计数等功能。不同点不同点:它们的作用范围不同,:它们的作用范围不同,Session对象的作用范围是一次会话期对象的作用范围是一次会话期内),只为一个用户所拥有;内),只为一个用户所拥有;Application对象的作用范围则是对象的作用范围则是Web服务服务器的一次生存期(从启动服务器到关闭服务器这个时间段),可为所有器的一次生存期(从启动服务器到关闭服务器这个时间段),可为所有用户共享。用户共享。Appl

48、ication和Session的联合使用 网站访问计数器 网站在线人数(例子 aspnet1-4)Global.asax Webconfig的修改 Application和Session的联合使用24提高:加入文件的处理string countfile=Server.MapPath(count.txt);StreamReader srd;srd=(countfile);int count=0;while(srd.Peek()!=-1)string str=srd.ReadLine();count=int.Parse(str);srd.Close();Applicationcount=count

49、;4提高:加入文件的处理int count=0;count=(int)Applicationcount;string =Server.MapPath(count.txt);StreamWriter srw=new StreamWriter(,false);srw.WriteLine(count);srw.Close();Session的特殊应用场合 用户登录界面,每个页面都要判断用户名是否为空 演示无判断的状况 增加一个公共判断类public class validatePage:System.Web.UI.Page protected override void OnInit(EventAr

50、gs e)if(Sessionvalid=null|Sessionvalid.ToString().CompareTo(Session.SessionID)!=0)Response.Write(error);Response.End();/protected override void OnLoad(EventArgs e)/if(Sessionvalid=null|Sessionvalid.ToString().CompareTo(Session.SessionID)!=0)/Response.Write(error);/Response.End();/public partial clas

51、s requestform:validatePage 注意不要重载OnLoad方法,会让子类的Page_Load事件失效 重载OnInit方法Cookie Cookie是一种能够让网站服务器把少量数据存储到客户端的硬盘或内存。并且读可以取出来的一种技术。Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一。Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一起发送到服务器。浏览器对 Cookie 的大小有限制,因此,只有不超过 4096 字节才能保证被接受。Cookie查看Cookie Session

52、ID默认是用Cookie来存储的,试一试修改webconfig如下所示:56创建cookie/方式1:Response.Cookiesusername.value=mike;Response.Cookiesusername.Expires=DateTime.MaxValue;/方式2:HttpCookie acookie=new HttpCookie(“username);acookie.Value=“mike;acookie.Expires=DateTime.MaxValue;/cookie.Expires=System.DateTime.Now.AddDays(1);/设置过期时间 1天R

53、esponse.Cookies.Add(acookie);57创建cookie-子键(多值)/方式1:Response.Cookiesuserinfo1name.value=mike;Response.Cookiesuserinfo1“gender.value=“m;Response.Cookiesuserinfo1.Expires=DateTime.MaxValue;/方式2:HttpCookie cookie=new HttpCookie(userinfo1);cookie.Valuesname=mike;cookie.Values“gender=“m“;cookie.Expires=Da

54、teTime.Now.AddDays(1);/设置过期时间 1天Response.Cookies.Add(cookie);58Cookie C:UsersAdministratorAppDataRoamingMicrosoftWindowsCookies上面是上面是2个单值个单值Cookie下面是下面是1个多值个多值Cookie59读取CookieInternet Explorer 将站点的 Cookie 保存在文件名格式为.txt 的文件中,其中 是您的帐户名。注意注意:在获取Cookie的值之前,应该确保该 Cookie 确实存在。否则,您将得到一个异常 If(Request.Cookie

55、suserName!=null)string str=Request.Cookies(userName).Value;60读取Cookie-子键(多值)/多值Cookie的读取If(Request.CookiesuserInfo1!=null)string name=Request.CookiesuserInfo1name;string last=Request.CookiesuserInfo1“gender;61注意 创建依赖于Reponse对象 读取依赖于Request对象62读取 Cookie 集合for(int i=0;iRequest.Cookies.Count;i+)HttpCoo

56、kie cookie=Request.Cookiesi;Response.Write(name=+cookie.Name+);if(cookie.HasKeys)/是否有子键 System.Collections.Specialized.NameValueCollection NameColl =cookie.Values;for(int j=0;jNameColl.Count;j+)Response.Write(子键名=+NameColl.AllKeysj+);Response.Write(子键值=+NameCollj+);else Response.Write(value=+cookie.

57、Value+);Aspnet1-6/webformreadcookies63销毁Cookie 没有权限删除客户端文件 设置过期日期 6465正确的写法 ArrayList cookiesnames=new ArrayList();for(int i=0;i Request.Cookies.Count;i+)HttpCookie cookie=Request.Cookiesi;cookiesnames.Add(cookie.Name);for(int i=0;i cookiesnames.Count;i+)HttpCookie cookie=new HttpCookie(cookiesnames

58、i.ToString();cookie.Expires=DateTime.Now.AddDays(-1);Response.Cookies.Add(cookie);一定要一定要new66 ASP.net的运行需要服务器来解释。的运行需要服务器来解释。微软的微软的Internet信息服务器信息服务器IIS(Microsoft Internet Information Server)是一种集成了多种)是一种集成了多种Internet服务服务(WWW服务、服务、FTP服务等)的服务器软件,作为当今服务等)的服务器软件,作为当今流行的流行的Web服务器之一,它提供了强大的服务器之一,它提供了强大的In

59、ternet和和Intranet服务功能。服务功能。ASP.net的运行环境的运行环境 67 安装安装IIS信息服务器信息服务器 ASP.NET的运行环境的运行环境“控制面板控制面板”中的中的“添加添加/删除程序删除程序”进行添加,操作步骤如下:进行添加,操作步骤如下:(1)启动)启动“添加添加/删除程序删除程序”应用程序,出现应用程序,出现“添加添加/删除程序删除程序”对话框。对话框。(2)单击)单击“添加添加/删除删除Windows组件组件”按钮,在按钮,在“Windows组件组件向导向导”对话框中,选择对话框中,选择“Internet信息服务信息服务”组件,如图组件,如图6-1所示。所示

60、。单击单击“详细信息详细信息”按钮可以进行进一步设置,例如,选装按钮可以进行进一步设置,例如,选装FTP服服务、务、SMTP服务等。图服务等。图6-1 Internet信息服务(信息服务(IIS)安装界面)安装界面(3)单击)单击“下一步下一步”按钮,系统开始安装。按钮,系统开始安装。(4)安装完成后,单击)安装完成后,单击“完成完成”按钮,即结束按钮,即结束IIS的安装过程。的安装过程。68 设置设置Web站点站点 ASP.net 的运行环境的运行环境 双击双击“Internet服务管理器服务管理器”图标,进入图标,进入“Internet信息服务信息服务”窗窗口口:(1)设置)设置“Web站

61、点站点”。在。在“IP地址地址”下拉列表框中,选择下拉列表框中,选择Web服务器要连接的服务器要连接的IP地址。若选择地址。若选择“全部未分配全部未分配”,则表示连,则表示连接本地计算机的所有接本地计算机的所有IP地址。地址。“TCP端口端口”采用默认的采用默认的80端口。端口。(2)设置)设置“主目录主目录”。“本地路径本地路径”是指当输入地址为本计算是指当输入地址为本计算机的机的IP地址时,与该地址对应的物理地址为地址时,与该地址对应的物理地址为“C:inetpub”。(3)设置默认)设置默认“文档文档”。选中。选中“启用默认文档启用默认文档”项,可以看到项,可以看到默认的主页名称为默认的

62、主页名称为default.htm、default.asp等。这样,在地址栏等。这样,在地址栏中只要输入计算机的中只要输入计算机的IP地址,浏览器就会自动执行与默认文档同地址,浏览器就会自动执行与默认文档同名的文件。当然,用户也可以添加新的默认文档。名的文件。当然,用户也可以添加新的默认文档。69 设置虚拟目录设置虚拟目录 ASP.net的运行环境的运行环境(1)在)在“Internet信息服务信息服务”窗口,右击窗口,右击“默认默认Web站点站点”,选,选择择“新建新建”“”“虚拟目录虚拟目录”项,出现项,出现“虚拟目录创建向导虚拟目录创建向导”对话框。对话框。(2)单击)单击“下一步下一步”

63、按钮,在按钮,在“虚拟目录创建向导虚拟目录创建向导”对话框中,对话框中,输入虚拟目录名输入虚拟目录名book。(3)单击)单击“下一步下一步”按钮,通过按钮,通过“浏览浏览”下拉列表选择要设置下拉列表选择要设置为虚拟目录的文件夹(放置为虚拟目录的文件夹(放置ASP文件的文件夹)。文件的文件夹)。(4)单击)单击“下一步下一步”按钮,设置虚拟目录的访问权限。按钮,设置虚拟目录的访问权限。(5)单击)单击“下一步下一步”按钮,即可完成虚拟目录的设置。按钮,即可完成虚拟目录的设置。70小结 Response Request Server Application Session Cookie71期中复习 第一部分:基本概念 Web基础知识 服务器/客户端页面、脚本等执行过程 HTML部分 HTML 超链接 表格72期中复习 CSS JavaScript A内建对象,IIS 第二部分:编程 POST表单 JavaScript验证 JavaScript+Html(document.write)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!