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