《-ASP.NET-Web程序设计》第二版全套电子课件完整版ppt整本书电子教案最全教学教程整套课件_第1页
《-ASP.NET-Web程序设计》第二版全套电子课件完整版ppt整本书电子教案最全教学教程整套课件_第2页
《-ASP.NET-Web程序设计》第二版全套电子课件完整版ppt整本书电子教案最全教学教程整套课件_第3页
《-ASP.NET-Web程序设计》第二版全套电子课件完整版ppt整本书电子教案最全教学教程整套课件_第4页
《-ASP.NET-Web程序设计》第二版全套电子课件完整版ppt整本书电子教案最全教学教程整套课件_第5页
已阅读5页,还剩372页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、21世纪高等院校计算机科学规划教材ASP.NET Web 程序设计 第一章 ASP.NET概述知识点了解Web工作的原理 区别ASP与ASP.NET 掌握.NET平台的工作环境和构成 了解ASP.NET程序的基本结构 1.1 Web基础知识HTTP协议HTTP请求是指从浏览器向Web服务器发出的搜索某个Web网页的请求。当Web服务器收到这个请求之后,就会按照请求的要求,找到相应的网页。如果可以找到这个网页,那么就把网页的HTML代码通过网络传回浏览器;如果没有找到这个网页,就发送一个错误信息给发出HTTP请求的浏览器。后面的这些操作称为HTTP响应。 1.1 Web基础知识Web服务器 We

2、b是基于客户-服务器的一种体系结构,一般用户的计算机称为客户机,用于提供服务的机器称为服务器。在Web方式下客户端软件常用浏览器,客户机向服务器发送请求,要求执行某项任务,而服务器执行此项任务,并向客户机返回响应。因此,Web体系结构可以称为浏览器-服务器结构(B/S结构) 1.1 Web基础知识基于Web的数据库应用采用3层客户-服务器结构,也称为Brower/Server/Database Server结构。第一层为浏览器,第二层为Web服务器,第三层为数据库服务器。浏览器是用户输入数据和显示结构的交互界面,用户在浏览器表单中输入数据,然后将表单中的数据提交并发送到Web服务器,Web服务

3、器应用程序接受并处理用户的数据,并从数据库中查询用户数据或把用户数据录入到数据库。最后Web服务器把返回的结果插入HTML页面,传送到客户端,在浏览器中显示出来。 1.1 Web基础知识静态网 页静态网页就是用纯HTML代码编写的网页。这些网页的代码是用一些编辑器输入的,或者是用一些网页设计程序生成的,保存为.html或.htm文件的形式。由于这些网页中没有任何与用户相关的部分,所以在设计完成之后,这类程序不会被服务器端执行,所以无论是哪个用户访问这个网页,在什么时候访问这个网页,以何种方式进入这个网页,它的样子都不会发生任何变化。采用静态网页会导致很大的局限性,如果希望为用户显示一些个性化的

4、信息,使用静态网页将无法达到这个目的。 1.1 Web基础知识动态网 页动态网页的扩展名一般为.asp或.aspx。在浏览这类网页的时候,必须先在服务器端执行程序,再将执行结果下载到本地浏览器上。这类程序会被服务器端执行,因执行的条件不同,所产生的结果也会有所不同。 常见的服务器端编程技术有:CGI、PHP、ASP、JSP和ASP.NET。 1.2 ASP.NET工作原理 ASP与ASP.NET的区别效率ASP是一个脚本编程环境,只能用VBScript或者JavaScript这样的非模块化语言来编写。在ASP.NET中,所有的程序执行都是经过服务器编译的,即把程序语句翻译成机器可以执行的二进制

5、代码,而这一过程是在程序执行之前进行的,并且它建立在.NET Framework之上的,可以使用Visual Basic、C+这样的模块化程序设计语言,在第一次执行时进行了编译,之后的执行不需要重新编译就可以直接运行,所以速度和效率都比ASP提高很多。 1.2 ASP.NET工作原理 ASP与ASP.NET的区别可重用 性在写ASP应用程序的时候,ASP代码和HTML混合在一起。只要有需要,就可以在任意的一个位置插入一段代码来实现特定的功能。这种方法表面上看起来很方便,但在实际的工作中会产生大量繁琐的页面,很难读懂,导致代码维护很困难。虽然可以使用include指令尽量让程序模块化,但是仍然不

6、是一个最终彻底的解决方案。而ASP.NET则可以实现代码和内容的完全分离,使得前面提到的问题迎刃而解 。1.2 ASP.NET工作原理 ASP与ASP.NET的区别代码量ASP需要对所有的要实现的功能通过编写代码来实现。在ASP.NET中,程序员会发现只要预先说明,这样的功能ASP.NET就可以自动实现。所以相对来说,要实现同样的功能,使用ASP.NET比使用ASP的代码量要小得多。 1.2 ASP.NET工作原理 .NET框架对于.NET,微软自己也没有一个详细确切的定义。但是可以这样认为:.NET是微软公司要提供的一系列产品的总称。具体说来,.NET由下面的四个部分组成:.NET战略、.N

