JSP語法詳解PPT學(xué)習(xí)教案_第1頁
JSP語法詳解PPT學(xué)習(xí)教案_第2頁
JSP語法詳解PPT學(xué)習(xí)教案_第3頁
JSP語法詳解PPT學(xué)習(xí)教案_第4頁
JSP語法詳解PPT學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、會(huì)計(jì)學(xué)1JSP語法詳解語法詳解3.1.1 JSP頁的創(chuàng)建 3.1.2 JSP文件的組成元素 3.1.3 JSP轉(zhuǎn)義字符 返回第1頁/共37頁一個(gè)簡單的JSP頁面: 第一個(gè)JSP程序 運(yùn)行效果:返回第2頁/共37頁1JSP中的指令標(biāo)識(shí) 利用JSP指令可以使服務(wù)器按照指令的設(shè)置來執(zhí)行動(dòng)作和設(shè)置在整個(gè)JSP頁面范圍內(nèi)有效的屬性。例如: 2HTML標(biāo)記語言 HTML標(biāo)記語言在JSP頁面中作為靜態(tài)的內(nèi)容,瀏覽器將會(huì)識(shí)別這些HTML語言并執(zhí)行。在JSP程序開發(fā)中,這些HTML標(biāo)記語言主要負(fù)責(zé)頁面的布局、設(shè)計(jì)和美觀,可以說是網(wǎng)頁的框架。 第3頁/共37頁3加入Java代碼 加入到JSP頁面中的Java代碼,

2、在客戶端瀏覽器中是不可見的。它們需要被服務(wù)器執(zhí)行,然后由服務(wù)器將執(zhí)行結(jié)果與HTML標(biāo)記語言一同發(fā)送給客戶端進(jìn)行顯示。通過向JSP頁面中加入Java代嗎,可以使該頁面生成動(dòng)態(tài)的內(nèi)容。例如: 4JSP表達(dá)式 JSP表達(dá)式主要用來輸出,它可以向頁面輸出內(nèi)容顯示給用戶,還可以用來動(dòng)態(tài)的指定HTML標(biāo)記中屬性的值。 例如:返回第4頁/共37頁 轉(zhuǎn)義字符是以“”開頭的特殊字符,在屏幕上是不能顯示的,而且在程序中無法用一般形式的字符表示,只能用這種特殊形式表示。常見的轉(zhuǎn)義字符如表所示: 字符形式描述n換行符,將當(dāng)前位置移到下一行開頭,與元素是相同的t制表符,跳轉(zhuǎn)到下一個(gè)tab位置b退格符,將當(dāng)前位置移到前一

3、列r回車符,將當(dāng)前位置移到本行開頭f換頁符,將當(dāng)前位置移到下頁開頭反斜杠字符“”單引號(hào)字符雙引號(hào)字符返回第5頁/共37頁3.2.1 HTML注釋 3.2.2 JSP隱藏注釋 3.2.3 腳本段注釋 注釋語句可以幫助程序員識(shí)別和理解程序代碼。在JSP頁面中主要存在3種注釋方式,分別為HTML注釋、JSP隱藏注釋及腳本段注釋 返回第6頁/共37頁HTML注釋的語法格式如下: !-comment - HTML注釋將被發(fā)送到客戶端,但不直接顯示,用戶在客戶端源代碼中可以查看到。 例如: 返回第7頁/共37頁 JSP注釋語句在傳輸?shù)娇蛻舳说倪^程中會(huì)被過濾掉,不會(huì)發(fā)送到客戶端。JSP隱藏注釋語法格式如下:

4、 例如: 返回第8頁/共37頁腳本段中包括兩種注釋方式:單行注釋和多行注釋 1單行注釋 單行注釋是以“/”符號(hào)后面的所有內(nèi)容為注釋內(nèi)容,服務(wù)器對該內(nèi)容不能進(jìn)行任何操作。腳本段在客戶端通過查看源代碼是不可見的,單行注釋的格式如下: / 注釋內(nèi)容 2多行注釋 多行注釋通過“/*”和“*/”符號(hào)進(jìn)行標(biāo)記,這兩個(gè)標(biāo)記必須成對出現(xiàn),在它們之間輸入的注釋內(nèi)容可以換行。多行注釋格式如下: /*注釋內(nèi)容1注釋內(nèi)容2 注釋內(nèi)容3*/ 返回第9頁/共37頁3.3.1 聲明語句 3.3.2 腳本段 3.3.3 JSP表達(dá)式 JSP中腳本元素包括3部分:聲明語句、腳本段及JSP表達(dá)式,在JSP頁面中需要通過特殊的約定

