总的来讲JavaSever PagesTM(JSP)和 微软的Active Sever Pages(ASP)在技术方面有许多相似之处两者都是为基于WEB应用实现动态交互网页制作提供的技术环境支持同等程度上来讲两者都能够为程序开发人员提供实现应用程序的编制与自带组件设计网页从逻辑上分离的技术而且两者都能够替代CGI使网站建设与发展变的较为简单与快捷
尽管JavaSever Pages 技术和微软的Active Sever Pages在许多方面都有相似的但仍然存在很多不同之处其中最本质上的区别在于两者是来源于不同的技术规范组织其实现的基础WEB服务器平台要求不相同
一JSP技术开放的技术
JSP和ASP技术明显的不同点开发人员在对两者各自软件体系设计的深入了解的方式不同JSP技术基于平台和服务器的互相独立输入支持来自广泛的专门的各种工具包服务器的组件和数据库产品开发商所提供相比之下ASP技术主要依赖微软的技术支持
平台和服务器的独立性
JSP技术依附于一次写入之后可以运行在任何具有符合JavaTM语法结构的环境取而代之过去依附于单一平台或开发商JSP技术能够运行在任何WEB服务器上并且支持来自多家开发商提供的各种各样工具包
由于ASP是基于Activex控件技术提供客户端和服务器端的开发组件因此ASP技术基本上是局限于微软的操作系统平台之上ASP主要工作环境是微软的IIS应用程序结构又因Activex对象具有平台特性所以ASP技术不能很容易地实现在跨平台的WEB服务器的工作尽管ASP技术通过第三方提供的产品能够得到组件和服务实现跨平台的应用程序但是Activex对象必须事先放置于所选择的平台中
开放的开发过程开放的原代码
SUN应用JAVA社团性过程开发JSP技术自从年SUN已经用这种开放过程方法同国际JAVA组织合作开发和修改了JAVA技术与规范针对JSP的产品SUN授权了工具提供商(如Macromedia)结盟公司(如ApacheNetscape)最终用户协作商及其他最近SUN将最新版本的JSP和JavaTM Servlet(JSP JAVA SERVLET )的原代码发放给Apache以求JSP与Apache紧密的相互发展ApacheSUN和许多其他的公司及个人公开成立一个健壮的咨询机构以便任何公司和个人都能免费取得信息
JSP应用程序界面(API)毫无疑问已经取得成功并将随JAVA组织不断开放扩大继续完善相反ASP技术仅依靠微软本身的推动其发展是建立在独占的封闭的开发过程基础之上
ASP技术 JSP技术
WEB服务器 微软的IIS或个人WEB服务器 任何WEB服务器包括ApacheNetscape和IIS
操作系统平台 微软的视窗系统 绝大多数的流行平台包括solaris操作系统微软的视窗系统MAC OSLinux及其他UNIX系列平台产品
跨平台访问 需要第三方ASP的引入产品 支持WEB信息机构环境中不同系列的计算机群即保证用户在当前软硬件及人力资源上的投资完全兼容JSP技术提供灵活开放选择可以使用各种各样的工具提供商提供的工具高度体现工业化标准输入与配置
从开发人员的角度来看ASP和JSP技术都能使开发者实现通过点击网页中的组件制作交互式的动态的内容和应用程序的WEB站点ASP仅支持组件对象模型COM而JSP技术提供的组件都是基于JavabeansTM技术或JSP标签库由此可以看出两者虽有相同之处但其区别是很明显的
)JSP标签可扩充性
尽管ASP和JSP都使用标签与脚本技术来制作动态WEB网页JSP技术能够使开发者扩展JSP标签得以应用JSP开发者能定制标签库所以网页制作者充分利用与XML兼容的标签技术强大的功能大大减少对脚本语言的依赖由于定制标签技术使网页制作者降低了制作网页和向多个网页扩充关键功能的复杂程度
)JSP跨平台的可重用性
JSP的开发人员在开发过程中一直关注可重用性JSP组件(企业JavabeansTMJavabeans或定制的JSP标签)都是跨平台可重用的企业Javabeans组件可以访问传统的数据库并能以分布式系统模式工作于UNIX和WINDOWS平台JSP技术的标签可扩充功能为开发人员提供简便的与XML兼容的接口即共享网页的打包功能使其完全的工业标准化
这种基于组件的模式很有效提高应用程序的开发效率因为这种模式能够使开发人员利用快捷的子组件快速创建模板应用程序然后再整合一些附加功能以后便可使用象这样有效的方法在JSP中无处不在并可将其打包成一个Javabean或一个工业标准化的Javabean组件
二JAVA的优越性
JSP技术是用JAVA语言作为脚本语言的而ASP网页使用微软的VBScrip或JscripJAVA是成熟的强大的易扩充的编程语言远优于基于BASIC的脚本语言如JAVA的可执行性优于VBScript或Jscript语言因为它们利用JAVA技术并且都被编译为JAVA ServletsJSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序
JAVA使开发人员的工作在其他方面也变的一样容易简单例如当ASP应用程序在WINDOWS NT系统被怀疑可能会崩溃时JAVA能有效的防止系统的崩溃JAVA语言通过提供防止内存的洩漏的方法在内存管理方面也能大显身手加之JSP为应用提供了健壮的意外事件处理机制
易于维护性
基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理
脚本语言都能很好服务于小的应用程序但不能适应大型的复杂的应用程序因为JAVA是结构化的它比较容易创建和维护庞大的组件化的应用程序
JSP突出的组件技术使修改内容而不影响逻辑或修改逻辑而不影响内容变得很容易实现
企业级的Javabeans结构整合了企业逻辑例如数据库的访问安全事务完整性及独立性即独立于应用程序
因为JSP技术是一种开放的跨平台的结构因此WEB服务器平台及其他的组件能很容易升级或切换且不会影响JSP基本的应用程序这一特点使JSP能够适用现实世界的各种WEB应用程序不断的变化和发展
ASP技术 JSP技术
可重用跨平台组件 没有JAVABEANS 企业级JAVABEANS定制JSP标签
安全:防范系统崩溃 没有/有
内存洩露保护 没有/有
脚本语言 VBSCRIPTJSCRIPT JAVA
定制标签 没有/有
企业产品的多样性
JAVA平台即企业版(JEE)是适用于多企业应用程序的JAVA结构作为JEE的部分JSP网页可访问所有JEE的组件包括Javabeans企业级Javabeans及JAVA ServletsJSP网页都能完全编译成为Servlets所以它们都享有灵活性的特点和为服务器端JAVA应用程序JEE平台内容不仅包括管理复杂的企业应用程序而且包括事务管理技术和Pooling资源管理技术
JSP网页可以访问标准的JEE服务包括
JAVA名称和目录界面API
JDBCTM API(与关联的数据库通讯)
JavaMailTM(支持基于JAVA邮件和消息应用程序的类)
JAVATM 消息服务
通过JEEJSP网页能够用许多方式同企业系统交互访问JEE支持两种CORBA规范的技术JAVA IDL和RMIIIOP在企业级JAVABEANS技术支持下JSP网页通过运用高级的对象映射的方式访问数据库
最终因为JSP技术是基于JAVA的开放性过程的产品因此它能够广泛支持不同提供商提供的工具WEB服务器和应用程序的服务这样能够使用户选择最佳的开发方法选择最适应他们的应用程序开发的工具包同时有效地保护用户在代码和人员培训上的投资