7、ET Framework、.NET企业服务器和.NET开发工具。.NET Framework是.NET战略的核心。.NET Framework分为以下几个部分:MS中间语言、CLR、.NET Framework类库、.NET语言、ASP.NET和Web服务。 1.2 ASP.NET工作原理 MS中间语言 在.NET Framework中使用高级语言(例如VB.NET、C#)编写的程序,需要在运行前将其编译成为中间语言(例如MS中间语言)。需要注意的是,中间语言并不是一种可以直接执行的机器代码。与高级语言编写的代码相比,它的可读性很差,但是进行了一系列的优化。 1.2 ASP.NET工作原理 C

8、LR(Common Language Runtime公共语言运行库)用于执行MS语言等中间语言,提供所有的核心服务,比如:内存管理、无用单元回收和安全性等。 CLR在.NET Framework中的位置十分重要,可以说是.NET Framework的基础。CLR用JIT(JustInTime)编译器把中间语言代码编译成可以执行的代码,并对程序进行最后的、与机器相匹配的优化,使得程序可以在所在计算机上尽可能高效地运行。 1.2 ASP.NET工作原理 .NET类库 .NET Framework类库中包含了大量可以实现重要功能的代码库。用户在编写程序的时候可以很方便地把这些库调用到应用程序中,实现

9、更加复杂的功能,而编写复杂功能的难度却降低了不少。 .NET语言 .NET语言是指可以将使用其编写的代码编译成为MS中间语言的编程语言,常见的语言有VB.NET、C#和Jscript.NET等。 1.2 ASP.NET工作原理 ASP.NET设计目标去除对脚本引擎的依赖性,实现网页的安全编写和编译。减少开发Web应用程序所需的代码数量。使ASP.NET具有很好的灵活性,允许用户添加自定义的功能,并扩展/替代内置的ASP.NET功能。简单而灵活的配置使部署Web应用更加容易。使ASP.NET成为ASP逻辑上的一个升级版本,考虑到已有的ASP投资,因此ASP代码可经过较小的修改(如果需要的话)实现

10、在ASP.NET中的复用。在调试和编辑方面提供强大的工具支持。当开发ASP.NET网页时,用户所使用的语言根据个人的情况而定。不管使用的是VB、C#还是Jscript.NET,都会拥有相同的功能。对于使用某种特定语言来说,ASP.NET没有给出任何强加的限制。提供一个强大的身份确认模型,以此来满足现代电子商务应用程序的要求。ASP.NET支持Windows Authentication、Forms Authentication和Microsoft Passport三种安全的核心模式。不要求额外的开发工具。错误是无可避免的,因此ASP.NET应该尽可能地容忍错误的存在。 1.3 ASP.NET运

11、行环境 IIS安装与配置 IIS(Internet Information Server 网络信息服务)是ASP.NET惟一可以使用的Web服务器,它通过使用超文本协议(HTTP)传输信息,并将信息加载到网站上进行发布,同时也可以通过配置IIS提供文件传输协议(FTP)服务。 1.3 ASP.NET运行环境 IIS安装与配置 IIS的安装安装步骤(1)插入Windows XP安装光盘,打开控制面板,然后打开其中的“添加/删除程序”。(2)在“添加/删除程序”窗口左边单击“添加/删除Windows组建”。(3)稍等片刻系统会启动Windows组建向导,选中“Internet信息服务(IIS)”复

12、选项,单击“下一步”按钮。(4)系统安装成功,系统会自动在系统盘新建网站目录,默认目录为:C:Inetpubwwwroot。 1.3 ASP.NET运行环境 IIS安装与配置 IIS服务器配置 P7安装完IIS服务器以后,接下来就是启动和配置IIS服务器。执行“控制面板”/“管理工具”/“Internet 信息服务”命令,将出现IIS的窗口,在左边的目录树上依次展开各个节点,就可以看到IIS服务器提供的Web服务“默认网站”,实际目录随机器不同略有差异。1.3 ASP.NET运行环境 IIS安装与配置 虚拟目录的功能与配置当网站要从主目录以外的其他目录中进行发布时,就必须创建虚拟目录,虚拟目录

13、不包含在主目录中,但在显示给客户浏览器时就像位于主目录中一样。虚拟目录有一个别名,供Web浏览器访问此目录。别名通常要比实际路径名短,使用别名更安全,因为用户不知道文件是否在服务器上,所以无法用这些信息来修改文件。如果虚拟目录是在“Internet 服务管理器”中定义的,则别名与虚拟目录相关联。别名是客户用于访问虚拟目录中信息的子目录名。如果管理员没有指定虚拟目录的别名,“Internet 服务管理器”将自动生成别名。 1.3 ASP.NET运行环境 IIS安装与配置 打开IIS服务器,可以看到IIS左右两边的文件夹有4种图标 :Windows标准文件夹图标,其意义是文件夹的实际目录存在于We

14、b服务器的主目录中。:表示虚拟目录,通常包含脚本和_vti_bin文件等。:Web应用图标,也是虚拟目录,但可以转换为物理目录。:表示它们是具体的文件,只出现在IIS服务器右边的文件中。 1.3 ASP.NET运行环境 IIS安装与配置 创建虚拟目录有两种方法 方法一:(1)在站点右击,在弹出的快捷菜单中选择“新建-虚拟目录”,将弹出新建“虚拟目录创建向导”对话框,并单击“下一步”按钮。(2)设置虚拟目录名称,单击“下一步”按钮。(3)在“目录”文本框中输入文件的实际位置,也可以单击“浏览”按钮进行选择,单击“下一步”按钮。(4)使用默认读写设置,完成创建 1.3 ASP.NET运行环境 II

15、S安装与配置 创建虚拟目录有两种方法 方法二:在“默认网站属性”对话框中,切换到“主目录”选项卡,在其下半部可以设置整个站点的虚拟路径。单击“创建”按钮,为应用程序配置虚拟路径。创建的同时,“创建”按钮变为“删除”按钮,单击“删除”按钮可以删除才创建的虚拟目录。 1.3 ASP.NET运行环境 ASP.NET安装配置运行环境 P11硬件要求 软件要求ASP.NET的安装P121.3 ASP.NET运行环境 Visual Studio.NET界面介绍 创建新项目1.3 ASP.NET运行环境 Visual Studio.NET界面介绍 界面设置1.3 ASP.NET运行环境 Visual Stu

16、dio.NET界面介绍 界面设置客户区(设计和调试窗口) 1.3 ASP.NET运行环境 Visual Studio.NET界面介绍 界面设置控制浮动页面解决方案资源管理器 1.3 ASP.NET运行环境 Visual Studio.NET界面介绍 界面设置工具箱:以“”为标志 1.3 ASP.NET运行环境 脚本语言 Visual Studio.NET提供多种语言的支持,如VB.NET、C#、C+.NET等。VB.NET是经过重新设计的语言,它对传统的Visual Basic语言进行了改进,甚至打破了与现有VB程序的兼容性,功能比Visual Basic更强大,更易用。 C#就像VB.NET

17、一样,是种适用于创建下一代商业应用程序的理想而简洁的语言。采用C#来进行ASP.NET编程,使ASP.NET能胜任各种大型的网络应用。 1.4一个简单的用户登录程序 【例1-1】用户登录示例 在 Visual Studio.NET中创建一个新的项目WebApplication1.aspx,在设计窗口由两个文本框和一个按钮组成,在WebApplication1.aspx.cs中写下如下代码 private void Button1_Click(object sender, System.EventArgs e)if (TextBox1.Text=wang) & (TextBox2.Text=12

18、3456)Response.Write(TextBox1.Text+,你已成功登录!);elseResponse.Write(用户名或密码有误);1.4一个简单的用户登录程序 从该程序中可以看出,ASP.NET应用程序由界面和程序代码两大部分组成。程序根据用户名、密码的正确与否显示不同的界面,实现动态显示的特点。界面部分:主要由工具箱中的HTML控件和Web控件自动形成代码,当然也可以通过在HTML窗口写入HTML标记和控件标记进行页面设计。程序代码部分:使用C#作为开发语言,由点击“提交”按钮产生不同的结果,是典型的事件驱动编程方法。在程序代码中出现的Response.Write是ASP.N

