Web应用程序开发.ppt

上传人:牧羊曲112 文档编号:6524445 上传时间:2023-11-09 格式:PPT 页数:26 大小:217.50KB
返回 下载 相关 举报
Web应用程序开发.ppt_第1页
第1页 / 共26页
Web应用程序开发.ppt_第2页
第2页 / 共26页
Web应用程序开发.ppt_第3页
第3页 / 共26页
Web应用程序开发.ppt_第4页
第4页 / 共26页
Web应用程序开发.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Web应用程序开发.ppt》由会员分享,可在线阅读,更多相关《Web应用程序开发.ppt(26页珍藏版)》请在三一办公上搜索。

1、第8章Web应用程序开发,本章要点:什么是Web应用程序Web应用程序的特点ASP.NET服务器端控件在Web应用程序中访问数据库,8.1 Web版的“你好,Visual Basic.NET!”,8.1.1第一个Web应用程序进入开发环境后,建立一个新项目Case8_1,但是这一次与以前不同,要选择建立的是一个“ASP.NET Web应用程序”,如图8.1所示。应用程序建立以后,将会看到Visual Basic.NET自动生成了一个叫做WebForm1的窗体,这是一个Web Forms窗体,与以前的Windows Forms窗体有许多相似之处,但是由于其运行在Web上的特点,两者并不完全相同。

2、最显著的一点就是它没有明显的边界,这一点很好理解:可以回想一下,平时上网看到的网页也没有如Windows窗体那般明显的边界。另外一个不同点就是在Web Forms窗体上只能够放置Web窗体控件。事实上,如果看看工具箱,就会发现工具箱中显示的是如图8.2所示的Web窗体控件页,而没有Windows窗体控件页。,8.1.2在浏览器中执行Web应用程序,8.1.3Web应用程序如何运行由于这是本书的第一个Web应用程序,在这里有必要首先解释一下Web应用程序本身“是什么”。Web应用程序可以看做是一个或几个协同工作的Web页面,如果是几个页面,它们之间往往会互相传递信息,根据用户的输入做出相应的反应

3、。Case8_1虽然只有一个页面,但是也可以看成是这个页面与它自身传递信息以做出适当的反应。事实上,在运行这个程序期间,计算机“偷偷地”做了很多事情:(1)按F5键,相当于在浏览器中输入“http:/localhost/Case8_1/WebForm1.aspx”;(2)服务器接受请求,运行WebForm1.aspx中的程序,把结果返回到浏览器;(3)用户单击“Say Hello”按钮,浏览器把请求发回到服务器;(4)服务器接受请求,再次运行WebForm1.aspx中的程序,把结果返回到浏览器。,可以看到,就是这么一个简单的程序,却包含了浏览器与服务器之间的两次信息来回,这也正是Web应用程

4、序的特点:几乎每一个动作都会引起浏览器与服务器的通讯,所以比起本地的应用程序来,效率比较低。理解了Web应用程序,可能不会对程序本身有什么疑问,因为它与Windows应用程序太相像了:都是把控件放到窗体上,都是编写事件代码,运行起来也几乎没什么区别。但是,应该意识到,这些表面上的相似性都是Web Forms的功劳,是它使我们能够以如此一致的方式创建这两种完全不同的应用程序。在下一个案例中,会对这一切作深入地探讨。,8.2 ASP.NET,ASP是近些年来Windows平台上使用最广泛的服务器端页面语言之一。确实,即使你从没有做过Web编程,那也接触过它在常去的网站中,就有很多页面带有“asp”

5、这个扩展名的。ASP的页面嵌入式语言特性,以及它与ActiveX的完美结合都给程序员带来了很大的方便。如果你是一个ASP程序员,或者对ASP有所了解的话,那么理解ASP.NET(原来叫ASP+)最快的办法是一句话:“ASP.NET是下一代的ASP,并且是建立在.NET框架上的ASP。”但是,仅仅这么一句话还是失之偏颇了,因为ASP.NET并不是简单的对原有的ASP的补充和增强,也不是仅仅加上了一些.NET,而是真正从底层重新创建了的ASP。,从表面特征来看,ASP.NET与ASP相比至少有两大优点。(1)执行速度更快传统的ASP是纯解释型的,也就是说每一次执行时,都要先“阅读”ASP源代码,然

