第1章 ASP网站开发基础
1.1 动态网页概述
1.1.1 静态网页与动态网页
现在是信息化的时代,网络的影响已深入人们生活的方方面面,在所有网络中,对人们影响最大的就是互联网(Internet)。互联网起源于20世纪60年代末的美国的ARPA网(ARPANET),后来,逐渐发展成为连接全球的信息网络。在近年来,互联网已经成为人们交流、学习和商业往来的一个重要工具。使用浏览器浏览网络信息和收发电子邮件已经和写字一样成为人们工作、生活的重要技能。
互联网能够风靡世界,除了它拥有快捷的全球通信功能外,还在于它具有巨大的网络信息资源和各种人们所需的服务。万维网(WWW,World Wide Web)浏览、电子邮件(E-mail)、网络论坛(电子公告牌,BBS)、新闻组(NewsGroup)、文件传输(FTP)和电子商务等都是互联网中最常用的基本服务内容。
万维网WWW又称为3W,是网络中的基本服务内容。网络中有着数以亿计的网络信息,这些信息大多以网页形式存在。万维网浏览就是通过用户计算机中的浏览器(如IE,NetScape)去浏览网页中所提供的信息。
基本上来说,万维网中可以找到用户所需消息中的绝大多数:想看新闻,可以在网上看到当天最新的新闻,而不需要去买报纸;想出门旅游,可以在网上找到旅游景点的介绍,气象信息、住宿情况、餐饮服务等内容;做科研搞论文,可以在网上找到该研究方向的闻新动态,发展进度等。有了万维网浏览,就真的可以做到古人常说的“秀才不出门,能知天下事”了。
早期的万维网网页都是静态网页。所谓静态,是指网页的内容都是事先预备好的——就好像报纸一样,用户只能在网络上浏览信息,而不能将用户的信息传到网络上。静态网页不能进行信息的交互,这就大大制约了万维网的应用。
随着网络技术的发展,后来又出现了动态网页。所谓动态,是指网页上显示的内容是可以变化、可以交互的。可以改变是指随着条件的不同,同一网页可以出现不同内容;可以交互是指网站与用户间的信息可以互通,用户的信息可以传送到网络上,供网站收集、分析,网站可也可以根据用户的信息来发给用户相应的信息。动态网页的出现,使网络的应用得到了极大的扩展,用户可以在网络上发布自己的信息,网站也能以此来收集用户信息,进行分析,电子邮件、网络论坛、电子商务等,都得益于动态网页的发展。
1.静态网页与HTML
静态网页由单纯的超文本标记语言(HTML,Hypertext Markup Language)进行编辑,在存储时以HTML方式(文件扩展名为.htm/.html)存储。
网络中浏览的静态网页都是一个个的HTML文件,这些网页中可以包含有文字、图片、动画和声音,以及能够跳转到其他文件的超链接。这些所有的东西都是以超文本标记语言方式进行编辑的。
一个HTML文件包含了一些特殊的命令来告诉用户的浏览器应该如何显示文本、图像,以及网页的背景。这些命令加入到文本文件中,被称为HTML标记。如果在浏览器显示网页时查看网页的文本,可以看见在尖括号中的HTML标记。
下面是的例子说明了一个简单的静态HTML网页的是如何实现的。
打开Windows中的记事本,把下面的内容输入到记事本中,将文件以名称test.htm进行存储。注意,在存储时要选择“文件类型”为“所有文件”。
<html> <body> <p align="center"><font color="red">这是一个测试。 </font> </p> <p><font color=BLUE ><I>测试OK。</I></font> </p> </body> </html>
在“资源管理器”中双击打开test.htm文件,可以看到如图1-1所示的内容。
上面这段内容就是一个使用HTML编辑的简单网页。
静态网页中的内容在显示时都是不会改变的,设计时是什么样,显示时就是什么样。对于上面的网页,在显示网页的IE浏览器“查看”菜单下单击“源文件”命令,可以在打开的记事本中看到网页的源文件,如图1-2所示。
可以看到,这里的源文件代码与设计时的代码完全相同。
下面对这个使用超文本标记语言编辑的简单静态网页进行简单说明。HTML网页文件都是以<html>标记开始,以</html>标记结束的。标记<body>和</body>中放置的是文件中要显示出来的内容。其中的<p algin="center">与</p>为一对标签,表示其中的内容居中显示。<fontcolor="red">与</font>也是一对标签,表示其中的文字字体颜色(fontcolor)为红色(red)。<I>与</I>则表示其中的文字为斜体。
图1-1 HTML网页
图1-2 网页源文件
了解了标签的用途后,可以很容易地理解在浏览器中所显示出来的内容。超文本标记语言就是这样一种语言,它用简单的标记来声明所包含的内容。在第2章中将学习更多的超文本标记语言知识。
早期的HTML设计都是使用记事本之类的文本编辑软件来设计的,设计者需要能够灵活地运行这些HTML标签来创建网页,而且网页的效果都只能在完成后运行时才能看出来,因此开发网页也是专业人士才能干的活。
现在,能进行网页编辑的软件已是遍地开花,像Dreamweaver、Frontpage这样所见即所得的网站开发软件大行其道,使得不懂HTML语言的普通用户也可以过一把网页编辑的瘾。
2.动态网页
动态网页与静态网页从设计到实现都有所不同,动态网页是在HTML的基础上嵌入特殊的程序化编码来设计的。编码可以使用编程语言,如C、Java、Visual Basic等,也可以使用专门的脚本(Script)语言,如VBScript、JavaScript、PHP等。同时,在存储时也需要使用不同的文件扩展名,如.asp、.jsp、.php等。在浏览时,除了需要有浏览器的支持外,还需要有支持相应的系统环境如ASP、JSP或PHP对其中的编码进行编译、解释,在经编译、解释后才能在浏览器中显示出正确的内容。
下面用一个例子来对动态网页进行进一步说明。
在记事本中输入下面的内容,文件保存时取名为test.asp。
<html> <body> <p align='center'><font size="5" color = "red" >欢迎学习ASP动态网页技术!</font></p> <% t=time() h=hour(t) if h>12 then clr="blue" else clr="green" end if %> <font size="4" color = "<%=clr%>" >现在时间是:<%=t%></font> </body> </html>
由于文件扩展名为.asp,因此,在浏览时需要有ASP运行环境的支持(在下一节将学习JSP环境的搭建),否则不能浏览到正确的内容。浏览的结果按系统时间的不同会有所改变,当时间为12点以前时,显示的时间文字为绿色,12点以后显示的时间文字为蓝色,如图1-3所示。
图1-3 动态网页
在显示网页的IE浏览器下执行“查看”→“源文件”命令,可以在打开的记事本中看到网页的HTML编码内容,如图1-4所示。
可以看到,这里的内容与上面编写网页文件时的内容并不完全相同,这是由于动态网页必须经由系统环境进行编译、解释,这里看到的只是网页内容经编译、解释后得到的HTML文本。
图1-4 浏览动态网页中的HTML编码
上面的代码中,使用“<%”与“%>”括起来的部分是动态部分,这些内容在浏览时是经服务器端编译后,再将执行得到的结果与原文件中其他的HTML内容一起发送到客户浏览器中显示出来,在浏览器中得到的HTML编码只是动态网页在服务器端执行的结果,而不是全部的动态网页内容。
其中,在HTML中嵌入的动态内容使用了两种方式,ASP的脚本代码段和ASP的表达式。如下所示的是ASP代码段:
<% t=time() h=hour(t) if h>12 then clr="blue" else clr="green" end if %>
ASP的脚本代码段都是包括在“<%”和“%>”之间,在这里可以写入大量的脚本代码,可以是上面所示的若干行脚本程序代码,也可以是函数等内容。
上面的代码中,“t=time()”表示获取系统当前时间,并将其赋值给变量t。“h=hour(t)”表示获取变量t中的小时数,接下来的“if …else …end if”是一个判断语句,它对h进行判断,当h>12时,将变量clr赋值为blue,否则赋值为green。
除了脚本代码段外,网页中还使用了形如“<%=clr%>”这样的ASP动态表达式,它的含义是将等号(=)后面部分的内容直接显示出来。例如:
<font size="4" color = "<%=clr%>" >现在时间是:<%=t%></font>
在图中可以看到,时间t的值为14:07:49,在执行前面的“if …else …end if”后,clr的内容为blue。因此,上面的表达式<%=clr%>和<%=t%>在显示其内容后,得到下面的html语句:
<font size="4" color = "blue" >现在时间是:14:07:49</font>
最后,在客户端浏览器中显示出蓝色文字:“现在时间是:14:07:49”。
<%=clr%>这种表达方式实际上是一个简化的response.write方法,用于在当前位置显示变量clr的值,在后面的章节将进一步介绍response.write方法。
从这个例子可以知道,动态网页是由HTML内容与动态网页的编程语言相结合,一起来完成动态内容的,在浏览时,动态网页先经服务器端的系统环境(这个例子中是ASP环境)编译、解释,得到的内容再由客户端浏览器显示出来。
1.1.2 ASP、JSP与 CGI
从上面的学习知道,动态网页的实现需要有相应的系统环境,例如,上例中使用的ASP。除ASP外,还有ASP.NET、JSP、CGI、PHP等,相应的动态网页扩展名为asp、aspx、jsp、cgi、php等。
1.CGI
最早的动态网页解决方案是CGI(Common Gateway Interface ,公共网关接口)。可以使用不同的编程语言如C、C++、Visual Basic、Delphi等来实现CGI,它的功能强大,技术成熟,但是编写困难、编程效率低。同时,在这种解决方案中,当用户发出一个CGI请求时,服务器就开启一个新进程来进行处理,当用户访问量不大时还可以应付,如果访问量大,则服务器端负荷过重,将导致系统性能急剧下降,使得访问速度降低。因此,在当前的动态网页设计中使用得越来越少。
2.ASP
为了在网络中占有一席之地,随着技术的发展,各公司分别推出了自己的动态网页解决方案,其中使用最广泛的是微软推出的ASP/ASP.NET和SUN推出的JSP。
ASP(Active Server Pages,活动服务页)是微软公司推出的一种用以取代CGI(通用网关接口,Common Gateway Interface)的技术。最初,微软是在发布Windows 98时,同时推出了PWS 4.0(Personal Web Server,个人Web服务器,可在Win98光盘里的ADD-ONS目录里找到),它本身支持对ASP 2.0的解释执行功能。在后来的Windows 2000、Windows XP、Windows 2003等系统中集成了名为IIS(Internet Informtion Server,Internet信息服务)的Web服务器,其中提供了对更高版本ASP的执行功能,因此,可以很方便地在Windows系统中实现ASP动态网页。
简单来讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网页,包括使用HTML表单收集和处理信息,上传与下载等,就像用户在使用自己的CGI程序一样。但是ASP比CGI简单。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的CGI等程序所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(Active Data Object,活动数据对象)来方便地访问数据库,从而使得开发基于WWW的应用系统成为可能。
ASP是一种类似于HTML、Script与CGI的结合体,它与CGI一样,没有提供自己专用的编程语言,而允许用户使用VBScript、JavaScript等常用脚本语言来编写ASP程序。
可以看到,ASP最大的好处是除了可以包含HTML标签外,还可以直接访问数据库,并可以通过ASP的组件和对象技术来使用无限扩充的ActiveX控件来进行动态网页的开发。ASP是在Web服务器端运行的,运行后将结果以HTML格式发送到客户端浏览器,因此比普通的脚本程序更安全。
ASP的技术特点如下:
(1)使用VBScript、JavaScript等简单易懂的脚本语言,结合HTML代码,可以快速地完成动态网站的应开发。
(2)ASP是解释执行,无须编译,可在服务器端直接执行。
(3)与浏览器无关,客户端只要使用可执行HTML码的浏览器,即可浏览ASP所设计的网页内容。ASP所使用的脚本语言VBScript、JavaScript均在Web服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。
(4)ASP能与任何ActiveX Scripting语言兼容。除了可使用VBScript或JavaScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,例如Perl。
(5)可使用服务器端的脚本来产生客户端的脚本,实现客户端的动态效果。
(6)ActiveX Server Components(ActiveX服务器组件)具有无限可扩充性。可以使用Visual Basic、Java、Visual C++、COBOL等程序设计语言来编写用户所需要的ActiveX Server Component。
ASP.NET是ASP的.NET版本,在.NET框架的支持下,具有更强的功能,更快的效率。
由于微软市场政策的原因,ASP在使用上有一定的局限性——ASP只能运行在微软的操作系统平台下,其工作环境只能是微软的IIS(Internet Informtion Server,互联网信息服务)和PWS(Personal Web Server,个人Web服务),同时,ActiveX控件也对于操作平台有所依赖,因此,对于跨平台的服务不能进行良好支持。但是,Windows系统本身就占有操作系统市场的垄断地位,再加上微软的支持,ASP技术在动态网站中得到了广泛的应用。
3.JSP
JSP是一种较新的动态网站开发技术。与ASP由微软独自开发不同,JSP是由SUN公司所倡导,众多公司参与一起建立的一种动态网页技术标准,它是基于Java技术的动态网页解决方案,具有良好的可伸缩性,与Java Enterprise API紧密结合,在网络数据库应用