19、ET的服务器对象Response的一种方法,用于将服务器端的信息送到浏览器端。1.4一个简单的用户登录程序 1.5 实战检验理论巩固说明ASP.NET开发Web应用程序的特点。说明ASP.NE工作原理。说明.NET框架的构成情况。说明配置IIS和设置虚拟路径的方法。 上机实战实际配置一个IIS,建立虚拟目录并运行成功。运行Visual Studio.NET,熟悉界面,按照书上1.4节所讲,实际运行如例1-1,查看测试是否成功。第二章 C#基础知识 知识点C#数据类型C#语法 2.1 C#设计理念自动资源回收机制C#具有自动资源回收(Automatic garbage collection)机制

20、,自动将不再被使用的内存回收,并交给操作系统重新配置。因此使用C编写的程序不会出现内存泄漏(Memory Leak)的现象。 例外错误处理机制C结构化的例外错误处理提供一致性的错误处理机制。 2.2 面向对象程序类主要由三部分组成:属性:属性存储对象的信息。主要用来改进public成员变量的存取,让用户能够在外部组件存取内部数据时,多提供一层逻辑判断。方法:提供给外部可访问的接口函数,使之可以利用对象执行某种操作。事件:事件能够告知应用程序(请指明是告知)发生了什么事情。C#有内置的语法和保留字可用来定义与处理事件,可以动态的链接和删除事件处理函数。此外,一个事件可以链接几个事件处理函数,而一

