1.3 目前主要Web应用程序设计语言
目前Web应用程序设计使用的语言主要有ASP、JSP和PHP,下面分别加以介绍。
1.3.1 ASP
ASP(Active Server Pages)是微软公司开发的动态网页技术标准,主要与微软的服务器产品IIS(Internet Information Server,互连网络信息服务器)等一起使用。ASP是一种Web服务器端的脚本环境,可以用来创建动态Web页或Web应用程序。可以通过调用组件对象模型(COM)组件来执行任务,例如连接数据库或执行商业计算。利用ASP,可以向Web页添加交互式内容或者创建完整的Web应用程序。ASP支持VBScript、JavaScript等多种脚本语言。
ASP使用普通的文本编辑器即可编写代码,所编写代码无须编译,与浏览器无关。用户端只要使用可执行HTML代码的浏览器,即可浏览ASP网页的内容。ASP所使用的脚本语言均在服务器端执行,用户浏览器不需要执行这些脚本语言。ASP能与任何ActiveX 脚本语言相容,可以通过plug-in的方式,使用第三方所提供的其他脚本语言,如REXX、Perl和Tcl等。ActiveX服务器组件具有无限扩充性,可以使用VB、Java、VC++和COBOL等编程语言来编写所需要的ActiveX服务器组件。ASP可以通过Microsoft Windows的COM/DCOM获得ActiveX规模支持,通过DCOM和Transaction Server获得结构支持。
ASP也继承了微软公司产品的一贯传统——只能运行于微软公司的服务器产品IIS (Windows NT)和PWS(Personal Web Server,个人网页服务器)(Windows 98)上。UNIX下也有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,UNIX下的COM实现起来非常困难。
1.3.2 JSP
JSP(Java Server Pages)是由Sun微系统公司倡导、许多公司参与建立的一种动态网页技术标准。JSP技术使用Java语言作为脚本语言。JSP页为整个服务器端的Java库单元提供了一个接口。在Scriptlet、JavaBean、EJB、CORBA及JNDI的支持下,可以使用JSP技术建立功能强大的Web应用程序。
使用JSP技术,Web页面开发人员可以使用HTML或者XML来设计和格式化最终页面,使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有优点,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,用户可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
JSP几乎可以运行于所有平台,如Windows NT,Linux,UNIX。Windows NT下IIS通过一个插件,如JRUN或者ServletExec,就能支持JSP。著名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在Windows NT、UNIX和Linux上,因此JSP有更广泛的运行平台。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的,与平台无关的。
1.3.3 PHP
PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,使Web开发者能够快速地编写出动态页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,用户可以从PHP官方站点(http://www.php.net)自由下载。而且可以不受限制地获得源代码,甚至可以从中加进自己需要的特色。
PHP可以编译成具有与许多数据库相连接的函数,PHP与MySQL是现在绝佳的组合。还可以自己编写外围的函数间接存取数据库。当更换使用的数据库时,通过这样的途径可以轻松地更改编码以适应这样的改变。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。但PHP提供的数据库接口支持彼此不统一,比如对Oracle,MySQL,Sybase的接口,彼此都不一样。这也是PHP的一个弱点。PHP提供了类和对象。基于Web的编程工作非常需要面向对象编程能力,PHP支持构造器、提取类等。PHP3可在Windows,UNIX,Linux的Web服务器上正常运行,还支持IIS,Apache等通用Web服务器,用户更换平台时,无须变换PHP3代码,可即拿即用。
由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持;其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。
综合以上介绍,由于目前在PC系统上Windows的统治地位,以及目前Web应用程序设计的实际情况,本书主要介绍ASP技术。