《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 业界动态 > 拥有Java的JSP与使用VBScript 类脚本语言的ASP

拥有Java的JSP与使用VBScript 类脚本语言的ASP

2008-12-20
作者:玛依拉?别克强塔伊夫,古力米拉,

1 簡介
JSP(Java Server Pages) 是一種服務器端腳本技術(shù), 它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag), 就構(gòu)成了JSP網(wǎng)頁(*.jsp)。而ASP(Active Server Pages)也是一種服務器端腳本技術(shù),一方面從功能上看JSP、ASP二者都可以生成和運行動態(tài)的、交互的、高性能的Web服務器應用程序" title="應用程序">應用程序;二者都將建立交互式頁面作為基于Web的應用程序的一部分;二者都能通過在頁面中調(diào)用組件達到分離程序設計" title="程序設計">程序設計邏輯和頁面的目的;二者都能夠完全替代繁瑣的CGI,從而使網(wǎng)站的建設和網(wǎng)站的發(fā)展方便和簡單。另一方面從形式上看JSP和ASP也非常相似,無論是JSP程序員還是ASP程序員一眼就能認出所熟悉的<% %>以及<%= %>。然而,進一步深入探究下去我們就會發(fā)現(xiàn)它們有許多不同之處。
2 JSP?與ASP的異同
2.1使用的語言方面

