從技術(shù)層面看ASP與JSP的比較
一、介紹
首先,JSP與ASP在技術(shù)上有許多共同之處,它們都是用來開發(fā)基于Web應(yīng)用的動態(tài)頁面,并且兩者都可以使開發(fā)人員通過使用構(gòu)件技術(shù)將程序邏輯從頁面設(shè)計中分離出來。雖然,JavaServer Pages和Microsoft Active Server Pages有許多類似的地方,但依然存在很多不同之處。它們的不同之處與它們的相同點(diǎn)同樣顯著,對于使用它們的開發(fā)人員以及采用它們作為自己網(wǎng)絡(luò)體系結(jié)構(gòu)的一部分的那些組織來說,這些不同點(diǎn)有著更加深遠(yuǎn)的意義。
二、JSP技術(shù):一種開放的方式
在許多方面,對于ASP與JSP來說,它們兩者最大的區(qū)別取決于軟件開發(fā)方法的不同。JSP技術(shù)具有服務(wù)器無關(guān)性和平臺無關(guān)性,而ASP是Microsoft產(chǎn)品,故只能依賴于Microsoft技術(shù)。
1.平臺無關(guān)性和服務(wù)器無關(guān)性
JSP技術(shù)堅持了Java體系結(jié)構(gòu)的思想,即:一次編寫,隨處運(yùn)行。JSP的功能可以運(yùn)行任何Web服務(wù)器,并且被各種類型的工具支持,而不是與一種平臺或者開發(fā)商綁定在一起。因?yàn)锳SP技術(shù)使用了ActiveX控制技術(shù),所以被嚴(yán)格的限制在微軟的Windows平臺下。因?yàn)锳ctiveX對象是平臺相關(guān)的,所以作為微軟IIS一個重要特征的ASP技術(shù),很難在廣泛的Web服務(wù)器上運(yùn)行。
2.開放開發(fā)過程和資源
Sun公司使用Java Community Process開發(fā)JSP技術(shù),已經(jīng)將JSP和Java Servlet源碼的最新版本授權(quán)給了Apache公司,他們與其他一些公司和個人將開放性的開發(fā)一個健壯的Reference implementation(RI),而這個RI是可以被任何公司和個人免費(fèi)使用的。JSP的應(yīng)用程序接口(API)已經(jīng)得到了勿庸置疑的益處,并且將繼續(xù)從中受益。而ASP技術(shù)由于是微軟產(chǎn)品,所以完全在一個非開放的環(huán)境下開放。
ASP技術(shù) | JSP技術(shù) | |
Web服務(wù)器 | Microsoft IIS or Personal Web Server | 任何Web服務(wù)器,包括Apache, Netscape, 和 IIS |
平臺 | Microsoft Windows | 大多數(shù)的流行平臺,包括Solaris 操作環(huán)境, Microsoft Windows, Mac OS, Linux, and 其他 UNIX 平臺實(shí)現(xiàn) |
三、從開發(fā)人員角度來看ASP與JSP的比較
ASP與JSP技術(shù)都可以使開發(fā)人員通過使用構(gòu)件技術(shù)將程序邏輯從頁面設(shè)計中分離出來。ASP支持COM模型,而JSP的功能則基于JavaBean技術(shù)的構(gòu)件。
1、跨平臺的復(fù)用性
開發(fā)人員都將注意力集中在復(fù)用性上,而JSP構(gòu)件(Enterprise JavaBeans,JavaBeans,以及JSP tags)是跨平臺可復(fù)用的。基于構(gòu)件的模型加速了應(yīng)用開發(fā)的進(jìn)度,因?yàn)樗梢允归_發(fā)人員:
A.使用輕量級的子構(gòu)件可以快速建立應(yīng)用原型,然后再整合一些其他的功能;
B.在不同的地方完成部分任務(wù),然后一起封裝在Java Bean或者Enterprise JavaBeans組件。
2.Java的優(yōu)點(diǎn)
JSP使用Java語言作為腳本語言,而ASP使用微軟的VBScript或者JScript。Java語言是一種成熟的、強(qiáng)大的、可擴(kuò)展的編程語言,能夠提供比基于Basic的腳本語言更多的好處。Java語言提供了比解釋型的VBScript和JScript語言更加出眾的性能。因?yàn)镴SP頁面使用了Java技術(shù),并且首先被編譯成為Java Servlet,所以它可以為已知的HTTP應(yīng)用提供全套的服務(wù)器端的JAVA類庫。
Java語言使開發(fā)人員的工作在其他方面也變得更加方便。例如:ASP應(yīng)用在Windows NT 系統(tǒng)上易于崩潰,而JSP卻可以防止這點(diǎn)。Java語言通過提供防止內(nèi)存泄漏和指針錯誤的保護(hù)措施來幫助管理內(nèi)存。而且,JSP提供強(qiáng)壯的例外處理,這對于現(xiàn)實(shí)的應(yīng)用是必要的。
3.更易于維護(hù)
使用JSP技術(shù)的應(yīng)用比基于ASP的應(yīng)用更易于長時間的維護(hù)。
a.腳本語言對于小的應(yīng)用來說是很好的,但它很難管理巨大的、復(fù)雜應(yīng)用。因?yàn)镴ava語言是結(jié)構(gòu)化的,所以用它可以很簡單的建造和維護(hù)大型的模塊應(yīng)用。
b.JSP技術(shù)更加強(qiáng)調(diào)構(gòu)件而不是腳本,這樣便于修改內(nèi)容而不必改變邏輯,或者修改邏輯而不必?fù)?dān)心對于內(nèi)容有所影響。
c.Enterprise JavaBeans結(jié)構(gòu)封裝了企業(yè)級的邏輯,比如訪問數(shù)據(jù)庫,安全,以及事務(wù),它將企業(yè)級的邏輯和應(yīng)用本身分離開。
d.由于JSP技術(shù)是一種開放的、跨平臺的體系結(jié)構(gòu),所以Web服務(wù)器、平臺以及其他的構(gòu)件可以很容易的升級或者轉(zhuǎn)換,而不會影響基于JSP的應(yīng)用。這使得JSP更加適合現(xiàn)實(shí)中日新月異的Web應(yīng)用。
ASP技術(shù) | JSP技術(shù) | |
復(fù)用的跨平臺構(gòu)件 | 無 | Java Beans,Enterprise JavaBeans,custom JSP tags |
針對系統(tǒng)崩潰的安全性 | 無 | 有 |
內(nèi)存泄漏保護(hù) | 無 | 有 |
腳本語言 | VBScript,Jscript | Java |
四、在企業(yè)級的可用性
Java 2 Platform,Enterprise Edition(J2EE)是一種用來實(shí)現(xiàn)復(fù)雜的企業(yè)級應(yīng)用的Java體系結(jié)構(gòu)。作為J2EE的一部分,JSP頁面可以連接到所有的J2EE構(gòu)件,包括JavaBeans和Enterprise JavaBeans以及Java Servlets。事實(shí)上,JSP頁面首先被編譯成Java Servlets,所以它們有Java應(yīng)用的所有好處。J2EE平臺容器管理復(fù)雜的企業(yè)級應(yīng)用,包括事務(wù)處理和資源池。
JSP頁面可以連接所有標(biāo)準(zhǔn)的J2EE服務(wù),包括:
1.Java Naming and Directory InterfaceTM API
2.JDBCTM API
3.JavaMailTM
4.JavaTM Message Service (JMS)
最后,因?yàn)镴SP技術(shù)是通過Java Community Process開發(fā)的,所以它獲得了從工具、web服務(wù)器以及應(yīng)用服務(wù)商方面的廣泛支持。所以,用戶和合作伙伴可以采取最佳方法,選擇對于他們的特定應(yīng)用最為適合的工具,來保證他們在編碼和人員培訓(xùn)上的投資。
ASP技術(shù) | JSP技術(shù) | |
與數(shù)據(jù)庫匹配 | 有(COM) | 有(JDBC API) |
與數(shù)據(jù)源的整合 | ODBC | JDBC |
構(gòu)件 | COM構(gòu)件 | Java Beans,Enterprise JavaBeans,extensible JSP tags |
可擴(kuò)展的工具支持 | 有 | 有 |
【編輯推薦】