6、后“翻译”成可执行码,最后才执行。而ASP.NET是编译执行的,在第一次执行的时候,“阅读”和“翻译”的过程还要进行,但是“翻译”的结果被保留下来,在以后就直接执行了,除非源代码做了改变。(2)代码更简洁原本400行的ASP代码完成的功能往往只用20行的ASP.NET代码就可以完成。以上谈到的是一些理论,事实上,上一个案例中已经用到了ASP.NET。Web Forms就是ASP.NET的组成部分。为了让你有一个深刻的了解,在这个案例中将重写Web版本的“你好,Visual Basic.NET”。这一次我们不用集成开发环境,而是用编写ASP的传统方式使用记事本(或者其他文本编辑器)来完成。,8.

7、2.1 手工编写一个Web应用程序 Sub btnHello_Click(Src As Object,e As EventArgs)txtHello.Text=你好,Visual Basic.NET!End Sub,8.2.2手工运行Web应用程序在上个案例中曾经讲过在浏览器中输入“http:/localhost/Case8_1/WebForm1.aspx”可以访问Case8_1的运行结果,这里localhost实际上就是默认网站,它运行在本地机上。IP协议规定IP地址指的就是本机,所以如果要运行这个案例,可以在浏览器中输入“http:/127.0.0.1/Case8_2/Case8_2.as

8、px”,当然输入“http:/localhost/Case8_2/Case8_2.aspx”同样可以运行,二者是等价的。,8.2.3点评:ASP.NET下面来看看代码,这段代码也许从后面看起来更好一些,我们先看这一段:你可能会注意到两个显眼的“asp:”标示,这是ASP前缀,用来表明一个ASP.NET控件(也就是Web Forms控件)。这里的两个控件(TextBox和Button)在上个案例中已经介绍过了,事实上集成开发环境的工作就是自动加上这两句话。在后面有“runat=server”的字样,这表明它们都是服务器端的控件。简单地说,这些控件是运行在服务器端的,而且帮助客户与服务器进行交互。

9、,在Button控件中有这样一句:OnClick=btnHello_Click,这是在声明事件处理程序,那么事件处理程序在哪里呢?就在页面的开头部分:Sub btnHello_Click(Src As Object,e As EventArgs)txtHello.Text=你好,Visual Basic.NET!End Sub 页面上的所有函数、过程都必须定义在块中,这与传统ASP差不多。如果仅仅看这个过程本身,根本无法分辨出这是一个Windows应用程序中的事件处理程序还是Web应用程序中的事件处理程序。前面已经介绍过,在Web Forms的帮助下(现在可以说是在ASP.NET的帮助下),这

10、两者达到了高度的统一。,8.3 Web窗体控件,8.3.1 建立Web日历程序建立一个ASP.NET Web应用程序Case8_3。把一个Calendar控件从“Web窗体”工具页拖曳到Web窗体上,命名为cldDate,注意现在要更改的是(ID))而不是(name)。Calendar控件的默认样式非常单调,但是,在它的“属性”页中可以看到很多可以更改的属性。,8.3.2运行Web日历程序,8.3.3 验证控件首先,可以看到,对ListBox的操作与Windows Forms的ListBox基本相同,这里不再赘述。这里最重要的内容是关于Validator(验证),它们是用来验证用户输入的有效性

11、的,ASP.NET一共提供了5种Validator,分别是ReqiredFieldValidator(验证某个输入是否为空),CompareValidator(将某个输入与既定的值相比较),RangeValidator(看某个输入是否在既定的范围内),RegularExpressionValidator(看某个输入是否满足给定的正则表达式),以及CustomValidator(用户自定义的验证)。有了这5种工具,就可以很方便地验证用户输入了。在程序中用到了其中两种,其他的3种在用法上大致相同,都使用ControlToValidate属性来设置要验证的控件,而用其他的属性(如RangeValid

12、ator的Minimum和Maximum)来设置验证条件。但是同时也应该看到,验证控件不是万能的。在判断某个月份的日期是否有效时,Validator就没办法很好地完成任务,以至于我们要在服务器端补充验证代码.,8.4 HTML控件,第一个是效率。这一点在后面会讲到,HTML控件基本上就是对HTML语言中的元素的直接对应,与Web窗体控件不同,这些控件在放到页面上以后(如果不把它们转成服务器控件的话),直接作为HTML元素来处理。换句话说,不必经过编译和运行的过程,从而运行的速度要快得多。所以,如果对一个控件的功能要求很简单的话(比如,放上一个Label控件,只是为了显示一行不变的字),那么可以

