第2章 JSP基礎(chǔ)_第1頁
第2章 JSP基礎(chǔ)_第2頁
第2章 JSP基礎(chǔ)_第3頁
第2章 JSP基礎(chǔ)_第4頁
第2章 JSP基礎(chǔ)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2022-3-281Java Web開發(fā)技術(shù)開發(fā)技術(shù)第第2章章 JSP基礎(chǔ)基礎(chǔ)2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)2第第2章章 JSP基礎(chǔ)基礎(chǔ)2.1 JSP頁面的基本組成 2.2 JSP頁面中的注釋2.3 聲明2.4 代碼段2.5 表達式2.6 JSP指令 2.7 JSP動作 2.8 本章小結(jié)2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)32.1 JSP頁面的基本組成頁面的基本組成l一個JSP頁面是由傳統(tǒng)的HTML頁面標(biāo)記加上JSP標(biāo)記和嵌入的Java代碼組成,由以下4種元素組成:HTML標(biāo)記、JSP標(biāo)記、JSP腳本和注釋。 lJSP標(biāo)記包括指令標(biāo)記和動作標(biāo)記。指令標(biāo)記是為J

2、SP引擎而設(shè)計的,它向JSP引擎發(fā)送消息,告訴引擎如何處理其余JSP頁面。動作標(biāo)記是JSP頁面特有的標(biāo)記,它告訴Web容器去執(zhí)行某個“動作”。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)4JSP頁面的基本組成(續(xù))頁面的基本組成(續(xù))lJSP腳本是JSP頁面中插入的Java代碼,它又可以細分為聲明、代碼段和表達式。l聲明用于定義特定于JSP頁面(Servlet類)的變量、方法和類;l代碼段是嵌入的Java語句;l表達式是Java腳本中輸出語句的簡化表示形式。l課本例exa2_1.jsp、exa2_2.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)5JSP頁面的執(zhí)行過程頁面的

3、執(zhí)行過程當(dāng)服務(wù)器上的一個JSP頁面第一次被請求時,Web服務(wù)器上的JSP引擎首先將JSP頁面編譯成Servlet,然后執(zhí)行該Servlet。該Servlet主要完成以下2項任務(wù):(1)把JSP頁面中的HTML標(biāo)記交給客戶端的瀏覽器去解釋執(zhí)行。(2)把JSP頁面中的JSP指令標(biāo)記、動作標(biāo)記、JSP聲明、代碼段和表達式交給服務(wù)器去執(zhí)行,然后將結(jié)果送給瀏覽器。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)6JSP頁面的通用書寫規(guī)則頁面的通用書寫規(guī)則 lJSP頁面中HTML標(biāo)記不區(qū)分大小寫 ,JSP標(biāo)記和頁面中嵌入的Java代碼區(qū)分大小寫。l在JSP頁面中,雖然指令和腳本元素所擁有的語法不是基于X

4、ML的,但可以獲得一種可以替代的基于XML的語法。 l在標(biāo)記中出現(xiàn)的屬性值總是用引號括起來的:使用單引號或雙引號。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)7JSP頁面的通用書寫規(guī)則頁面的通用書寫規(guī)則 (續(xù))(續(xù))lJSP使用的URL地址要遵循 Servlet的慣例 l在JSP文檔體中的文本中的空白符無關(guān)緊要,空白包括空格和空行。 l在標(biāo)記中可以使用字符” ”(反斜杠)來作為換碼字符 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)82.2 JSP頁面中的注釋頁面中的注釋 2.2.1 HTML注釋 2.2.2 隱藏注釋 2.2.3 腳本注釋 2022-3-28Java Web開發(fā)技

5、術(shù)開發(fā)技術(shù)92.2.1 HTML注釋注釋lHTML注釋是使用標(biāo)簽“”創(chuàng)建的l語法形式: l課本例exa2_3.jsp、exa2_4.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)102.2.2 隱藏注釋隱藏注釋l隱藏注釋也稱為JSP注釋,只能在原始JSP文件中看到。 l語法形式: l課本例exa2_5.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)112.2.3 腳本注釋腳本注釋 l在JSP頁面的java腳本中使用的注釋。其語法形式為: / 單行注釋 /* 注釋 */l腳本注釋不僅能在原始JSP文件中看到,而且能在JSP編譯成的Servlet中看到。l課本例exa2_6

6、.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)122.3 聲明聲明2.3.1 變量聲明2.3.2 方法聲明2.3.3 聲明類2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)13聲明概述聲明概述lJSP聲明定義網(wǎng)頁范圍的變量、函數(shù)或類,讓頁面的其余部分能夠使用。 l聲明的變量和方法是該頁面所對應(yīng)的Servlet類的成員變量和成員方法,聲明的類是Servlet類的內(nèi)部類。 l聲明塊包含在中 。l包括變量聲明、方法聲明和聲明類三種。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)142.3.1 變量聲明變量聲明l用于定義特定于 JSP 頁面的變量,聲明的變量成了 JSP 頁面轉(zhuǎn)換到

