jsp指令和腳本元素_第1頁(yè)
jsp指令和腳本元素_第2頁(yè)
jsp指令和腳本元素_第3頁(yè)
jsp指令和腳本元素_第4頁(yè)
jsp指令和腳本元素_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Version 3.0第十章第十章 Servlet 體系結(jié)構(gòu)體系結(jié)構(gòu) 請(qǐng)求和響應(yīng)請(qǐng)求和響應(yīng) 會(huì)話和環(huán)境會(huì)話和環(huán)境 JSP簡(jiǎn)介簡(jiǎn)介 JSP注釋注釋 JSP指令指令 JSP腳本元素腳本元素 JSP 是是 Sun Microsystems 公司的一種規(guī)范公司的一種規(guī)范. 它將它將 Java 與與 HTML 相結(jié)合相結(jié)合 顯示與處理分離顯示與處理分離 JSP 可結(jié)合其他可結(jié)合其他Java 組件一起使用組件一起使用 JSP 是使用是使用Java 開發(fā)基于開發(fā)基于 Web 的應(yīng)用程序的應(yīng)用程序不可或缺的部分不可或缺的部分 典型的典型的web應(yīng)用組成:應(yīng)用組成:applet, JSP, Servlet, J

2、avabean, HTML,XML,EJB,容器容器 JSP的執(zhí)行的執(zhí)行My name is jb-aptech!String str = “My name is java”;out.println(str);JSP把靜態(tài)內(nèi)容和代碼分離標(biāo)記Servlet第一個(gè)請(qǐng)求產(chǎn)生應(yīng)答被轉(zhuǎn)換為以后的請(qǐng)求轉(zhuǎn)換后的servlet JSP文件javax.servlet.jsp.JspPage JspInit()方法 JspDestroy()方法 JspService()方法 實(shí)現(xiàn)Servlet接口 init()方法 destroy()方法 service()方法 相似見圖:見圖:p136舉例:舉例:example

3、1_1.jsp JSP的優(yōu)點(diǎn)的優(yōu)點(diǎn) “編寫一次,隨處運(yùn)行” 高品質(zhì)工具支持 組件和標(biāo)記庫(kù)的重用 動(dòng)態(tài)內(nèi)容與靜態(tài)內(nèi)容的分離 對(duì)腳本和動(dòng)作的支持 多層企業(yè)應(yīng)用程序體系結(jié)構(gòu)的 Web 訪問層 表示與實(shí)現(xiàn)的分離 將文檔字符串添加到將文檔字符串添加到 JSP 頁(yè)面頁(yè)面 類型:類型: HTML 注釋 隱藏注釋 腳本注釋 HTML 注釋注釋 類似于在 HTML 中使用的那些注釋 可在其中包括動(dòng)態(tài)內(nèi)容 瀏覽器察看原文件可看到 隱藏注釋隱藏注釋 只能通過(guò)查看原始 JSP 文件查看 JSP 容器忽略此注釋的主體 腳本注釋腳本注釋 java腳本中的注釋 在servlet中可見 舉例:example2_12.jsp

4、JSP標(biāo)記可分為四種類型標(biāo)記可分為四種類型 指令:向包容器發(fā)送消息,設(shè)置全局變量,不產(chǎn)生輸出 腳本元素:插入java代碼 動(dòng)作:特殊標(biāo)記 注釋JSP指令:用于設(shè)置全局值,是向包容器發(fā)送的。并且不向客戶端產(chǎn)生輸出向操作系統(tǒng)發(fā)送配置命令向操作系統(tǒng)發(fā)送配置命令JSP指令WEB包容包容器器發(fā)送相似腳本元素:可以在JSP頁(yè)面中插入Java代碼。 動(dòng)作:包容器遇到“動(dòng)作標(biāo)記”再執(zhí)行“動(dòng)作”。 JSP區(qū)分大小寫指令和腳本元素所擁有的語(yǔ)法不是基于 XML的,但也可以獲得一種可以替代的基于 XML的語(yǔ)法。比如指令:的等價(jià)的XML語(yǔ)法為:在標(biāo)記中出現(xiàn)的屬性值總是用引號(hào)括起來(lái)的:使用單引號(hào)或雙引號(hào)。如果引號(hào)是屬性值