21、个事件处理还属能够同时处理多个事件。 2.3 C#数据类型在C中主要有两大类数据类型:值类型引用类型 2.3.1 值类型值类型包括:简单类型枚举类型结构类型值类型的分类值类型简单类型整型sbyte;byte;short;ushort;int;uint;long;ulong;char浮点类型float;double小数类型decimal布尔类型bool字符型char枚举类型enum结构类型简单类型整型C#中支持九种整型:sbyte、byte、short、ushort、int、uint、long、ulong和char。 类型含义数值范围sbyte有符号的8位整数-128 127byte无符号的8位

22、整数0255short有符号的16位整数-32768 32767ushort无符号的16位整数0 32767int有符号的32位整数-2147483648 2147483648uint无符号的32位整数0 4294967295long有符号的64位整数-9223372036854775808 9223372036854775808ulong无符号的64位整数0 18446744073709551615char无符号的16位整数065535字符型字符型,也就是char类型,是一种特殊类型的整型,这是因为char类型与其他整数类型相比有以下两点不同之处:字符型实际是单个的Unicode类型,字长为

23、16bits,可以通过三种方式为其赋值:char chrTmp=“A”;char chrTmp =“x0065”; 十六进制char chrTmp =“u0065 ; unicode表示法字符型无法隐式地转换成其它任何类型。例如对于sbyte,byte和ushort这样能完全使用char类型代表其值的类型,隐式转换也不存在。但C中支持显式转换char型,如:char chrTmp = (char)100;byte btTmp = (byte)A; 字符型中有下列转义符,见表。转移符含义表示单引号”表示双引号表示反斜杠0表示空字符a表示感叹号b表示退格f表示换页n表示换行r表示回车t表示水平ta

24、bv表示垂直tab浮点型类型取值范围说明float1.5*10-453.4*1038单精度浮点数,精确到小数点后面7位double5.0*10-3241.7* 10308双精度浮点数,精确到小数点后面15位或16位如果二元操作中的其中一个操作数为浮点类型,那么另外一个操作数是整型或浮点类型,运算规则如下:如果一操作数是整型,则该操作数被转换为另一操作数的浮点数类型;如果一操作数为double类型,则另一操作数被转换成double类型,运算以double类型的精度和取值范围进行,并且所得结果也为double类型;其它情况下,运算至少将以float类型的取值范围和精度进行,并且所得结果也为floa

25、t型。 小数类型小数类型数值范围从1.0*10-287.9* 1028,精确到小数点后面28位。对于小数类型的运算规则如下:如果一操作数是小数类型,另一操作数是整型或小数类型,则整型在运算前被转化为小数类型参与运算。如果一个小数类型的算术运算产生了一个对于小数类型的格式来说太小的值,运算结果将会变成0。如果一个小数类型的算术运算产生了一个对于小数类型的格式来说太大的值,就会触发溢出错误。 布尔型布尔型仅有true或false两个值,分别代表逻辑真和逻辑假。没有标准能实现布尔类型和其他类型的转换。 枚举类型枚举类型是由一组特定的常量构成一种数据结构。所使用的类型只能是long、int、short

26、、byte。默认类型是int。默认第一个元素的值是0,每一个连续的元素按1递增。也可以给元素直接赋值。 结构类型使用结构的主要目的是创建小型的类,可以用来申明构造函数、常熟、字段、方法、属性、索引、操作符和嵌套类型。 各种数据类型的默认值 类型默认值sbyte、byte、short、ushort、int、uint、long、ulong0charx0000float0.0Fdouble0.0Ddecimal0.0Mboolfalse枚举类型0结构类型把所有值类型的域都设置为它们各自的默认值,把所有的引用类型的域赋为空2.3.2 引用类型引用类型包括:类类型接口类型代表类型数组类型 类类型(cla

27、ss)类类型定义了一种数据结构,这个数据结构中包含了数据成员包含数据、属性和事件等;函数成员包含方法、索引、操作符、构造函数和析构函数;以及嵌套类,并支持继承。在类中定义的数据成员、函数成员等部分可以被外部调用,但部分不能被外部存取,这是由所使用的成员存取修改器来决定的。在C中由public、private、protected和internal式中存取修改器 。Public:表示任何外部的类都可以不受限制的存取类。Private:表示只限定此类内部使用。Protected:表示除了让本身的类使用外,任何继承自此类的子类也可以存取。Internal:仅存在于C中,表示在同一个应用程序或库中的所有

