Web程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 动态网页设计技术简介

随着网络技术的不断发展,单纯的静态网页已经远远不能满足Internet发展的需要。早期,动态网页使用的主要是CGI(Common Gateway Interface,公共网关接口)技术,可以使用不同的语言编写合适的CGI程序,如Visual Basic、C/C++等。虽然CGI技术已经发展成熟且功能强大,但由于编程困难、效率较低、修改复杂等缺陷,因此逐渐被淘汰。目前比较受关注的动态网页设计技术主要有ASP、PHP、JSP、ASP.NET。

1.5.1 ASP

ASP(Active Server Pages)是一种功能强大的服务器端脚本编程环境。它是微软公司的产品,从Windows NT Server操作系统开始就附带这种脚本编程环境。ASP 1.0是微软公司在1996年底推出的一种取代CGI运行于服务器端的Web应用程序开发技术,它内含于IIS 3.0(Microsoft Internet Information Server 3.0)之中。1998年,作为Windows NT4 Optoin Pack的一部分,微软推出了ASP 2.0。2000年,微软公司发布了Windows 2000操作系统,这个版本给我们带来了IIS 5.0和ASP 3.0。

ASP最大的好处是可以包含HTML标签,也可以直接存取数据库以及使用ActiveX控件,它采用脚本语言VBScript、JavaScript作为开发语言。它可以结合HTML网页、ASP指令和ActiveX组件建立动态、交互且高效的Web服务器应用程序,它属于ActiveX技术中的服务器端技术,与常见的在客户端实现动态网页的技术,如Java applet、ActiveX Control、VBScript、JavaScript等不同,ASP中的命令和Script语句都是由服务器解释执行的。ASP是基于ActiveX技术的,它支持面向对象及可扩展的ActiveX Server组件。ActiveX技术以COM/DCOM技术为基础,程序员可以用Visual C++、Visual Basic等语言创建特定功能的服务器端组件,以扩展ASP的应用功能。ASP是一种成熟的Web到数据库的接口技术,适用于现有的Web客户/服务器应用程序。它具有如下一些特点:

(1)全嵌入HTML,与HTML及Script语言完美结合。

(2)无须手动编译(Compling)或链接程序。

(3)面向对象(Object Oriented),并可扩展ActiveX Server组件功能。

(4)存取数据库轻松容易(使用ADO组件)。

(5)可使用任何语言编写自己的ActiveX Server组件。

(6)无浏览器兼容问题。

(7)程序代码隐蔽,在客户端仅可看到由ASP输出的动态HTML文件。

ASP技术通过后缀名为.asp的文件来实现,一个.asp文件相当于一个可执行文件,因此必须放在Web服务器上有可执行权限的目录下。当浏览器向Web服务器请求调用ASP文件时,就启动了ASP。Web服务器响应该HTTP请求,调用ASP引擎,解释被申请的文件。当遇到与ActiveX Script兼容的脚本(VBScript、JavaScript)时,ASP引擎调用相应的脚本引擎进行解释处理。若脚本指令中涉及对数据库的访问,就通过ODBC与后台数据库进行连接,由数据库访问组件,实现对数据库的操作,并将执行结果动态生成为一个HTML页面返回Web服务器端,然后与页面中非脚本的HTML合并成一个完整的HTML页面送至客户端浏览器。因而客户端浏览器接收到的是经Web服务器执行以后生成的一个纯粹的HTML文件,可被运行在任何平台上的浏览器所执行。同时由于ASP脚本程序是在服务器端执行的,通常脚本代码不会被别人窥视,保证了程序代码的安全性,也保护了开发者的知识产权。另外,程序执行完毕后,服务器仅仅是将执行结果返回给客户端浏览器,减轻了网络传输的负担,大大提高了交互的速度。

1.5.2 PHP

