一、介绍
首先,JSP与ASP在技术上有许多共同之处,它们都是用来开发基于Web应用的动态页面,并且两者都可以使开发人员通过使用构件技术将程序逻辑从页面设计中分离出来。虽然,JavaServer Pages和Microsoft Active Server Pages有许多类似的地方,但依然存在很多不同之处。它们的不同之处与它们的相同点同样显著,对于使用它们的开发人员以及采用它们作为自己网络体系结构的一部分的那些组织来说,这些不同点有着更加深远的意义。
二、JSP技术:一种开放的方式
在许多方面,对于ASP与JSP来说,它们两者最大的区别取决于软件开发方法的不同。JSP技术具有服务器无关性和平台无关性,而ASP是Microsoft产品,故只能依赖于Microsoft技术。
1.平台无关性和服务器无关性
JSP技术坚持了Java体系结构的思想,即:一次编写,随处运行。JSP的功能可以运行任何Web服务器,并且被各种类型的工具支持,而不是与一种平台或者开发商绑定在一起。因为ASP技术使用了ActiveX控制技术,所以被严格的限制在微软的Windows平台下。因为ActiveX对象是平台相关的,所以作为微软IIS一个重要特征的ASP技术,很难在广泛的Web服务器上运行。
2.开放开发过程和资源
Sun公司使用Java Community Process开发JSP技术,已经将JSP和Java Servlet源码的最新版本授权给了Apache公司,他们与其他一些公司和个人将开放性的开发一个健壮的Reference implementation(RI),而这个RI是可以被任何公司和个人免费使用的。JSP的应用程序接口(API)已经得到了勿庸置疑的益处,并且将继续从中受益。而ASP技术由于是微软产品,所以完全在一个非开放的环境下开放。
ASP技术 | JSP技术 | |
Web服务器 | Microsoft IIS or Personal Web Server | 任何Web服务器,包括Apache, Netscape, 和 IIS |
平台 | Microsoft Windows | 大多数的流行平台,包括Solaris 操作环境, Microsoft Windows, Mac OS, Linux, and 其他 UNIX 平台实现 |
三、从开发人员角度来看ASP与JSP的比较
ASP与JSP技术都可以使开发人员通过使用构件技术将程序逻辑从页面设计中分离出来。ASP支持COM模型,而JSP的功能则基于JavaBean技术的构件。
1、跨平台的复用性
开发人员都将注意力集中在复用性上,而JSP构件(Enterprise JavaBeans,JavaBeans,以及JSP tags)是跨平台可复用的。基于构件的模型加速了应用开发的进度,因为它可以使开发人员:
A.使用轻量级的子构件可以快速建立应用原型,然后再整合一些其他的功能;
B.在不同的地方完成部分任务,然后一起封装在Java Bean或者Enterprise JavaBeans组件。
2.Java的优点
JSP使用Java语言作为脚本语言,而ASP使用微软的VBScript或者JScript。Java语言是一种成熟的、强大的、可扩展的编程语言,能够提供比基于Basic的脚本语言更多的好处。Java语言提供了比解释型的VBScript和JScript语言更加出众的性能。因为JSP页面使用了Java技术,并且首先被编译成为Java Servlet,所以它可以为已知的HTTP应用提供全套的服务器端的JAVA类库。
Java语言使开发人员的工作在其他方面也变得更加方便。例如:ASP应用在Windows NT 系统上易于崩溃,而JSP却可以防止这点。Java语言通过提供防止内存泄漏和指针错误的保护措施来帮助管理内存。而且,JSP提供强壮的例外处理,这对于现实的应用是必要的。
3.更易于维护
使用JSP技术的应用比基于ASP的应用更易于长时间的维护。
a.脚本语言对于小的应用来说是很好的,但它很难管理巨大的、复杂应用。因为Java语言是结构化的,所以用它可以很简单的建造和维护大型的模块应用。
b.JSP技术更加强调构件而不是脚本,这样便于修改内容而不必改变逻辑,或者修改逻辑而不必担心对于内容有所影响。
c.Enterprise JavaBeans结构封装了企业级的逻辑,比如访问数据库,安全,以及事务,它将企业级的逻辑和应用本身分离开。
d.由于JSP技术是一种开放的、跨平台的体系结构,所以Web服务器、平台以及其他的构件可以很容易的升级或者转换,而不会影响基于JSP的应用。这使得JSP更加适合现实中日新月异的Web应用。
ASP技术 | JSP技术 | |
复用的跨平台构件 | 无 | Java Beans,Enterprise JavaBeans,custom JSP tags |
针对系统崩溃的安全性 | 无 | 有 |
内存泄漏保护 | 无 | 有 |
脚本语言 | VBScript,Jscript | Java |
四、在企业级的可用性
Java 2 Platform,Enterprise Edition(J2EE)是一种用来实现复杂的企业级应用的Java体系结构。作为J2EE的一部分,JSP页面可以连接到所有的J2EE构件,包括JavaBeans和Enterprise JavaBeans以及Java Servlets。事实上,JSP页面首先被编译成Java Servlets,所以它们有Java应用的所有好处。J2EE平台容器管理复杂的企业级应用,包括事务处理和资源池。
JSP页面可以连接所有标准的J2EE服务,包括:
1.Java Naming and Directory InterfaceTM API
2.JDBCTM API
3.JavaMailTM
4.JavaTM Message Service (JMS)
最后,因为JSP技术是通过Java Community Process开发的,所以它获得了从工具、web服务器以及应用服务商方面的广泛支持。所以,用户和合作伙伴可以采取最佳方法,选择对于他们的特定应用最为适合的工具,来保证他们在编码和人员培训上的投资。
ASP技术 | JSP技术 | |
与数据库匹配 | 有(COM) | 有(JDBC API) |
与数据源的整合 | ODBC | JDBC |
构件 | COM构件 | Java Beans,Enterprise JavaBeans,extensible JSP tags |
可扩展的工具支持 | 有 | 有 |