Web脚本开发语言比较(2)
发布时间:2007-08-22 17:32:00
Sun微系统公司一直努力地普及它的JSP脚本语言,并给Apache组织贡献有关JSP和Java Servlet引擎的代码。Apache组织将这些代码发布为一个Apache产品,叫做Tomcat。
JSP相对来说还是一个新技术,但是已经有了明确的市场方向。
然而,由于JSP基于Java(并且几乎能做到Java可以做的任何事情,这就开放了一个巨大的API库以及类库)而且由于被称为标记库的JSP扩展使JSP能模仿ColdFusion的标记类型API,因此我们有理由认为,在未来几年中,JSP将成为Web脚本语言的核心。
还有更多种类的产品支持JSP,它们适用于高端应用服务器,这就让JSP开发人员能更容易地考虑扩展性和容错性。
由于JSP基于Java,而Java是一个功能强大的类型语言,所以当需要时我们就必须定义变量的类型。对于非程序员学习起来,这就是一个困难,尽管了解一些Java的人认为JSP几乎可以很快上手。
利用Java数据库连通性,Java具有一个灵活且完整的访问数据的API集。
在服务器端,我们测试了Apache 组织的免费 Tomcat 3.2 Beta 5版本。测试服务器是Linux的情况下,Tomcat的速度大约是每秒13页。
很不幸,Tomcat只具有很基本的性能监视器和管理工具(在Web上我们也许能找到一些beta产品),这与PHP类似。位于高端的基于Java的应用程序服务器则提供了丰富的管理工具。
尽管Sun的Java 1.0 Community 版本的长处是免费的,而且非常适于JSP开发环境,但实际情况是,在JSP领域,开发工具通常很短缺。
对于企业级开发,我们相信,JSP技术尽管很新,但仍旧是正确的选择,因为它使用了Java,而且许多应用服务器产品都支持JSP。
Microsoft ASP
在团队开发环境中,微软公司的ASP(active server pages)语言是众所周知而且非常好的Web脚本技术,这也意味着ASP开发人员非常容易发现。由于ASP是随Windows NT 服务器和Windows 2000 Web服务器安装自带的,所以这项技术也是非常流行的。
由于支持未定义类型变量(untyped),ASP使得编程很简单。而且通过支持Microsoft COM(Component Object Model:组件对象模型)标准,它提供了访问巨量Windows API集的简单方法。这也是一个 * 剑,在提供简单访问强大的COM对象同时,ASP代码也很复杂而且难于编写。微软公司的ADO(Active Data Objects)COM接口提供了全面数据库访问API。
微软同样投入大量资金在ASP的clustering技术上,并且即将到来的微软应用程序中心服务器将提供对ASP站点的clustering技术和内容管理功能
编写ASP时使用VBScript语言,我们希望它具有try/catch关键字。没有这些,编写错误处理逻辑程序是非常讨厌的,因为我们必须手工检查看看是否发生错误(ASP也支持Jscript,它具有try/catch关键字)。
ASP开发工具是很多的,而且通常是很成熟的。我们使用微软公司的Microsoft Script Editor(随Microsoft Office自带)编写页面,发现这个工具非常有价值,因为它具有一个方便的编辑环境以及一个完整的调试器。
我们的ASP站点是运行Windows 2000的服务器,速度大约是每秒43页。
另见:ASP与JSP的比较
PHP
Php做为首选的Linux Web脚本语言迅速浮现出来。随着今年PHP4的发布,它尤其具备了大量的新功能,其中包括一个新脚本引擎和语言的标准化关键字部分(比如HTTP会话管理),这在以前是以add-on模块的形式存在的。
PHP开发小组的PHP语言是开放式的,并且可以安按照源代码形式下载。适用于Windows的预编译二进制码也是可用的,而且PHP可以工作在许多Web服务器上,包括Apache和微软的IIS。
PHP确实是几种强大功能的混和物,包括Perl、C、Java,甚至某些ASP,并且支持未定义变量使得开发工作简化。PHP非常易于扩展,由于源代码可用,使得各种各样的模块扩展程序被一大群人开发并贡献出来,这些扩展程序包括:数据库链接、邮件应用、XML解析器等等。
丰富的扩展也导致了缺乏API方面的一致性。用户们必须努力约定他们使用的PHP组件,从而有效跟踪相关的改变。
我们重点关注PHP在标准数据库API上的匮乏:为了访问Oracle数据,我们就必须直接编写调用Oracle8 API的代码,这使得页面很不轻巧并且增加开发费用。在这个领域正在进行一些研究,其中包括将Micorsoft的ADO转向PHP。
同样,PHP缺乏完整的开发环境工具以及调试程序(我们只能找到一个,就是Ives Development 公司的Nexidion Designer,它还停留在1.0版本)。
在测试的Linux服务器上,PHP拥有大约每秒47页的速度。


猜你喜欢
- 本文将教会我们如何使用PyQt5控件的工具提示功能。#!/usr/bin/python3# -*- coding: utf-8 -*-&qu
- 什么是wxs?wxs(WeiXin Script)是小程序的一套脚本语言, 结合WXML, 可以构建出页面结构.wxs标签<wxs m
- 背景最近有一个需求需要自定义一个多继承abc.ABC与django.contrib.admin.ModelAdmin两个父类的抽象子类,方便
- enumerate函数用于遍历序列中的元素以及它们的下标。enumerate函数说明:enumerate()是python的内置函数enum
- 本文实例讲述了Python实现的求解最大公约数算法。分享给大家供大家参考,具体如下:使用Python求解两个数的最大公约数的时候用到了前面介
- 废话不多说原因:在Anaconda下打包的很多不必要的模块进去,导致最终的exe文件过于庞大。解决办法:要用纯净的python来打包即可避免
- 如何同时处理数据库和页面错误? If Err.Number = 0 And ob
- 本文实例讲述了python实现查找两个字符串中相同字符并输出的方法。分享给大家供大家参考。具体实现方法如下:seq1 = "spa
- 默认级别:warningimport logginglogging.debug('debug message')loggin
- 函数表达式和函数声明在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明
- 1.建表脚本1.1.建表DROP TABLE IF EXISTS `sys_region`;CREATE TABLE `sys_region
- 1. 简介有些时候在项目中,使用配置文件来配置一些灵活的参数是比较常见的事,因为这会使得代码的维护变得更方便。而ini配置文件是比较常用的一
- 最近做的项目中有一个小功能:在python中调用scp命令使用ssh登录,然后将指定目录中的图片上传到服务器指定目录网上搜了很多方法都没用,
- 如果出现 automation服务器不能创建对象 解决方法:1、如果是Scripting.FileSystemObje
- 1.尽量不要对列名进行函数处理。而是针对后面的值进行处理例如where col1 = -5的效率比where -col1=5的效率要高因为后
- 本文实例讲述了php+mysqli实现批量替换数据库表前缀的方法。分享给大家供大家参考。具体分析如下:在php中有时我们要替换数据库中表前缀
- 现在向大家介绍mysql命令行下,从数据库的建立到表数据的删除全过程,希望对大家有所帮助。登陆mysql打cmd命令终端,如果已经添加了my
- 介绍PaddleOCR 是一个基于百度飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、
- 最近因需要用python写一个微服务来用MQTT给硬件传输图片,其中python用的是flask框架,大概流程如下:协议为:需要将图片数据封
- 之前看到很多人一直都问CSS 中DIV垂直居中的问题,看来对此的需求还不少。现在就把我经验拿出来分享一下,希望大家鼓鼓掌。因为在 CSS 中