當前流行的兩種web應用開發環境Active Sever Pages(ASP)和Java Sever Pages(JSP)在技術方面有許多相似之處,都是可以嵌入HTML中的程序,都使用標簽與腳本技術來制作動態WEB網頁,為實現動態交互網頁提供技術環境支持,而且都能夠替代CGI,使網站建設與發展變得更為簡單、快捷。
盡管兩者有許多相似的地方,但仍然存在很多不同之處,其中最本質上的區別在于:兩者來源于不同的技術規范組織,實現的WEB服務器平臺要求不相同。以下就來比較兩種技術,看看各自有哪些優勢和劣勢,以供設計開發者選擇使用。
1 技術的開放性
ASP技術主要依賴微軟公司的技術支持。其發展是建立在獨占的、封閉的開發過程基礎之上。Windows本身的所有問題都會一成不變地也累加到了它的身上。安全性、穩定性、跨平臺性都會因為與NT的捆綁而顯現出來。
相比之下,JSP技術基于平臺和服務器的互相獨立,輸入支持來自廣泛的、專門的各種工具包。SUN公司應用JAVA社團性過程開發JSP技術。針對JSP的產品,SUN授權了工具提供商(如Macromedia)、結盟公司(如Apache,Netscape)、最終用戶、協作商及其他。JSP應用程序界面(API)毫無疑問已經取得成功,并將隨JAVA組織不斷開放擴大繼續完善。
2 平臺和服務器的彈性
ASP是運行在微軟的操作系統平臺之上,并搭配微軟的WEB服務器IIS(Internet Information Services),基于ActiveX控件技術提供客戶端和服務器端的開發組件。因ActiveX對象具有平臺特性,所以ASP技術不能很容易地實現在跨平臺的WEB服務器的工作。盡管ASP技術通過第三方提供的產品能夠得到組件和服務實現跨平臺的應用程序,但是ActiveX對象必須事先放置于所選擇的平臺中。
JSP技術主要運行在Java Virtual Machine (JVM)虛擬機器上, 因此,它能夠跨越所有的平臺,例如:NT、Windows 2000、Solaris、Linux、OS/390、AIX、HP-UX 等,除了能在各式各樣的操作系統上執行,并且能搭配各種WEB服務器:Apache、IIS、Netscape Enterprise Server ,等等,將靜態的HTML網頁交由執行速度較快的Web Server 處理,而動態產生網頁的部分,就交由JSP Container 來執行。
由上述可知,JSP技術在跨平臺的表現方面比ASP來得更有彈性。
3 從開發人員的角度分析
ASP和JSP都使用標簽“<%”和“%>”與腳本技術來制作動態WEB網頁,但標記符號之間所使用的語言不同。ASP為JavaScript或VBScript,由于ASP還是一種 Script語言,所以除了大量使用組件外,沒有辦法提高其工作效率。它必須面對即時編譯的時間考驗,同時我們還不知其背后的組件會是一個什么樣的狀況。而JSP所用的語言是Java。Java 是嚴謹規范、有系統組織、強大且易擴充的語言,其可執行性優于VBScript或JavaScript語言。它能夠利用JAVA技術并被編譯為JAVA Servlets。Java 語言能夠提供防止直接存取內存的功能,而存取內存產生的錯誤,通常也正是造成服務器損毀的最主要原因之一。
ASP和JSP技術都能使開發者實現,通過點擊網頁中的組件制作交互式動態的內容和應用程序的WEB站點。但ASP僅支持微軟的組件對象模型COM,由于Windows NT最初的設計問題而會引發ASP大量的安全問題。只要在這樣的組件或是操作中一不注意,那么外部攻擊就可以取得相當高的權限而導致網站癱瘓或者數據丟失;而JSP組件都是基于Javabeans技術或JSP標簽庫。JSP標簽具有可擴充性 ,使得JSP開發者可以使用用戶定制標簽庫,可以充分利用與XML兼容的標簽技術強大的功能,大大減少對腳本語言的依賴。由于定制標簽技術,使網頁制作者降低了制作網頁和向多個網頁擴充關鍵功能的復雜程度。
4 跨平臺的可重用性
JSP的開發人員在開發過程中一直關注可重用性。JSP組件(企業Javabeans,Javabeans,或定制的JSP標簽)都是跨平臺可重用的。JSP技術的標簽可擴充功能為開發人員提供簡便的,與XML兼容的接口即共享網頁的打包功能使其完全的工業標準化。工業標準化的Javabeans組件可以訪問傳統的數據庫,并能以分布式系統模式工作于UNIX和WINDOWS平臺。
ASP沒有JAVABEANS組件,不能擴充,不能實現跨平臺重用。
從以上幾個方面的分析比較中,我們不難看出,JSP已經在多處顯示出了其優越性。由于JSP技術是基于JAVA的開放性過程的產品,因此它能夠廣泛支持不同提供商提供的工具、WEB服務器和應用程序的服務,這樣能夠使用戶選擇最佳的開發方法,選擇最適應他們的應用程序開發的工具包,同時有效地保護用戶在代碼和人員培訓上的投資。
最后,把ASP和JSP兩種技術各自在多方面的性能以列表的形式羅列出來:

參考文獻
[1] 宋先斌,何在玉.web應用開發技術.人民郵電出版社.
[2] 林宏基,等. Web開發技術教程ASP/ASP.NET/JSP程序設計.北京大學出版社.