JSP? 與ASP兩者都提供在HTML? 代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。無論在ASP或JSP? 環(huán)境下,信息的顯示樣式主要由HTML代碼負責描述,而信息的處理邏輯則主要由程序代碼來描述。二者雖然功能相似,但兩者使用的編程語言" title="編程語言">編程語言不同,ASP下的編程語言是? VBScript? 之類的腳本語言,而JSP? 使用的是Java, Java是1995年由SUN公司推出的具有很強吸引力的面向?qū)ο?/a>" title="面向?qū)ο?>面向?qū)ο?/a>的編程語言, 也是目前最為流行的網(wǎng)絡編程語言,它不依賴于任何現(xiàn)有的操作系統(tǒng),可直接運行在某種機器或CPU上,Java語言具有支持多線程;獨有自己的內(nèi)存管理機制;可移植等眾多的優(yōu)勢,即JSP擁有了強大的Java優(yōu)勢。近年來尤其是Internet的發(fā)展,進一步推動了Java技術(shù)的應用與完善,使Java成為更加成熟的、易擴充的、強壯的編程語言,所以從使用語言方面來說Java優(yōu)于基于BASIC的腳本語言。Java使開發(fā)人員的工作在其他方面也變得比較容易。Java語言提供防止內(nèi)存泄漏的方法,在內(nèi)存管理方面也大顯身手。而且JSP為應用提供了強大的意外事件處理機制。
2.2 效率和安全性方面
ASP是以源碼形式存放,它的命令和腳本都在服務器中以解釋方式執(zhí)行,即每次ASP網(wǎng)頁調(diào)用都需要對源碼進行解釋,影響其運行效率。并且ASP大多使用的是微軟的IIS(Internet Information Server)作為網(wǎng)站W(wǎng)eb Server, IIS自身的漏洞很容易使得ASP程序被下載。而JSP在執(zhí)行以前先被編譯成字節(jié)碼 (byte code),字節(jié)碼由Java虛擬機(Java Virtual Machine)解釋執(zhí)行,這比源碼解釋(如:ASP)的效率高;此外服務器上還有字節(jié)碼的Cache機制,能提高字節(jié)碼的訪問效率。雖然第一次調(diào)用JSP網(wǎng)頁使人感覺比較著急,覺得JSP稍慢,但由于不是每次JSP網(wǎng)頁調(diào)用都需要對源碼進行解釋,所以以后就快得多了。而且,由于JavaBean程序完全可以放到不對外的目錄中,所以JavaBean程序和JSP源程序不大可能被下載。
2.3 功能擴充方面
ASP是通過COM來擴充其功能的。掌握ASP雖不是很困難,但學會開發(fā)COM并不容易。而我們知道ASP是通過COM來擴充其復雜的功能如發(fā)送email、文件上載、以及將業(yè)務處理或者復雜計算分離出來成為獨立可重復利用的模塊。這使得在開發(fā)方面,COM的開發(fā)遠比JavaBean復雜和繁瑣。而JSP是通過JavaBean實現(xiàn)了同樣的功能擴充, 而且JavaBean比較簡單和方便。 尤其對掌握Java編程技術(shù)或C++編程技術(shù)的人來說更為簡單,哪怕不熟悉Java語言,也可以在比較短的時間內(nèi)學習Java, 寫出JavaBean。 而且JavaBean是完全的OOP, 針對不同的業(yè)務處理功能JavaBean可以方便地建立一整套可重復利用的對象庫,例如用戶權(quán)限控制等等。
2.4 維護角度方面
從維護角度來看,由于兩者所使用的語言不同,JSP所使用的Java語言是面向?qū)ο蟮膹姶蟮模茌p易的建立和維護大型的、模塊化的應用程序。而ASP所使用的腳本語言對小的應用程序是可行的,但是對大型的、復雜的應用程序的建立和維護是不容易的。另一方面ASP僅支持組件對象模型COM,而COM必須在服務器上注冊,一旦修改了COM程序,就必須重新注冊,且大多數(shù)情況下必須關(guān)機和重新啟動。而JSP技術(shù)提供的組件都是基于JavaBeans技術(shù)或者JSP標簽庫的。這兩者雖有相同之處,但二者的區(qū)別是很明顯的。JavaBean不需要注冊,放在CLASSPATH包含的目錄中就行了。一旦JavaBean進行了修改,則JSWDK和Tomcat需要關(guān)閉和重新運行,但不必關(guān)機和重新啟動。另一方面對JSP來說Web服務器、平臺和其它組件都可輕松的升級或交換而不影響基于JSP的應用程序。這使得JSP非常適合需要升級而又要求保持不變的實時Web應用程序。
2.5 適應平臺方面
現(xiàn)在幾乎所有平臺都支持Java,JSP+JavaBean幾乎在所有平臺下是通行無阻的。不支持的平臺目前通過一個插件也就能支持JSP, 例如在NT下IIS通過一個插件,如JRUN或者ServletExec,就能支持JSP?,F(xiàn)在Web服務器Apache也已經(jīng)能夠支持JSP。而且由于Apache廣泛應用在NT、Unix和Linux上,目前雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場份額,但是在服務器方面Unix的優(yōu)勢還是很大,而Linux的優(yōu)勢也是不小, 所以JSP有更廣泛的運行平臺。還有一點就是從一個平臺移植到另外一個平臺,JSP和JavaBean是不用重新編譯的,因為Java字節(jié)碼都是標準的且與平臺無關(guān)的。而ASP目前僅適用于NT和IIS。雖然Unix下有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴充,Unix下的COM實現(xiàn)起來還是比較困難。
2.6 數(shù)據(jù)庫的支持方面
不論是用ASP還是JSP,應用程序的一個重要環(huán)節(jié)就是鏈接數(shù)據(jù)庫、查詢數(shù)據(jù)庫、操作數(shù)據(jù)庫,也就是說網(wǎng)站必須要有對后臺數(shù)據(jù)庫進行操作的功能。
在這方面ASP是通過ADO(ActiveX Data Object)來完成對各類數(shù)據(jù)庫的查詢、存取等操作。ADO(又稱為ActiveX)是微軟提出的一項數(shù)據(jù)庫鏈接技術(shù),提供了程序開發(fā)人員實時存取各類數(shù)據(jù)庫的能力。而ADO建立在OLEDB基礎上,它們有明顯的區(qū)別和聯(lián)系,OLEDB是系統(tǒng)級的
編程接口" title="編程接口">編程接口,它定義了一組COM接口,這些接口封裝了各種數(shù)據(jù)庫系統(tǒng)的訪問操作,同時OLEDB還提供了一組標準的服務組件,用來提供查詢,數(shù)據(jù)更新等操作。而ADO是應用層的編程接口,它通過OLEDB提供的COM接口訪問數(shù)據(jù)庫。ASP中對ADO組件的使用一般經(jīng)過以下兩個步驟:①通過ODBC配置數(shù)據(jù)源 ;②利用ADO組件創(chuàng)建一個ADO鏈接對象或記錄集對象,再利用該對象連接數(shù)據(jù)源,然后利用相關(guān)對象的屬性、方法來操作數(shù)據(jù)庫。我們知道COM的開發(fā)遠比JavaBean復雜和繁瑣。而ODBC也比較難學,這主要是它把簡單功能和高級功能摻和在一起,也就是說對于一個簡單的查詢,其選項也比較復雜。
而JSP通過JDBC來完成對各類數(shù)據(jù)庫的查詢、存取等操作。JSP的定義是兩組分別面向應用程序和數(shù)據(jù)庫驅(qū)動程序開發(fā)人員的API,和將前者向后者轉(zhuǎn)化的內(nèi)在封裝邏輯。其中面向應用程序開發(fā)人員的接口是JDBC API, 我們可以把JDBC看作是一個被轉(zhuǎn)換為面向?qū)ο蠼涌诘腛DBC, 而面向?qū)ο蟮慕涌趯κ褂妹嫦驅(qū)ο笳Z言的程序員(例如:C++、Java程序員)來說是容易接受的。另外JDBC盡量保證其簡單功能的簡單性,同時在需要時還保證使用其高級功能。JDBC API 對于基本的SQL抽象和概念是一種自然的Java接口。雖然JDBC和ODBC很相像,且JDBC是建立在ODBC上的,JDBC保留了ODBC的基本設計特征,兩種接口都是基于(調(diào)用級接口)X/Open SQL CLI。但它們的區(qū)別在于JDBC以Java風格與優(yōu)點為基礎并進行優(yōu)化,使JDBC更加易于使用。
3 結(jié)語
綜合上述幾點,進一步通過以下表格對JSP技術(shù)和 Microsoft 公司的 ASP 技術(shù)進行詳細的比較和對照,可以看出兩者雖有相同之處,但其區(qū)別是明顯的。通過比較進行學習,這也是學習一種新的技術(shù)或由現(xiàn)有技術(shù)自然過渡到另一種技術(shù)的有效途徑。?


參考文獻

1? 王克宏.Java語言SQL接口.北京:清華大學出版社,1997?

2? 肖剛.Java Web服務器應用程序設計.北京:電子工業(yè)出版社.2001?

3? 唐青松.顏亮.ASP應用開發(fā)全攻略寶典.北京:中國水利水電出版社.2000?

4? http://java.sun.com/products/jsp/faq.html

基金項目:新疆自治區(qū)少數(shù)民族科技骨干人才特殊培養(yǎng)科研專項資金項目(2001—5)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容