《第4章 用ASPNET建立 Web页面》由会员分享,可在线阅读,更多相关《第4章 用ASPNET建立 Web页面(42页珍藏版)》请在金锄头文库上搜索。
1、ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社第第4章章 用用ASP.NET建立建立 Web页面页面ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社8/12/20241ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社教学目标教学目标l理解理解ASPX网页的基类网页的基类l理解理解ASPX网页代码模型网页代码模型l理解页面生命周期和控件。理解页面生命周期和控件。lASP.NET 状态管理。状态管理。8/12/20242ASP.NET动态网站开发教程(第
2、二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社第第4章章 用用ASP.NET建立建立 Web页面页面l4.1 ASPX网页的基类网页的基类l4.2 页面管理页面管理l4.3 ASP.NET的网页代码模型的网页代码模型l4.4 状态管理状态管理l4.5 ASP.NET配置管理配置管理8/12/20243ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.1 ASPX网页的基类网页的基类 每个每个ASPX网页都直接或间接地继承自网页都直接或间接地继承自System .Web .UI .Page类。由于在类。由于在Page类类中已经定义
3、了网页所需要的基本属性、事件中已经定义了网页所需要的基本属性、事件和方法,因此只要新网页生成,就从它的基和方法,因此只要新网页生成,就从它的基类中继承了这些成员,因而也就具备了网页类中继承了这些成员,因而也就具备了网页的基本功能。的基本功能。 Page类常用的属性、事件和类常用的属性、事件和方法如下表所示。方法如下表所示。 8/12/20244ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社名称名称功能功能IsPostBackIsPostBack 属性,属性,获取一个取一个值,该值指示指示该页是否正是否正为响响应客客户端回端回发而加而加载,如果是
4、,如果是则为TrueTrue,否,否则为FalseFalseIsValidIsValid 属性,属性,获取一个取一个值,该值指示指示页验证是否是否成功,如果是成功,如果是则为TrueTrue,否,否则为FalseFalseDataBindDataBind 方法,将数据源方法,将数据源绑定到被定到被调用的服用的服务器控器控件及其所有子控件件及其所有子控件Load Load 事件,当启事件,当启动该页面面时激活激活该事件事件8/12/20245ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2 页面管理页面管理l4.2.1 页面的往返与处理机制页
5、面的往返与处理机制l4.2.2 页面的生命周期页面的生命周期l4.2.3 ASP.NET 页生命周期事件页生命周期事件l4.2.4 ASP.NET 页面指令页面指令8/12/20246ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.1 页面的往返与处理机制页面的往返与处理机制 ASP.NET页面的处理循环如下:页面的处理循环如下:l用户通过客户端浏览器请求页面,页面第一用户通过客户端浏览器请求页面,页面第一次运行。如果程序员通过编程让它执行初次运行。如果程序员通过编程让它执行初步处理,如对页面进行初始化操作等,可步处理,如对页面进行初始化
6、操作等,可以在以在Page_load事件中进行处理。事件中进行处理。8/12/20247ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.1 页面的往返与处理机制页面的往返与处理机制l Web服务器在其硬盘中定位所请求的页面。服务器在其硬盘中定位所请求的页面。l如果如果Web页面的扩展名为页面的扩展名为 .aspx,就把这个,就把这个文件交给文件交给aspnet-isapi.dll 进行处理。如果进行处理。如果以前没有执行过这个程序,那么就由以前没有执行过这个程序,那么就由CLR编编译并执行,得到纯译并执行,得到纯HTML结果;如果已经执结
7、果;如果已经执行过这个程序,那么就直接执行编译好的程行过这个程序,那么就直接执行编译好的程序并得到纯序并得到纯HTML结果。结果。8/12/20248ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.1 页面的往返与处理机制页面的往返与处理机制l把把HTML流返回给浏览器,浏览器解释执流返回给浏览器,浏览器解释执行行HTML代码,显示代码,显示Web页面的内容。页面的内容。l当用户键入信息、从可选项中进行选择,当用户键入信息、从可选项中进行选择,或单击按钮,页面可能会再次被发送到或单击按钮,页面可能会再次被发送到Web服务器,在服务器,在A
8、SP.NET中被称为中被称为“回回发发”。更确切地说,页面发送回其自身。更确切地说,页面发送回其自身。 8/12/20249ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.1 页面的往返与处理机制页面的往返与处理机制 l在在Web服务器上,该页面再次运行,并执服务器上,该页面再次运行,并执行后台代码指定的操作。行后台代码指定的操作。l服务器将执行操作后的页面以服务器将执行操作后的页面以HTML标记标记的形式发送到客户端浏览器。的形式发送到客户端浏览器。 只要用户在该页面中工作,此循环就会只要用户在该页面中工作,此循环就会继续。用户每次单击
9、按钮时,页面中的信继续。用户每次单击按钮时,页面中的信息都会发送到息都会发送到Web服务器,然后该页面再服务器,然后该页面再次运行,每个循环称为一次次运行,每个循环称为一次“往返行程往返行程”。 8/12/202410ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.2 页面的生命周期页面的生命周期 ASP.NET 页的生命周期顺序如下。页的生命周期顺序如下。1、页请求、页请求 2、开始、开始3、页初始化、页初始化 4、加载、加载 5、验证、验证 8/12/202411ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华
10、大学出版社清华大学出版社4.2.2 页面的生命周期页面的生命周期 6、回发事件处理、回发事件处理 7、呈现、呈现 8、卸载、卸载 8/12/202412ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.3 ASP.NET 页生命周期事件页生命周期事件 在页生命周期的每个阶段中,页将引发相在页生命周期的每个阶段中,页将引发相应处理的事件。表应处理的事件。表4-2列出了常用的页生命周列出了常用的页生命周期事件。期事件。8/12/202413ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社Page_
11、PreInitPage_PreInit检查 IsPostBackIsPostBack 属性来确定是不是第一次属性来确定是不是第一次处理理该页创建或重新建或重新创建建动态控件控件动态设置主控置主控页动态设置置 Theme Theme 属性属性读取或取或设置配置文件属性置配置文件属性值Page_InitPage_Init读取或初始化控件属性取或初始化控件属性Page_LoadPage_Load读取和更新控件属性取和更新控件属性控件事件控件事件使用使用这些事件来些事件来处理特定控件事件,如理特定控件事件,如 Button Button 控件的控件的 Click Click 事件或事件或 TextBo
12、xTextBox 控件的控件的 TextChangedTextChanged 事件事件Page_PreRenderPage_PreRender该事件事件对页或其控件的内容或其控件的内容进行最后更改行最后更改Page_UnloadPage_Unload使用使用该事件来事件来执行最后的清理工作,如:关行最后的清理工作,如:关闭打开的文件打开的文件和数据和数据库连接,或完成日志接,或完成日志记录或其他或其他请求特定任求特定任务8/12/202414ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.4 ASP.NET 页面指令页面指令 ASP.NE
13、T页面支持多个页面指令,常用的页面支持多个页面指令,常用的页面指令如下所示。页面指令如下所示。l Page:定义:定义ASP.NET页分析器和编译器页分析器和编译器使用的页特定(使用的页特定(.aspx文件)属性,可以编文件)属性,可以编写为写为。8/12/202415ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.4 ASP.NET 页面指令页面指令l Control:定义:定义ASP.NET页分析器和编译器使页分析器和编译器使用的用户控件(用的用户控件(.ascx文件)特定的属性。该指令文件)特定的属性。该指令只能为用户控件配置。可以
14、编写为只能为用户控件配置。可以编写为。l Import:将命名空间显示导入到页中,使所导:将命名空间显示导入到页中,使所导入的命名空间的所有类和接口可用于该页。导入入的命名空间的所有类和接口可用于该页。导入的命名空间可以是的命名空间可以是.NET Framework类库或用户定类库或用户定义的命名空间的一部分。可以编写为义的命名空间的一部分。可以编写为。 8/12/202416ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.4 ASP.NET 页面指令页面指令l Implements:提示当前页或用户控件实:提示当前页或用户控件实现指定的
15、现指定的.NET Framework接口。可以编写接口。可以编写为为。l Reference:以声明的方式将页或用户控:以声明的方式将页或用户控件链接到当前页或用户控件。可以编写为件链接到当前页或用户控件。可以编写为。8/12/202417ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.2.4 ASP.NET 页面指令页面指令l OutputCache:以声明的方式控制:以声明的方式控制ASP.NET页或用户控件的输出缓存策略。页或用户控件的输出缓存策略。l Assembly:在编译过程中将程序集链接到当:在编译过程中将程序集链接到当前页,以
16、使程序集的所有类和接口都可用在该页前页,以使程序集的所有类和接口都可用在该页上。可以编写为上。可以编写为或或的方式。的方式。l Register:将别名与命名空间以及类名关联起:将别名与命名空间以及类名关联起来,以便在自定义服务器控件语法中使用简明的来,以便在自定义服务器控件语法中使用简明的表示法。表示法。8/12/202418ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.3 ASP.NET的网页代码模型的网页代码模型l4.3.1 单文件页模型单文件页模型l4.3.2 代码隐藏页模型代码隐藏页模型 l4.3.3 用用Visual Studi
17、o 2008创建创建ASP.NET网页网页8/12/202419ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.3.1 单文件页模型单文件页模型 在在单单文文件件页页模模型型中中,页页的的标标记记及及其其编编程程代代码码位位于于同同一一个个后后缀缀为为 .aspx 的的文文件件中中。编编程程代代码码位位于于标标记记的的模模块块中中,以以便便与与其其他他显显示示代代码码隔隔离离开开。服服务务器器端端运运行行的的代代码码一一律律在在标标记记中中注注明明runat=server 属属性性,此此属属性性将将其其标标记记为为 ASP.NET 应应 执执
18、 行行 的的 代代 码码 。 一一 个个模模块块可可以以包包括括多多个个程程序序段段,每每个个网网页也可以包括多个页也可以包括多个模块。模块。8/12/202420ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社8/12/202421ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.3.2 代码隐藏页模型代码隐藏页模型 代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在单独代码隐藏页模型将事物处理代码都存放在单独的的cs文件中,当文件中
19、,当ASP.NET网页运行的时候,网页运行的时候,ASP.NET类生成时会先处理类生成时会先处理cs文件中的代码,文件中的代码,再处理再处理.aspx页面中的代码。这种过程被称为代页面中的代码。这种过程被称为代码分离。码分离。8/12/202422ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社8/12/202423ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.3.3 用用Visual Studio 2008创建创建 ASP.NET网页网页首先创建一个采用单文件页模型的页面。首先创建一个采用单
20、文件页模型的页面。选择菜单栏上的选择菜单栏上的“文件文件” “新建新建” “文件文件”,或在,或在“解决方案资源管理器解决方案资源管理器”中右击当前中右击当前网站,选择网站,选择“添加新项添加新项”。在弹出。在弹出“添加新项添加新项”对话框中的对话框中的“Visual Studio已安装的模板已安装的模板”下选择下选择“Web窗体窗体”,在,在“名称名称”栏中键入栏中键入Default2.aspx。从。从“语言语言”下拉列表中选择下拉列表中选择“Visual C#”。同时,取消勾选。同时,取消勾选“将代码放在将代码放在单独的文件中单独的文件中”复选框(复选框默认为选中状复选框(复选框默认为选中
21、状态)。态)。 8/12/202424ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社8/12/202425ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4 状态管理状态管理l4.4.1 页面状态概述页面状态概述l4.4.2 视图状态视图状态l4.4.3 控件状态控件状态l4.4.4 隐藏域隐藏域8/12/202426ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.1 页面状态概述页面状态概述 ASP.NET提供了几种在服务器往返过提供了
22、几种在服务器往返过程之间维持状态的方式,分别应用于不同程之间维持状态的方式,分别应用于不同的目的。的目的。l视图状态:用于保存本窗体页的状态。视图状态:用于保存本窗体页的状态。l控件状态:用于存储控件状态数据。控件状态:用于存储控件状态数据。l隐藏域:呈现为隐藏域:呈现为 元素,用于存储一个值。元素,用于存储一个值。8/12/202427ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.1 页面状态概述页面状态概述l应用程序状态:用于保存整个应用程序的状态,应用程序状态:用于保存整个应用程序的状态,状态存储在服务器端。状态存储在服务器端。l
23、会话状态:用于保存单一用户的状态,状态存会话状态:用于保存单一用户的状态,状态存储在服务器端。储在服务器端。lCookie状态:用于保存单一用户的状态,状状态:用于保存单一用户的状态,状态存储在浏览器端。态存储在浏览器端。8/12/202428ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.2 视图状态视图状态l视图状态就是本窗体的状态,保持视图状视图状态就是本窗体的状态,保持视图状态就是在反复访问本窗体页的情况下,能态就是在反复访问本窗体页的情况下,能够保持状态的连续性。够保持状态的连续性。 使用视图状态的优点为:使用视图状态的优点为:
24、l不需要任何服务器资源:视图状态包含在不需要任何服务器资源:视图状态包含在页代码内。页代码内。l实现简单:视图状态无需使用任何自定义实现简单:视图状态无需使用任何自定义编程。编程。8/12/202429ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.2 视图状态视图状态l增强的安全功能增强的安全功能 虽然使用视图状态可以带来很多方便,但虽然使用视图状态可以带来很多方便,但是要注意以下问题:是要注意以下问题:l视图状态提供了特定视图状态提供了特定ASP.NET页面的状态页面的状态信息。信息。 l视图状态信息将序列化为视图状态信息将序列化为X
25、ML,然后使用,然后使用Base64编码进行编码,这将生成大量的数编码进行编码,这将生成大量的数据。据。 8/12/202430ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.2 视图状态视图状态l虽然使用视图状态可以保存页和控件的值,但虽然使用视图状态可以保存页和控件的值,但是在某些情况下,需要关闭视图状态。是在某些情况下,需要关闭视图状态。l某些移动设备不允许使用隐藏字段。因此,视某些移动设备不允许使用隐藏字段。因此,视图状态对于这些设备无效。图状态对于这些设备无效。 8/12/202431ASP.NET动态网站开发教程(第二版)动态
26、网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.3 控件状态控件状态 ASP.NET 页框架提供了页框架提供了 ControlState 属属性作为在服务器往返过程中存储自定义控性作为在服务器往返过程中存储自定义控件数据的方法。件数据的方法。 使用控件状态的优点为:使用控件状态的优点为:l不需要任何服务器资源不需要任何服务器资源 l可靠性可靠性 l通用性通用性 8/12/202432ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.4 隐藏域隐藏域 在在ASP中,通常使用隐藏域保存页面的信中,通常使用隐藏域保存页面的信息。在息。
27、在ASP.NET中,同样具有隐藏域来保中,同样具有隐藏域来保存页面的信息。但是隐藏域的安全性并不存页面的信息。但是隐藏域的安全性并不高,最好不要在隐藏域保存过多的信息。高,最好不要在隐藏域保存过多的信息。隐藏域具有以下优点:隐藏域具有以下优点:l不需要任何服务器资源不需要任何服务器资源 l广泛的支持广泛的支持 8/12/202433ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.4 隐藏域隐藏域l实现简单实现简单 使用隐藏域的缺点为:使用隐藏域的缺点为:l潜在的安全风险潜在的安全风险 l简单的存储结构简单的存储结构 l性能注意事项性能注意
28、事项 l存储限制存储限制 8/12/202434ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.4.4 隐藏域隐藏域下面总结了一些客户端状态的优缺点:下面总结了一些客户端状态的优缺点:l视图状态:当需要存储少量回发到自身的页信息视图状态:当需要存储少量回发到自身的页信息时使用。时使用。l控件状态:需要在服务器的往返过程间存储少量控件状态:需要在服务器的往返过程间存储少量控件状态信息时使用。不需要任何服务器资源,控件状态信息时使用。不需要任何服务器资源,控件状态是不能被关闭的,提供了控件管理的更控件状态是不能被关闭的,提供了控件管理的更加可靠和
29、更通用的方法。加可靠和更通用的方法。l隐藏域:实现简单,当需要存储少量回发到自身隐藏域:实现简单,当需要存储少量回发到自身或另一页的页信息时使用,也可以在不存在安全或另一页的页信息时使用,也可以在不存在安全性问题时使用。性问题时使用。8/12/202435ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.5 ASP.NET配置管理配置管理l4.5.1 配置文件的规则配置文件的规则l4.5.2 配置配置Web.config文件文件8/12/202436ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社
30、4.5 ASP.NET配置管理配置管理 ASP.NET采用基于采用基于XML的配置文件,的配置文件,易于定制。这些配置文件可以通过在文本易于定制。这些配置文件可以通过在文本编辑器中进行编辑来配置编辑器中进行编辑来配置ASP.NET的任何的任何组件。本节介绍两种类型的配置文件:组件。本节介绍两种类型的配置文件:l机器配置文件机器配置文件Machine.config用于机用于机器设置;器设置;l应用程序配置文件应用程序配置文件Web.config用于应用于应用程序特定的设置。用程序特定的设置。8/12/202437ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清
31、华大学出版社4.5.1 配置文件的规则配置文件的规则l复制复制Machine.config文件,并保存为文件,并保存为Machine.config.xml,再在浏览器中打开,再在浏览器中打开它,如果压缩主要节点,就可以得到基本它,如果压缩主要节点,就可以得到基本元素的图形显示,如图元素的图形显示,如图4-6所示。所示。8/12/202438ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社8/12/202439ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.5.1 配置文件的规则配置文件的规则 这
32、个配置文件是基于这个配置文件是基于XML的,下面简单介的,下面简单介绍使用绍使用XML书写配置文件的基本规则:书写配置文件的基本规则:l这些文件必须有一个唯一的根元素,它把这些文件必须有一个唯一的根元素,它把其他元素都包括在内。其他元素都包括在内。l元素必须包括在起始标记和结束标记内,元素必须包括在起始标记和结束标记内,这些标记是区分大小写的这些标记是区分大小写的l任何属性、关键字的取值都必须包括在双任何属性、关键字的取值都必须包括在双引号中引号中l元素必须嵌套,且不能重叠元素必须嵌套,且不能重叠8/12/202440ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学
33、出版社清华大学出版社4.5.2 配置配置Web.config文件文件1. 设置设置SessionState SessionState称为会话状态,可以在称为会话状态,可以在SessionState节中指定一个节中指定一个Session是否超是否超时、是否启用或支持时、是否启用或支持Cookies等等 8/12/202441ASP.NET动态网站开发教程(第二版)动态网站开发教程(第二版) 清华大学出版社清华大学出版社4.5.2 配置配置Web.config文件文件2. 用户身份验证与授权用户身份验证与授权ASP.NET中提供了中提供了4种身份验证方式:种身份验证方式:NoneWindowsFormsPassport8/12/202442