28、类都可以存取。 对象类型(object)对象类型是其他所有类型的基础类型。在C中每一种类型都直接或间接的继承自System.Object。 字符串类型(string)与C+相比,C#增强了对字符串的各种操作。字符串类型是直接从System.Object中继承而来的密封类,而且是final类,不能从它再派生类。String类型的值可以写成字符串文字的形式。赋值方式如下:string strTmp = “this is a book.”; 接口类型(interface)接口与类的最大差异在于一个接口声明一个只有抽象成员的引用类型,接口仅仅存在方法标志,但没有执行代码。当定义一个类时,如果类从接口派

29、生,可以派生自多重接口;但是如果类从类派生,就只能从一个类派生。声明方法如例:interface interfaceTmp void function1(); 代表元类型(delegate)代表元类型其实就是面向对象的函数指针。因为在C中没有指针,所有的东西都是对象,那么为了能在C中提供C+中原有的函数指针功能,特提供了代表元类型,它是一种静态的方法或者对象实例,引用该对象的实例方法。C/C+中的指针只能访问静态的函数,代表元既能访问静态的方法,也能访问实例的方法。若要使用代表元类型,需进行如下几个步骤:首先,定义delegate类型的函数签名,语法如下例所示:public delegate

30、string FunPointer(string strTmp );delegate是一个保留字,声明了一个函数的指针类型。其次,定义与delegate类型函数签名相同的函数,如:public static string Fun1(string strTmp)return “hello ”+strTmp;只要传入参数的类型、个数、顺序和delegate类型的函数相同,则参数名称可以是不同的。然后,定义接收delegate类型参数的处理函数,如:public static void Method(FunPointer FunPointer1)Console.WriteLine(FunPointe

31、r1(“Mary”);最后,将上面的程序代码链接起来运行:FunPointer fp1=new FunPointer(Fun1);可以直接调用Method函数,并传入FunPointer变量当作传入参数,如:Method(fp1); 数组类型(Array)数组类型继承自System.Array,而System.Array继承自System.Object。数组是包含一串相同类型的类型数据的集合,每个数组变量称作数组元素,这种类型也称作数组元素类型。数组的元素类型可以是任何类型,包括数组类型。所有数组的元素值通过数组名和下标来访问,数组的位数决定了相关数组元素的下标数,只有一个下标的数组称为一维数

32、组,多于一个下标的数组称为多维数组。 声明多维数组的方式如下:int a; /int型的一维数组int, a; /int型的二维数组int, a; /int型的三维数组inta; /int型的数组的数组inta; /int型的数组的数组的数组2.4 C#语法C#语句具有如下几个特点:C#是区别大小。每一句都以分号结束。多个语句通过分号可以写在一行,不过不推荐,因为不清晰。2.4.1声明变量在C中声明变量时,要注意以下几点:变量的名称需以文字或下划线“_”开始。变量中不能使用空格。不能使用保留字,如char,int等。声明变量的语法是:变量类型 变量名称=初始值。 2.4.2C#基本语法运算符算

33、术运算符+ - 加 - - 减 * - 乘 / - 除 % - 求余(即整除后的余数)逻辑运算符& - 按位与 | - 按位或 - 按位异或 - 取反 n - 右移n位 或 = 或 0) a = -1; else Console.WriteLine(a); switch语句格式:switch(表达式) case 常量表达式:嵌入语句 default: 嵌入语句switch 用于多个可能的值,如果有一个匹配,则执行相应代码,每句之后必须有break语句中断后面语句的执行。 例如:switch(a) case 1: Console.WriteLine(1); break;case 2: Conso

34、le.WriteLine(2); break; case 3: Console.WriteLine(3); break; default: Console.WriteLine(default); 循环语句while 循环格式:while(布尔表达式) 嵌入语句例如:int a=1; while (a20) a+=a; do-while 循环 格式:do 嵌入语句 while(布尔表达式) 例如:int a=1; do a+=a; while(a20); do while循环与while循环类似,区别在于do-while循环至少执行一次循环体。for 循环 格式:for(初始化;布尔表达式;重复

35、语句)嵌入语句例如:int j=1; for(int i=0;i100;i+) j+; Console.WriteLine(i = +i+j = +j); foreach语句foreach语句列举出聚集的元素,并为每一个聚集的元素执行一条嵌入语句。格式:foreach(类型 标识 in 表达式)嵌入语句循环变量由类型和标识符声明,且表达式与收集相对应。循环变量代表循环正在为之运行的收集元素。例如:using System;public class foreachapppublic static void Main() int odd=0,even=0; int arr=new int 0,1,

36、2,5,7,8,11; foreach (int i in arr) if (i%2=0)even+;else odd+; 2.4.3定义函数语法:static void 函数名称(类型1 传入参数1,类型2 传入参数2,类型n 传入参数n) 2.5 实战检验理论巩固请说明C#中有几种数据类型。请说明C#中支持几种整型数据类型。请说明C#的语法特点。请说明C#中如何定义函数。上机实战请用条件语句ifelse写段小程序。请用循环语句while,dowhile,foreach各写段小程序。请定义一个函数,完成如下功能:输入2个字符;在屏幕上打印所输入的字符。第三章 ASP.NET组件对象 知识点掌

