程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JSP指令總結

JSP指令總結

編輯:關於JAVA
 

JSP指令用來聲明JSP頁面的一些屬性,例如編碼格式、文檔類型等。這些指令用來告知JSP引擎如何處理該JSP頁面。經常使用的編譯指令有以下三個:

  • page指令:該指令是針對當前頁面屬性的指令;
  • include指令:用於指定包含另一個頁面;
  • taglib指令:用於定義和訪問自定義標簽。

使用編譯指令的語法格式如下:

<%@ 編譯指令名 屬性名=“屬性值”...%>

現在就分別對以上三個編譯指令進行總結。對於taglib指令,將在後續的自定義標簽庫文章中再詳細總結。

 

page指令

page指令是最常用的指令,用來聲明JSP頁面的屬性等。比如:

<%@ page language="java" contentType="text/html"; charset="utf-8" %>

需要注意的是,任何page允許的屬性都只能出現一次,否則會出現編譯錯誤;import屬性除外,import可以多次出現。

我們可以在page指令中設置以下的屬性:

屬性名稱 取值范圍 描述 language java 指定解釋該JSP文件時采用的語言,默認為java extends 任何類的全名(包含包名) 指定JSP頁面編譯所產生的Java類所繼承的父類,或所實現的接口 import 任何類名、包名 引入該JSP中用到的類、包等。JSP會默認導入四個包:java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.http session true、false 指明該JSP頁面是否內置Session對象。如果為true,則內置Session對象;否則不內置Session對象。默認為true buffer none、數字+kb 指定緩存大小。當autoFlush為true時有效 autoFlush true、false 是否運行緩存。如果為true,則使用out.println()等方法輸出的字符串並不是立刻到達客戶端的,而是暫存在緩存中;當緩存滿、程序執行完畢或者執行out.flush()操作時才到客戶端。默認為true isThreadSafe true、false 用來設置JSP頁面是否可以多線程訪問。當設置為true時,JSP頁面能同時響應多個客戶的請求;當設置為false時,JSP頁面同一時刻只能響應一個客戶的請求,其他客戶需要排隊等待。默認值為true info 任意字符串 指明JSP的信息。該信息可以通過Servlet.getServletInfo()方法獲得 errorPage 某個JSP頁面的相對路徑 指明一個錯誤顯示頁面。如果該JSP程序拋出了一個未捕獲的異常,則轉到errorPage指定的頁面。errorPage指定的頁面通常isErrorPage屬性為true,且內置的exception對象為未捕獲的異常 contentType 合法的文檔類型 客戶端根據該屬性判斷文檔類型,具體的請參見這裡 pageEncoding 指定生成網頁的編碼字符集 JSP文件本身的編碼,將JSP翻譯成Java源碼時,就是根據pageEncoding的編碼格式讀取的 isErrorPage true、false 設置JSP頁面是否為錯誤處理頁面;如果該頁面本身已是錯誤處理頁面,則通常無須指定errorPage屬性

 

include指令

使用include指令,可以將一個外部文件嵌入到當前的JSP文件中。編譯時,當前的JSP文件完全包含了被包含頁面的代碼。舉個例子說明:

頁面一(page1.jsp)主要代碼:

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page pageEncoding="UTF-8"%>

<body>
    <%
    out.println("這是頁面一");
    %>

    <%-- 這裡包含頁面二 --%>
    <%@ include file="page2.jsp" %>
</body>

頁面二(page2.jsp)主要代碼:

<%@ page pageEncoding="UTF-8"%>
<%out.println("這是頁面二");
%>

運行該程序,在生成class和java目錄下,我們都無法找到page2_jsp.class和page2_jsp.java。這說明頁面二還未經過編譯就已經添加到頁面一中了,這就好比直接將頁面二的代碼寫到頁面一中,請記住這一點,這將和後面總結到的include動作是截然相反的原理。

 

taglib指令

JSP支持標簽技術,使用標簽功能可以實現視圖代碼重用,很少量的代碼就能實現很復雜的顯示效果。由於taglib指令是一項非常重要的技術,我們可以自定義我們自己的標簽庫,後續總結自定義標簽庫中我再結合自定義的標簽庫一起總結taglib指令,這裡就不廢話了。

 

總結

都是很基礎的總結,隨便一本書都可以找到我這裡總結的內容;但是,自己親手總結一遍,對每個指令的每個屬性又加深了熟悉。就是這樣,每一次總結,都有收獲,誰說不是呢!!!生日快樂!!!

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved