建立在servlet規范功能之上的動態網頁技術。
JSP文件在用戶第一次請求時,會被編譯成servlet,然后由servlet處理用戶的請求。所以JSP可以看成運行時servlet。
1).將內容的生成和顯示進行分離使用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。
2).JSP技術源於Java語言。Java語言是體系結構中立的。這使JSP技術可以在實現這個JSP平台的任何系統中運行。這種途徑適合於異構的網絡環境和軟件的分發。
3).JSP系統是可移植的。這種可移植性來源於體系結構中立性。
4).強調可重用的組件。絕大多數JSP頁面依賴於可重用的,跨平台的組件(JavaBeans或者Enterprise JavaBeansTM組件)來執行應用程序所要求的更為復雜的處理。
5).采用標識簡化頁面開發 Web頁面開發人員不會都是熟悉腳本語言的編程人員。JSP技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。
6).使用JSP標識或者小腳本來生成頁面上的動態內容。生成內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在小腳本中,所有的腳本在服務器端運行。
7).由於JSP頁面的內置腳本語言是基於Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術的所有好處,包括健壯的存儲管理和安全性;
8).作為Java平台的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。
當客戶端請求一個JSP網頁時,JSP Engine會檢查所請求的JSP網頁是否已經處於被載入執行的狀態,如果沒有,它會先讀取JSP程序文件,將它換成Servlet程序代碼編譯載入,然后才執行請求的服務。也是就說,只有當客戶端第一次請求JSP網頁時,才需要被轉換、編譯和載入,做到了一次執行,處處執行。JSP的Servlet Class是JSP Engine自動幫我們編譯產生的,不像Servlet需要手動編譯,另外,在JSP程序中建立新的對象和Java Bean非常方便容易。
servlet
Java Servlet是JSP技術的基礎,
JSP本身就是預先被編譯成Servlet,然后再運行的,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成,Servlet這個名稱大概源於Applet,現在國內的翻譯方式很多,本文為了避免誤會,本文直接采用Servlet這個名稱而不做任何翻譯,讀者如果願意,可以稱之為“小服務程序”。
Servlet其實和傳統的CGI程序和ISAPI、NSAPI等Web程序開發工具的作用是相同的,在使用Java Servlet以后,用戶不必再使用效率低下的CGI方式,也不必使用只能在某個固定Web服務器平台運行的API方式來動態生成Web頁面。許多Web服務器都支持Servlet,即使不直接支持Servlet的Web服務器也可以通過附加的應用服務器和模塊來支持Servlet。得益於Java的跨平台的特性,Servlet也是平台無關的,實際上,只要符合Java Servlet規范,Servlet是完全平台無關且是Web服務器無關的。由於Java Servlet內部是以線程方式提供服務,不必對於每個請求都啟動一個進程,並且利用多線程機制可以同時為多個請求服務,因此Java Servlet效率非常高。但Java Servlet也不是沒有缺點,和傳統的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用輸出HTML語句來實現動態網頁的,如果用Java Servlet來開發整個網站,動態部分和靜態頁面的整合過程簡直就是一場噩夢。這就是為什么SUN還要推出Java Server Pages的原因。
JavaBean原理和機制
JSP的一大特點就是與JavaBeans的結合,而JSP與JavaBeans結合的一個突出的優點是
頁面顯示和業務邏輯的分離。這可以使團隊協作的更好,開發出更高質量的站點。
JavaBean是一種可以重用的Java組件,它類似於COM,在JSP程序中常用來封裝事物邏輯、數據庫操作等,可以很好的實現業務邏輯和前台程序的分離,使得系統具有更好的健壯性和靈活性。
事件處理是JavaBeans體系結構的核心之一。通過事件處理機智,可以讓一些組件作為事件源,發出可被描述環境或其他組件接受的事件。這樣,不同的組件就可在構造工具內組合在一起,組件之間通過事件的傳遞進行通信,構成一個應用。從概念上講,事件是一種在“源對象”和“監聽對象”之間、某種狀態發生變化的傳遞機智。事件有許多不同的用途,如:鼠標事件、窗口邊界改變事件、鍵盤事件等。在Java和JavaBeans中則是定義了一個一般的、可擴充的事件機制,它能夠:
1).對事件類型和傳遞模型的定義和擴充提供一個公共框架,並適合於廣泛的應用。
2).與Java語言和環境有較高的集成度。
事件能描述環境捕獲和被激發。能使其他構造工具采取某種技術在設計時直接控制事件,遺跡控制事件源和事件監聽者之間的聯系。事件本身不依賴於復雜的開發工具。
特別的,事件機制還應當:
1).能夠發現制定的對象類可以生成的事件。
2).能夠發現制定的對象類可以觀察監聽到的事件。
3).提供一個常規的注冊機制,允許動態操縱事件源與事件監聽者之間的關系。
4).不需要其他的虛擬機和語言即可實現。
5).事件源與監聽者之間可進行高效的事件傳遞。
6).能完成JavaBean事件模型與相關的其他組件體系結構事件模型的中立映射。
JSP和ASP.NET同樣是網站開發中常用的開發工具。但是,ASP是微軟的產品,其應用只能是在Windows平台上,移植性差,而且以源代碼的形式存放在服務器端,安全性差。
每次由服務器解釋運行,運行效率不高。
Jsp頁面文件執行時被編譯成字節代碼,由客戶端流覽的Java虛擬機解釋執行,不再是源代碼,因此執行效率和安全性高。將數據庫連接的重要信息存放在JavaBean文件后,可以編譯成虛擬機才能解釋的字節代碼,確保了數據庫的安全。
在ASP技術里,通過Web頁面要實現一些特定的功能比較困難,比如基於網頁的報表,打印實現起來就比較麻煩。ASP提供的解決方案是自己開發組件,通過在服務器端注冊組件,成為獨立的可以重復利用的模塊供讀者調用。因此要求讀者需要掌握比較復雜的變成語言的開發技術。在JSP開發技術里,可以通過開發JavaBean文件實現同樣的功能,JavaBean不需要注冊,只要放置在相應的目錄下就可以運行。可以實現ASP的COM組件同樣的功能。此外JSP推出主要就是考慮到平台的無關性。JSP代碼可以在APACHE、IIS等服務器上執行,支持大部分操作系統。JSP繼承JAVA技術的優點:一次運行,處處運行。
鑒於此,本系統決定使用JSP做為開發工具。下面簡單介紹一下相關的其他工具:
1.5.3 開發平台:Eclipse+dreamweaver
Eclipse是一個開放源代碼的軟件開發項目,專注於為高度集成的工具開發提供一個全功能的、具有商業品質的工業平台。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術項目三個項目組成,具體包括四個部分組成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java開發、CDT支持C開發、PDE用來支持插件開發,Eclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發平台。它提供建造塊和構造並運行集成軟件開發工具的基礎。Eclipse Platform允許工具建造者獨立開發與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結束,而另一個工具功能在哪里開始。
Dreamweaver MX 是一款專業的 HTML 編輯器,用於對 Web 站點、Web 頁和 Web 應用程序進行設計、編碼和開發。無論您喜歡直接編寫 HTML 代碼的駕馭感還是偏愛在可視化編輯環境中工作,Dreamweaver 都會為您提供幫助良多的工具,豐富您的 Web 創作體驗。
利用 Dreamweaver 中的可視化編輯功能,您可以快速地創建頁面而無需編寫任何代碼。不過,如果您更喜歡用手工直接編碼,Dreamweaver 還包括許多與編碼相關的工具和功能。並且,借助 Dreamweaver,您還可以使用服務器語言(例如 ASP、ASP.NET、ColdFusion 標記語言 (CFML)、JSP 和 PHP)生成支持動態數據庫的 Web 應用程序。