37、握ASP.NET各内置组件对象的常用属性和方法掌握Session、Application对象与其他常用对象的区别,以及它们的适用场合能灵活运用各种组件对象完成程序设计 3.1 Page类Page类作为各个页面的派生基类,提供了许多对象和方法来处理页面的请求。属性/对象功能描述Application为当前Web请求获取Application对象Cache获取与该页驻留的应用程序关联的Cache对象Controls获取ControlCollection对象,该对象表示UI层次结构中指定服务器控件的子控件ErrorPage获取或设置错误页,当发生未处理的页异常的事件时请求浏览器将被重定向到该页IsP

38、ostback返回网页加载情况。为True表示网页是由于客户端返回数据而重新被加载,为False表示网页被第一次加载IsValid获取一个值,该值指示页验证是否成功Request获取请求页的HttpRequest对象Response获取请求页的HttpResponse对象Server获取Server对象,它是HttpServerUtility类的实例Session获取ASP.NET提供的当前的Session对象Validators获取请求的页上包含的全部验证控件的集合Visible获取或设置指示是否呈现Page对象值3.1 Page类IsPostBack属性 IsPostBack属性用于判断是

39、否是响应加载页面,当使用者第一次浏览这个网页时Page.IsPostBack 会传回false,不是第一次浏览这个网页时就传回true;通常在页面初始化(即Page.!IsPostBack)绑定数据或者放入一些共用变量,此外还可以用于cookie与session 使用时的判断,Datagrid的数据绑等,page_load 事件中也可以使用这个属性来避免做一些重复的动作。 (例3-1)3.2 Request对象 Request对象实际上操作System.Web命名空间中的类HttpRequest。当客户发出请求执行ASP.NET程序时,CLR会将客户端的请求信息包装在Request对象中。这些

40、请求信息包括请求报头(Header)、客户端的基本信息(如浏览器类型、浏览器版本号、用户所用的语言以及编码方式等)、请求方法(如Post、GET)、参数名、参数值等。所以Request对象也被称为请求对象。 3.2 Request对象属性描述ApplicationPath获取被请求页面的目录信息(虚拟应用程序根路径)Brower获取正在请求的客户端的浏览器功能的信息ClientCertifacate获取当前请求的客户端安全证书Cookies获取客户端Cookies集合Form获取窗体变量集合Headers返回有关HTTP报头集合IsAuthenticated获取一个值,该值指示是否验证了用户I

41、sSecureConnection获取一个值,该值指示HTTP连接是否使用加密Item获取Cookies、Form、等集合中指定对象Params获取Querystring、Form项的组合集合Path获取当前请求的虚拟地址Querystring获取HTTP查询字符串变量集合ServerVariables获取Web服务器变量集合UserHostAddress获取远程客户端的IP主机地址URL获取浏览器提交的完整的URL地址3.2 Request对象方法描述BinaryRead执行对当前输入流进行指定字节数的二进制读取GetType获取当前实例的TypeMapPath为当前请求将请求的URL中的虚

42、拟路径映射到服务器上的实际路径Request对象的调用方法是:Request.Collection“Varible”,其中,Collection包括Querystring、Form、Cookies、ServerVariables四种集合。 3.2 Request对象Querystring属性请求字符串Web浏览器向Web服务器传送信息的一种方式,Querystring属性的信息来自于发出请求的URL地址中“?”后面的数据,这些数据称为“URL附加信息”。例如http:/localhost/Queststringtest/webform1.aspx?name=wang”,在该URL中,name=

43、wang是浏览器向Web服务器传送的信息,获取这个信息的语句是:Request.Querystring“name”。 Querystring主要用于收集HTTP协议中的GET请求发送的数据,如果在一个请求事件中被请求的程序URL地址出现了“?”后的数据,则表示此次请求方式为GET。GET方法是HTTP中默认请求方法最常用的超文本链接便是通过GET方法发送请求。如:则表示显示ID为111的文章。当有多个信息时,信息间用“&”连接。 3.2 Request对象Form属性 Form属性是表示表单变量的集合,通过Request对象的Form属性可以读取浏览器发送到服务器的数据。GET方法是将传递的数

44、据追加至URL中。URL地址长度是有限制的,因此使用GET方法所能传递的数据也有限。一般地,GFT方法能够传递256字节的数据。在多数情况下,使用GET方法传递的数据长度是远远不够的,这时就需要使用HTTP的另外种请求方式POST,POST能传递的数据最大可达到2MB。POST请求必须由Form发出(使用sock方法直接写入HTTP报头的方法除外)。 (例3-2)1.2 ASP.NET工作原理 Brower、UserHostAddress等属性代码量这些属性可以获取客户端浏览器的资料,以及主机的IP地址等信息。(例3-3) 3.3 Response对象 Response对象处理来自服务器端所创

