程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> JSP的特點和其它動態網頁開發技術比較

JSP的特點和其它動態網頁開發技術比較

編輯:J2EE

JSP技術特點:

1.將內容的生成和顯示進行分離

使用JSP技術,Web頁面開發人員可以使用Html或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態內容。生成內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在小腳本中,所有的腳本在服務器端運行。如果核心邏輯被封裝在標識和Beans 中,那麼其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。

在服務器端,JSP引擎解釋JSP標識和小腳本,生成所請求的內容(例如,通過訪問JavaBeans組件,使用JDBCTM技術訪問數據庫,或者包含文件),並且將結果以HTML(或者XML)頁面的形式發送回浏覽器。這有助於作者保護自己的代碼,而又保證任何基於Html的Web浏覽器的完全可用性。

2.強調可重用的組件

絕大多數JSP頁面依賴於可重用的,跨平台的組件(JavaBeans或者Enterprise JavaBeansTM組件)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。

3.采用標識簡化頁面開發

Web頁面開發人員不會都是熟悉腳本語言的編程人員。JavaServer Page技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。

標准的JSP標識能夠訪問和實例化JavaBeans組件,設置或者檢索組件屬性,下載Applet,以及執行用其他方法更難於編碼和耗時的功能。通過開發定制化標識庫,JSP技術是可以擴展的。今後,第三方開發人員和其他人員可以為常用功能創建自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。

JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並且擴展到能夠支持企業級的分布式應用。作為采用Java技術家族的一部分,以及Java 2(企業版體系結構)的一個組成部分,JSP技術能夠支持高度復雜的基於Web的應用。

由於JSP頁面的內置腳本語言是基於Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性。

作為Java平台的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應商將JSP支持添加到他們的產品中,您可以使用自己所選擇的服務器和工具,更改工具或服務器並不影響當前的應用。

與其它動態網頁技術的比較:
與傳統的CGI方式相比
a. 後台實現邏輯是基於Java Component的,具有跨平台的特點
b. 將應用邏輯與頁面表現分離,使得應用邏輯能夠最大程度得到復用,從而提高開發效率
c. 運行比CGI方式高,尤其對於數據庫訪問時,提供了連接池緩沖機制,使運行所需資源最小
d. 安全,由於後台是完全基於Java技術的,安全性由Java的安全機制予以保障
e. 由於與ASP很近似,不需要太多的編程知識就可以動手編寫JSP
f. 內置支持XML,使用XML從而使頁面具有更強的表現力和減少編程工作量

與ASP和PHP的比較:

目前,最常用的三種動態網頁語言有ASP(Active Server Pages),JSP(Java Server Pges),PHP (Hypertext Preprocessor)。

ASP全名Active Server Pages,是一個WEB服務器端的開發環境, 利用它可以產生和運行動態的、交互的、高性能的WEB服務應用程序。ASP采用腳本語言VB Script(Java script)作為自己的開發語言。