PHP(Hypertext Preprocessor,超文本预处理器)是一种跨平台的服务器端嵌入式脚本语言,它是一种易于学习和使用的服务器端脚本语言,嵌入HTML文件,大量地借用C、Java和Perl语言的语法,并耦合PHP本身的特性,形成了自己的独特风格。PHP支持目前绝大多数的数据库,Web开发者使用PHP能够快速地写出生成动态网页的脚本代码。PHP是完全免费的,可以从PHP官方网站(http://www.php.net)自由下载,可以不受限制地获得源代码,并可加入自己需要的功能。

PHP具有如下特点:

(1)支持多种系统平台,包括Windows 9x、Windows NT、Windows 2000 Professional和Windows 2000 Server系统,以及各种UNIX系统和Linux系统。

(2)强大的数据库操作功能。PHP提供丰富的数据库操作函数,它为各种流行数据库,包括Linux平台的PostgreSQL、MySQL、Solid及Oracle,Windows平台的SQL Server,都设计了专门的函数,使操作这些数据库十分方便。

(3)易于与现有的网页融合。与ASP、JSP一样,PHP也可结合HTML语言共同使用;它与HTML语言具有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标记,或者在HTML标记中加入脚本代码从而更好地实现页面控制,提供更加丰富的功能。

(4)具有丰富的功能。PHP提供结构化特性、面向对象设计、数据库处理、网络接口使用及安全编码机制等全面的功能。

(5)可移植性好。只需要进行很少的修改就可将整个网站从一个平台移植到另一个平台上,如从Windows平台移植到UNIX平台。

1.5.3 JSP

JSP(Java Server Pages)是Sun公司于1999年6月推出的网站开发语言。它是基于Java Servlet及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。它完全解决了目前ASP、PHP的一个通病——脚本级执行。

JSP与ASP在技术方面有许多相似之处。两者都是为实现Web动态交互网页制作而提供的技术支持环境,都能帮助程序开发人员实现应用程序的编制与自带组件的网页设计,都能替代CGI使网站建设与发展变得简单又快捷。由于它们来源于不同的技术规范,因而其实现的基础不同,即对Web服务器平台的要求不同。ASP通常只应用于Windows NT/2000平台,而JSP则可以不加修改地在大多数的Web Server上运行,其中包括NT系统,符合“Write once,run anywhere”(“一次编写,多平台运行”)的Java原则,实现了程序与服务器平台的独立性,而且基于JSP技术的应用程序比基于ASP的应用程序更易于维护和管理。

JSP技术具有以下优点:

(1)内容生成与显示分离。使用JSP技术,Web页面开发人员可以使用HTML或XML标记来设计页面。使用JSP标记或小脚本来生成页面上的动态内容(内容是动态的,但可根据用户请求而变化)。动态生成的内容被封装在标记和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。

在服务器端,使用JSP引擎来解释JSP标记和小脚本,生成所请求的内容,并将结果以HTML或XML页面形式发送回浏览器。这有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。

(2)可重用的组件。绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的复杂处理,如使用JavaBeans或Enterprise JavaBeansTM组件。开发人员可以共享各种组件,这种基于组件的方法提高了系统的开发效率。

(3)采用标记简化页面开发。JSP技术使用XML标记封装了许多与动态内容生成相关的功能,页面开发人员使用这些标记就可以进行设计,而不必进行编程。

(4)适应更广泛的平台。JSP+JavaBean可以在大多数Web服务器平台下使用。例如,在Windows NT的IIS中通过使用插件JRUN或ServletExec,就能支持JSP。而著名的Web服务器Apache能够很好地支持JSP,由于Apache广泛应用在NT、UNIX和Linux操作系统上,因此JSP有更广泛的运行平台。虽然NT操作系统占有很大的市场份额,但是在服务器方面UNIX仍具有很大的优势。另外,JSP和JavaBean从一个平台移植到另外一个平台时,可以不必重新编译,因为Java字节码都是标准的、与平台无关的。

(5)易于连接数据库。Java中连接数据库的技术是JDBC(Java DataBase Connectivity)。很多数据库系统,如Oracle、Sybase、MS SQL Server和MS Access等,都带有JDBC驱动程序,Java程序通过JDBC驱动程序与数据库相连,执行查询数据、提取数据等操作。另外,Sun公司还开发了JDBC-ODBC bridge,使用此项技术Java程序就可以访问带有ODBC驱动程序的数据库了。

1.5.4 ASP.NET

ASP.NET是微软公司于2001年推出的一种用于创建Web应用程序的编程模型。它抛弃了ASP使用的脚本语言,使用Visual Basic.NET作为它的默认语言。ASP.NET在结构上与前面的版本大不相同,它几乎完全是基于组件和模块化的。Web应用程序的开发人员使用这个开发环境可以实现更加模块化、功能更强大的应用程序。

ASP的所有程序都保存在服务器端,由IIS解释执行。在ASP.NET中,所有程序仍然保存在服务器端,由服务器编译执行。当第一次执行一个程序时进行编译,当再次执行这个程序时,就在服务器端直接执行它的已编译好的程序代码,因而ASP.NET程序的执行速度有较大的提高。对于实现同样功能的程序,ASP.NET使用的代码量比ASP要小得多。ASP.NET采用全新的编程环境,代表了技术发展的主流方向。从深层次说,ASP.NET与ASP的主要区别体现在以下三个方面:

(1)效率。ASP是一个脚本编程环境,只能用VBScript或JavaScript这样的非模块化语言来编写。当ASP程序完成之后,在每次请求时都要解释执行。这就意味着,它在使用其他语言编写大量组件的时候会遇到困难,并且无法实现对操作系统的底层操作。ASP.NET则是建立在.NET框架之上的,它可以使用Visual Basic、C#、J#这样的模块化程序设计语言,并且它在第一次执行时进行编译,之后的执行不需要重新编译就可以直接运行,所以速度和效率比ASP提高很多。

(2)可重用性。在编写ASP应用程序时,ASP代码和HTML混合在一起。只要需要,就可以在任意的位置插入一段代码来实现特定的功能。这种方法表面上看起来很方便,但实际上会产生大量繁琐的页面,很难让人读懂,导致代码维护困难。ASP.NET则可以实现代码和内容的完全分离,使得维护更方便。

(3)代码量。ASP对所有要实现的功能均需要通过编写代码来实现。例如,为了保证一个用户数据提交页面的友好性,当用户输入错误时应显示错误的位置,并尽量把用户原来的输入显示在控件中。对于这样一个应用,使用ASP需要程序员编写大量的代码才能实现。在ASP.NET中,程序员只要预先说明,ASP.NET就可以自动实现这样的功能。所以相对来说,要实现同样的功能,使用ASP.NET比使用ASP的代码量要小得多。