1. 程式人生 > >JSP技術的優缺點介紹

JSP技術的優缺點介紹

什麼是JSP?JSP可用一種簡單易懂的等式表示為:HTML+Java=JSP。

JSP技術使用Java程式語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。

網頁還能通過tags和scriptlets訪問存在於服務端的資源的應用邏輯。

JSP將網頁邏輯與網頁設計和顯示分離,支援可重用的基於元件的設計,使基於Web的應用程式的開發變得迅速和容易。

 

Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程式段,然後將執行結果連同JSP檔案中的HTML程式碼一起返回給客戶。插入的Java程式段可以操作資料庫、重新定向網頁等,以實現建立動態網頁所需要的功能。

JSP與Java Servlet一樣,是在伺服器端執行的,通常返回該客戶端的就是一個HTML文字,因此客戶端只要有瀏覽器就能瀏覽。

JSP頁面由HTML程式碼和嵌入其中的Java程式碼所組成。

伺服器在頁面被客戶端請求以後對這些Java程式碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。

Java Servlet 是JSP的技術基礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向物件,具有平臺無關性且安全可靠,主要面向因特網的所有特點。


自JSP推出後,眾多大公司都支援JSP技術的伺服器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業應用的伺服器端語言。JSP和 Servlet要放在一起講,是因為它們都是Sun公司的J2EE(Java 2 platform Enterprise Edition)應用體系中的一部分。Servlet的形式和前面講的CGI差不多,它是HTML程式碼和後臺程式分開的。它們的啟動原理也差不多,都是伺服器接到客戶端的請求後,進行應答。不同的是,CGI對每個客戶請求都開啟一個程序(Process),而Servlet卻在響應第一個請求的時候被載入,一旦Servlet被載入,便處於已執行狀態。對於以後其他使用者的請求,它並不開啟程序,而是開啟一個執行緒(Thread),將結果傳送給客戶。由於執行緒與執行緒之間可以通過生成自己的父執行緒(Parent Thread)來實現資源共享,這樣就減輕了伺服器的負擔,所以,Java Servlet可以用來做大規模的應用服務

JSP技術的優點
(1)一次編寫,到處執行。由於JSP/Servlet都是基於Java的,所以它們也有Java語言的最大優點——平臺無關性,也就是所謂的“一次編寫,隨處執行(WORA – Write Once, Run Anywhere)”。除了這個優點,JSP/Servlet的效率以及安全性也是相當驚人的。
(2)系統的多平臺支援。基本上可以在所有平臺上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴充套件。相比ASP/PHP的侷限性是顯而易見的。
(3)強大的可伸縮性。從只有一個小的Jar檔案就可以執行Servlet/JSP,到由多臺伺服器進行叢集和負載均衡,到多臺Application進行事務處理,訊息處理,一臺伺服器到無數臺伺服器,Java顯示了一個巨大的生命力。
(4)多樣化和功能強大的開發工具支援。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,並且其中許多已經可以順利的運行於多種平臺之下。

JSP技術的弱勢
(1)與ASP一樣,Java的一些優勢正是它致命的問題所在。正是由於為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產品的複雜性。
(2) Java的執行速度是用class常駐記憶體來完成的,所以它在一些情況下所使用的記憶體比起使用者數量來說確實是“最低效能價格比”了。從另一方面,它還需要硬碟空間來儲存一系列的.java檔案和.class檔案,以及對應的版本檔案。
(3)在除錯JSP程式碼時,如果程式出錯,JSP伺服器會返回出錯資訊,並在瀏覽器中顯示。這時,由於JSP是先被轉換成Servlet後再執行的,所以,瀏覽器中所顯示的程式碼出錯的行數並不是JSP原始碼的行數,而是指轉換後的Servlet程式程式碼的行數。這給除錯程式碼帶來一定困難。所以,在排除錯誤時,可以採取分段排除的方法(在可能出錯的程式碼前後輸出一些字串,用字串是否被輸出來確定程式碼段從哪裡開始出錯),逐步縮小出錯程式碼段的範圍,最終確定錯誤程式碼的位置。