PHP是一種跨平台的服務器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法, 並耦合PHP自己的特性,使web開發者能夠快速地寫出動態生成頁面.它支持目前絕多數數據庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP 官方站點(http://www.PHP.Net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。

JSP 是Sun公司推出的新一代站點開發語言,他完全解決了目前ASP,PHP的一個通病--腳本級執行(據說PHP4 也已經在Zend 的支持下,實現編譯運行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應用程序 和 Java Applet 之外,又有新的碩果,就是JSp--Java Server Page。JSP 可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。

三者都提供在 Html 代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成 Servlet 並由 Java 虛擬機解釋執行,這種編譯操作僅在對 JSP頁面的第一次請求時發生。在 ASP 、PHP、JSP 環境下, HTML 代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的 HTML 頁面只依賴於 Web 服務器,而 ASP 、PHP、JSP 頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到 Html 代碼中,然後一起發送給浏覽器。 ASP 、PHP、 JSP三者都是面向 Web 服務器的技術,客戶端浏覽器不需要任何附加的軟件支持。

JSP vs ASP

JSP跨平台,而且支持apache, Netscape, IIS,IBM Http Server在內的所有主流Web Server (市場份額在85%以上),而ASP目前只支持NT+IIS(市場份額在20%左右);提供了更好的安全機制,這對於e-business這樣的應用來說是至關重要的; JSP可以跨操作系統、Web Server和應用服務器,而ASP只限於NT+IIS;

JSP是一個開放的標准,得到了Oracle, Netscape, IBM & WebLogic, Inprise等的支持;JSP的組件編寫更為容易,而且JSP的性能由於ASP;

JSP vs PHP

JSP是一個業界標准,得到Sun,IBM,Oracle,BEA,apache等 的支持,PHP只是一個開發組織並不強的free ware ;PHP的性能不好,是解釋型的,JSP采用JIT編譯後,和c不相上下,而且支持多線程; JSP支持的平台眾多,從Win98,NT,Unix,Linux,FreeBSD到AS/400,OS/390,而PHP支持的平台有限; JSP可以利用JDBC和眾多主流關系數據庫連接,而PHP目前只支持MySQL和Oracle等有限的幾種; JSP中的組件,JavaBean和EJB開發非常容易,而且還可以在JSP中使用Java所有的類和功能。而PHP只能用C寫一些功能有限的組件,而且編寫較為復雜;利用JSP可以支持EJB,以支持Transaction和CORBA標准,而且還可以支持LDAP,Message等服務,使得訪問 ERP,CICS,MQ等企業應用非常容易。而PHP在這方面先天不足,所以對於電子商務這樣的Mission-critical的應用來說,PHP並不適合。

性能比較

有人做過試驗,對這三種語言分別做循環性能測試及存取Oracle數據庫測試。在循環性能測試中,JSP只用了令人吃驚的四秒鐘就結束了20000*20000的循環。而ASP、PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒和84秒。

數據庫測試中,三者分別對 Oracle 8 進行 1000 次 Insert,Update,Select,和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP則 需要 73 秒。

前景分析

目前在國內PHP與ASP應用最為廣泛。而JSP由於是一種較新的技術,國內采用的較少。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多采用JSP。

采用PHP的網站如新浪網(sina)、中國人(Chinaren)等,但由於PHP本身存在的一些缺點,使得它不適合應用於大型電子商務站點,而更適合一些小型的商業站點。

首先,PHP缺乏規模支持。其次,缺乏多層結構支持。對於大負荷站點,解決方法只有一個:分布計算。數據庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可以根據流量分開,組成二維陣列。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的數據庫接口支持不統一,這就使得它不適合運用在電子商務中。

ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft Windowsd的COM/DCOM獲得ActiveX規模支持,通過DCOM和Transcation Server獲得結構支持;JSP可以通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。

三者中,JSP應該是未來發展的趨勢。世界上一些大的電子商務解決方案提供商都采用Servlet和JSP。比較出名的如IBM的 E-business,它的核心是采用Servlet和JSP的WebSphere;西方另外一個非常著名的電子商務軟件提供商,Intershop。它原來的產品Intershop1 2, 3, 4占據了主要的電子商務軟件份額。它們都是通過CGI來提供支持的。但去年10月後它推出了Enfinity,一個采用Servlet和JSP的電子商務Application Server,而且聲言不再開發傳統軟件。

JSP應用范圍:

JSP同PHP類似,幾乎可以運行於所有平台。如Win NT,Linux,Unix. NT下IIS通過一個插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務器Apache已經能夠支持JSP。由於apache廣泛應用在 NT、Unix和Linux上,因此JSP有更廣泛的運行平台。雖然現在NT操作系統占了很大的市場份額,但是在服務器方面Unix的優勢仍然很大,而新崛起的Linux更是來勢不小。從一個平台移植到另外一個平台,JSP和JavaBean甚至不用重新編譯,因為Java字節碼都是標准的與平台無關的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved