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

下載本文檔

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

文檔簡介

1、Version 3.0第十章第十章 Servlet 體系結(jié)構(gòu)體系結(jié)構(gòu) 請求和響應(yīng)請求和響應(yīng) 會話和環(huán)境會話和環(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)容和代碼分離標記Servlet第一個請求產(chǎn)生應(yīng)答被轉(zhuǎn)換為以后的請求轉(zhuǎn)換后的servlet JSP文件javax.servlet.jsp.JspPage JspInit()方法 JspDestroy()方法 JspService()方法 實現(xiàn)Servlet接口 init()方法 destroy()方法 service()方法 相似見圖:見圖:p136舉例:舉例:example

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

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

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

6、有關(guān)頁面的特殊處理信息傳送到將有關(guān)頁面的特殊處理信息傳送到JSP容器容器 一個指令影響整個一個指令影響整個JSP文件文件 。指令以指令以 終止終止 。 類型:類型: include 指令 page 指令 taglib 指令 include 指令指令 使頁面作者能將一個文件的內(nèi)容包括在另一個文件中 語法: 注意:。出現(xiàn)在一個 JSP 頁面中的 include 指令的數(shù)量不受限制。靜態(tài)插入,即內(nèi)聯(lián)方式(可看servlet),與include動作的區(qū)別。必須為localURL。服務(wù)器可自動識別更新。注意合并后的語法 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指令用來定義和操作許多重要的依賴指令用來定義和操作許多重要的依賴于頁面的屬性,這些屬性影響整個于頁面的屬性,這些屬性影響整個JSP文文件(整個編譯后的類文件)件(整個編譯后的類文件) 在在 JSP中的任何地方、以任何順序,一個中的任何

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

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

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

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

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

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

14、p(共同計算pi) 方法類方法類 定義的方法將編譯成的 Servlet 類的類 可以由頁面上所有腳本元素創(chuàng)建該類對象舉例:example2_7.jsp(聲明類) 包含一個或多個有效而完整的語句包含一個或多個有效而完整的語句 語法:語法: 或或 / 這里是這里是 Java 代碼代碼 是在請求處理期間要執(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 包含任何語言表達式包含任何語言表達式 語法:語法: 或或 在請求處理階段計算值,將結(jié)果轉(zhuǎn)成在請求處理階段計算值,將結(jié)果轉(zhuǎn)成String并輸出并輸出 不以分號結(jié)束不以分號結(jié)束 用于輸出單個變量或某個計算的結(jié)果用于輸出單個變量或某個計算的結(jié)果 在標記中包含表達式。 在JSP中out.print(“number” + i);在servlet中相當于假

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論