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