5、本身的一部分的話,就可以使用特殊的字符串'和"(就像在HTML中一樣)。 在標(biāo)記中可以使用字符在標(biāo)記中可以使用字符 (反斜杠反斜杠)來(lái)作為換碼字符來(lái)作為換碼字符(例如,要使用例如,要使用 %,就要使用,就要使用 %字符序列字符序列)。 JSP使用的使用的 URL要遵循要遵循 servlet的慣例,并且以一的慣例,并且以一個(gè)個(gè) /開始的開始的 URL叫做上下文相關(guān)路徑,如果叫做上下文相關(guān)路徑,如果URL不是以不是以/開始的,就被解釋為相對(duì)于當(dāng)前的開始的,就被解釋為相對(duì)于當(dāng)前的JSP。 在文檔體中的文本中的空白符無(wú)關(guān)緊要。在文檔體中的文本中的空白符無(wú)關(guān)緊要。 將

6、有關(guān)頁(yè)面的特殊處理信息傳送到將有關(guān)頁(yè)面的特殊處理信息傳送到JSP容器容器 一個(gè)指令影響整個(gè)一個(gè)指令影響整個(gè)JSP文件文件 。指令以指令以 終止終止 。 類型:類型: include 指令 page 指令 taglib 指令 include 指令指令 使頁(yè)面作者能將一個(gè)文件的內(nèi)容包括在另一個(gè)文件中 語(yǔ)法: 注意:。出現(xiàn)在一個(gè) JSP 頁(yè)面中的 include 指令的數(shù)量不受限制。靜態(tài)插入,即內(nèi)聯(lián)方式(可看servlet),與include動(dòng)作的區(qū)別。必須為localURL。服務(wù)器可自動(dòng)識(shí)別更新。注意合并后的語(yǔ)法 Include directive test page Include direct

7、ive test page © 2002 JB-Aptech Press copyright.html:嵌入嵌入 include指令的語(yǔ)法為: 再舉例:includirective.jsp, example2_15.jsp中嵌入computer.jsp page 指令指令 page 指令將頁(yè)面特定的信息傳遞給 JSP 引擎 語(yǔ)法: 或或 page指令用來(lái)定義和操作許多重要的依賴指令用來(lái)定義和操作許多重要的依賴于頁(yè)面的屬性,這些屬性影響整個(gè)于頁(yè)面的屬性,這些屬性影響整個(gè)JSP文文件(整個(gè)編譯后的類文件)件(整個(gè)編譯后的類文件) 在在 JSP中的任何地方、以任何順序,一個(gè)中的任何

8、地方、以任何順序,一個(gè)頁(yè)面可以包含任意數(shù)量的頁(yè)面可以包含任意數(shù)量的 page指令。但指令。但是任何的屬性是任何的屬性/值對(duì)只能出現(xiàn)一次值對(duì)只能出現(xiàn)一次 。(除除import外外 )()(p140舉例)舉例) page 屬性屬性 info language contentType extends import session buffer autoFlush isThreadSafe errorPage isErrorPage屬性屬性描述描述缺省值缺省值language定義要使用的腳本語(yǔ)言。如果在將來(lái) JSP包容器支持多種語(yǔ)言時(shí)可使用它“Java”import定義以逗號(hào)分隔的類或包的列表,就像在

9、通常的 Java代碼中所使用的import語(yǔ)句那樣缺省情況下忽略buffer定義對(duì)客戶的輸出流的緩沖模型。如果值為“none”,則沒有緩沖,而是所有的輸出都被P r i n t W r i t e r 直 接 寫 到ServletResponse中。如果定義了緩沖區(qū)的尺寸(如“24kb”),則將輸出寫到不小于該值的緩沖區(qū)中與實(shí)現(xiàn)有關(guān);至少為 8KBautoFlush如果值為“true”,則當(dāng)緩沖區(qū)滿時(shí),自動(dòng)把輸出緩沖輸出給客戶如果值為“false”,則當(dāng)緩沖區(qū)滿時(shí),會(huì)有一個(gè)運(yùn)行時(shí)異?!皌rue”isThreadSafe如果值為“true”,則JSP引擎會(huì)同時(shí)向該頁(yè)面發(fā)送多個(gè)客戶請(qǐng)求。如果值為“

10、false”,則JSP引擎會(huì)對(duì)發(fā)送給該頁(yè)面的客戶請(qǐng)求進(jìn)行排隊(duì)和處理,并且按照請(qǐng)求被收到的順序,在某個(gè)時(shí)刻只處理一個(gè)請(qǐng)求(庫(kù)操作)?!皌rue”contentType定義JSP的字符編碼方式和JSP頁(yè)面的應(yīng)答的MIME類型。它的形式可以為MIMETYPE或“MIMETYPE; charset =CHARSET”。MIMETYPE的缺省值為text/html;CHARSET的缺省值為ISO-8859-1info字符串無(wú)缺省extends轉(zhuǎn)換成servlet時(shí)指定父類無(wú)缺省Extends=“com.lib.myjsp”isErrorPage布爾值,為true,jsp容器會(huì)自動(dòng)產(chǎn)生Exception對(duì)

