Jsp包含三個編譯指令和七個動作指令。 三個編譯指令為:page、include、taglib。 七個動作指令為:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。 一、編譯指令 1、 page指令 a. 通常位于jsp頁面的頂端,同一個頁面可以有多個page指令。語法格式如下: 〈% @page [language="Java"] [extends="package.class"] [import= "package. class I package. *},…"] [session="true I false"] [buffer="none I 8kb I size kb" 1 [autoFlush="true I false"] [isThreadSafe="true I false"] [info="text"] [errorPage="relativeURL"] [contentType="mimeType[ ;charset=characterSet]" I"text/html;charset= "808859-1"] [isErrorPage=" true I false"] %〉 1)language屬性,一般情況就是java,代表jsp頁面使用的腳本語言。 2)Extends屬性,確定 JSP 程序編譯時所產(chǎn)生的 Java 類,需要繼承的父類,或者需要實現(xiàn)的接口的全限定類名。 1.import屬性,用來導(dǎo)入包,下面幾個包是默認自動導(dǎo)入的,不需要顯式導(dǎo)入。默認導(dǎo)入的包有: java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* 2.Session屬性,設(shè)定這個 JSP 頁面是否需要 HTIP session 。 3.buffer屬性,指定輸出緩沖區(qū)的大小。輸出緩沖區(qū)的 JSP 內(nèi)部對象: out 用于緩存 JSP頁面對客戶瀏覽器的輸出,默認值為 8kb,可以設(shè)置為 none ,也可以設(shè)置為其他值,單位為kb 4.autoFlush屬性,當輸出緩沖區(qū)即將溢出時,是否需要強制輸出緩沖區(qū)的內(nèi)容。設(shè)置為true 時為正常輸出;如果設(shè)置為 false ,會在 buffer 溢出時產(chǎn)生一個異常。 5.Info屬性,設(shè)置該 JSP 程序的信息,也可以看做其說明,可以通過 Servlet. getServletInfo()方法獲取該值。如果在 JSP 頁面中,可直接調(diào)用 getServletInfoO方法獲取該值,因為 JSP 頁面的實質(zhì)就是 Servlet 。 errorPage屬性,指定錯誤處理頁面。如果本程序產(chǎn)生了異?;蛘咤e誤,而該 JSP 頁面沒有對應(yīng)的處理代碼,則會自動調(diào)用該指令所指定的 JSP 頁面。使用 JSP 頁面時,可以不處理異常,即使是 checked 異常。(重定向到對應(yīng)的錯誤處理頁面,但是URL還是原來的URl,并不發(fā)生變化)如果這個頁面不存在這個屬性,那么一旦代碼出現(xiàn)問題,就會在開發(fā)環(huán)境和IE瀏覽器上提示錯誤??梢娺@條屬性控制異常處理的效果在表現(xiàn)形式上要好的多。 6.IsErrorPage屬性,設(shè)置本 JSP 頁面是否為錯誤處理程序。如果該頁面本身己是錯誤處理頁面,則無須使用 errorPage 屬性。 7.ContentType屬性,用于設(shè)定生成網(wǎng)頁的文件格式和編碼方式,即 MIME 類型和頁面字符集類型,默認的 MIME 類型是 text/html; 默認的字符集為 ISO-8859-1 。 2、 include指令 使用 include 指令,可以將一個外部文件嵌入到當前 JSP 文件中,同時解析這個頁面中的 JSP 語句(如果有的話)。這是個靜態(tài)的 include 語旬,不會檢查所包含 JSP 頁面的變化。 include 既可以包含靜態(tài)的文本,也可以包含動態(tài)的 JSP 頁面。靜態(tài)的編譯指令include ,是將被包含的頁面加入進來,生成一個完整的頁面。 include 編譯指令的語法: 〈% @include file="relativeURLSpec" %〉 如果被嵌入的文件經(jīng)常需要改變,建議使用<jsp:include>操作指令,因為它是動態(tài)的 include 語句。 包含include指令的jsp頁面在部署后,經(jīng)過訪問編譯生成java文件,在tomcat的 work\Catalina\localhost\project\org\apache\jsp目錄下會生成對應(yīng)的java文件,這些文件與jsp的名字相同,他包含了編譯后的代碼,甚至include包含的另外一個jsp的代碼也被相應(yīng)的加入了進來。 二、 動作指令 1、 forward指令:forward 指令用于將頁面響應(yīng)控制轉(zhuǎn)發(fā)給另外的頁面。既可以轉(zhuǎn)發(fā)給靜態(tài)的 HTML頁面,也可以轉(zhuǎn)發(fā)到動態(tài)的 JSP 頁面,或者轉(zhuǎn)發(fā)到容器中的 Servlet。 JSP 的 forward 指令的格式如下: 對于 JSP 1. 0 ,使用如下語法: <jsp:forward page=”{relativeURL |<%=expression%>}” /> 可使用如下語法: <jsp:forward page=”{relativeURL |<%=expression%>}”> {<jsp:param…/>} </jsp:forward> 第二種語法用于在轉(zhuǎn)發(fā)時增加額外的請求參數(shù)。增加的請求參數(shù)的值可以通過HttpServletRequest 類的 getParameter方法獲取。 2、 include指令,它是一個動態(tài)的指令,可以用于導(dǎo)入某個頁面。它的導(dǎo)入會每次檢查被導(dǎo)入頁面的改變。下面是include指令的使用格式: <jsp:include page=”{relativeURL |<%=expression%>}” flush=”true” /> 或者: <jsp:include page=”{relativeURL |<%=expression%>}” flush=”true”> <jsp:param name=”paramName” value=”paramValue”/> </jsp:include> flush 屬性用于指定輸出緩存是否轉(zhuǎn)移到被導(dǎo)入文件中。如果指定為劇。則包含在被導(dǎo)入文件中;如果指定為false,則包含在原文件中。對于JSP 1.1以下的舊版本,只能設(shè)置為false。 <include>和<jsp:include>分別為靜態(tài)導(dǎo)入和動態(tài)導(dǎo)入。他們的的區(qū)別:靜態(tài)導(dǎo)入是將被導(dǎo)入頁面的代碼完全插入,兩個頁面生成一個整體的 Servlet; 而動態(tài)導(dǎo)入則在 Servlet 中使用動態(tài)導(dǎo)入,從而將頁面引入。 3、 useBean、setProperty和getProperty指令 這三個指令都是與JavaBean相關(guān)的指令,其中useBean用于在jsp頁面初始化一個java實例,setProperty用于修改JavaBean實例的屬性,getProperty用于獲取JavaBean實例的屬性。 useBean的語法格式: <jsp:useBean id=”” class=”” scope=”page | request |session | application” > Id是JavaBean的實例名,class屬性確定JavaBean的實現(xiàn)類。Scope屬性確定生存范圍【頁面、請求、會話、應(yīng)用】 setProperty的語法格式: <jsp:setProperty name=”” property=”” value=”” /> Name屬性確定需要設(shè)定 4、 plugin指令 plugin 指令主要用于下載服務(wù)器端的 JavaBean 或 Applet 到客戶端執(zhí)行。由于程序在客戶端執(zhí)行,因此客戶端必須安裝虛擬機。 plugin 的語法格式如下: <jsp:plugin type=”bean | applet" code="classFileName" codebase="classFileDiretoryName" [name=" instanceName"] [archive="URLtoArchive"] [align= "bottom I top I middle I left I right"] [heigh="displayPixels"] [width="displayPixels"] [hspace="leftRightPixels"] [vspace="topBottomPiexels"] [jreversion=JREVersionNumber|1.2"] [nspluginurl="URLToPlugin"] [iepluginurl="URLToPlugin"]> [<jsp:parames> [jsp:param name="parameterName" value="parameterValue" />] </jsp:params>] [<jsp:fallback>text message for user that can no see the plugin </jsp:fallback> ] </jsp:plugin> 這些屬性的說明如下: Type: 指定被執(zhí)行的java程序的類型,是一個bean還是一個applet Code: 指定被執(zhí)行的文件名,該屬性值必須以“.class”擴展名結(jié)尾 Codebase: 指定被執(zhí)行的文件目錄。 Name: 給該程序起一個名字用來標識該程序。 Archive: 指向一些要預(yù)先載入的將要使用到的類的路徑。 Hspace,Vspace: 顯示左右上下的留白。 jreversion: 能正確運行改程序必須的JRE版本。 Nsplugin,ieplugin: Netscape Navigator, Internet Exploer 下載運行所需JRE 的地址。 <jsp:fallback>指令:當不能正確顯示該applet時,代替顯示的提示信息。 5、 param指令 param指令用于設(shè)置參數(shù)值,這個指令本身不能單獨使用,因為單獨使用沒有意義。它可以和以下幾個指令合起來使用 jsp:include jsp:forward jsp:plugin |
|
來自: 昵稱22369024 > 《IT技術(shù)》