jsp的常用指令有哪些
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="*"] [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 類,需要繼承的父類,或者需要實現的接口的全限定類名。*屬性,用來導入包,下面幾個包是默認自動導入的,不需要顯式導入。
默認導入的包有: *.* *t.* *.* *.**n屬性,設定這個 JSP 頁面是否需要 HTIP session 。*屬性,指定輸出緩沖區的大小。
輸出緩沖區的 JSP 內部對象: out 用于緩存 JSP頁面對客戶瀏覽器的輸出,默認值為 8kb,可以設置為 none ,也可以設置為其他值,單位為*ush屬性,當輸出緩沖區即將溢出時,是否需要強制輸出緩沖區的內容。設置為true 時為正常輸出;如果設置為 false ,會在 buffer 溢出時產生一個異常。
*屬性,設置該 JSP 程序的信息,也可以看做其說明,可以通過 Servlet. getServletInfo()方法獲取該值。如果在 JSP 頁面中,可直接調用 getServletInfoO方法獲取該值,因為 JSP 頁面的實質就是 Servlet 。
errorPage屬性,指定錯誤處理頁面。如果本程序產生了異常或者錯誤,而該 JSP 頁面沒有對應的處理代碼,則會自動調用該指令所指定的 JSP 頁面。
使用 JSP 頁面時,可以不處理異常,即使是 checked 異常。(重定向到對應的錯誤處理頁面,但是URL還是原來的URl,并不發生變化)如果這個頁面不存在這個屬性,那么一旦代碼出現問題,就會在開發環境和IE瀏覽器上提示錯誤。
可見這條屬性控制異常處理的效果在表現形式上要好的多。*rPage屬性,設置本 JSP 頁面是否為錯誤處理程序。
如果該頁面本身己是錯誤處理頁面,則無須使用 errorPage 屬性。*tType屬性,用于設定生成網頁的文件格式和編碼方式,即 MIME 類型和頁面字符集類型,默認的 MIME 類型是 text/html; 默認的字符集為 ISO-8859-1 。
2、 include指令 使用 include 指令,可以將一個外部文件嵌入到當前 JSP 文件中,同時解析這個頁面中的 JSP 語句(如果有的話)。這是個靜態的 include 語旬,不會檢查所包含 JSP 頁面的變化。
include 既可以包含靜態的文本,也可以包含動態的 JSP 頁面。靜態的編譯指令include ,是將被包含的頁面加入進來,生成一個完整的頁面。
include 編譯指令的語法:〈% @include file="relativeURLSpec" %〉 如果被嵌入的文件經常需要改變,建議使用操作指令,因為它是動態的 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 ,使用如下語法: }” /> 可使用如下語法:}”> {} 第二種語法用于在轉發時增加額外的請求參數。增加的請求參數的值可以通過HttpServletRequest 類的 getParameter方法獲取。
2、 include指令,它是一個動態的指令,可以用于導入某個頁面。它的導入會每次檢查被導入頁面的改變。
下面是include指令的使用格式:}” flush=”true” /> 或者:}” flush=”true”> flush 屬性用于指定輸出緩存是否轉移到被導入文件中。如果指定為劇。
則包含在被導入文件中;如果指定為false,則包含在原文件中。對于JSP 1.1以下的舊版本,只能設置為false。
和分別為靜態導入和動態導入。他們的的區別:靜態導入是將被導入頁面的代碼完全插入,兩個頁面生成一個整體的 Servlet; 而動態導入則在 Servlet 中使用動態導入,從而將頁面引入。
3、 useBean、setProperty和getProperty指令 這三個指令都是與JavaBean相關的指令,其中useBean用于在jsp頁面初始化一個java實例,setProperty用于修改JavaBean實例的屬性,getProperty用于獲取JavaBean實例的屬性。useBean的語法格式:Id是JavaBean的實例名,class屬性確定JavaBean的實現類。
Scope屬性確定生存范圍【頁面、請求、會話、應用】 setProperty的語法格式:Name屬性確定需要設定4、 plugin指令 plugin 。
java中JSP語句的編寫
在jsp中應該是不可以寫方法吧?
即不能寫public **** test*(){}之類的。
只能是
<%
int n = 20;
Long result = 1L;
for(int i=1;i<=n;i++){
result = i * result;
}
*n(result);//或者可寫在<%%>;范圍外。但需要這樣表示:結果<%=result%>
%>