總的來講,JavaSever PagesTM(JSP)和 微軟的Active Sever Pages(ASP)在技術方面有許多相似之處。兩者都是為基於WEB應用實現動態交互網頁制作提供的技術環境支持。同等程度上來講,兩者都能夠為程序開發人員提供實現應用程序的編制與自帶組件設計網頁從邏輯上分離的技術。而且兩者都能夠替代CGI使網站建設與發展變的較為簡單與快捷。
盡管JavaSever Pages 技術和微軟的Active Sever Pages在許多方面都有相似的,但仍然存在很多不同之處,其中最本質上的區別在於:兩者是來源於不同的技術規范組織,其實現的基礎:WEB服務器平台要求不相同。
一、JSP技術:開放的技術
JSP和ASP技術明顯的不同點:開發人員在對兩者各自軟件體系設計的深入了解的方式不同。JSP技術基於平台和服務器的互相獨立,輸入支持來自廣泛的,專門的,各種工具包,服務器的組件和數據庫產品開發商所提供。相比之下,ASP技術主要依賴微軟的技術支持。
1、平台和服務器的獨立性
JSP技術依附於一次寫入,之後,可以運行在任何具有符合JavaTM語法結構的環境。取而代之過去依附於單一平台或開發商,JSP技術能夠運行在任何WEB服務器上並且支持來自多家開發商提供的各種各樣工具包。
由於ASP是基於Activex控件技術提供客戶端和服務器端的開發組件,因此ASP技術基本上是局限於微軟的操作系統平台之上。ASP主要工作環境是微軟的IIS應用程序結構,又因Activex對象具有平台特性,所以ASP技術不能很容易地實現在跨平台的WEB服務器的工作。盡管ASP技術通過第三方提供的產品能夠得到組件和服務實現跨平台的應用程序,但是Activex對象必須事先放置於所選擇的平台中。
2、開放的開發過程,開放的原代碼
SUN應用JAVA社團性過程開發JSP技術。自從1995年,SUN已經用這種開放過程方法同國際JAVA組織合作開發和修改了JAVA技術與規范。針對JSP的產品,SUN授權了工具提供商(如Macromedia),結盟公司(如Apache,Netscape),最終用戶,協作商及其他。最近,SUN將最新版本的JSP和JavaTM Servlet(JSP 1.1,JAVA SERVLET 2.2)的原代碼發放給Apache,以求JSP與Apache緊密的相互發展。Apache,SUN和許多其他的公司及個人公開成立一個健壯的咨詢機構以便任何公司和個人都能免費取得信息。
JSP應用程序界面(API)毫無疑問已經取得成功,並將隨JAVA組織不斷開放擴大繼續完善。相反,ASP技術僅依靠微軟本身的推動,其發展是建立在獨占的,封閉的開發過程基礎之上。
ASP技術 JSP技術
WEB服務器 微軟的IIS或個人WEB服務器 任何WEB服務器包括Apache,Netscape,和IIS
操作系統平台 微軟的視窗系統 絕大多數的流行平台,包括solaris操作系統,微軟的視窗系統,MAC OS,Linux,及其他UNIX系列平台產品。
跨平台訪問 需要第三方ASP的引入產品 支持WEB信息機構環境中不同系列的計算機群即保證用戶在當前軟硬件及人力資源上的投資完全兼容,JSP技術提供靈活,開放選擇:可以使用各種各樣的工具提供商提供的工具,高度體現工業化標准輸入與配置
3、從開發人員的角度來看:ASP和JSP技術都能使開發者實現通過點擊網頁中的組件制作交互式的,動態的內容和應用程序的WEB站點。ASP僅支持組件對象模型COM,而JSP技術提供的組件都是基於JavabeansTM技術或JSP標簽庫。由此可以看出兩者雖有相同之處,但其區別是很明顯的。
1)JSP標簽可擴充性
盡管ASP和JSP都使用標簽與腳本技術來制作動態WEB網頁,JSP技術能夠使開發者擴展JSP標簽得以應用,JSP開發者能定制標簽庫,所以網頁制作者充分利用與XML兼容的標簽技術強大的功能,大大減少對腳本語言的依賴。由於定制標簽技術,使網頁制作者降低了制作網頁和向多個網頁擴充關鍵功能的復雜程度。
2)JSP跨平台的可重用性
JSP的開發人員在開發過程中一直關注可重用性。JSP組件(企業JavabeansTM,Javabeans,或定制的JSP標簽)都是跨平台可重用的。企業Javabeans組件可以訪問傳統的數據庫,並能以分布式系統模式工作於UNIX和WINDOWS平台。JSP技術的標簽可擴充功能為開發人員提供簡便的,與XML兼容的接口即共享網頁的打包功能使其完全的工業標准化。
這種基於組件的模式很有效提高應用程序的開發效率,因為這種模式能夠使開發人員利用快捷的子組件快速創建模板應用程序,然後再整合一些附加功能以後便可使用。象這樣有效的方法在JSP中無處不在,並可將其打包成一個Javabean或一個工業標准化的Javabean組件。
二、JAVA的優越性
JSP技術是用JAVA語言作為腳本語言的,而ASP網頁使用微軟的VBScrip或Jscrip。JAVA是成熟的,強大的,易擴充的編程語言,遠優於基於BASIC的腳本語言。如:JAVA的可執行性優於VBScript或Jscript語言。因為它們利用JAVA技術並且都被編譯為JAVA Servlets,JSP網頁為整個服務器端的JAVA庫單元提供了一個接口來服務於HTTP的應用程序。
JAVA使開發人員的工作在其他方面也變的一樣容易,簡單。例如,當ASP應用程序在WINDOWS NT系統被懷疑可能會崩潰時,JAVA能有效的防止系統的崩潰。JAVA語言通過提供防止內存的洩漏的方法,在內存管理方面也能大顯身手。加之,JSP為應用提供了健壯的意外事件處理機制。
1、易於維護性
基於JSP技術的應用程序比基於ASP的應用程序易於維護和管理。
腳本語言都能很好服務於小的應用程序,但不能適應大型的,復雜的應用程序。因為,JAVA是結構化的,它比較容易創建和維護龐大的,組件化的應用程序。
JSP突出的組件技術使修改內容而不影響邏輯或修改邏輯而不影響內容變得很容易實現。
企業級的Javabeans結構整合了企業邏輯,例如數據庫的訪問,安全,事務完整性,及獨立性即獨立於應用程序。
因為JSP技術是一種開放的,跨平台的結構,因此,WEB服務器,平台,及其他的組件能很容易升級或切換,且不會影響JSP基本的應用程序。這一特點使JSP能夠適用現實世界的各種WEB應用程序不斷的變化和發展。
ASP技術 JSP技術
可重用,跨平台組件 沒有JAVABEANS 企業級JAVABEANS,定制JSP標簽
安全:防范系統崩潰 沒有/有
內存洩露保護 沒有/有
腳本語言 VBSCRIPT,JSCRIPT JAVA
定制標簽 沒有/有
2、企業產品的多樣性
JAVA2平台即企業版(J2EE)是適用於多企業應用程序的JAVA結構,作為J2EE的部分,JSP網頁可訪問所有J2EE的組件,包括Javabeans,企業級Javabeans及JAVA Servlets。JSP網頁都能完全編譯成為Servlets,所以它們都享有靈活性的特點和為服務器端JAVA應用程序。J2EE平台內容不僅包括管理復雜的企業應用程序而且包括事務管理技術和Pooling資源管理技術。
JSP網頁可以訪問標准的J2EE服務,包括:
JAVA名稱和目錄界面API
JDBCTM API(與關聯的數據庫通訊)
JavaMailTM(支持基於JAVA郵件和消息應用程序的類)
JAVATM 消息服務
通過J2EE,JSP網頁能夠用許多方式同企業系統交互訪問。J2EE支持兩種CORBA規范的技術:JAVA IDL和RMI-IIOP。在企業級JAVABEANS技術支持下,JSP網頁通過運用高級的,對象映射的方式訪問數據庫。
最終,因為JSP技術是基於JAVA的開放性過程的產品,因此它能夠廣泛支持不同提供商提供的工具,WEB服務器和應用程序的服務,這樣能夠使用戶選擇最佳的開發方法,選擇最適應他們的應用程序開發的工具包,同時,有效地保護用戶在代碼和人員培訓上的投資.