7、的 Servlet 類的成員變量,可以被該JSP頁面中其他任何部分使用。 l其語法形式為:l聲明的變量類型可以是Java語言中允許的任何數(shù)據(jù)類型。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)152.3.2 方法聲明方法聲明l聲明的方法在JSP頁面有效,它編譯成Servlet 類的成員方法??梢杂身撁嫔纤心_本元素訪問。 l其語法形式為: l方法聲明方式跟Java中方法定義的形式一樣,要給出方法返回類型、方法名、方法形參和方法體。l課本例exa2_7.jsp 、exa2_8.jsp 、exa2_9.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)162.3.3 聲明類聲明類l聲明

8、類是JSP頁面對應(yīng)的Servlet類的內(nèi)部類,頁面上所有腳本元素都可以創(chuàng)建該類的對象。l其語法形式為:l課本例exa2_10.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)172.4 代碼段代碼段l代碼段是包含在之間的Java程序片段,包含一個或多個有效而完整的語句。當(dāng)Web服務(wù)器接受客戶端請求時,這段Java程序代碼會被執(zhí)行并向客戶產(chǎn)生輸出。 l其語法形式為: l課本例exa2_11.jsp、 exa2_12.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)18代碼段的注意事項代碼段的注意事項l一個JSP頁面可以有多個代碼段,它們被JSP引擎按順序執(zhí)行。l在代碼段中也可

9、以聲明變量,但這些變量是_jspService()中的局部變量,它們在JSP頁面內(nèi)所有代碼段部分和表達式部分有效。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)19代碼段的注意事項(續(xù))代碼段的注意事項(續(xù))l當(dāng)JSP頁面包含多個Java代碼段時,這些代碼段之間可以插入一些標(biāo)記元素。l當(dāng)客戶請求一個JSP頁面時,JSP引擎為每個客戶產(chǎn)生一個線程,每個線程分別執(zhí)行各自的_jspService()方法,因此一個客戶對局部變量的操作不會影響其它客戶。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)202.5 表達式表達式lJSP頁面中可以在之間插入表達式,用于輸出表達式計算的結(jié)果。在請求處理階

10、段JSP引擎將計算表達式的值,結(jié)果最終轉(zhuǎn)換成一個相應(yīng)的字符串。l表達式的語法形式為: l課本例exa2_13.jsp2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)21表達式的組成表達式的組成表達式可以由以下組成部分構(gòu)成:l數(shù)字和字符串的字母值,比如2和“hello”l數(shù)學(xué)運算符,如+、-、*和l基本數(shù)據(jù)類型的變量l聲明類的對象實例l在JSP中聲明方法的調(diào)用l聲明類所創(chuàng)建的對象的方法調(diào)用2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)22表達式的注意事項表達式的注意事項(1)“%=”是一個完整的符號,“%”和“=”不能插入空格。(2)表達式可以包含任何Java表達式,只要表達式可以求值。(

11、3) 表達式中不能插入語句,也不能以分號結(jié)束。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)23表達式的注意事項(續(xù))表達式的注意事項(續(xù))(4)表達式是Java代碼段的一種簡單書寫方式,其功能和代碼段等效。 相當(dāng)于 假如 i 值為 5,則: 打?。簄umber5 圖 2-15 表達式與 Java 代碼段的功能等價示意圖 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)242.6 JSP指令指令2.6.1 page指令2.6.2 include指令2.6.3 taglib指令2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)25JSP指令概述指令概述lJSP指令是針對JSP容器的,它將有

12、關(guān)頁面的特殊處理信息傳送到JSP容器,告訴容器如何處理JSP網(wǎng)頁,它并不會直接產(chǎn)生任何看得見的輸出。l指令的語法形式為: l指令主要包括:page 指令、include 指令和taglib指令。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)262.6.1 page指令指令lpage指令用來定義和操作許多重要的依賴于頁面的屬性,這些屬性影響整個JSP文件 。lpage指令可以在JSP頁面的任何地方、以任何順序出現(xiàn),而且一個頁面可以包含任意數(shù)量的page指令。為了程序的可讀性以及好的編程習(xí)慣,最好還是把它放在JSP頁面的頂部。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)27page指令

