构建Web应用程序.ppt
第15讲 构建Web应用程序设计,教学目标,本章主要介绍了如何用ASP.NET编写Web应用程序,如何使用Web控件以及如何通过Web窗体读写数据库。Web应用程序,是一种以网页形式为界面的应用程序,Web应用程序可以利用网络的强大功能为用户提供服务。ASP.NET为这种类型应用程序的开发提供了一个强大的平台。,教学重点,ASP.NET概述使用ASP.NET创建Web应用程序Web 窗体校验控件使用使用Web 窗体访问数据,15.1 ASP.NET概述,ASP.NET技术可用于动态创建带有服务器端代码的Web页面。它是ASP(Active Server Page)的后续版本。一个ASP.NET页面文件可以被拆分成两个独立的部分:一个是.aspx文件,它实际上是一个HTML文件,含HTML代码和控件信息,定义了一个页面的布局和外观;另一个是.aspx.cs文件,每个.aspx文件通常都有一个对应的.aspx.cs文件,包含实现程序功能的代码,如事件处理程序和辅助方法等。在ASP.NET Web应用程序项目中“*.aspx”和“*.cs”文件的内容,前者与普通的.htm文件格式非常相似,而后者则与C#应用程序的格式相似。,ASP.NET 工作原理,使用ASP.NET在客户系统上创建Web应用程序,只需一个简单的Web浏览器 在服务器系统上,需要ASP.NET运行库,15.2 使用ASP.NET创建Web应用,使用ASP.NET创建Web应用非常方便。因为ASP.NET中已定义了很多内置对象,它们都是全局对象,不必事先声明就可以直接使用。,15.2.1 ASP.NET的内建对象,尽管ASP.NET的面向对象的设计和基础代码在本质上不同于ASP,但ASP中许多常用的关键字和运算符在ASP.NET中仍保留了下来。ASP.NET内置的对象主要有6个:Page对象用来与扩展名为.aspx的文件相关联。这些文件在运行时创建为Page对象,并缓存在服务器内存中。Page对象充当页中所有服务器控件的命名容器;Request对象是HttpRequest类的实例。当用户请求页面时,ASP.NET也将自动创建Request对象;功能主要是从客户端得到数据。Response对象是HttpResponse类的实例。当用户请求页面时,ASP.NET将自动创建该对象功能用于向客户端浏览器发送数据。,15.2.1 ASP.NET的内建对象,Server对象是最基本的ASP.NET对象,派生自HttpServerUtility类,提供了服务器端的基本属性与方法。可以通过Page对象的Server属性来获取对应的Server对象,即Page.Server;Application对象是HttpApplicationState类的实例。它提供对所有会话的应用程序范围的方法和事件的访问;Session对象是HttpSessionState类的实例。它提供了对会话状态值以及会话级别设置和生存期管理方法的访问。,Web窗体页指令,Web窗体页指令用来指定当请求ASP.NET页和用户控件时使用的设置,构建ASP.NET应用程序,使用ASP.NET创建的一个Web应用程序通常有一个或多个ASP.NET页或者Web窗体、代码文件以及配置文件组成。一个新的Web应用程序被创建后,系统自动创建的文件中包含以下几个文件:,构建ASP.NET应用程序,WebForm1.aspx文件:这是一个空白的ASP.NET Web窗体页面,通常可将第一个.aspx文件改名为“default.aspx”或“index.aspx”作为Web站点的缺省主页。每个.aspx文件开头的预编译指令指明了对应的代码文件的名称和位置。AssemblyInfo.cs文件:这是一个普通的源代码文件,其中包含了所有的程序集特性。文件:这是应用程序自动启动时被加载的第一个文件,它包含了Application_Start,Session_Start,Application_End,Session_End等几个过程。Web.config文件:这是ASP.NET应用程序的配置文件。这个文件采用的是XML格式,其中包含了与安全性、缓存管理、页编译等有关的信息。,构建ASP.NET应用程序,例:构建一个ASP.NET Web应用程序项目步骤:1)启动VS2005;2)选择【文件】|【新建】|【网站】命令,打开【新建网站】对话框;3)选择【ASP.NET网站】模板。从【位置】下拉列表中选择【文件系统】,然后在对应的文本框中输入【F:shh】(路径),设置语言,【确定】。系统将创建一个Web应用程序,它包括一个名称为App_Data的文件夹,以及一个名称为Defalt.aspx的Web窗体。4)窗体底部的【设计】,可添加控件,并自动生成HTML代码。,网站的发布与测试,在“生成”菜单上单击【发布网站】,在【目标位置】输入要发送到的路径(如:c:InetpubwwwrootGood),如果要使用HTTP或FTP发布到远程网站,则需要指定远程服务器的URL。使用【管理工具】|【IIS】创建虚拟目录;或右击上述路径文件夹的名称,【共享和安全】|【Web共享】单击共享此文件夹,【权限】可默认打开浏览器,键入URL:如:http:/localhost/test/SamplePage.aspx,15.2.3 Web Server控件,Web窗体控件与HTML控件或HTML表单相比较,有一个重要的区别,Web窗体控件是服务器端控件,是在服务器端生成。所以,添加到窗体上的Web窗体控件也统称为Server控件。Server控件与普通网页上使用的标准HTML控件相似,只是它们编程更加灵活。大多数Server控件都揭示了事件处理程序、方法和属性,服务器上的代码可以动态地执行和修改它们。Server控件是基于更加抽象的、具有更强的面向对象特征的设计模型,它提供了比HTML服务器种类更多、功能更强大的控件集合。它属于名称空间,所有的ASP.NET 服务器控件类都是从该名称空间的基类WebControl派生的。,15.2.3 Web Server控件,Server控件的主要特点:可自动检测客户端浏览器的类型和功能,生成相应地HTML代码,从而最大程度地发挥浏览器的功能;具有数据绑定特性,所有属性都可以进行数据绑定;使用Web Server控件时,必须在类名前添加“asp:”作为前缀,用来映射这些Web服务器控件所处的 Contrd命名控件,并且带有“runat=server”属性,15.2.3 Web Server控件,提示:1)调整控件的布局,使控件可拖放步骤:【设计窗口】|【布局】|【位置】|【自动定位选项】|【HTML设计器】|【CSS定位】|【绝对定位】;2)与程序员编程紧密相连的两个重要属性是ID属性和Text属性。,登录控件,ASP.NET 2.0提供了一些新的安全控件,使用预定义的登录控件不需手动定制表单,即可完成登录及注册等功能,15.3 Web 窗体校验控件使用,和Windows应用程序一样,校验用户输入的内容是否符合一些要求是系统的一个重要内容。对Web应用程序来说,还应该考虑是在服务器端还是在客户端(浏览器)进行校验。进行数据校验有两种方式,分别是服务端校验和客户端校验,这是两种完全不同的方式。在ASP.NET中,提供了验证控件来检查用户输入的有效性,而不需要程序员编写大量的验证函数 验证控件创建了客户端JavaScript代码,在客户端上验证输入,还创建了服务器端代码,在服务器上验证输入。把验证属性EnableClientScript设置为false,可以关闭JavaScript。设置Page类的ClientTarget属性,也可以关闭JavaScript,而不需要对每个验证控件执行改变属性值的操作。,15.3 Web 窗体校验控件使用,ASP.NET中提供了一组功能强大的数据验证组件,这些控件减轻了类似于ASP时代开发人员编程的复杂步骤。控件共有如下六种。RequiredFieldValidator(必需字段验证):用于保证该字段不为空;CompareValidator(比较验证控件):用于比较两个控件中的输入是否相等;RangeValidator(范围验证):用于限定用户输入数据的有效范围;RegularExpressionValidator(正则表达式验证控件)提供了一种较为灵活的验证方式,实现对复杂字符串的验证;CustomValidator(自定义验证):用于以上验证控件都不适合的场合,可由开发人员自行编写验证功能;ValidationSummary(验证总结):属于一个显示控件,负责收集当前页面的验证错误信息,并以集合的形式显示。,15.3 Web 窗体校验控件使用,例:校验控件的使用,15.3 Web 窗体校验控件使用,步骤:1)新建一个ASP.NET网站项目;2)在主窗体页面添加6个Label控件、5个TextBox控件、1个Button控件;5个RequiredFieldValidator控件、1个RangeValidator控件、1个RegularExpressionValidator控件、1个CompareValidator控件和1个ValidationSummary控件;,15.3 Web 窗体校验控件使用,步骤:3)修改控件的属性:设置TextBox4和TextBox5的 TextMode属性为“password”;设置RequiredFieldValidator控件的ControlToValidate属性、Text属性、ErrorMessage属性;设置RangeValidator控件的ControlToValidate属性、Type属性、ErrorMessage属性、Text属性;设置RegularExpressionValidator控件的ControlToValidate属性、Text属性、ErrorMessage属性、ValidationExpression属性;设置CompareValidator控件的ControlToValidate属性、ControlToCompare属性、Text属性、ErrorMessage属性、ValidationExpression属性;,15.3 Web 窗体校验控件使用,步骤:4)编写Button控件的Click事件处理程序:protected void Button1_Click1(object sender,EventArgs e)Label6.Text=全部验证正确!;5)完整的页面代码可见程序,15.4 使用Web 窗体访问数据,在ASP.NET中通过使用ADO.NET实现数据库访问的操作与Windows应用程序对数据库的访问基本一致,可以实现对数据库数据的读取、更改、添加与删除。,Web窗体的GridView控件使用,Web窗体的也有一个类似Windows窗体的DataGridView控件的控件,称为GridView控件。Web窗体GridView控件支持分页技术。Web窗体GridView控件也能在数据库断开连接时使用。可以创建一个SqlDataSource对象连接到一个数据库,填充一个DataSet,然后断开与数据库的连接。可以将SqlDataSource控件中的DataSet对象绑定到一个GridView控件。,15.4.2 查询数据,在ASP.NET中访问数据库与在Windows中访问数据库的操作步骤基本相同:创建DataSet(数据集合)对象,以存放从数据库中读取的记录。创建与数据库的连接,即创建SqlDbConnection或OleDbConnection(Ole数据库连接)对象,建立程序与数据库的数据传输通道。创建SqlDbDataAdapter或OleDbDataAdapter(Ole数据库数据适配器)对象,以完成从数据库读取记录或将程序使用的记录写入数据库。将数据库中读取的数据写入DataSet(数据集合)中,即数据填充;将DataSet(数据集合)中的数据与控件(如数据表格)绑定,以显示数据。,15.4.2 查询数据,例:用GridView控件显示数据库中表中数据,15.4.2 查询数据,步骤:1)新建一个ASP.NET网站项目;2)添加SqlDataSource控件,并配置数据源;注:在【配置Select语句】页面中|高级选项选中复选框;3)向Web窗体添加一个GridView控件;【智能标记】|【自动套用格式】|选择一种模式;【智能标记】|【选择数据源】|选择SqlDataSource1;4)分页显示数据AllowPaging属性为True;PageSize属性设置为8;PageSettings属性|Mode为NextPreviousFirstLast值;更改FirstPageText、LastPageText、NextPageText、PreviousPageText的内容。,15.4.3 编辑数据,前面我们介绍了利用GridView控件来检索和浏览数据。下面我们介绍用GridView控件来修改和删除数据。GridView控件可用于向网格添加按钮,以便于用户执行特定的命令。VS2005提供了一些预定义的按钮用于删除、编辑数据。当然我们也可以添加自定义的按钮和命令。,15.4.3 编辑数据,步骤(在上例的基础上):1)【GridView智能标记】|【启用编辑】;2)【GridView智能标记】|【编辑列】|打开【字段】|选择【编辑、更新、取消】|【ButtonType】属性修改为Button;3)【GridView智能标记】|【启用删除】。,