論文簡(jiǎn)介
JSP與ASP技術(shù)的比較董晉鶼張曾科(清華大學(xué)自動(dòng)化系,北京100084)E-mail:mikedong@371.net摘要ASP和JSP都是開(kāi)發(fā)動(dòng)態(tài)、交互式Web應用的有力工具。兩者具有許多相似之處,同時(shí)又有各自的特點(diǎn)。文章從體系結構、對應的具體概念方法等方面對這兩種相似的技術(shù)做出比較。關(guān)鍵詞JSP ASP組件敷據庫文章編號1002-8331-(2001)23 -09902文獻標識碼 A中圖分類(lèi)號 TP312Comparing JSP and ASP TechnologyDong Jinpeng Zhang Zengke(Automation Department Tsinghua University , Beijing 100084)Abstract: Both ASP and JSP are powerful tools for developing dynamic and interactive Web- based aplication.Thereare many similarties as well as differences between them.This page means to make a comparison between these twotechnologies from aspeet of architecture and concrete concepls.Keywords: JSP . ASP,Component, Dalabase引言的是,以上的過(guò)程只是在客戶(hù)第-次請求該頁(yè)面時(shí)發(fā)生.以后從表面上看,JSP(Java Sever Pages)和 ASP(Active Sever對同一頁(yè)面的請求發(fā)生時(shí).如果頁(yè)面未改變.則服務(wù)器只是執Pages)在許多方面十分相似。首先,兩者的月的都是為創(chuàng )建動(dòng)行緩存中編譯好的字節碼.而不重新翻譯和編譯。態(tài)交互網(wǎng)頁(yè)提供技術(shù)環(huán)境支持.是實(shí)現Web應用的有力工具。在服務(wù)器將JSP貞面轉化為Serlet時(shí),整個(gè)文件被轉化其次.兩者都與HTML標記混合編寫(xiě),直接嵌人在HTML頁(yè)面為純Java,<%和%>消失了,同時(shí)HTMI和JavaSeript被放在輸中.在服務(wù)器端執行。第三,兩者都能夠通過(guò)使用組件,提供給出流中發(fā)送給瀏覽器。例如:開(kāi)發(fā)人員將程序編制和頁(yè)面內容設計分離的可能。而月兩者都JSP: %><%能夠替代CCI使網(wǎng)站建設與開(kāi)發(fā)變得更為簡(jiǎn)單和快挑。Servlet out.pintln(*"); .但是.JSP和ASP并非由不同公司提供的同一件產(chǎn)品。由在JSP誕生之前.Serlet開(kāi)發(fā)者們必須白己完成他們的于設計的初衷和涎生的時(shí)間不同,ASP成為與微軟的Windowsprint語(yǔ)句,這使得維護HTML和JavaSeript代碼成為繁瑣且容T和aIs平臺密不可分的伙伴.而JSP立足于與平臺和服務(wù)器易導致銷(xiāo)錯誤的工作。無(wú)關(guān),希望能夠與不同公司的平臺、組件.數據庫等產(chǎn)品一起工當用戶(hù)同時(shí)請求JSP頁(yè)面時(shí),Web應用程序創(chuàng )建新的線(xiàn)程作:由此產(chǎn)生了從工作原理到具體應用各方面的不同。另一方來(lái)處理用戶(hù)的請求。這些線(xiàn)程由Web服務(wù)器進(jìn)程來(lái)管理,與面,JSP從ASP中借鑒學(xué)叮不少東西。所以,兩者之間的差異ASP體系ψ ASP.dII創(chuàng )建的線(xiàn)程相類(lèi)似。這種方式與CCI相比和相似幾乎同樣顯著(zhù)。效率更高.因為后者使用一個(gè)進(jìn)程來(lái)響應每個(gè)用戶(hù)的晴求。ASP與JSP的體系結構比較如圖1所示。2體系結構JSP與ASP相問(wèn),其程序都是直接嵌人在HTMI.頁(yè)面中,+C S用標記<%和%>與其他內容相區別。所不同的是,JSP使用純WbP EngnedSeve .Jara語(yǔ)言編寫(xiě).而ASP使用VB Seript 或JSrip編寫(xiě)。ASP的T作過(guò)程如下:當用戶(hù)瀏覽頁(yè)面時(shí),客戶(hù)瀏覽器向服務(wù)器發(fā)出請求;服務(wù)器發(fā)現被請求的頁(yè)面是ASP頁(yè)面,逐行= Engms解隔執行ASP腳本和HTML頁(yè)面內容;動(dòng)態(tài)生成純HTML頁(yè)Jam VM面作為響應發(fā)送回給客戶(hù)瀏覽器。執行ASP腳本過(guò)程中.將會(huì )JSP體系結構實(shí)例化需要使用的COM組件,并調用相應的方法。ASPJSP的工作過(guò)程與之不同:在接收到客戶(hù)瀏覽器的請求Web4后,服務(wù)器將JSP頁(yè)面翻譯成Servlet(服務(wù)器端的Java程序);Serve再編譯該Servlet生成Java語(yǔ)言的字節碼,保存在緩存中;由客戶(hù)FReapinseCoRRTODBCJava虛擬機解釋執行該字節碼.生成純的HTML頁(yè)面作為響應謝覽器AS體系結鉤發(fā)送回給客戶(hù)瀏覽器。同樣,在執行字節碼的過(guò)程中,將會(huì )實(shí)例HTTP化省要使用的Java Beans 組件,并調用相應的方法。需要注意團1作者筒介:嫩脊賜.男,1975年生,領(lǐng)上:研究生.研究方向為Intemet信息檢求與挖掘。中國煤化工MHC NMH G 200.23 99言編寫(xiě)的。相比之下,Javs Beans對于 JSP代速度上的幫助不3開(kāi)發(fā)工作中的常用概念和方法JSp和ASP的相似之處為ASP開(kāi)發(fā)者學(xué)習和使用JSP提顯著(zhù),因為JSP實(shí)際是編譯成與Beans -樣的字節的再執行供了方便,但是,如果忽視它們之間的差異,也不能完全發(fā)揮的,面月編譯過(guò)程只有一次。另一方面,Java Beans比COM對象更容易開(kāi)發(fā),只要會(huì )使JSP的優(yōu)勢,甚至導致錯誤。用Java,學(xué)x Java Beans的結構是十分容易的。由于COM的3.1 Application 和Session管理有時(shí)服務(wù)器割要維護站點(diǎn)范圍的pplicacion變量,每個(gè)客復雜性,即使學(xué)會(huì )了VB和C++,仍然簡(jiǎn)嬰額外的訓練和較強戶(hù)使用和操作這些變犟的同一個(gè)拷貝.ASP使用Application對的學(xué)習能力才能入門(mén)。COM對象在使用前必須在服務(wù)器上注象實(shí)現這一功能,而相對應的JSP中的對象是SerleCoter冊.而且如果對象發(fā)生了變化.必須重新啟動(dòng)服務(wù)器才能反映對象。存入SerleContext對象和從中取出的元素不能是基本出這些新變化。Java Beans 不需要注冊。這對于沒(méi)有服務(wù)器的數捐類(lèi)型.如im,double等.必須轉換為它們的對象形式:Inte-全部?jì)x限的開(kāi)發(fā)者是一個(gè)巨大的優(yōu)點(diǎn)。3.4訪(fǎng)問(wèn)數據庫ger,Double 等。ASP使用Session對象管理用戶(hù)的狀態(tài)信息,使服務(wù)器能能夠與數據庫靈活、快速地交電是動(dòng)態(tài)頁(yè)面所必須具備的.夠跟蹤用戶(hù)并知道他們在姑點(diǎn)上做了什么。ISP 使用HtpSes-重要能力。任這方面JSP和ASP都有不錯的表現,雖然他們使sion對象來(lái)維護ssion. Sesion 的信息保存在服務(wù)器上.ses-用不同的技術(shù)。ASP 使用ODBC技術(shù)訪(fǎng)問(wèn)數據庫。具體應用中,般通過(guò)sion的標識符(ID)放在cokie中并保存在客戶(hù)機上。如果客戶(hù)ADO對象實(shí)現對數據庫操作。使用ADO的Connection .Com-瀏覽器禁用coisecsionn標識符應保存在URL字符串中。mand和Recordset.可以完成與數據庫連接的建白,SQL語(yǔ)句的Sesion在用戶(hù)保持靜止狀態(tài)(設有進(jìn)--步的請求等動(dòng)作)執行,查淘結果集合的保存.遍歷和顯示等工作。Command 和-. 段時(shí)間后過(guò)期失效。這段時(shí)間的長(cháng)短由服務(wù)器設定,通常為Recorset 對象可以分別與已經(jīng)和數據庫建立了連接的Com-30分鐘,存入HtpSession對象的元戴與存人ServleContext對nection對象關(guān)聯(lián),從面能夠控制與數據庫的連接數量。這使得象的元素一樣, ,不能是基本數據類(lèi)型。建立連接他成為可能.以狨少耗時(shí)的鍵立數據庫連接的動(dòng)作,JSP:HtpSession sesion=nmquest. grSssion();從而提高服務(wù)器的性能。session geld)JSP 使用稱(chēng)為JDBC的技術(shù)實(shí)現對數據庫的訪(fǎng)問(wèn)。日標數Integer item (=negr>sesinonc.vale(2TeName)據庫必須自一個(gè)JDBC驅動(dòng)程序,即一個(gè)從數據庫到Jawva的接sesion puValue("lemnName" ,IermV alue);口.該接口提供標準的方法使Java應用程序能夠連接到數據ASP:Sssiont' iteoinane" )=itenvalue;片并執行查詢(xún)。JDBC 不省要在服務(wù)器上創(chuàng )建數據源。-個(gè)3.2 Server Side Includes(SSI)Ss1是JSP和ASP相似的另一個(gè)方面。只要服務(wù)器支持這JDBC驅動(dòng)程序就足以實(shí)現JSP頁(yè)面和Beans到數據庫的連-特件(IS和Apaeche 郁支持).ASP和JSP允詐包含虛擬文按。通過(guò)JDBC,JSP -樣可以實(shí)現SQL語(yǔ)句的執行等需要的上件。但是在JSP中是頁(yè)面被動(dòng)態(tài)編譯過(guò)的結果被包含進(jìn)來(lái),而作.但是JDBC2.0以上的版本才支持查詢(xún)結果集的向前遍歷不是頁(yè)面的源碼。這使得可以使用另一個(gè)服務(wù)器上的頁(yè)面,雖等操作。使用Jara Beans 和JDBC,JSP也能很方便地實(shí)現連接池然沒(méi)有訪(fǎng)間其源碼和對象的權限。如果某個(gè)特定的數據庫沒(méi)有JDBC驅動(dòng)程序,但是有JSP:<%@include fle="mflej~ip"-ODBC驅動(dòng)程序??梢允褂靡粋€(gè)橋驅動(dòng)程序來(lái)完成從JDBC到ASP:<--linclude flre'Tfle.aep“-->ODBC以及相反方向的轉換。這個(gè)橋需要為數據庫建立一個(gè)3.3可重用組件ODBC數據激。Sun 提供了一個(gè)JDBC-ODBC橋,與其免費的JSP和ASP共同的主要優(yōu)點(diǎn)之-是可以使用可重用的組Java編譯器.起發(fā)布。 從理論上:講, 這個(gè)橋叫以與大多數件。這此組件可以是自行開(kāi)發(fā)的,也可以是購買(mǎi)來(lái)的。這使得ODBC驅動(dòng)程序-起工作,但它只在-些流行的數據庫上刪試JSP和ASP的開(kāi)發(fā)人員可以在別人或以前的工作基礎上快速過(guò).這此數據庫包括Oracle ,Sybase . Microsoft SQI. Server,Mi-地開(kāi)發(fā)展于Wob的應用。這一點(diǎn)對丁變化極其迅速的互聯(lián)網(wǎng)eroot Acces需要指出的是,JDBC-ODBC橋效奉低下,不適來(lái)說(shuō)+分重要、另外使用可重用組件可以使程序設計和網(wǎng)頁(yè)設合建爾商業(yè)應用。計分離,使程序調試工作更容易.也使頁(yè)面保持簡(jiǎn)沽。但是,ISP和ASP使用的組件不同,前者使用Jva Beans. 而后者使用4優(yōu)勢與劣勢COM對象,這一點(diǎn)決定了它們在具有共同優(yōu)點(diǎn)的同時(shí)也有所JSP所具有的優(yōu)勢中,被提到次數最多的當數平臺無(wú)關(guān)不同:性。這點(diǎn)實(shí)際是從Java詔自繼水來(lái)的。同時(shí)J5P也繼求了JavaJava Beans 是執行明確任務(wù)幾集成了對象數據的Jara組的反對著(zhù)最常指出的效率低下的缺點(diǎn)。性能和平臺無(wú)關(guān)性實(shí)際件.敏限制為只能使用Java語(yǔ)言編寫(xiě).而COM對象可以使用上是同- - 件事物的兩個(gè)方面。導致Java性能鉸低的根源和實(shí)遵從標準對象模型的任何語(yǔ)自編寫(xiě),包括Visual J++.。所以理現平臺尤關(guān)性的條件.都是其虛擬機解釋執行編譯好的字節碼論上Java Beans 和COM都不妨礙它們的調用者(JSP和ASP)的T作原理。但是.JSP只解釋編詳一-次的T.作原理比ASP次的跨平臺性.但實(shí)際上只有JSP叮以在Windows以外的平臺上,次解釋的原理先進(jìn)。所以從理論上ASP與JSP的性能應該相使用近.實(shí)際的情況受到不同的運行環(huán)境和不同的頁(yè)面內容影響而COM材象常常被用來(lái)幫助從ASP頁(yè)面中分離出商業(yè)邏輯不同。和包含人量計算的代碼、這些可重用的組件使執行速度更快,對于JSP和ASP特性和優(yōu)缺點(diǎn)的小結如表I所示。因為它們是編譯過(guò)的,并月是用C++等語(yǔ)言而非解釋性腳本語(yǔ)中國煤化工(下轉108頁(yè))100 2001.23 計算機工程與應用MHCNM HG(上接100頁(yè))ASP在Web應用的開(kāi)發(fā)中,已經(jīng)占據了重要的地位,使用ASP開(kāi)發(fā)的網(wǎng)站比比皆是,說(shuō)明了ASP的開(kāi)發(fā)快捷、方便等優(yōu)ASPP工作平白Windoms. Gndors NT Solus. Wulow.Mar 0s.Linx等常見(jiàn)操作感燒點(diǎn)得到了廣泛的派認。而JSP是仍然在快速發(fā)展的技術(shù),基于開(kāi)放的開(kāi)發(fā)體系的這種新技術(shù)不停地發(fā)生著(zhù)變化。它沒(méi)有ASP網(wǎng)柴服務(wù)器u5包括Is Apscht .Netegprt在內的事數服務(wù)器周本語(yǔ)言.VB Senp.JuripJara成熟,但是它做出了許多誘人的承諾,并實(shí)現了其中相當一部塑忭CUM時(shí)票Jana Beans分。它將會(huì )成為Web開(kāi)發(fā)環(huán)境中最強有力的競爭者之一。胸小氧鞋改數(收稿日期:2000年10月)自定又隙記h司訪(fǎng)問(wèn)的教據庫0DBC兼賓0DBC真窖(領(lǐng)中低).JDB:兼w參考文獻防止內存量國t1Sun MierusystemsJavaServer Pages Speifcation versimn1.1.0002Sun Miecnsyscos.JavaServer Pages Techunology White P'per.19995結論3.Sot中國煤化工工業(yè)出版tl 19999YHCNMHG108 2001.23 計算機L程與應用
論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。