5、來表示這些元素,并且對于客戶端這些元素是不可見的,它們都是由服務(wù)器執(zhí)行。 返回第10頁/共37頁 聲明語句(Declaration)在JSP頁面中定義方法和變量,其聲明格式如下: 在頁面中通過聲明元素聲明的方法和變量,在整個(gè)頁面內(nèi)都有效,它們將稱為JSP頁面被轉(zhuǎn)換為類文件后中的方法和屬性,并且他們會(huì)被多個(gè)線程即多個(gè)用戶共享。也就是說,其中的任何一個(gè)線程對聲明的變量或方法的修改都會(huì)改變它們原來的狀態(tài)。它們的生命周期從創(chuàng)建到服務(wù)器關(guān)閉后結(jié)束。 注意:在“%”與“!”之間不要空格。聲明的語法與在Java語言中 聲明變量和方法是一樣的。 返回第11頁/共37頁 腳本段(Scriptlets)就是JSP

6、代碼片段或腳本片段,嵌在“”標(biāo)記中。在腳本段中可以定義變量、調(diào)用的方法和進(jìn)行各種表達(dá)式運(yùn)算,且每行語句后面加入分號(hào)。這種Java代碼在Web服務(wù)器響應(yīng)請求時(shí)會(huì)運(yùn)行。腳本段使用格式如下: 說明:腳本程序的使用比較靈活,實(shí)現(xiàn)的功能是JSP表達(dá)式無法實(shí)現(xiàn)的。 返回第12頁/共37頁JSP表達(dá)式用來把Java數(shù)據(jù)向頁面直接輸出信息,其使用格式如下: JSP表達(dá)式與JSP頁面中嵌入到腳本段中的out.print()方法實(shí)現(xiàn)的功能相同。如果表達(dá)式輸出的是一個(gè)對象,則該對象的toString()方法被調(diào)用,表達(dá)式將輸出toString()方法返回的內(nèi)容。 例如: 運(yùn)行結(jié)果:返回第13頁/共37頁3.4.1

7、頁面指令元素:page 3.4.2 包含指令元素:include 3.4.3 提供動(dòng)作指令元素:taglib JSP指令元素主要包括3種:Page指令、Include指令及taglib指令。以“”標(biāo)記開始,以“%”標(biāo)記結(jié)束。 返回第14頁/共37頁 page指令即頁面指令,用于定義JSP文件中有效的屬性。該指令可以放在JSP頁面中的任意位置。Page指令包含多種屬性,通過設(shè)置這些屬性可以影響到當(dāng)前的JSP頁面。Page指令中除import屬性外,其他屬性只能在指令中出現(xiàn)一次。Page指令語法格式如下: 第15頁/共37頁page指令各屬性所具有的功能如下: language:設(shè)置當(dāng)前頁面中編寫

8、JSP腳本使用的語言。 import:用于向JSP文件中導(dǎo)入需要用戶的類包。在Page指令中可多次使用該屬性來 導(dǎo)入多個(gè)包 。contentType:設(shè)置響應(yīng)結(jié)果的MIME類型。默認(rèn)MIME類型是text/html,默認(rèn)字符編碼 為ISO-8859-1。當(dāng)多次使用Page指令時(shí),該屬性只有第一次使用有效 。 session:說明當(dāng)前頁面是否支持session ,默認(rèn)值為ture ,表示支持session 。 buffer:設(shè)置out對象使用的緩沖區(qū)的大小。如設(shè)置為none,說明不使用緩存,而直接 通過out對象進(jìn)行輸出;如果將該屬性指定為數(shù)值,則輸出緩沖區(qū)的大小不 應(yīng)小于該值。默認(rèn)值為8KB

