靳晉
德州職業(yè)技術(shù)學(xué)院 山東德州 253034
淺談ASP與JSP
靳晉
德州職業(yè)技術(shù)學(xué)院 山東德州 253034
目前,常用的動態(tài)網(wǎng)頁語言有ASP和JSP,兩者都能夠?yàn)槌绦蜷_發(fā)人員提供實(shí)現(xiàn)應(yīng)用程序的編制與自帶組件設(shè)計(jì)網(wǎng)頁從邏輯上分離的技術(shù),而且兩者都能夠替代CGI使網(wǎng)站建設(shè)與發(fā)展變得較為簡單與快捷。
ASP;JSP;Session對象
ASP是Active Server Page的縮寫,意為“動態(tài)服務(wù)器頁面”。ASP是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫和其他程序進(jìn)行交互,是一種簡單、方便的編程工具。
JSP是Java Server Pages的縮寫,是由Sun Microsystems公司倡導(dǎo),許多公司參與,一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
ASP是一種服務(wù)器端腳本編寫環(huán)境,可以用來創(chuàng)建和運(yùn)行動態(tài)網(wǎng)頁或Web應(yīng)用程序。ASP網(wǎng)頁可以包含HTML標(biāo)記、普通文本、腳本命令以及COM組件等。利用ASP可以向網(wǎng)頁中添加交互式內(nèi)容(如在線表單),也可以創(chuàng)建使用HTML網(wǎng)頁作為用戶界面的Web應(yīng)用程序。
JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。
ASP是Microsoft開發(fā)的動態(tài)網(wǎng)頁語言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng)——只能運(yùn)行于微軟的服務(wù)器產(chǎn)品,IIS(Internet Information Server,Windows NT)和PWS(Personal Web Server,Windows 98)上。Unix下也有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來非常困難。
JSP幾乎可以運(yùn)行于所有平臺。如Win NT、Linux、Unix。NT下IIS通過一個(gè)插件,如JRUN或者ServletExec,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面Unix的優(yōu)勢仍然很大,而新崛起的Linux更是來勢不小。從一個(gè)平臺移植到另外一個(gè)平臺,JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的、與平臺無關(guān)的。
為了跟蹤用戶的操作狀態(tài),ASP應(yīng)用Session對象。JSP使用一個(gè)叫HttpSession的對象實(shí)現(xiàn)同樣的功能。Session的信息保存在服務(wù)器端,Session的ID保存在客戶機(jī)的cookie中。如果客戶機(jī)禁止cookie,Session ID就必須帶在url后面。Session一般在服務(wù)器上設(shè)置一個(gè)30分鐘的過期時(shí)間,當(dāng)客戶停止活動后自動失效。Session中保存和檢索的信息不能是基本數(shù)據(jù)類型(primitivedatatypes)如int、double等,而必須是Java的相應(yīng)的object(對象),如Integer、Double。
ASP使用ODBC通過ADO連接數(shù)據(jù)庫,而Java通過一個(gè)叫JDBC的技術(shù)聯(lián)接數(shù)據(jù)庫。目標(biāo)數(shù)據(jù)庫需要一個(gè)JDBC驅(qū)動程序—— 一個(gè)數(shù)據(jù)庫與Java的借口,使得Java可以用標(biāo)準(zhǔn)的方式訪問數(shù)據(jù)庫。JDBC不使用服務(wù)器端的數(shù)據(jù)源。只要有JDBC驅(qū)動程序,Java就可以訪問數(shù)據(jù)庫。如果一個(gè)特定的數(shù)據(jù)庫沒有JDBC驅(qū)動程序,而只有ODBC驅(qū)動程序,Java提供一個(gè)JDBC-ODBC橋來將JDBC調(diào)用轉(zhuǎn)化為ODBC調(diào)用。所有的Java編譯器都帶有一個(gè)免費(fèi)的JDBCODBC橋。理論上,橋可以訪問任何常見的數(shù)據(jù)庫產(chǎn)品。
有人做過試驗(yàn),對這兩種語言分別做循環(huán)性能測試及存取Oracle數(shù)據(jù)庫測試。在循環(huán)性能測試中,JSP只用令人吃驚的4秒鐘就結(jié)束了20000*20000的循環(huán);而ASP測試的是2000*2000循環(huán)(少一個(gè)數(shù)量級),用了63秒。數(shù)據(jù)庫測試中,二者分別對Oracle 8進(jìn)行1 000次Insert、Update、Select和Delete,Jsp需要13秒,ASP則需要73秒。
JSP模型是在ASP之后定義的,它借用了ASP的許多優(yōu)點(diǎn)。JSP是未來發(fā)展的趨勢,世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。正在學(xué)習(xí)或使用動態(tài)頁面的朋友可根據(jù)二者的特點(diǎn)選擇一種適合自己的語言。
TP312
B
1671-489X(2011)06-0089-01
10.3969 /j.issn.1671-489X.2011.06.089