13、的語法指令的語法lpage指令的語法為: l課本例exa2_14.jsp 屬性屬性描述描述缺省值缺省值language定義要使用的腳本語言,將來 JSP包容器支持多種語言時可使用它Javaimport定義以逗號分隔的類或包的列表,就像在通常的 Java代碼中所使用的import語句那樣缺省情況下忽略buffer定義輸出流的緩沖區(qū)大小。如果值為none,則沒有緩沖與實現(xiàn)有關(guān);至少為 8KBautoFlush定義是否自動清除輸出流緩沖區(qū)。如果為true,當(dāng)緩沖區(qū)滿時,自動把緩沖區(qū)內(nèi)容輸出給客戶;如果為false,當(dāng)緩沖區(qū)滿時,會有一個運行時異常trueisThreadSafe定義頁面是否支持多個用

14、戶的并發(fā)訪問。如果為true,則JSP引擎會同時處理多個客戶請求;如果為false,則JSP引擎會對客戶請求進行排隊,某個時刻只處理一個請求truecontentType定義JSP頁面的字符編碼方式和MIME類型。它的形式可以為MIMETYPE或MIMETYPE;charset =CHARSETMIMETYPE的缺省值為text/html;CHARSET的缺省值為ISO-8859-1info頁面中可取到的字符串無缺省extends定義頁面轉(zhuǎn)換成的Servlet類繼承的父類無缺省session定義本頁是否使用session對象trueerrorPage定義頁面異常時轉(zhuǎn)向的頁面的URL地址無isE

15、rrorPage定義頁面是否為其它頁面的異常處理頁面。值為true的頁面會自動獲取Exception對象falsepageEncoding定義JSP頁面的字符編碼方式ISO-8859-1isElIgnored定義頁面是否忽略EL表達式的計算與服務(wù)器種類有關(guān)2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)29page指令的注意事項指令的注意事項(1)import屬性:如果不寫該屬性,JSP頁面自動引入以下4個包:java.servlet.*;java.lang.*; java.servlet.http.*;;java.servlet.jsp.*。(2)contentType屬性: MIMETY

16、PE的缺省值為”text/html”;CHARSET的缺省值為”ISO-8859-1”。經(jīng)常如下寫法,以支持頁面中的中文顯示:2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)302.6.2 include指令指令l如果需要在一個JSP頁面中包括另一個文件,可以使用include指令。l指令的語法形式為: l該指令的作用是在JSP頁面中該指令出現(xiàn)的位置靜態(tài)插入一個文件。include指令能讓頁面內(nèi)容分成幾個組成部分分別管理。l課本例exa2_15.jsp、exa2_16.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)31include指令的注意事項指令的注意事項(1)出現(xiàn)在一個JS

17、P頁面中的include指令的數(shù)量不受限制。 (2)被包含文件的URL路徑一定是和發(fā)出指令的JSP頁面相對的路徑。 (3)該指令采取的是靜態(tài)插入方式,所謂靜態(tài)插入,是指當(dāng)前的JSP頁面和被嵌入的文件合并成一個新的JSP頁面,然后JSP引擎再將這個新頁面轉(zhuǎn)換成Servlet。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)32include指令的注意事項(續(xù))指令的注意事項(續(xù))(4)所包含的文件可以是HTML網(wǎng)頁、文本文件或者是JSP網(wǎng)頁,并且這些文件應(yīng)該和當(dāng)前JSP頁面在同一個Web應(yīng)用中。(5)必須保證合并后的JSP頁面符合JSP語法規(guī)則。 2022-3-28Java Web開發(fā)技術(shù)開

18、發(fā)技術(shù)332.6.3 taglib指令指令l除了標(biāo)準的JSP標(biāo)記以外,JSP標(biāo)準還允許普通用戶定義自己的標(biāo)記。通過自定義標(biāo)記的調(diào)用來完成用戶的自定義動作。所有JSP自定義標(biāo)記按組存放在標(biāo)記庫中。l要使用一個標(biāo)記庫中的標(biāo)記,就要將標(biāo)記庫導(dǎo)入到JSP頁面中,這需要使用taglib指令。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)34taglib指令的語法指令的語法l taglib指令的語法形式為:其中uri是用戶自定義標(biāo)記所在的標(biāo)記庫描述文件的url地址,prefix是標(biāo)記庫描述文件的前綴。 l課本例hello.jsp2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)35使用用戶自定義標(biāo)記的

19、條件使用用戶自定義標(biāo)記的條件(1)標(biāo)記處理器:描述了使用自定義標(biāo)記時所發(fā)生的動作,它是實現(xiàn)了javax.servlet.jsp.tagext包中Tag接口或BodyTag接口的類。 (2)標(biāo)記庫描述文件(TLD):是一個XML文檔,它包含著標(biāo)記庫及庫內(nèi)每一個自定義標(biāo)記的信息。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)36使用用戶自定義標(biāo)記的條件(續(xù))使用用戶自定義標(biāo)記的條件(續(xù))(3)web.xml文件中標(biāo)簽庫的描述:根據(jù)J2EE規(guī)范,每一個Web應(yīng)用都有一個web.xml文件。JSP應(yīng)用程序可以使用這個文件來定位標(biāo)記庫描述文件。(4)在JSP頁面中使用用戶自定義標(biāo)記 。2022-3