9、。 autoFlush:設(shè)置輸出流的緩沖區(qū)是否自動(dòng)清除。默認(rèn)設(shè)置值為true,說明當(dāng)緩沖區(qū)已滿 時(shí),自動(dòng)將其中的內(nèi)容輸出到客戶端。如果設(shè)置為false,則當(dāng)緩沖區(qū)中的 內(nèi)容超出其設(shè)置的大小時(shí),會(huì)產(chǎn)生“JSP Buffer overflow”溢出異常 。isThreadSafe:默認(rèn)值為true,說明當(dāng)前JSP頁被轉(zhuǎn)換為Servlet后,會(huì)以多線程的方式來 處理來自多個(gè)用戶的請求;如果設(shè)置為false,則轉(zhuǎn)換后的Servlet會(huì)實(shí)現(xiàn) SigleThreadModel接口,該Servlet將以單線程的方式來處理用戶請求,即 其他請求必須等待直到前一個(gè)請求被處理結(jié)束。 第16頁/共37頁page指令

10、各屬性所具有的功能(續(xù)): info:設(shè)置為任意字符串,如當(dāng)前頁面的作者或其他相關(guān)的頁面信息??梢酝ㄟ^ Servlet.getServletInfo()方法來獲取設(shè)置的字符串 。 errorPage:指定一個(gè)當(dāng)前頁面出現(xiàn)異常時(shí)所要調(diào)用的頁面。如果屬性值是以“/”開頭的 路徑,則將在當(dāng)前Web應(yīng)用的根目錄下查找文件;否則,將當(dāng)前頁面的目 錄下查找文件 。 isErrorPage:設(shè)置為true,說明在當(dāng)前頁面中可以使用excpetion異常對象。若在其他頁面 中通過errorPage屬性指定了該頁面,則當(dāng)調(diào)用頁面出現(xiàn)異常時(shí)候,會(huì)跳轉(zhuǎn) 到該頁面,并且在該頁面中可以通過exception對象輸出錯(cuò)誤

11、信息。相反, 如果將該屬性設(shè)置為false,則在當(dāng)前頁面中不能使用execption對象。該屬 性默認(rèn)值為false 。 isELlgnored:可以使JSP容器忽略表達(dá)式語言“$”。其值只能是ture或false。設(shè)置為true 則忽略表達(dá)式語言;設(shè)置為false,則不忽略表達(dá)式語言 。 extends:設(shè)置當(dāng)前JSP頁產(chǎn)生的Servlet是繼承哪個(gè)父類。在JSP中通常不會(huì)設(shè)置該 屬性,JSP容器會(huì)提供轉(zhuǎn)換后的Servlet繼承的父類。并且如果設(shè)置該屬性, 一些改動(dòng)會(huì)影響JSP的編譯能力 。pageEncoding:用來設(shè)置JSP頁字符的編碼,默認(rèn)值是“ISO-8859-1” 。返回第17頁

12、/共37頁 include指令用于在當(dāng)前的JSP頁面中在當(dāng)前使用該指令的位置嵌入其他的文件,如果被包含文件有可以執(zhí)行的代碼,則顯示代碼執(zhí)行結(jié)果。include指令的語法格式如下: include指令只存在file屬性,表示此file的路徑,路徑名指的是相對路徑,不需要指定端口、協(xié)議或域名等。該屬性不支持任何表達(dá)式,也不允許傳遞任何參數(shù)。 注意:如果該屬性值以“/”開頭,那么指定的是一個(gè)絕對路徑,將在當(dāng)前 應(yīng)用的根目錄下查找文件,如果是以文件名稱或文件夾名開頭, 那么指定的相對路徑將在當(dāng)前頁面的目錄上查找文件。 返回第18頁/共37頁 taglib指令可以在頁面中使用這些基本標(biāo)記或自定義的標(biāo)記來

13、完成特殊的功能,在JSP頁面中啟動(dòng)客戶端定制行為。taglib指令語法格式如下: taglib元素具有兩個(gè)屬性: uri:該屬性指定了JSP要在web.xml文件中查找的標(biāo)簽庫描述符,該 描述符是一個(gè)標(biāo)簽描述文件(*.tld)的映射。在該標(biāo)簽描述文 件中定義了該標(biāo)簽庫中各個(gè)標(biāo)簽名稱,并為每個(gè)標(biāo)簽指定一個(gè) 標(biāo)簽處理類。 prefix:該屬性指定了標(biāo)簽的前綴,此前綴不能使用已被sun公司聲 明保留字。前綴名不能為jsp、jspx、java、javax、servlet、 sun、和sunw。 例如: 返回第19頁/共37頁3.5.1 包含文件: 3.5.2 請求轉(zhuǎn)發(fā): 3.5.3 聲明使用JavaB

