JSP指令碼元素

逸卿發表於2014-04-13
為了更好的理解JSP,我從網上收集了有關JSP指令碼元素的相關資料如下:

指令碼元素:將Java程式碼插入到與jsp頁面對應的servlet(n.小服務程式)中

JSP指令碼元素的3種形式:1.表示式,2.Scriptlet(n.小指令碼),3.宣告。

------------------------------------------------------------------------------------------
1.JSP表示式標準語法:

   <%=JAVA表示式 %>     如: <%=a+b%>    <%-- 輸出a+b的值 --%>
   

   JSP表示式xml語法:

   <jsp:expression>JAVA表示式</jsp:expression>    如: <jsp:expression>a+b</jsp:expression>

2.JSP表示式後面不加分號;

3.操作後的結果將轉換為字串,插入到當前servlet(n.小指令碼)的輸入流中

4.JSP表示式將生成Servlet(n.小指令碼)的print語句,HTML轉換為print語句時,使用雙引號將文字引起來。

  JSP表示式轉換為沒有雙引號的print語句。

5.這些語句都會放入_jspService方法中,無論doGet還是doPost都呼叫該_jspService方法。
------------------------------------------------------------------------------------------

Scriptlet(指令碼段): 將Java程式碼插入到servlet(n.小指令碼)的_jspService方法中。

 1,Scriptlet標準語法:

  <%java程式碼 %>


 Scriptlet的xml語法格式:

  <jsp:scriptlet> scriptlet </jsp:scriptlet>

 2,scriptlet語句後面要加分號。

 3,Scriptlet可以訪問到表示式能夠訪問的所有自動定義變數。

 4,Scriptlet程式碼會按出現的次序插入到_jspService方法中。

 5,在Scriptlet中宣告的變數都轉譯為_jspService方法中的本地變數。所以變數是執行緒安全的。
------------------------------------------------------------------------------------------

宣告(declaration):將方法或欄位定義插入到servlet類的主定義體中(_jspService方法除外)。

 1,宣告的語法:

  <%!可在此處進行變數、類、方法的宣告%>


 宣告的xml語法格式:

  <jsp:declaration>可在此處進行變數、類、方法的宣告</jsp:declaration>

 2,宣告只在當前JSP頁面中有效。

 3,宣告不產生輸出。


 4,不要使用JSP宣告覆蓋Servlet的(service方法)。

 5,可以使用JSP宣告覆蓋jspInit或jspDestroy方法來初始化和銷燬JSP頁面,而不要直接使用init和destroy方法。

 注意:這裡是jspInit和jspDestroy而不是_jspInit和_jspDestroy方法。

 JSP容器會在呼叫_jspInit和_jspDestroy方法後呼叫自定義的jspInit和jspDestroy方法。
------------------------------------------------------------------------------------------

表示式,Scriptlet,宣告的比較
 
 語法:

  Scriptlet 和 宣告都是java語句,而JSP表示式只是表示式。一個完整的語句需要分號表示結束,而表示式不需要。

 Java程式碼插入位置:

  表示式:    _jspService方法的輸出流的print方法中;

  Scriptlet : _jspService方法體中對應的位置。

  宣告:       servlet類的主定義體中(_jspService方法除外);

 變數訪問範圍:

  表示式:    可以訪問serlvet類中的類的域和_jspService方法中的區域性變數。

  Scriptlet:    同表示式。

  宣告:    不能訪問宣告外的區域性變數,比如_jspService方法中的區域性變數(隱含物件)。

 執行緒安全性:

  表示式和Scriptlet是執行緒安全的。

  宣告是執行緒不安全的。

------------------------------------------------------------------------------------------

相關文章