JSP的特點和其它動態(tài)網(wǎng)頁開發(fā)技術(shù)比較
JSP技術(shù)特點:
1.將內(nèi)容的生成和顯示進行分離
使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標識來設(shè)計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務器端運行。如果核心邏輯被封裝在標識和Beans 中,那么其他人,如Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。
在服務器端,JSP引擎解釋JSP標識和小腳本,生成所請求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBCTM技術(shù)訪問數(shù)據(jù)庫,或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。
2.強調(diào)可重用的組件
絕大多數(shù)JSP頁面依賴于可重用的,跨平臺的組件(JavaBeans或者Enterprise JavaBeansTM組件)來執(zhí)行應用程序所要求的更為復雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團體所使用?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。
3.采用標識簡化頁面開發(fā)
Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標識中進行動態(tài)內(nèi)容生成所需要的。
標準的JSP標識能夠訪問和實例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時的功能。通過開發(fā)定制化標識庫,JSP技術(shù)是可以擴展的。今后,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標識一樣的執(zhí)行特定功能的構(gòu)件來工作。
JSP技術(shù)很容易整合到多種應用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴展到能夠支持企業(yè)級的分布式應用。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個組成部分,JSP技術(shù)能夠支持高度復雜的基于Web的應用。
由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。
作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務器和工具,更改工具或服務器并不影響當前的應用。
與其它動態(tài)網(wǎng)頁技術(shù)的比較:
與傳統(tǒng)的CGI方式相比
a. 后臺實現(xiàn)邏輯是基于Java Component的,具有跨平臺的特點
b. 將應用邏輯與頁面表現(xiàn)分離,使得應用邏輯能夠最大程度得到復用,從而提高開發(fā)效率
c. 運行比CGI方式高,尤其對于數(shù)據(jù)庫訪問時,提供了連接池緩沖機制,使運行所需資源最小
d. 安全,由于后臺是完全基于Java技術(shù)的,安全性由Java的安全機制予以保障
e. 由于與ASP很近似,不需要太多的編程知識就可以動手編寫JSP
f. 內(nèi)置支持XML,使用XML從而使頁面具有更強的表現(xiàn)力和減少編程工作量
與Asp和php的比較:
目前,最常用的三種動態(tài)網(wǎng)頁語言有ASP(Active Server Pages),JSP(Java Server Pges),PHP (Hypertext Preprocessor)。
ASP全名Active Server Pages,是一個WEB服務器端的開發(fā)環(huán)境, 利用它可以產(chǎn)生和運行動態(tài)的、交互的、高性能的WEB服務應用程序。ASP采用腳本語言VB Script(Java script)作為自己的開發(fā)語言。
PHP是一種跨平臺的服務器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法, 并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動態(tài)生成頁面.它支持目前絕多數(shù)數(shù)據(jù)庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP 官方站點(http://www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。
JSP 是Sun公司推出的新一代站點開發(fā)語言,他完全解決了目前ASP,PHP的一個通?。_本級執(zhí)行(據(jù)說PHP4 也已經(jīng)在Zend 的支持下,實現(xiàn)編譯運行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
三者都提供在 HTML 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。但JSP代碼被編譯成 Servlet 并由 Java 虛擬機解釋執(zhí)行,這種編譯操作僅在對 JSP頁面的第一次請求時發(fā)生。在 ASP 、PHP、JSP 環(huán)境下, HTML 代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴于 Web 服務器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到 HTML 代碼中,然后一起發(fā)送給瀏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
JSP vs ASP
JSP跨平臺,而且支持Apache, Netscape, IIS,IBM Http Server在內(nèi)的所有主流Web Server (市場份額在85%以上),而ASP目前只支持NT+IIS(市場份額在20%左右);提供了更好的安全機制,這對于e-business這樣的應用來說是至關(guān)重要的; JSP可以跨操作系統(tǒng)、Web Server和應用服務器,而ASP只限于NT+IIS;
JSP是一個開放的標準,得到了Oracle, Netscape, IBM & WebLogic, Inprise等的支持;JSP的組件編寫更為容易,而且JSP的性能由于ASP;
JSP vs PHP
JSP是一個業(yè)界標準,得到Sun,IBM,Oracle,BEA,Apache等 的支持,PHP只是一個開發(fā)組織并不強的free ware ;PHP的性能不好,是解釋型的,JSP采用JIT編譯后,和c不相上下,而且支持多線程; JSP支持的平臺眾多,從Win98,NT,Unix,Linux,FreeBSD到AS/400,OS/390,而PHP支持的平臺有限; JSP可以利用JDBC和眾多主流關(guān)系數(shù)據(jù)庫連接,而PHP目前只支持MySql和Oracle等有限的幾種; JSP中的組件,JavaBean和EJB開發(fā)非常容易,而且還可以在JSP中使用Java所有的類和功能。而PHP只能用C寫一些功能有限的組件,而且編寫較為復雜;利用JSP可以支持EJB,以支持Transaction和CORBA標準,而且還可以支持LDAP,Message等服務,使得訪問 ERP,CICS,MQ等企業(yè)應用非常容易。而PHP在這方面先天不足,所以對于電子商務這樣的Mission-critical的應用來說,PHP并不適合。
性能比較
有人做過試驗,對這三種語言分別做循環(huán)性能測試及存取Oracle數(shù)據(jù)庫測試。在循環(huán)性能測試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的循環(huán)。而ASP、PHP測試的是2000*2000循環(huán)(少一個數(shù)量級),卻分別用了63秒和84秒。
數(shù)據(jù)庫測試中,三者分別對 Oracle 8 進行 1000 次 Insert,Update,Select,和Delete: Jsp 需要 13 秒,Php 需要 69 秒,ASP則 需要 73 秒。
前景分析
目前在國內(nèi)PHP與ASP應用最為廣泛。而JSP由于是一種較新的技術(shù),國內(nèi)采用的較少。但在國外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務類的網(wǎng)站,多采用JSP。
采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國人(Chinaren)等,但由于PHP本身存在的一些缺點,使得它不適合應用于大型電子商務站點,而更適合一些小型的商業(yè)站點。
首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對于大負荷站點,解決方法只有一個:分布計算。數(shù)據(jù)庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可以根據(jù)流量分開,組成二維陣列。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的數(shù)據(jù)庫接口支持不統(tǒng)一,這就使得它不適合運用在電子商務中。
ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規(guī)模支持,通過DCOM和Transcation Server獲得結(jié)構(gòu)支持;JSP可以通過SUN Java的Java Class和EJB獲得規(guī)模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結(jié)構(gòu)支持。
三者中,JSP應該是未來發(fā)展的趨勢。世界上一些大的電子商務解決方案提供商都采用Servlet和JSP。比較出名的如IBM的 E-business,它的核心是采用Servlet和JSP的WebSphere;西方另外一個非常著名的電子商務軟件提供商,Intershop。它原來的產(chǎn)品Intershop1 2, 3, 4占據(jù)了主要的電子商務軟件份額。它們都是通過CGI來提供支持的。但去年10月后它推出了Enfinity,一個采用Servlet和JSP的電子商務Application Server,而且聲言不再開發(fā)傳統(tǒng)軟件。
JSP應用范圍:
JSP同PHP類似,幾乎可以運行于所有平臺。如Win NT,Linux,Unix. NT下IIS通過一個插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應用在 NT、Unix和Linux上,因此JSP有更廣泛的運行平臺。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場份額,但是在服務器方面Unix的優(yōu)勢仍然很大,而新崛起的Linux更是來勢不小。從一個平臺移植到另外一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節(jié)碼都是標準的與平臺無關(guān)的。
【編輯推薦】