14、ean: 3.5.4 設(shè)置JavaBean屬性值: 3.5.5 獲取JavaBean屬性值: 3.5.6 聲明使用Java插件:與 3.5.7 參數(shù)傳遞:與 3.5.8 其他動(dòng)作元素 返回第20頁/共37頁 該元素允許包含動(dòng)態(tài)或靜態(tài)文件,如果包含的文件是靜態(tài)的,它僅僅是把包含文件的內(nèi)容加到JSP文件中去。包含靜態(tài)文件的使用格式如下: 如果包含的文件是動(dòng)態(tài)的。這個(gè)被包含文件也會(huì)被JSP編譯器執(zhí)行,并且在編譯時(shí)可以傳遞參數(shù)。包含動(dòng)態(tài)文件使用格式如下: 第21頁/共37頁 屬性及子元素 page屬性:該屬性指定了被包含文件的路徑,其值可以是相 對路徑的表達(dá)式。當(dāng)路徑是以“/”開頭時(shí),則按 照當(dāng)前應(yīng)用

15、的路徑查找該文件;如果路徑是以文 件名或目錄名稱開頭,那么,將按照當(dāng)前的路徑 查找被包含的文件。 flush屬性:該屬性標(biāo)識(shí)當(dāng)輸出緩沖區(qū)滿時(shí),是否清空緩沖區(qū) 該屬性默認(rèn)值為false,通常情況下設(shè)置為true。 子元素:該子元素可以向被包含的動(dòng)作頁面中 傳遞參數(shù)。 第22頁/共37頁 與include指令的區(qū)別 (1)是直接包含源代碼,包含請求的 HTML代碼,并且支持JSP表達(dá)式和Struts應(yīng)用中的請求模式。(2)通過包含一個(gè)JSP頁面,在包含的頁面中相關(guān)的 response操作都被忽略,也就是說當(dāng)前操作不能通過response對象 重定向到其他頁面。如果用包含的JSP頁面,在該 頁面中所

16、有的response操作都會(huì)正常運(yùn)行。(3)元素請求代碼時(shí),可以帶參數(shù),而就不 可以帶參數(shù)。(4)從執(zhí)行速度角度上講,比請求速度快, 因?yàn)閮H處理一個(gè)請求,而處理兩個(gè)請 求。(5)從實(shí)際應(yīng)用角度上講,用于檢測用戶是否登錄、網(wǎng) 站標(biāo)識(shí)或網(wǎng)站的一些靜態(tài)不變的信息;而用于發(fā)送 一個(gè)請求,并接收返回的HTML,并可以加入?yún)?shù)。 返回第23頁/共37頁 該元素用于將客戶端請求從一個(gè)頁面轉(zhuǎn)發(fā)到另一個(gè)JSP頁面、HTML或相關(guān)的資源文件中。當(dāng)該元素被執(zhí)行后,當(dāng)前頁面將不再被執(zhí)行,而是去執(zhí)行該元素指定的目標(biāo)頁面。使用格式如下: 如果轉(zhuǎn)發(fā)目標(biāo)是一個(gè)動(dòng)態(tài)文件,還可以向該文件中傳遞多個(gè)參數(shù),具體使用格式如下: 參數(shù)及

17、元素說明: page屬性:該屬性指定了目標(biāo)文件的路徑。 元素:該元素用來向動(dòng)態(tài)的目標(biāo)文件中傳遞參數(shù)。 返回第24頁/共37頁 該元素可以在JSP頁面中創(chuàng)建一個(gè)JavaBean實(shí)例,并且通過屬性的設(shè)置可以將該實(shí)例存儲(chǔ)到JSP中的指定范圍內(nèi)。使用格式如下: 其他元素設(shè)置,如 第25頁/共37頁 屬性說明 id屬性:該屬性指定一個(gè)變量,在所定義的范圍內(nèi)或Scriptlet中將使用該變量來對所創(chuàng)建的JavaBean實(shí)例進(jìn)行引用。該變量必須符合Java中變量的命名規(guī)則。 scope屬性:該屬性指定了所創(chuàng)建JavaBean實(shí)例的存取范圍,默認(rèn)屬性值是“page”。scope屬性具有的可選值見下表: 屬性名

