《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 拥有Java的JSP与使用VBScript 类脚本语言的ASP

拥有Java的JSP与使用VBScript 类脚本语言的ASP

2008-12-20
作者:玛依拉?别克强塔伊夫,古力米拉,

1 简介
JSP(Java Server Pages) 是一种服务器端脚本技术, 它是在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag), 就构成了JSP网页(*.jsp)。而ASP(Active Server Pages)也是一种服务器端脚本技术,一方面从功能上看JSP、ASP二者都可以生成和运行动态的、交互的、高性能的Web服务器应用程序" title="应用程序">应用程序;二者都将建立交互式页面作为基于Web的应用程序的一部分;二者都能通过在页面中调用组件达到分离程序设计" title="程序设计">程序设计逻辑和页面的目的;二者都能够完全替代繁琐的CGI,从而使网站的建设和网站的发展方便和简单。另一方面从形式上看JSP和ASP也非常相似,无论是JSP程序员还是ASP程序员一眼就能认出所熟悉的<% %>以及<%= %>。然而,进一步深入探究下去我们就会发现它们有许多不同之处。
2 JSP 与ASP的异同
2.1使用的语言方面

JSP  与ASP两者都提供在HTML  代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。无论在ASP或JSP  环境下,信息的显示样式主要由HTML代码负责描述,而信息的处理逻辑则主要由程序代码来描述。二者虽然功能相似,但两者使用的编程语言" title="编程语言">编程语言不同,ASP下的编程语言是  VBScript  之类的脚本语言,而JSP  使用的是Java, Java是1995年由SUN公司推出的具有很强吸引力的面向对象" title="面向对象">面向对象的编程语言, 也是目前最为流行的网络编程语言,它不依赖于任何现有的操作系统,可直接运行在某种机器或CPU上,Java语言具有支持多线程;独有自己的内存管理机制;可移植等众多的优势,即JSP拥有了强大的Java优势。近年来尤其是Internet的发展,进一步推动了Java技术的应用与完善,使Java成为更加成熟的、易扩充的、强壮的编程语言,所以从使用语言方面来说Java优于基于BASIC的脚本语言。Java使开发人员的工作在其他方面也变得比较容易。Java语言提供防止内存泄漏的方法,在内存管理方面也大显身手。而且JSP为应用提供了强大的意外事件处理机制。
2.2 效率和安全性方面
ASP是以源码形式存放,它的命令和脚本都在服务器中以解释方式执行,即每次ASP网页调用都需要对源码进行解释,影响其运行效率。并且ASP大多使用的是微软的IIS(Internet Information Server)作为网站Web Server, IIS自身的漏洞很容易使得ASP程序被下载。而JSP在执行以前先被编译成字节码 (byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,这比源码解释(如:ASP)的效率高;此外服务器上还有字节码的Cache机制,能提高字节码的访问效率。虽然第一次调用JSP网页使人感觉比较着急,觉得JSP稍慢,但由于不是每次JSP网页调用都需要对源码进行解释,所以以后就快得多了。而且,由于JavaBean程序完全可以放到不对外的目录中,所以JavaBean程序和JSP源程序不大可能被下载。
2.3 功能扩充方面
ASP是通过COM来扩充其功能的。掌握ASP虽不是很困难,但学会开发COM并不容易。而我们知道ASP是通过COM来扩充其复杂的功能如发送email、文件上载、以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。这使得在开发方面,COM的开发远比JavaBean复杂和繁琐。而JSP是通过JavaBean实现了同样的功能扩充, 而且JavaBean比较简单和方便。 尤其对掌握Java编程技术或C++编程技术的人来说更为简单,哪怕不熟悉Java语言,也可以在比较短的时间内学习Java, 写出JavaBean。 而且JavaBean是完全的OOP, 针对不同的业务处理功能JavaBean可以方便地建立一整套可重复利用的对象库,例如用户权限控制等等。
2.4 维护角度方面
从维护角度来看,由于两者所使用的语言不同,JSP所使用的Java语言是面向对象的强大的,它能轻易的建立和维护大型的、模块化的应用程序。而ASP所使用的脚本语言对小的应用程序是可行的,但是对大型的、复杂的应用程序的建立和维护是不容易的。另一方面ASP仅支持组件对象模型COM,而COM必须在服务器上注册,一旦修改了COM程序,就必须重新注册,且大多数情况下必须关机和重新启动。而JSP技术提供的组件都是基于JavaBeans技术或者JSP标签库的。这两者虽有相同之处,但二者的区别是很明显的。JavaBean不需要注册,放在CLASSPATH包含的目录中就行了。一旦JavaBean进行了修改,则JSWDK和Tomcat需要关闭和重新运行,但不必关机和重新启动。另一方面对JSP来说Web服务器、平台和其它组件都可轻松的升级或交换而不影响基于JSP的应用程序。这使得JSP非常适合需要升级而又要求保持不变的实时Web应用程序。
2.5 适应平台方面
现在几乎所有平台都支持Java,JSP+JavaBean几乎在所有平台下是通行无阻的。不支持的平台目前通过一个插件也就能支持JSP, 例如在NT下IIS通过一个插件,如JRUN或者ServletExec,就能支持JSP。现在Web服务器Apache也已经能够支持JSP。而且由于Apache广泛应用在NT、Unix和Linux上,目前虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势还是很大,而Linux的优势也是不小, 所以JSP有更广泛的运行平台。还有一点就是从一个平台移植到另外一个平台,JSP和JavaBean是不用重新编译的,因为Java字节码都是标准的且与平台无关的。而ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来还是比较困难。
2.6 数据库的支持方面
不论是用ASP还是JSP,应用程序的一个重要环节就是链接数据库、查询数据库、操作数据库,也就是说网站必须要有对后台数据库进行操作的功能。
在这方面ASP是通过ADO(ActiveX Data Object)来完成对各类数据库的查询、存取等操作。ADO(又称为ActiveX)是微软提出的一项数据库链接技术,提供了程序开发人员实时存取各类数据库的能力。而ADO建立在OLEDB基础上,它们有明显的区别和联系,OLEDB是系统级的编程接口" title="编程接口">编程接口,它定义了一组COM接口,这些接口封装了各种数据库系统的访问操作,同时OLEDB还提供了一组标准的服务组件,用来提供查询,数据更新等操作。而ADO是应用层的编程接口,它通过OLEDB提供的COM接口访问数据库。ASP中对ADO组件的使用一般经过以下两个步骤:①通过ODBC配置数据源 ;②利用ADO组件创建一个ADO链接对象或记录集对象,再利用该对象连接数据源,然后利用相关对象的属性、方法来操作数据库。我们知道COM的开发远比JavaBean复杂和繁琐。而ODBC也比较难学,这主要是它把简单功能和高级功能掺和在一起,也就是说对于一个简单的查询,其选项也比较复杂。
而JSP通过JDBC来完成对各类数据库的查询、存取等操作。JSP的定义是两组分别面向应用程序和数据库驱动程序开发人员的API,和将前者向后者转化的内在封装逻辑。其中面向应用程序开发人员的接口是JDBC API, 我们可以把JDBC看作是一个被转换为面向对象接口的ODBC, 而面向对象的接口对使用面向对象语言的程序员(例如:C++、Java程序员)来说是容易接受的。另外JDBC尽量保证其简单功能的简单性,同时在需要时还保证使用其高级功能。JDBC API 对于基本的SQL抽象和概念是一种自然的Java接口。虽然JDBC和ODBC很相像,且JDBC是建立在ODBC上的,JDBC保留了ODBC的基本设计特征,两种接口都是基于(调用级接口)X/Open SQL CLI。但它们的区别在于JDBC以Java风格与优点为基础并进行优化,使JDBC更加易于使用。
3 结语
综合上述几点,进一步通过以下表格对JSP技术和 Microsoft 公司的 ASP 技术进行详细的比较和对照,可以看出两者虽有相同之处,但其区别是明显的。通过比较进行学习,这也是学习一种新的技术或由现有技术自然过渡到另一种技术的有效途径。 


参考文献

1  王克宏.Java语言SQL接口.北京:清华大学出版社,1997 

2  肖刚.Java Web服务器应用程序设计.北京:电子工业出版社.2001 

3  唐青松.颜亮.ASP应用开发全攻略宝典.北京:中国水利水电出版社.2000 

4  http://java.sun.com/products/jsp/faq.html

基金项目:新疆自治区少数民族科技骨干人才特殊培养科研专项资金项目(2001—5)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。