摘 要:PHP、ASP和JSP是目前主要流行的動態網頁技術。本文通過介紹JSP的定義,并與其他兩種網頁制作技術比較,分析出JSP在網頁制作中的優勢。
關鍵詞:JSP;ASP;PHP;網頁制作;服務器
[中圖分類號]:TP393 [文獻標識碼]:A
[文章編號]:1002-2139(2011)-24-0327-01
一、JSP技術
JSP全名Java Server Pages,Sun公司推出的新一代站點開發語言。它完全解決了目前ASP和PHP的一個通病——腳本級執行,JSP使用的是成熟強大的Java代碼。客戶端請求JSP編寫的頁面時,代碼首先被轉換成Java源文件,再編譯成支持HTTP、FTP等網絡協議的CLASS文件即(Servlet),并由Java虛擬機執行。這種編譯操作僅在對JSP頁面的第一次請求時發生,雖然首次調用需幾秒的編譯加載時間,但后續請求只需調用服務器端緩存中的Servlet就可以了,比起每次請求都要解釋執行的ASP和PHP代碼要快。
JSP技術是基于平臺和服務器獨立的,它廣泛吸收和接納了各種工具包、服務器組件和數據庫開發商提供的產品。JSP可以運行于IIS、Apache、Netscape等各種Web服務器,支持Windows、Unix、Linux和Solaris等絕大多數操作系統平臺”JSP內置支持XML技術,使得開發者能夠定制自己的標簽,因而大大減少了對腳本語言的依賴和編程工作量。
在國內,JSP只是一種新技術,應用范圍不廣。而在國外,JSP已經十分流行了,世界上一些大型的電子商務類網站,多采用JSP。
二、JSP在動態網頁制作中的優勢
現今動態網頁制作中,ASP、JSP和PHP是較為普遍采用的。雖然都是動態網站的開發技術,但它們之間在理論基礎與開發實踐上都存在著巨大的差別。下面通過對三種編程語言的比較,分析出PHP在動態網頁制作中的優勢。
1、開發運行平臺比較
許多的微軟產品都不具有跨平臺性,ASP同樣也繼承了這一特點,因此ASP制作的網站僅僅能運行于微軟的服務器(IIS)產品之上,在Unix等其他服務器上運行就比較困難。
JSP技術可以在Apache服務器上運行,而Apache可以在多種操作系統上運行,因而,JSP可應用在Windows、Unix和Linux等諸多操作系統上。并且JSP主要采用JAVA編程技術為核心,所以JSP具有一次編寫,隨處可用的特性。這一特性的存在讓JSP在各種運行平臺上的移植比其它動態語言更加方便,所以,JSP支持的運行平臺廣泛,且在跨平臺性上同樣表現良好。
和JSP類似,PHP也有良好的跨平臺性,非常容易進行移植,PHP能夠得到IIS和Apache等WEB服務器的支持,在跨平臺性上PHP要優于ASP,但在可移植性上PHP就不如JSP的功能強大。根據調查,當前大多數開發人員使用Linux+Apache+MySQL平臺進行PHP程序的開發,在這一平臺中,由于操作系統LinuxWEB服務器軟件、Apache和數據庫MySQL都是開源的,與PHP開源的特性很好的結合,在研究與運行時并不受太多的限制。
2、從系統體系上比較。
從分布式應用系統的角度來看,一個網絡項目最少分三層:核心層(Data Layer),務層(Business Layer),表示層(Presentation Layer),或者更多層。JSP的技術體系符合分布式應用體系。在Sun公司推出的J2EE(Java2 Enterprise Edition)分布式企業計算體系中,利用JavaBean、EJB(Enterprise JavaBean)技術編寫業務層的功能是非常強大的,但對于寫表示層就很不方便,由Servlet 發展而來的JSP 就主要是為了方便書寫表示層而設計的。通過JSP調用JavaBean,實現兩層的整合,達到分布式應用。JSP技術能夠支持高度復雜的基于Web的應用。JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,并且擴展到能夠支持企業級的分布式應用。
PHP的技術體系無法將表示層與業務層分離,因此不符合分布式應用體系;Microsoft推出的Windows分布式的互聯網應用體系結構(Windows DNA)是一個建立現代化的多層次的分布式計算解決方案的體系結構,它可與通過任何網絡進行傳輸。
Windows DNA提供了一個集成客戶/服務器和基于Web應用開發的統一體系。而在Windows DNA體系中,用于解決表示層的技術之一就是ASP技術。ASP的技術體系符合分布式應用體系,尤其是升級到.net,這種能力進一步加強。
3、性能比較
ASP、PHP、JSP在性能上有很大差距。有人做過試驗,對這三種語言分別做循環性能測試及連接數據庫測試。在循環性能測試中,JSP用時4秒鐘就結束了20000×20000的循環。而ASP用時63秒,PHP用時84秒。在數據庫測試中 三者分別對Oracle進行了Insert,Update,Select和Delete操作,JSP用時13秒,PHP用時69秒,ASP則需要73秒。通過上述比較,可以明顯的看出這3種語言的性能。
4、安全性比較
PHP的運行,是靠它的語言解釋器來完成的,在NT或WIN9X下是PHP1EXE解釋器,是安全隱患之所在。PHP的另外一個特性是執行外部命令,在UNIX下比較多見:ls,echo等,也是最容易出問題的。
ASP只在服務器端運行,但微軟的Web服務器產品Internet Information Server 410中存在一個嚴重的系統漏洞,該漏洞導致對于IIS服務器的“服務拒絕攻擊”,在這種情況下,可能導致任何二進制代碼在服務器上運行。
JSP在要先編譯成字節碼,再由JAVA虛擬機執行,源碼相對不易被下載,尤其在用了JavaBean后安全性更高。Java能通過異常處理機制來有效防止系統的崩潰。
結論
目前 ASP、PHP 和 JSP三者都有相當數量的支持者,由此也可以看出三者各有所長。正在學習或使用動態頁面的朋友們可根據三者的特點選擇一種適合自己的語言。不過通過上述的分析,我們發現:在這三種技術當中,JSP在諸多方面均具有相當的優勢,就應用前景而言,JSP是最有發展前途的技術。
參考文獻:
[1]程曉旭,動態網頁設計技術的分析和比較[J] ,計算機應用研究,2002,(12)。
[2]曹軍,ASP、PHP和JSP的比較研究[J],現代圖書情報技術, 2001,(4)。
[3]黃理等,網站開發新動力:用JSP輕松開發Web網站[M],北京: 科學出版社,2006。