简单生活
返回文章列表
2923 字15 分钟

ASP PHP JSP 大比拼

设计开发#PHP/ASP

目前,最常用的三种动态网页语言有 ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。

简 介

ASP 全名 Active Server Pages,是一个 WEB 服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的 WEB 服务应用程序。ASP 采用脚本语言 VBScript(Java script)作为自己的开发语言。

PHP 是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用 C,Java 和 Perl 语言的语法, 并耦合 PHP 自己的特性,使 WEB 开发者能够快速地写出动态生成页面。它支持目前绝大多数数据库。还有一点,PHP 是完全免费的,不用花钱,你可以从 PHP 官方站点(http: file://www.php.net)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

JSP 是 Sun 公司推出的新一代站点开发语言,他完全解决了目前 ASP,PHP 的一个通病——脚本级执行(据说 PHP4 也已经在 Zend 的支持下,实现编译运行)。Sun 公司借助自己在 Java 上的不凡造诣,将 Java 从 Java 应用程序和 Java Applet 之外,又有新的硕果,就是 JSP——Java Server Page。Jsp 可以在 Serverlet 和 JavaBean 的支持下,完成功能强大的站点程序。

三者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但 JSP 代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。在 ASP 、PHP、JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PHP、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。ASP 、PHP、JSP 三者都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。

技术特点

ASP:

  1. 使用 VBScript、JScript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成网站的应用程序。

  2. 无须 compile 编译,容易编写,可在服务器端直接执行。

  3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。

  4. 与浏览器无关(Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即可浏览 Active Server Pages 所设计的网页内容。Active ServerPages 所使用的脚本语言(VBScript 、 Jscript)均在 WEB 服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。

5.Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VB Script 或 JScript 语言来设计外,还通过 plug-in 的方式,使用由第三方所提供的其他脚本语言,譬如 REXX 、Perl 、Tcl 等。脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。

  1. 可使用服务器端的脚本来产生客户端的脚本。

  2. ActiveX Server Components(ActiveX 服务器元件 )具有无限可扩充性。

可以使用 Visual Basic 、Java 、Visual C++ 、COBOL 等编程语言来编写你所需要的 ActiveX Server Component 。

PHP:

1.数据库连接

PHP 可以编译成具有与许多数据库相连接的函数。PHP 与 MySQL 是现在绝佳的组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松地更改编码以适应这样的变化。PHPLIB 就是最常用的可以提供一般事务需要的一系列基库。但 PHP 提供的数据库接口支持彼此不统一,比如对 Oracle, MySQL,Sybase 的接口,彼此都不一样。这也是 PHP 的一个弱点。

2.面向对象编程

PHP 提供了类和对象。基于 web 的编程工作非常需要面向对象编程能力。PHP 支持构造器、提取类等。

JSP:

1.将内容的生成和显示进行分离

使用 JSP 技术,Web 页面开发人员可以使用 HTML 或者 xml 标识来设计和格式化最终页面。使用 JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和 JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和 Beans 中,那么其他人,如 Web 管理人员和页面设计者,能够编辑和使用 JSP 页面,而不影响内容的生成。

在服务器端,JSP 引擎解释 JSP 标识和小脚本,生成所请求的内容(例如,通过访问 JavaBeans 组件,使用 JDBCTM 技术访问数据库,或者包含文件),并且将结果以 HTML(或者 xml)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于 HTML 的 Web 浏览器的完全可用性。

2.强调可重用的组件

绝大多数 JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者 Enterprise JavaBeans 组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

3.采用标识简化页面开发

Web 页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page 技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 xml 标识中进行动态内容生成所需要的。标准的 JSP 标识能够访问和实例化 JavaBeans 组件,设置或者检索组件属性,下载 Applet,以及执行用其他方法更难于编码和耗时的功能。

通过开发定制化标识库,JSP 技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得 Web 页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用 Java 技术家族的一部分,以及 Java 2(企业版体系结构)的一个组成部分,JSP 技术能够支持高度复杂的基于 Web 的应用。

由于 JSP 页面的内置脚本语言是基于 Java 编程语言的,而且所有的 JSP 页面都被编译成为 Java Servlet,JSP 页面就具有 Java 技术的所有好处,包括健壮的存储管理和安全性。

作为 Java 平台的一部分,JSP 拥有 Java 编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将 JSP 支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。

应用范围

ASP 是 Microsoft 开发的动态网页语言,也继承了微软产品的一贯传统——只能运行于微软的服务器产品,IIS(Internet Information Server) (windows NT)和 PWS(Personal Web Server)(windows 98)上。Unix 下也有 ChiliSoft 的插件来支持 ASP,但是 ASP 本身的功能有限,必须通过 ASP+COM 的组合来扩充,Unix 下的 COM 实现起来非常困难。

PHP3 可在 Windows,Unix,Linux 的 Web 服务器上正常运行,还支持 IIS,Apache 等通用 Web 服务器,用户更换平台时,无需变换 PHP3 代码,可即拿即用。

JSP 同 PHP3 类似,几乎可以运行于所有平台。如 Win NT,Linux,Unix. NT 下 IIS 通过一个插件,例如 JRUN 或者 ServletExec,就能支持 JSP。著名的 Web 服务器 Apache 已经能够支持 JSP。由于 Apache 广泛应用在 NT、Unix 和 Linux 上,因此 JSP 有更广泛的运行平台。虽然现在 NT 操作系统占了很大的市场份额,但是在服务器方面 Unix 的优势仍然很大,而新崛起的 Linux 更是来势不小。从一个平台移植到另外一个平台,JSP 和 JavaBean 甚至不用重新编译,因为 Java 字节码都是标准的与平台无关的。

性能比较

有人做过试验,对这三种语言分别做循环性能测试及存取 Oracle 数据库测试。

在循环性能测试中,JSP 只用了令人吃惊的四秒钟就结束了 20000*20000 的循环。而 ASP、PHP 测试的是 2000*2000 循环(少一个数量级),却分别用了 63 秒和 84 秒。(参考 PHPLIB)。

数据库测试中,三者分别对 Oracle 8 进行 1000 次 Insert,Update,Select 和 Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP 则 需要 73 秒。 前景分析 目前在国内 PHP 与 ASP 应用最为广泛。而 JSP 由于是一种较新的技术,国内采用的较少。但在国外,JSP 已经是比较流行的一种技术,尤其是电子商务类的网站,多采用 JSP。

采用 PHP 的网站如新浪网(sina)、中国人(Chinaren)等,但由于 PHP 本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。

首先,PHP 缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而 PHP 则缺乏这种支持。还有上面提到过的一点,PHP 提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。

ASP 和 JSP 则没有以上缺陷,ASP 可以通过 Microsoft Windowsd 的 COM/DCOM 获得 ActiveX 规模支持,通过 DCOM 和 Transcation Server 获得结构支持;JSP 可以通过 SUN Java 的 Java Class 和 EJB 获得规模支持,通过 EJB/CORBA 以及众多厂商的 Application Server 获得结构支持。

三者中,JSP 应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用 JSP/Servlet。比较出名的如 IBM 的 E-business,它的核心是采用 JSP/Servlet 的 Web Sphere;西方另外一个非常著名的电子商务软件提供商,Intershop,它原来的产品 Intershop1,2, 3, 4 占据了主要的电子商务软件份额。

它们都是通过 CGI 来提供支持的。但去年 10 月后它推出了 Enfinity,一个采用 JSP/Servlet 的电子商务 Application Server,而且声言不再开发传统软件。

总之,ASP,PHP,JSP 三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或使用动态页面的朋友可根据三者的特点选择一种适合自己的语言。