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