我眼中的JSP,永不止步,盡在學習

iteye_4663發表於2012-03-23
去年就接觸JSP了,對它的感覺就三點:1.動態的HTML;2.MVC中的檢視層;3.servlet表單提交/嵌入java程式碼。今天看了一些關於JSP的東西,受益匪淺,覺得自己弱爆了。JSP的確很強大,包括它和java一樣的跨平臺,servlet的本質,強大的標籤庫等等。內容不是很多,但我覺得對JSP瞭解更深了,給大家分享下!

[b] 一、JSP的全稱[/b]
JSP:java server page
JSP可用一種簡單易懂的等式表示為:HTML+Java=JSP。
從名稱可以看出這樣幾點:1.jsp是和java相關的,事實上他也就是嵌入java程式碼,動態執行的;2.jsp是在伺服器端執行的;3.jsp有自己的編寫規範,有自己的元件,內建物件。
[b] 二、JSP是什麼[/b]
綜合以下幾點:
1.它是在傳統的網頁HTML檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案(*.jsp)。
2.JSP將[u]網頁邏輯與網頁設計[/u]和[u]顯示分離[/u],支援可重用的基於元件的設計,使基於Web的應用程式的開發變得迅速和容易。
3.一種動態網頁技術標準
[b] 三、JSP如何執行[/b]
[b]概念層面:[/b]
1.表層--->Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程式段,然後將執行結果連同JSP檔案中的HTML程式碼一起返回給客戶。插入的Java程式段可以運算元據庫、重新定向網頁等,以實現建立動態網頁所需要的功能。
2.本質--->所有JSP頁面,在執行的時候都會被伺服器端的JSP引擎轉換為Servelet(.java),然後又由JSP引擎呼叫Java編譯器,將Servelet(.java)編譯為Class檔案(.class),並由Java虛擬機器(JVM)解釋執行。
3.第一次jsp載入延遲--->當一個JSP頁面第一次通過JSP引擎執行時,在收到響應前可能有較長的延遲。出現延遲的原因是,JSP引擎需要將JSP轉換為Java程式碼、進行編譯以及將它初始化,然後才能響應第一個請求。以後的請求會利用已編譯的Servlet。第一個請求後的請求應該會更快地得到處理。
[b]圖形層面:[/b]
見附件:jsp執行原理.png
[b]程式碼層面:[/b]
見此連結:[url]http://blog.csdn.net/sdyy321/article/details/5838717[/url](注:個人覺得很受啟發)
[b]資料層面:[/b]
大家經常會聽到JSP引擎,我覺得在WEB容器中,這個Servlet類也被稱為JSP引擎。
有一份資料供大家參考--見附件:JSP核心技術——JSP引擎內幕(2010).pdf(注:內除了設計引擎外,還有內建物件、標籤、執行緒安全等等)
[b]四、JSP的優缺點[/b]
[b]優點:[/b]
1.用JSP開發的Web應用是跨平臺的,既能在Linux下執行,也能在其他作業系統上執行。
2.強大的可伸縮性。從只有一個小的Jar檔案就可以執行Servlet/JSP,到由多臺伺服器進行叢集和負載均衡,到多臺Application進行事務處理,訊息處理,一臺伺服器到無數臺伺服器,Java顯示了一個巨大的生命力。
3.多樣化和功能強大的開發工具支援。
4.支援伺服器端元件。web應用需要強大的伺服器端元件來支援,開發人員需要利用其他工具設計實現複雜功能的元件供web頁面呼叫,以增強系統效能。JSP可以使用成熟的JAVA BEANS 元件來實現複雜商務功能。
[b]缺點:[/b]
1.優勢即弱勢。正是由於為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產品的複雜性。
2.儲存空間消耗較大。一方面,Java的執行速度是用class常駐記憶體來完成的;從另一方面,它還需要硬碟空間來儲存一系列的.java檔案和.class檔案,以及對應的版本檔案。
[b]五、JSP九大內建物件[/b]
推薦博文:[url]http://www.cnblogs.com/kelin1314/archive/2011/03/03/1969578.html[/url]
[b]六、與JSP易混淆的技術知識[/b]
[b]JSP與Servlet[/b]
[url]http://blog.sina.com.cn/s/blog_4c204e11010009v0.html[/url]
1.兩者並無本質上的區別
2.JSP處理顯示層,也就是說,只放輸出HTML網頁的部份;servlet處理業務邏輯層,即資料計算,資料分析,資料庫聯結處理。
3.在JSP中編寫靜態HTML更加方便,不必再用println語句來輸出每一行HTML程式碼。
4.JSP內容和外觀的分離,編輯好HTML後,由servlet進行插入動態內容。
[b]JSP/ASP[/b]
JSP(Java Server Page)與ASP(Active Server Page)兩者都是常用的動態網頁技術,也都是可以嵌入HTML中的程式,但兩者是有著本質的不同,主要從以下幾個方面對其進行比較:
   1.Web伺服器的支援:大多數通用的 Web伺服器如:Apache、Netscape和Microsoft IIS都支援JSP頁面,只有微軟本身的Microsoft IIS和Personal Web Server可以支援ASP。
   2.平臺的支援:JSP具有平臺獨立性,只要是一般的Java程式可以執行的平臺,都支援JSP程式。Windows平臺可以很好的支援ASP,但ASP對於基於Win32逐漸模型的依賴,使得它難於移植到其它平臺上。
   3.元件模型:JSP是建立在可重用的、跨平臺的元件(如:JavaBeans、Enterprises JavaBeans和使用者定製的標籤庫等元件)之上的,而ASP使用的是基於Win32的COM元件模型。
   4.指令碼語言:JSP可以使用Java程式語言或JavaScript作為指令碼語言,而ASP使用VBScript或Jscript作為指令碼語言。
   5.安全性:JSP使用Java安全模型,而ASP使用Windows NT的安全結構。
   6.與Access資料庫的連線:JSP使用JDBC建立與Access資料庫的連線,而ASP對Access資料庫使用Data Active Objects。
   7.使用者定製的標籤:JSP可以使用使用者定製標籤庫進行擴充,而ASP中沒有使用者定製標籤庫,ASP是不能擴充的。

----------------------------------------------------------------------
關於jsp的學習東西還有很多,疑惑地方也很多。但本著一顆努力學習、排除萬難的心,任它有萬丈光芒,竭盡全力照耀我身!

相關文章