20、-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)372.7 JSP動作動作2.7.1 動作標(biāo)記2.7.2 動作標(biāo)記2.7.3 動作標(biāo)記 2.7.4 動作標(biāo)記 2.7.5 動作標(biāo)記 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)38JSP動作標(biāo)記概述動作標(biāo)記概述lJSP動作標(biāo)記是JSP頁面中使用的一種特殊的標(biāo)記,它利用XML語法格式的標(biāo)記來控制JSP引擎完成某種功能。 lJSP動作標(biāo)記可以完成很多功能,如實例化對象、與服務(wù)器端資源進行通信、提高組件的可重用性和可維護性、在JSP頁面中包括一個外部的資源、把用戶重定向到另外的頁面等。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)39常用的常用的JS

21、P動作標(biāo)記動作標(biāo)記常用的JSP動作標(biāo)記包括: l:在頁面被請求的時候引入一個文件l:把請求轉(zhuǎn)到一個新的頁l:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標(biāo)記l:尋找或者實例化一個JavaBeanl:設(shè)置JavaBean的屬性l:輸出某個JavaBean的屬性 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)402.7.1 動作標(biāo)記動作標(biāo)記 l用來在JSP頁面中動態(tài)包含一個文件,包含頁面與被包含文件是彼此獨立的,互不影響。 l動作可包含一個動態(tài)文件也可包含一個靜態(tài)文件。如果包含的是一個靜態(tài)文件就直接輸出給客戶端,由客戶端的瀏覽器負責(zé)顯示;如果包含的是一個動態(tài)文件則由服務(wù)器的JSP引

22、擎負責(zé)執(zhí)行,把運行結(jié)果返回給客戶端顯示出來。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)41動作語法一動作語法一l動作語法一: jsp:include page=relativeURL| flush=true|false / l其中,page屬性表示要包含的文件的相對地址,它可以是一個字符串,也可以是一個JSP表達式。flush屬性默認為false,若為true則表示當(dāng)緩沖區(qū)滿時,緩沖區(qū)將被清空。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)42動作語法二動作語法二l動作語法二: jsp:include page=relativeURL| flush=true|false jsp

23、:param name=paramName value=paramValue| /l課本例exa2_17.jsp 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)43include指令和指令和include 動作區(qū)別動作區(qū)別 (1)嵌入的內(nèi)容。include指令嵌入的是靜態(tài)的文本或頁面,而include動作包含的可以是靜態(tài)或動態(tài)內(nèi)容。(2)嵌入被包含頁面的時間。include動作在處理請求時才將被包含頁面嵌入進來,而include指令是在JSP文件被轉(zhuǎn)換成Servlet的時候引入文件。(3)共享局部變量。用include動作時,在頁面中聲明的變量不可用于另一文件;而在用include指令時,

24、當(dāng)前頁面和被包含頁面可以共享變量。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)44include指令和指令和include 動作區(qū)別(續(xù))動作區(qū)別(續(xù)) (4)修改的生效時間。用include指令時,修改的生效需刷新頁面或去掉已經(jīng)編譯成的Servlet;而用include動作時,被包含頁面的修改會隨時生效。(5)變量名沖突。用include指令時注意新生成的JSP頁面要符合JSP語法要求,應(yīng)該避免變量名的沖突。而用include動作不存在變量名沖突問題。 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)452.7.2 動作標(biāo)記動作標(biāo)記 l標(biāo)記提供了“名稱值”信息,用于將附加在reque

25、st中的參數(shù)發(fā)送至轉(zhuǎn)發(fā)的頁面,可與 、和標(biāo)記一起使用。2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)46動作的語法動作的語法 l動作標(biāo)記的語法形式為:jsp:param name=parameterName value=parameterValue | / name屬性指定參數(shù)的名稱,value屬性指定參數(shù)的值。 l課本例exa2_18.jsp2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)472.7.3 動作標(biāo)記動作標(biāo)記 l動作將當(dāng)前頁面的執(zhí)行過程終止忽略它的輸出并且把請求轉(zhuǎn)向一個新的頁。 l語法格式一:jsp:forward page=relativeURL | / 2022-3-28Java Web開發(fā)技術(shù)開發(fā)技術(shù)48動作標(biāo)記語法二動作標(biāo)記語法二l語法格式二:jsp:forward page=relativeURL | jsp:param name=paraName value=paraValue | /l

溫馨提示

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

評論

0/150

提交評論