jsp的常用指令有哪些(編譯指令/動作指令整理)

來源:互聯網
上載者:User

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 程式編譯時間所產生的 Java 類,需要繼承的父類,或者需要實現的介面的全限定類名。
1.import屬性,用來匯入包,下面幾個包是預設自動匯入的,不需要顯式匯入。預設匯入的包有: 複製代碼 代碼如下:java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*

2.Session屬性,設定這個 JSP 頁面是否需要 HTIP session 。
3.buffer屬性,指定輸出緩衝區的大小。輸出緩衝區的 JSP 內部對象: out 用於緩衝 JSP頁面對客戶瀏覽器的輸出,預設值為 8kb,可以設定為 none ,也可以設定為其他值,單位為kb
4.autoFlush屬性,當輸出緩衝區即將溢出時,是否需要強制輸出緩衝區的內容。設定為true 時為正常輸出;如果設定為 false ,會在 buffer 溢出時產生一個異常。
5.Info屬性,設定該 JSP 程式的資訊,也可以看做其說明,可以通過 Servlet. getServletInfo()方法擷取該值。如果在 JSP 頁面中,可直接調用 getServletInfoO方法擷取該值,因為 JSP 頁面的實質就是 Servlet 。
errorPage屬性,指定錯誤處理頁面。如果本程式產生了異常或者錯誤,而該 JSP 頁面沒有對應的處理代碼,則會自動調用該指令所指定的 JSP 頁面。使用 JSP 頁面時,可以不處理異常,即使是 checked 異常。(重新導向到對應的錯誤處理頁面,但是URL還是原來的URl,並不發生變化)如果這個頁面不存在這個屬性,那麼一旦代碼出現問題,就會在開發環境和IE瀏覽器上提示錯誤。可見這條屬性控制異常處理的效果在表現形式上要好的多。
6.IsErrorPage屬性,設定本 JSP 頁面是否為錯誤處理程式。如果該頁面本身己是錯誤處理頁面,則無須使用 errorPage 屬性。
7.ContentType屬性,用於設定產生網頁的檔案格式和編碼方式,即 MIME 類型和頁面字元集類型,預設的 MIME 類型是 text/html; 預設的字元集為 ISO-8859-1 。
2、 include指令
使用 include 指令,可以將一個外部檔案嵌入到當前 JSP 檔案中,同時解析這個頁面中的 JSP 語句(如果有的話)。這是個靜態 include 語旬,不會檢查所包含 JSP 頁面的變化。
include 既可以包含靜態文本,也可以包含動態 JSP 頁面。靜態編譯指令include ,是將被包含的頁面加入進來,產生一個完整的頁面。
include 編譯指令的文法:
〈% @include file="relativeURLSpec" %〉
如果被內嵌檔案經常需要改變,建議使用<jsp:include>操作指令,因為它是動態 include 語句。
包含include指令的jsp頁面在部署後,經過訪問編譯產生java檔案,在tomcat的 work\Catalina\localhost\project\org\apache\jsp目錄下會產生對應的java檔案,這些檔案與jsp的名字相同,他包含了編譯後的代碼,甚至include包含的另外一個jsp的代碼也被相應的加入了進來。

二、 動作指令
1、 forward指令:forward 指令用於將頁面響應控制轉寄給另外的頁面。既可以轉寄給靜態 HTML頁面,也可以轉寄到動態 JSP 頁面,或者轉寄到容器中的 Servlet。
JSP 的 forward 指令的格式如下:
對於 JSP 1. 0 ,使用如下文法: 複製代碼 代碼如下:<jsp:forward page=”{relativeURL |<%=expression%>}” />

可使用如下文法: 複製代碼 代碼如下:<jsp:forward page=”{relativeURL |<%=expression%>}”>
{<jsp:param…/>}
</jsp:forward>

第二種文法用於在轉寄時增加額外的請求參數。增加的請求參數的值可以通過HttpServletRequest 類的 getParameter方法擷取。

2、include指令,它是一個動態指令,可以用於匯入某個頁面。它的匯入會每次檢查被匯入頁面的改變。下面是include指令的使用格式: 複製代碼 代碼如下:<jsp:include page=”{relativeURL |<%=expression%>}” flush=”true” />

或者: 複製代碼 代碼如下:<jsp:include page=”{relativeURL |<%=expression%>}” flush=”true”>
<jsp:param name=”paramName” value=”paramValue”/>
</jsp:include>

flush 屬性用於指定輸出緩衝是否轉移到被匯入檔案中。如果指定為劇。則包含在被匯入檔案中;如果指定為false,則包含在原檔案中。對於JSP 1.1以下的舊版本,只能設定為false。
<include>和<jsp:include>分別為靜態匯入和動態匯入。他們的的區別:靜態匯入是將被匯入頁面的代碼完全插入,兩個頁面產生一個整體的 Servlet; 而動態匯入則在 Servlet 中使用動態匯入,從而將頁面引入。

3、 useBean、setProperty和getProperty指令
這三個指令都是與JavaBean相關的指令,其中useBean用於在jsp頁面初始化一個java執行個體,setProperty用於修改JavaBean執行個體的屬性,getProperty用於擷取JavaBean執行個體的屬性。
useBean的文法格式: 複製代碼 代碼如下:<jsp:useBean id=”” class=”” scope=”page | request |session | application” >

Id是JavaBean的執行個體名,class屬性確定JavaBean的實作類別。Scope屬性確定生存範圍【頁面、請求、會話、應用】
setProperty的文法格式: 複製代碼 代碼如下:<jsp:setProperty name=”” property=”” value=”” />

Name屬性確定需要設定

4、 plugin指令
plugin 指令主要用於下載伺服器端的 JavaBean 或 Applet 到用戶端執行。由於程式在用戶端執行,因此用戶端必須安裝虛擬機器。
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: 指定被執行的java程式的類型,是一個bean還是一個applet
Code: 指定被執行的檔案名稱,該屬性值必須以“.class”副檔名結尾
Codebase: 指定被執行的檔案目錄。
Name: 給該程式起一個名字用來標識該程式。
Archive: 指向一些要預先載入的將要使用到的類的路徑。
Hspace,Vspace: 顯示左右上下的留白。
jreversion: 能正確運行改程式必須的JRE版本。
Nsplugin,ieplugin: Netscape Navigator, Internet Exploer 下載運行所需JRE 的地址。
<jsp:fallback>指令:當不能正確顯示該applet時,代替顯示的提示資訊。

5、 param指令
param指令用於設定參數值,這個指令本身不能單獨使用,因為單獨使用沒有意義。它可以和以下幾個指令合起來使用
jsp:include
jsp:forward
jsp:plugin

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.