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