18、稱獲取方式描述page無指定創(chuàng)建的JavaBean實(shí)例只能夠在當(dāng)前的JSP文件中使用,包括通過include靜態(tài)指令包含的頁面中有效requestrequest對象的getAttribute方法獲取指定創(chuàng)建的JavBean實(shí)例可以在請求范圍內(nèi)進(jìn)行存取sessionsession對象的getAttribute方法獲取指定創(chuàng)建的JavBean實(shí)例可以在session范圍內(nèi)進(jìn)行存取applicationapplication對象的getAttribute方法獲取指定創(chuàng)建的JavBean實(shí)例可以在application范圍內(nèi)進(jìn)行存取第26頁/共37頁 屬性說明(續(xù)) class屬性:該屬性指定了一個(gè)完

19、整的類名,指定的類名不能是抽象的,它必須具有公共的、沒有參數(shù)的構(gòu)造方法。在沒有設(shè)置type屬性時(shí),必須設(shè)置class屬性。 type屬性:該屬性用于設(shè)置由id屬性指定的變量類型,可以指定要?jiǎng)?chuàng)建實(shí)例的類本身、類的父類或是一個(gè)接口。 beanName屬性:該屬性可以是類文件、JavaBean實(shí)例或包含JavaBean的串行化文件(.ser文件)。當(dāng)JavaBean不存在與指定范圍內(nèi)時(shí),才可以使用此屬性。它必須使用類型屬性來指定要將何種類型的Bean實(shí)例化。beanName屬性不能class屬性一起使用,并且區(qū)分大小寫。 第27頁/共37頁元素的使用: (1)不存在Body的格式如下: (2)存在B

20、ody的格式如下: 返回第28頁/共37頁 該元素通常情況下與元素一起使用,它調(diào)用JavaBean中的setXXX()方法,將請求中的參數(shù)賦值給由元素創(chuàng)建的JavaBean中對象的簡單屬性或索引屬性。該屬性的使用格式如下: 元素的屬性 name:該屬性用來指定一個(gè)存在JSP中某個(gè)范圍中的JavaBean 實(shí)例。 第29頁/共37頁元素的屬性 property=“*”:該屬性說明request請求中的所有參數(shù)值將被一一 賦給JavaBean中與參數(shù)具有相同名字的屬性。 property=“屬性名稱”:該屬性取值為JavaBean中的屬性時(shí),則只 會(huì)將request請求中與該JavaBean屬性同

21、名的一個(gè) 參數(shù)的致賦給這個(gè)JavaBean屬性。 property=“屬性名稱” param=“參數(shù)名稱”:param屬性指定一個(gè) request請求中的參數(shù),property屬性指定JavaBean 中的某個(gè)屬性。該方法允許將請求中的參數(shù)賦值 給JavaBean中與該參數(shù)不同名的屬性。 property=“屬性名” value=“值”:value屬性指定的值可以是字符串 數(shù)值或標(biāo)識(shí)一個(gè)具體指的JSP表達(dá)式或EL表達(dá)式。該值將被賦值給property屬性指定的JavaBean屬性。 返回第30頁/共37頁 該屬性用來從指定的JavaBean中讀取指定的屬性值,并輸出到頁面中。該JavaBean

22、必須具有g(shù)etXXX()方法。元素的使用格式如下: 返回 元素的屬性 name屬性:該屬性用來指定一個(gè)存在某個(gè)JSP范圍中的 JavaBean實(shí)例。 property屬性:該屬性指定了要獲取由name屬性指定的 JavaBean中的哪個(gè)屬性值。 第31頁/共37頁 元素可以在頁面中插入Java Applet小程序或JavaBean,它們能夠在客戶端運(yùn)行,該元素會(huì)根據(jù)客戶端瀏覽器的版本轉(zhuǎn)換成或HTML元素。當(dāng)轉(zhuǎn)換失敗時(shí),元素用來顯示用戶的提示信息。因此,與通常情況下一起使用,使用格式如下: jsp:param name=parameterName value=parameterValue | / text message for user 第32頁/共37頁其中各參數(shù)意義如下:屬性與參數(shù)名稱含義type指定了所要加載插件對象的類型,可選值為“bean”和“applet”codecodebase用來指定code屬性指定的Java類文件所在的路徑。默認(rèn)值為當(dāng)前訪問的JSP頁面路徑name指定了加載的Applet或JavaBean的名稱archive指定預(yù)先加載的存檔文件的路徑,多個(gè)路徑可用逗號(hào)進(jìn)行分隔align主要是加載的插件對象在頁面中顯示時(shí)的對齊方式??蛇x值為bottom、t

溫馨提示

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

評論

0/150

提交評論