教學材料《JSP設計與開發》-第3章 JSP語法_第1頁
教學材料《JSP設計與開發》-第3章 JSP語法_第2頁
教學材料《JSP設計與開發》-第3章 JSP語法_第3頁
教學材料《JSP設計與開發》-第3章 JSP語法_第4頁
教學材料《JSP設計與開發》-第3章 JSP語法_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1第3章JSP語法基礎學習要點JSP頁面基本結構JSP注釋JSP腳本元素JSP指令標記JSP動作標記2

3.1JSP頁面基本結構

這里先介紹一下JSP的基本語法結構。JSP頁面程序是在傳統的靜態頁面程序中加入用Java描寫的動態頁面處理部分。一個JSP頁面程序數據由兩部分內容構成,元素數據(ElementData)和固定模板數據(TemplateData)。其中元素數據是指被JSP引擎所解釋的元素類型的實例。除元素數據之外的任何數據都是固定模板數據,即JSP引擎無法解讀的內容都是固定模板數據,JSP的固定模板數據通常指HTML及XML標記符的數據,這部分數據不被JSP引擎解釋,通常原封不動地返回客戶端瀏覽器,或由指定的組件處理。33.1.1案例一:元素(Elements)與模板數據(TemplateData)【案例功能】向客戶端輸出“HelloWorld”【案例目標】掌握JSP頁面基本結構【案例要點】元素與模板數據的區別及應用【案例步驟】

(1)編寫FirstJsp.jsp源代碼文件。(2)啟動Tomcat服務器后,運行結果如圖3-1所示。453.1.2JSP元素JSP的元素類型類型有3種:腳本元素、指令元素和標準操作元素。其中JSP腳本元素包括聲明、表達式和Java程序語句,書寫在標簽<%和%>之間。三個部分共同作用完成一個JSP頁面。在此值得注意的是,JSP元素的命名對大小寫敏感。下面對JSP元素分別一一詳細介紹。63.2JSP注釋

3.2.1JSP注釋概述JSP注釋是程序員寫入JSP的、不影響運行結果的程序注解。它的目的一般在于對程序元素的功能進行說明。注解必須使用特殊的標記以區別于HTML模板和元素。3.2.2JSP注釋分類JSP提供了兩類注釋的方法:一類注釋是對JSP網頁自身的注釋;另一類注釋是會出現在發送給客戶的生成網頁中的注釋。

7JSP網頁自身注釋JSP網頁自身注釋又稱隱藏式注釋,它是對JSP程序進行的注釋,服務器不會把它發送到客戶端,對客戶而言,是看不見即隱藏的。其語法格式如下:<%--comment--%>或者<%/**thisisacomment**/%>客戶端可以看到的批注生成發送到客戶端的注釋又稱“嵌入式注釋”,一般采用HTML及XML的語法格式:

<!--comment-->JSP引擎對此類注釋不做任何解釋,而直接將其返回給客戶端的瀏覽器,其結果是會在客戶端頁面中顯示一個注釋;同時,客戶在查看源代碼時可以看到這條注釋。8但需要注意的是,在這種注釋中可以出現動態數據,這是與一般HTML注釋最大的不同之處。注釋中的動態數據是通過表達式(expression)來表示的,其語法格式如下:<!—注釋<%=expression%>注釋-->

例如:

<!--現在時間為:<%=(newjava.util.Date()).toLocaleString()%>-->在客戶端的HTML源文件中顯示為:

<!--現在時間為:January1,2010-->93.2.3案例二:注釋【案例功能】看到兩種注釋不同的效果。【案例目標】掌握JSP注釋的使用方法。【案例要點】頁面中指定表單元素名稱、Servlet根據名稱讀取表單元素、Servlet把讀取的表單元素值輸出到客戶端。(1)編寫源代碼comment.jsp。(2)啟動Tomcat服務器后,運行結果如圖3-2所示。103.3JSP腳本元素

JSP的腳本元素是用來在JSP中包含腳本代碼,以<%開始并以%>結束,通常是Java代碼,它允許聲明變量和方法,包含任意腳本代碼和對表達式的求值。在JSP中的腳本元素有:聲明、表達式和程序代碼段(Scriptlet)。113.3.1JSP聲明元素聲明是用來聲明在JSP網頁程序中將會用到的變量和方法。在JSP中使用這些變量和方法前,必須事先聲明。聲明語句必須符合指定腳本語言(Java)的語法規范。聲明的語法格式如下:<%!Declaration(s)%>一次可以聲明一個或多個變量和方法,變量在聲明時可以設置初始值。聲明的內容會插入最終生成的Servlets中,但不會產生任何傳送到客戶端的數據。123.3.2案例三:求兩數之和【案例功能】向客戶端輸出兩個數之和【案例目標】掌握JSP如何聲明元素【案例要點】聲明元素【案例步驟】(1)編寫declare.jsp源代碼文件。(2)啟動Tomcat服務器后,運行結果如圖3-4所示。133.3.3案例四:用synchronized塊來操作頁面級變量【案例功能】在線投票頁面【案例目標】掌握多用戶共享頁面級變量【案例要點】synchronized關鍵字【案例步驟】(1)編寫declare2.jsp源代碼文件。(2)啟動Tomcat服務器后,運行結果如圖3-5所示。143.3.4JSP表達式元素在JSP頁面中,一個表達式元素(Expression)在被JSP引擎執行后會被自動轉化為字符串,然后顯示出來。Expressions標簽是以<%=為起始,%>為結尾,其中間內容包含一段合法的Java表達式:

<%=expression%>例如,

<fontcolor="blue"><%=getName()%></font><%=(newjava.util.Date())%>15使用表達式的注意事項:不能使用分號“;”來作為表達式的結束符號,如下:

<%=(newjava.util.Date()).toLocaleString();%>

是錯誤的。同樣的表達式,用在Scriptlet(腳本元素)中就需要以分號來結尾。我們可以通過查看JSP轉義生成的Servlet源程序,來了解JSP容器是如何處理<%=%>的,例如,JSP代碼

<%=(newjava.util.Date())%>

在生成的Servlet源文件中,將會以下面的形式出現在_jspService方法中:

out.println(newjava.util.Date());

由此可見,JSP容器對表達式元素的處理是非常簡單的,它所做的工作只是在JSP表達式外包裝了out.println()方法。163.3.5JSP腳本小程序元素JSP腳本小程序元素是一段有效JSP腳本語言程序段(目前可認為是Java程序段),該程序段內容必須符合相應腳本語言的語法規定。它的語法格式如下:<%JSP腳本小程序元素(Scriptlet)%>當JSP引擎處理客戶端請求時,腳本小程序元素會在請示時被執行。Scriptlet是否有輸出到客戶端瀏覽器的內容完全取決于腳本小程序元素內部程序段的內容。在一個JSP頁面中,可以有多個腳本小程序元素。在一個腳本小程序元素中聲明的變量是JSP頁面的局部變量,只在當前頁面中有效。173.3.6案例五:腳本小程序元素應用【案例功能】統計訪問網站的人數。【案例目標】掌握JSP腳本元素中變量的特性。【案例要點】JSP聲明元素和腳本元素中都可以定義變量,但二者中定義的變量作用域是由區別的。【案例步驟】(1)編寫源代碼scriptlet.jsp。(2)啟動Tomcat服務器后,無論如何刷新,運行結果如圖3-6所示。18(3)如果把程序中第2行代碼由<%inti=0;%>改為<%!inti=0;%>,則運行結果如圖3-7所示隨著頁面的不斷刷新操作,訪問網站的人數也在遞增。193.4JSP指令元素在JSP頁面中,可以使用JSP指令指定網頁的有關輸出方式、引用包、加載文件等相關設置。JSP指令包括Page指令、Include指令和Taglib指令。指令并不會輸出任何數據至客戶端,且有效范圍僅限于使用該指令的JSP網頁。指令的語法如下:<%@指令名稱屬性1=,屬性2=,…%>203.4.1page指令元素page指令是針對當前頁面的指令。page指令有“<%@”和“%>”字符串構成的標記符來指定。在標記符中是代碼體,包括指令的類型和值。例如:“<%@pageimport=“java.sql.*”%>”指令告訴JSP容器將java.sql包中的所有類都引入當前的JSP頁面。在一個JSP頁面中可以使用多個page指令來指定屬性及其值,但除import屬性外,其他屬性只能使用一次page指令為該屬性設置值,即使設置的值相同也不行,例如,在一個JSP頁面中出現下面語句是錯誤的。<%@pagelanguage=”java”%><%@pagelanguage=”java”%>21使用import屬性可以在JSP頁面導入多個類包,你可以使用多個page指令,也可以在一個page指令中使用“,”為import屬性賦多個值,例如在一個JSP頁面中引入:java.util.*,java.io.*,java.sql.*3個包,可以寫為:%@pageimport=“java.util.*”%%@pageimport=“java.io.*”%%@pageimport=“java.sql.*”%也可以寫為:<%@pageimport=“java.util.*”,“java.io.*”,”java.sql.*”%>對page指令的各個屬性值解釋如表3-1所示。223.4.2案例五:page指令應用示例【案例功能】以excel表格形式顯示頁面內容。【案例目標】掌握page指令的用法。【案例要點】JSP指令元素中contentType屬性應用。【案例步驟】(1)編寫源代碼excel.jsp。(2)啟動Tomcat服務器后,運行結果如圖3-8所示。233.4.3include指令元素include指令用來指定怎樣把另一個文件包含到當前的JSP頁面中,這個文件可以是普通的文本文件,也可以是一個JSP頁面。例如:“<%@includefile=”logo.htm”%>”。這個包含的過程是靜態的,而包含的文件可以是JSP網頁、HTML網頁、文本文件,或是一段Java程序。采用include指令,可以實現JSP頁面的模塊化,使JSP的開發和維護變得非常簡單。243.4.4案例六:include指令元素操作示例【案例功能】在文本框內輸入一個數字,然后輸出該數的階乘。【案例目標】掌握include指令的用法。【案例要點】在一個JSP程序中包含了另一個JSP程序。【案例步驟】(1)編寫源代碼include.jsp。(2)啟動Tomcat服務器后,運行結果如圖3-9所示。253.4.5taglib指令元素標簽數據庫指令taglib用于定義一個標簽庫及自定義標簽的前綴,語法為:<%@tagliburl=”擴展標簽的URI”prefix=”擴展標簽的前綴”%>例如定義標簽庫pe4j-taglib和前綴pe4j的代碼為:

<%@tagliburl=”/pe4j-taglib”prefix=”pe4j”%>這樣,在HTML中可以使用標簽庫pe4j-taglib中定義的標簽,例如:<pe4j:literalkey=”Crop”subsystem=”SYS”/><pe4jCORPCOMBOname=”CorpCombo”SELECTEDVALUE=”<%=CorpID%>”ONCHANGE=”fnc_OnCorpChange()”/>263.5JSP標準操作元素

動作控制標簽是一種特殊的標簽,用于執行一些標準常用的JSP網頁動作,例如將網頁轉向、使用JavaBean,設置JavaBean的屬性等。操作指令包括:jsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令等。273.5.1include操作jsp:include標準動作用于在當前的JSP頁面中加入靜態和動態的資源。語法格式為:<jsp:includepage=“URL”><jsp:paramNAME=”參數名稱1”VALUE=“值1”/>

<jsp:paramNAME=”參數名稱2”VALUE=“值2”/>

…</jsp:include>jsp:include指令必須以“/”結束,功能和include指令相同。283.5.2案例六:include動作應用示例【案例功能】用include動作完成頁面的包含,并傳遞相應的參數。【案例目標】掌握include動作的用法。【案例要點】參數的傳遞以及與include指令的區別。【案例步驟】(1)編寫源代碼include_action.jsp。(2)編寫源代碼welcome.jsp。(3)啟動Tomcat服務器后,運行結果如圖3-10所示。29(4)修改include_action.jsp中第9行代碼,將value值改為5,運行結果如圖3-11所示。303.5.3forward操作<jsp:forward>動作將客戶端所發出來的請求,從一個JSP網頁轉交給另一個JSP網頁。forward動作將會引起Web服務器的請求目標轉發。轉發的工作機制與重定向不同,這些工作都是在服務器端進行的,不會引起用戶端的二次請求,因此效率較重定向要高。不過有一點要特別注意,<jsp:forward>標簽之后的程序將不能執行。語法

<jsp:forwardpage=URL>

<jsp:paramname=“參數名稱1”value=“值1”/><jsp:paramname=“參數名稱2”value=“值2”/>

</jsp:forward>

與include動作相同,可以使用jsp:param設定轉發的請求參數。取得參數時,方法為:Request.getParameter(“參數名稱”);313.5.4案例七:forward動作應用示例【案例功能】用forward動作完成頁面的轉向,并傳遞相應的參數。【案例目標】掌握forward動作的用法。【案例要點】轉向后的執行。【案例步驟】(1)編寫源代碼ForwardFrom.jsp。(2)編寫源代碼ForwardTo.jsp。(2)啟動Tomcat服務器后,運行結果如圖3-13所示。(3)啟動Tomcat服務器后,運行結果如圖3-12所示。32333.5.5plugin操作該指令的作用是確保一個Java插件軟件可用,可以在瀏覽器中播放或者顯示一個對象(典型的就是applet和bean),一般來說,<jsp:plugin>元素會指定對象是applet還是bean,同樣也會指定class的名字及位置,另外還會指定從哪里下載這個插件.<jsp:plugin>元素的語法格式如下:<jsp:pluginType=”bean|applet”Code=”保存類的文件名稱”Codebase=”類路徑”[name=”對象名稱”[archive=”相關文件路徑”[align=”對齊方式”34[height=”高度”[width=”寬度”

[hspace=”水平間距”[vspace=”垂直間距”

[jreversion=”Java環境版本”[nspluginurl=”供NC使用的plugin加載位置”[iepluginurl=”供ie使用的plugin加載位置”<jsp:params><jsp:paramname

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論