45、建的并发回给客户端的信息。它与Request对象实现了浏览器和服务器的交互。Response对象实际上操作System.Web命名空间中的HTTPResponse对象的实例,HTTPResponse类封装来自ASP.NET操作的HTTP响应信息。 属性描述Buffer获取或设置一个值,该值指出是否缓冲输出,并在完成整个响应时间后将其发送BufferOutput获取或设置一个值,该值指出是否缓冲输出,并在完成处理整个页之后将其发送Cookies获取响应cookies集合Cache获取Web页的缓存策略(过期时间、保密性、变化子句)Expires获取或设置在浏览器上缓存的页过期之前的分钟数。如果用

46、户在页过期之前返回同一页,则显示缓存的版本ExpiresAbsolute设定了页面在浏览器Cache中失效的具体时间。Output启用到输出HTTP响应流的文本输出OutputStream启用到输出Http内容主体的二进制输出方法描述BinaryWrite将一个二进制字符串写入HTTP输出流Clear清除缓冲区流中的所有内容输出,但此方法只删除Response显示输出信息,不删除Response头信息Close关闭客户端的联机End停止当前程序的处理并返回结果,剩下的文件内容是没有处理的Flush向客户端发送当前所有缓冲的输出Redirect将客户端重定向到新的URLWrite将信息写入HTT

47、P输出内容流WriteFile将指定的文件直接写入HTTP内容输出流3.3 Response对象Buffer属性 Response. Buffer=flag,Buffer属性表示是否对页面输出进行缓冲。如有缓冲,服务器在当前处理的所有页面上的语句被处理之前不将Response送往客户端,除非有flush或end方法被调用。参数flag表示是否对页面输出进行缓冲,True为需要,False表示否,系统默认为True,而Response.Clear()常用于清除缓冲区中的所有内容。(例) 3.3 Response对象Wirte方法Write方法输出指定的文本内容,例如:Response.Write

48、(“欢迎光临!”),该方法在前面的例子中已经用到很多,这里不再详细解释。但要注意,在ASP中Response.Write “欢迎光临!”是被允许的,但在ASP.NET中必须有括号框住,否则会出错。 3.3 Response对象Redirect方法 该方法可以将用户的页面重定向到一个新的页面,使用时只要传入一个字符串类型的地址即可,传入在网址后附加参数的地址字符串也可以。该在实现页面转移的过程中很有用。例如:Response.Redirect(“http:/”);当然在转向的新页面也可以为相对路径的表示。 3.4 HttpServerUtility对象 HttpServerUtility对象也被

49、称为Server对象,它起着HTTP服务接口的作用,并且公开HTTP服务器的属性和方法。 属性描述MachineName获取服务器的计算机名称ScriptTimeout获取和设置请求超时方法描述CreateObject创建COM对象的一个服务器实例Ececute执行对另一个页的请求HtmlDecode对已被编码以消除无效HTML字符的字符串进行解码HtmlEncode对要在浏览器中显示的字符串进行编码MapPath返回与Web服务器上的指定虚拟路径相对应的物理文件路径Transfer终止当前页的执行,并开始执行新页UrlDecode对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在U

