JSP的優(yōu)勢(shì):應(yīng)用范圍與性能比較
目前,最常用的四種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言有ASP(Active Server Pages),ASP.NET,JSP(Java Server Pages),PHP (Hypertext Preprocessor)。
JSP的優(yōu)勢(shì):
1.將內(nèi)容的生成和顯示進(jìn)行分離
使用JSP技術(shù),Web頁(yè)面開(kāi)發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其他人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。
在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過(guò)訪問(wèn)JavaBeans組件,使用JDBCTM技術(shù)訪問(wèn)數(shù)據(jù)庫(kù),或者包含文件),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。
2.強(qiáng)調(diào)可重用的組件
絕大多數(shù)JSP頁(yè)面依賴(lài)于可重用的,跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeansTM組件)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶(hù)團(tuán)體所使用。基于組件的方法加速了總體開(kāi)發(fā)過(guò)程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開(kāi)發(fā)努力中得到平衡。
3.采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā)
Web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。
通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開(kāi)發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)工作。
JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。
由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java編程語(yǔ)言的,而且所有的JSP頁(yè)面都被編譯成為Java Servlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。
作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫(xiě),各處運(yùn)行”的特點(diǎn)。隨著越來(lái)越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。JSP的優(yōu)勢(shì)是十分明顯的。
應(yīng)用范圍
由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不小。從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。
性能比較
有人做過(guò)試驗(yàn),對(duì)ASP,PHP,JSP三種語(yǔ)言分別做循環(huán)性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。
在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的循環(huán)。而ASP、PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒和84秒。(參考PHPLIB)。
數(shù)據(jù)庫(kù)測(cè)試中,三者分別對(duì) Oracle 8 進(jìn)行 1000 次 Insert,Update,Select,和Delete: Jsp 需要 13 秒,Php 需要 69 秒,ASP則 需要 73 秒。性能方面JSP的優(yōu)勢(shì)也是十分明顯。
前景分析
目前在國(guó)內(nèi)PHP與ASP應(yīng)用最為廣泛。而ASP.NET JSP由于是一種較新的技術(shù),國(guó)內(nèi)采用的較少。ASP.NET也在慢慢增多。但在國(guó)外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類(lèi)的網(wǎng)站,多采用JSP。
四者中,JSP,PHP,ASP.NET都有著非常好的應(yīng)用前景。JSP因?yàn)樗陌踩?,運(yùn)行效率也有著很大的成長(zhǎng)空間。
【編輯推薦】