JSP基礎

weixin_34050427發表於2017-04-17

指令標示

指令標示在伺服器解釋並執行,在客戶端不可見。使用指令標示可以按照指令的設定執行動作和設定整個JSP頁面範圍內有效的屬性

<%@ 指令名稱 屬性1="屬性值" 屬性2="屬性值" ... %>

指令名稱有

  1. page
    page指令除了import屬性,其他只能在指令中出現一次。
  • language="java"
  • contentType="mimeType;charset=CHARSET"
  • import="java.util.Date,java.util.*" 多個包使用 , 隔開
    ......
  1. include
    在使用指令的位置嵌入其他檔案(比如另一個jsp檔案)
  • file="檔案絕對路徑或相對路徑"
    檔案的路徑不支援任何表示式,只能使用確定的路徑。如果以 /
    開頭說明是絕對路徑,否則是相對路徑
  1. taglib
    使用基本標識或自定義標識完成特殊功能

      <%@ taglib uri="tagURI" prefix="tagPrefix" %>
    
  • uri屬性描述了標籤描述符,它是對標籤描述檔案(*.tld)的對映.
  • prefix屬性指定了一個在頁面中使用有uri屬性指定的標籤庫的字首,不能為jsp、jspx...

指令碼標識

包括宣告標識、JSP表示式和指令碼程式

  1. JSP表示式

<%=變數或有返回值的方法或Java表示式>

    下面這個例子輸出name的值
    <%String name="dad"; %>
    <%=name%>
    
在轉換為servlet過程中會轉換為out.print(),值得注意的是表示式中不能有分號
  1. 宣告標識
    在JSP頁面中宣告變數或方法,類似與在類中定義變數和方法

<%! 變數宣告或方法的程式碼 %>

  1. 指令碼程式
    在指令碼程式中可以定義變數、呼叫方法和進行各種表示式運算,這裡定義的變數是區域性變數每行語句後都要有分號

註釋

HTML註釋中仍然可以插入JSP表示式、宣告標識、指令碼程式。在HTML原始碼可見

  • 隱藏註釋
    <%--註釋內容--%>
    只在伺服器端可見,其內部不能插入表示式等
  • 指令碼程式中的註釋
    和Java中的註釋相同

動作標識

<動作標識名稱 屬性1="值1" 屬性2="值2" />

<動作標識名稱 屬性1="值1" 屬性2="值2" >
<子動作 屬性1="值1" 屬性2="值2" />
</動作標識名稱>

用來實現特殊功能,如請求轉發,在當前頁面包含其他檔案,在頁面中建立一個JavaBean例項等。
常見表示動作有

  • <jsp:include>
  • <jsp:forward>
  • <jsp:param>
  • <jsp:useBean>
  • <jsp:setProperty>
  • <jsp:getProperty>
  • <jsp:fallback>
  • <jsp:plugin>
  1. <jsp:include>
    對應於當前的頁面包含其他的檔案
    <jsp:include page="被包含檔案的路徑" flush="true|false" />
    還可以向被包含的動態頁面傳遞引數

     <jsp:include page="被包含檔案的路徑" flush="true|false">
             <jsp:param name="引數名稱",value="引數值" />
     </jsp:include>
    
    • page指出被包含頁面的路徑,可以使用表示式
    • flush表示緩衝區滿時是否重新整理緩衝區
      <jsp:include>和includez的指令的區別:
  2. 使用include,被包含檔案被原封不動的插入。JSP再進行翻譯,只生成一個檔案。使用<jsp:forward>,程式將請求轉發到被包含的頁面,並將執行結果輸出到瀏覽器,會生成兩個檔案。

  3. include若改變了被包含檔案就要被重新編譯,而<jsp:forward>本來就是兩個檔案。

相關文章