13、考虑HTML控件。,第二个是对页面的控制。由于HTML控件是直接被作为HTML元素处理,所以它们在运行时显示出的外观与设计时的一模一样。第三个是考虑到向下兼容。Web窗体控件在传统ASP中根本就不存在,所以如果只提供Web窗体控件,那么程序员在把传统ASP代码升级到ASP.NET的时候就要做相当大的改变,而HTML控件减少了这种改变的需要。在这个案例中,我们会使用HTML控件编写一个简单的Web应用程序,从中可以看出虽然HTML控件功能简单,但是只要善用,它也可以工作得很好。,8.4.1用HTML控件设计Web应用程序8.4.2程序运行,8.4.3 点评:服务器控件这个程序确实很简单,但是有些

14、东西值得解释,首先是关于什么是“作为服务器控件运行”的问题。前面介绍过HTML控件在不作为服务器控件运行的时候,就相当于一行普通的HTML语句,服务器对它不做任何处理,而是原原本本地把它送到浏览器中去。事实上,如果查看程序窗体的HTML代码,会看到有这样一行:请输入你的名字这就是那个永远不变的Label控件,服务器根本不把它作为什么“控件”,而是作为一行文字来看待,所以它没有自己的行为,也没有除了HTML元素定义之外的属性。,而如果把HTML控件作为服务器控件运行,服务器就将对它进行处理,这就是为什么一定要把一个控件转成服务器控件才能控制它的行为。在HTML代码中,Text Field控件和B

15、utton控件是这样存在的:注意后面的“runat=server”字样,这标志着它们是服务器控件。而相应的,在代码文件中,也会看到对它们的定义:Protected WithEvents txtName As Protected WithEvents btnSayHello As,8.5 访问数据库,前面已经学过了使用Visual Basic.NET开发基于窗口的数据库应用程序,有了ADO.NET的帮助,这个过程的确简单。而在Web应用程序中,这种简单的特性一点也没有变,这个案例就演示如何开发基于Web的数据库应用程序。事实上,由于编程模型的统一性,基于Web的数据库应用程序和基于窗口的数据库应

16、用程序在开发过程上没有太多不同,所以这个案例只是作为一个引子,演示出了一种最简单的情况,即在浏览器中显示一个表。在学习了这个案例之后,结合第7章学到的知识,就可以开发出更复杂的Web数据库应用程序。当然,应当保证自己的机器上装有SQL Server数据库,或者至少可以访问到SQL Server数据库。,8.5.1Web控件上的数据绑定,8.5.2程序运行,8.5.3Web上的数据库连接关于数据库连接,在第7章已经有详细的介绍,在这里只是简单地把过程提一下。首先是设置连接字符串,并且打开一个数据库连接:connMain.ConnectionString=data source=RALPH;_in

17、itial catalog=pubsconnMain.Open()其次是建立一个SQL命令,也就是设置SqlCommand对象的CommandText属性,并且设置其连接为刚刚打开的连接connMain:cmdSelAuthor.CommandText=Select Top 10*from AuthorscmdSelAuthor.Connection=connMain,接下来通过SqlDataAdapter对象执行SQL命令并且用结果来填充数据集:dbaMain.SelectCommand=cmdSelAuthordbaMain.Fill(dsAuthor)最后把数据集绑定到DataGrid上,就可以显示出数据了:dgrdAuthor.DataSource=dsAuthordgrdAuthor.DataBind()整个过程十分简单,但是仍然需要注意的是,数据库操作往往会有错误发生,而且这些错误很可能无法预知。比如由于网络状况不好、数据库服务器停机、数据库名称或位置改变等,都有可能造成数据库访问失败。所以,对于数据库的访问一定要用TryCatch语句保护起来,并且提供尽可能完善的错误处理。本案例中进行了一个简单的错误处理,在网页上报告出错误的地点和原因。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号