50、RL中发送到服务器UrlEncode编码字符串,以便URL从Web服务器到客户端进行可靠HTTP传输3.4 HttpServerUtility对象HtmlDecode、HtmlEncode属性 如果需要在页面中显示如下信息:window.alert(“ASPCN.COM,您今天访问了吗?”);如果直接将代码写入文件,代码如下:Response.Write(window.alert(ASPCN.COM,您今天访问了吗?) 3.4 HttpServerUtility对象HtmlDecode、HtmlEncode属性 由于需要显示的代码是Javascript,它会在浏览器得到执行,井弹出图3-7的对

51、话框,这并不是所需要的情景。目的是显示这段源代码,而不是执行它。这时就这需要用到HtmlEncode。代码如下:Response.Write(Server.HtmlEncode(window.alert(,您今天访问了吗?);); 3.4 HttpServerUtility对象MapPath方法 该方法返回Web服务器上的指定路径相对应的物理文件路径。方法的语法为:pulic string MapPath(string path);其中,path为Web服务器上的虚拟路径;返回值为与path相对应的物理文件路径;如果path为NULL,MapPath将返回包含当前应用程序目录的完成物理路径。例

52、如:Response.Write(Server.MapPath(“WebForm1.aspx”);运行的结果就是返回WebForm1.aspx的实际路径,如:c:inetputwwwrootUrlEncodeTest WebForm1.aspx 3.4 HttpServerUtility对象Execute方法和Transfer方法Transfer(path)方法用于终止当前程序执行,进入path所指程序;而Execute(path)方法指在当前程序中执行path所指程序,但path所指程序执行完后将继续执行当前程序中后面的代码。 (例3-4)3.5 HTTPApplication对象 Appl

53、ication对象的典型应用计数器 如果要建立与用户交互的基于Web站点的应用程序,必须能够为每个用户提供独立的状态。这可能是记录每个用户的名字、也可能为每个用户存储对象引用或不同的记录集。HTTPApplicationState类在整个应用程序中共享信息,该类通过Appliacation对象进行访问。任何客户端首次在特定ASP.NET应用程序的虚拟目录命名空间中请求URL资源时,创建HTTPApplicationState类实例。也就是说一个Application对象对应一个IIS的虚拟目录以及其下的子目录。Application对象可以被全局用户访问,因此可以保存全局级别的变量等,只有当W

54、eb站点停止或操作系统重启等情况下才被释放。在程序的编写中Application的代码一般写在Global.asax中(实例3-5)3.5 HTTPApplication对象计数器的锁定 在进行记数的过程中,往往是多个用户同时访问页面,计数器会面临同时加1的操作,在ASP.NET中,使用了两个方法来解决这种操作带来的并发问题。Application.Lock()和Application.UnLock()方法。Lock是锁定当前Application对象以便当前用户单独操作(主要是写的操作,读的操作并不会因为Application被锁定而不能读取);UnLock是在操作完毕后解除锁定,以便让其他

55、用户拥有写的权利。 3.6 Session对象 Session对象跟Application对象都是对Web应用程序状态进行管理。它的功能是让服务器记忆客户,与Application不同的是,Application是共享的,而Session是局部的,简单的说Session就是服务器给客户端的一个编号,当网页用户关掉浏览器或超过设置的Session对象的有效时间时,Session对象变量就会消失。 3.6 Session对象 有个Session,服务器就可以判断浏览者是哪一个用户,这在购物系统和投票系统等场合下记录用户名和权限很有用,Session在Session_Start和Session_En

56、d中触发,如果需要统计当前页面的在线人数就可以利用Session的这两个事件 3.6 Session对象Session意义与基本使用页面间传值 在使用Session时,如果用Session作为页面参数传递,需要注意它是在一个浏览器会话周期内有效。所谓一个浏览器会话周期是指从一个浏览器窗口打开到关闭这个期间。 因为重新打开一个浏览器相当于又一次会话.(实例3-6) 3.6 Session对象改进的计数器实例 Session提供Abandon()方法可以强制使Session失效,并同时执行Session_OnEnd事件。可以通过Session.Timeout属性显式设置Session失效的最大间隔

57、时间,如果用户在间隔时间内不刷新或请求网页,则该会话将终止。Timeout一般以分钟为单位,默认为20分钟,可以通过Session.Timeout=10来修改失效时间为10分钟。(实例3-7) 3.6 Session对象Session的配置默认情况下,Session是存储进程内的,通过Web.config可以改变Session的存储方式。以下是Visual Studio.NET生成的默认配置信息 3.7 HttpCookies对象 常用属性Cookie它将一些用户信息储存在客户的机器中,以便于在每次请求时被服务器在设定的时期内进行读取。至今,它也是在页面请求和站点访问之间提供状态的常用方法。但

58、如果用户转移到另一个计算机,或删除cookie,或者浏览器拒绝接收发送给他们的Cookie,则不能维持状态。 3.7 HttpCookies对象 常用属性HttpCookie类提供创建和操作各HTTP Cookie的类型安全方法。HttpCookie类获取和设置各Cookie的属性,HttpCookieCollection类提供存储、检索和管理整个Web应用程序的所有Cookie方法。Response、Request对象包含Cookie属性,该属性是HttpCookieCollection类的实例。例如:HttpCookie cookie=new HttpCookie(“aspcn”)表示建立

59、一个名为aspcn的HttpCookie实例。建立实例后,将给其赋值。 属性描述Domain获取或设置将此Cookie与其关联的域Expires获取或设置此Cookie的过期日期和时间ItemHttpCookie.Values的快捷方式,在C#中,该属性为HttpCookie类的索引器Name获取或设置Cookie的名称Path获取或设置要与当前Cookie一起传输的虚拟路径Value获取或设置单个Cookie值Values获取在单个Cookie对象中包含的键值对的集合3.7 HttpCookies对象设置Cookie值 一个Cookie中可以存储一个或多个值,例如:通过设置Cookie的Va

60、lue属性值,可以在Cookie中存储一个 。例如单值存储:HttpCookie cookie=new HttpCookie(“aspcn”); Values集合使用的Add方法中设置多个值(Values),设置Cookie的最后一步是通过AppendCookie方法将设置的Cookie应用到Response对象中去。例如:Response.AppendCookie(cookie) 3.7 HttpCookies对象读取Cookie 当浏览器向服务器发送请求时,该服务器的Cookie会与请求一起发送。可以使用Request对象来读取Cookie,读取单值Cookie可以利用Cookie的Val

温馨提示

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

评论

0/150

提交评论