11、象。 falsesession布爾值,本頁(yè)是否使用布爾值,本頁(yè)是否使用session對(duì)象對(duì)象True errorPage本地本地url,本頁(yè)面異常時(shí)的處理頁(yè)本頁(yè)面異常時(shí)的處理頁(yè)面面無(wú)無(wú) ,errorPage=“/result/err.jsp info屬性:,舉例:example2_13.jsperrorPage舉例:errorpage目錄下面的例子演示了page的language、import、contentType、buffer、autoFlush、isThreadSafe屬性(p142)examplepage.jsp taglib指令指令 通知 JSP 容器,頁(yè)面依賴于自定義標(biāo)記庫(kù) 標(biāo)記庫(kù)

12、是擴(kuò)展 JSP 的功能的自定義標(biāo)記的集合 語(yǔ)法: 使開發(fā)者能直接將代碼嵌入使開發(fā)者能直接將代碼嵌入 JSP 頁(yè)面頁(yè)面 類型:類型: 聲明 代碼段 表達(dá)式 用于定義特定于用于定義特定于 JSP 頁(yè)面的頁(yè)面的(servlet)變量和方法變量和方法 在在jsp初始化是完成初始化初始化是完成初始化 等價(jià)與靜態(tài)變量,即一個(gè)客戶的操作會(huì)影響另外等價(jià)與靜態(tài)變量,即一個(gè)客戶的操作會(huì)影響另外客戶客戶 不會(huì)向流中寫任何信息不會(huì)向流中寫任何信息 可被該可被該jsp頁(yè)面中其他任何部分使用頁(yè)面中其他任何部分使用 語(yǔ)法:語(yǔ)法: 聲明的類型:聲明的類型: 變量聲明 方法聲明 聲明是JSP中的Java代碼塊,它用來(lái)在所產(chǎn)生的

13、 servlet中定義類范圍的變量和方法。產(chǎn)生的servlet實(shí)例化時(shí)執(zhí)行代碼塊。聲明代碼塊包含在中,并且它不會(huì)向輸入流中寫入任何的內(nèi)容。 變量聲明變量聲明 定義為聲明的變量成了 JSP 頁(yè)面被轉(zhuǎn)換和編譯到的 servlet 類的實(shí)例變量,可共享 語(yǔ)法:舉例:example2_2.jsp(簡(jiǎn)單計(jì)數(shù)器) example2_3.jsp(改進(jìn),同步) 方法聲明方法聲明 定義的方法將編譯成的 Servlet 類的方法 可以由頁(yè)面上所有腳本元素訪問舉例: declareation.jsp ,example2_4.jsp(聲明方法) example2_5.jsp(改進(jìn),寫文件) example2_6.js

14、p(共同計(jì)算pi) 方法類方法類 定義的方法將編譯成的 Servlet 類的類 可以由頁(yè)面上所有腳本元素創(chuàng)建該類對(duì)象舉例:example2_7.jsp(聲明類) 包含一個(gè)或多個(gè)有效而完整的語(yǔ)句包含一個(gè)或多個(gè)有效而完整的語(yǔ)句 語(yǔ)法:語(yǔ)法: 或或 / 這里是這里是 Java 代碼代碼 是在請(qǐng)求處理期間要執(zhí)行的 Java代碼塊,可以包含向客戶產(chǎn)生輸出。 Scriptlet test page % for(int i=0;i 10;i+) out.println(Hello World. This is a scriptlet test + i + ); System.out.println(This goes to the System.out stream + i); % 舉例:scriplet.jsp, example2_8.jsp等同于example2_9.jsp 包含任何語(yǔ)言表達(dá)式包含任何語(yǔ)言表達(dá)式 語(yǔ)法:語(yǔ)法: 或或 在請(qǐng)求處理階段計(jì)算值,將結(jié)果轉(zhuǎn)成在請(qǐng)求處理階段計(jì)算值,將結(jié)果轉(zhuǎn)成String并輸出并輸出 不以分號(hào)結(jié)束不以分號(hào)結(jié)束 用于輸出單個(gè)變量或某個(gè)計(jì)算的結(jié)果用于輸出單個(gè)變量或某個(gè)計(jì)算的結(jié)果 在標(biāo)記中包含表達(dá)式。 在JSP中out.print(“number” + i);在servlet中相當(dāng)于假

溫馨提示

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

評(píng)論

0/150

提交評(píng)論