[摘要] 利用JSP 技術(shù),結(jié)合HTML 網(wǎng)頁、JSP 指令和JavaBean 組件可建立動態(tài)、交互且高效的Web 服務(wù)器應(yīng)用程序。文章將JSP與ASP進(jìn)行了技術(shù)比較,并介紹了JSP頁面組成和特點(diǎn)。
[關(guān)鍵詞] JSPWeb服務(wù)器Java虛擬機(jī)動態(tài)網(wǎng)頁
JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷。JSP技術(shù)是用Java語言作為腳本語言的,相對于其他動態(tài)網(wǎng)頁技術(shù),JSP存在著很大的優(yōu)勢,特別是它很好地解決了跨平臺問題,已經(jīng)成為當(dāng)今動態(tài)網(wǎng)頁開發(fā)的流行技術(shù)。
一、JSP與ASP技術(shù)的比較
JSP在技術(shù)上的主要競爭對手是Microsoft的ASP,兩者在技術(shù)上很相似,都支持動態(tài)網(wǎng)頁的創(chuàng)建、腳本代碼和用于實(shí)現(xiàn)商業(yè)邏輯的組件等,也都提供和企業(yè)級應(yīng)用程序框架的接口(分別是J2EE和Microsoft DNA),ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區(qū)別。此外,ASP與JSP還有一個更為本質(zhì)的區(qū)別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下VBScript代碼被ASP引擎解釋執(zhí)行;在JSP下,代碼被編譯成Servlet并由Java虛擬機(jī)執(zhí)行,這種編譯操作僅在對JSP頁面的第一次請求時發(fā)生,JSP的效率和安全性更高。 JSP的適應(yīng)平臺更廣,幾乎可以在所有平臺下工作。JSP與ASP技術(shù)比較如下表所示。
二、JSP頁面的組成
JSP頁面看上去像標(biāo)準(zhǔn)的HTML和XML頁面,并附帶有JSP引擎能夠處理和解析執(zhí)行的代碼與組件。一般JSP代碼和組件用于創(chuàng)建在最終頁面上顯示的文本。JSP頁面一般包括編譯指令,動作指令,聲明,表達(dá)式和程序段等內(nèi)容。
編譯指令:使用JSP編譯指令(〈%@和%〉內(nèi)的)來指定所使用的腳本語言,Servlet實(shí)現(xiàn)的接口,Servlet擴(kuò)展的類,Servlet導(dǎo)入的軟件包。JSP指令的一般語法形式為:<%@ 指令名=“值”%>。
動作指令(標(biāo)識):用于執(zhí)行某些動作。在JSP規(guī)范中有2種類型的動作指令的標(biāo)識。第一種是標(biāo)準(zhǔn)動作,它定義的是無論在什么版本的JSP引擎或Web服務(wù)器下總是可用的動作。第二種是自定義動作,它通過使用taglib指令來實(shí)現(xiàn)。例如JSP:useBean;JSP:setProperty。
聲明:用于聲明合法的變量和方法。與任何語言相同,JSP語言使用變量來保存數(shù)據(jù)。聲明的語法為<%! declaration(s) %>。
表達(dá)式:通過計(jì)算表達(dá)式所得到的結(jié)果來表示某個值。表達(dá)式的形式為:<%=expression>。表達(dá)式求值的結(jié)果被強(qiáng)制轉(zhuǎn)換為一個字符串,并插入到當(dāng)前的輸出流中。
程序段:JSP可以在頁面中包含的一段程序,稱之為程序段。程序段可以和頁面中的靜態(tài)元件組合起來創(chuàng)建動態(tài)生成的頁面。
三、JSP的三大特點(diǎn)
1.良好的可移植性。由于其是以Java為基礎(chǔ)開發(fā)的,所以它可以沿用Java強(qiáng)大的API功能,擁有Java編程語言“一次編寫、各處運(yùn)行”的特點(diǎn)。
2.健壯性與安全性。由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為Java Servlet,JSP頁面就具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。
3.強(qiáng)調(diào)可重用的組件。其中JavaBean是一種基于Java的軟件組件,可以通過封裝業(yè)務(wù)邏輯建立一整套可重復(fù)利用的對象庫。JSP對于在Web應(yīng)用中集成JavaBean組件提供了完善的支持,這種支持不僅能縮短開發(fā)時間(可以直接利用經(jīng)過測試和可信任的已有組件),避免重復(fù)開發(fā),也為JSP應(yīng)用帶來了更多的可伸縮性。
總之,在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序段可以是:操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送Email等,這就是建立動態(tài)網(wǎng)站所需要的功能。JSP所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無Plugin,無ActiveX,無Java Applet,甚至無Frame。JSP的良好的可移植性、跨平臺性,以及執(zhí)行效率高、安全性高的特點(diǎn),使得JSP技術(shù)成為當(dāng)今動態(tài)網(wǎng)頁開發(fā)的流行技術(shù)。
參考文獻(xiàn):
[1]王春東王定基王勁松:現(xiàn)代遠(yuǎn)程教育實(shí)現(xiàn)中的主要技術(shù)的研究[J].天津理工學(xué)院學(xué)報,2003,16(2):107~111
[2]蔣文蓉:JSP程序設(shè)計(jì)[M].高等教育出版社,2004,7:92~93
[3]許龍飛李國和:Web數(shù)據(jù)庫技術(shù)與應(yīng)用[M].2005,24~25
[4]鄧子云:JSP網(wǎng)絡(luò)編程從基礎(chǔ)到實(shí)踐[M].電子工業(yè)出版社,2006,1