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

下載本文檔

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

文檔簡介

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簡介簡介 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)記庫的重用 動(dòng)態(tài)內(nèi)容與靜態(tài)內(nèi)容的分離 對(duì)腳本和動(dòng)作的支持 多層企業(yè)應(yīng)用程序體系結(jié)構(gòu)的 Web 訪問層 表示與實(shí)現(xiàn)的分離 將文檔字符串添加到將文檔字符串添加到 JSP 頁面頁面 類型:類型: HTML 注釋 隱藏注釋 腳本注釋 HTML 注釋注釋 類似于在 HTML 中使用的那些注釋 可在其中包括動(dòng)態(tài)內(nèi)容 瀏覽器察看原文件可看到 隱藏注釋隱藏注釋 只能通過查看原始 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頁面中插入Java代碼。 動(dòng)作:包容器遇到“動(dòng)作標(biāo)記”再執(zhí)行“動(dòng)作”。 JSP區(qū)分大小寫指令和腳本元素所擁有的語法不是基于 XML的,但也可以獲得一種可以替代的基于 XML的語法。比如指令:的等價(jià)的XML語法為:在標(biāo)記中出現(xiàn)的屬性值總是用引號(hào)括起來的:使用單引號(hào)或雙引號(hào)。如果引號(hào)是屬性值

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

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

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

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

9、通常的 Java代碼中所使用的import語句那樣缺省情況下忽略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í)向該頁面發(fā)送多個(gè)客戶請(qǐng)求。如果值為“

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

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

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

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

14、p(共同計(jì)算pi) 方法類方法類 定義的方法將編譯成的 Servlet 類的類 可以由頁面上所有腳本元素創(chuàng)建該類對(duì)象舉例:example2_7.jsp(聲明類) 包含一個(gè)或多個(gè)有效而完整的語句包含一個(gè)或多個(gè)有效而完整的語句 語法:語法: 或或 / 這里是這里是 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 包含任何語言表達(dá)式包含任何語言表達(dá)式 語法:語法: 或或 在請(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論