javascript
JSP编译指令
page指令
? page指令作用于整個JSP頁面,其定義了與頁面相關的一些屬性,這些屬性將被用于和JSP服務器進行通信。
? page指令的語法如下:
? <%@ page屬性1=“屬性值” 屬性2=“屬性值”……%>
? 其XML形式為:<jsp:directive.page屬性1=“屬性值” 屬性2=“屬性值” …/>
? page指令有13個屬性。
(1)language="scriptingLanguage"
? 該屬性用于指定在腳本元素中使用的腳本語言,默認值是java。
(2)extends="className"
? 該屬性用于指定JSP頁面轉換后的Servlet類所繼承的父類,屬性的值是一個完整的類名。
(3) import="importList"
? 該屬性用于聲明在JSP頁面中可以使用的Java類。屬性的值和Java程序中的import聲明類似,該屬性的值是以逗號分隔的導入列表,例如:
? <%@ pageimport="java.util.Vector" %>
? <%@ page import="java.io.*" %>
? 要注意的是,page指令中只有import屬性可以重復使用。如果不寫該屬性,import默認引入以下4個包:java.lang.*,javax.servlet.*,javax.servlet.jsp.*和javax.servlet.http.*。
(4)session="true|false"
? 該屬性用于指定在JSP頁面中是否可以使用session對象,默認值是true。
(5)buffer="none|sizeKB"
? 該屬性用于指定out對象使用的緩沖區大小,如果設置為none,將不使用緩沖區,所有的輸出直接通過ServletResponse的PrintWriter對象寫出。該屬性的值以KB為單位,默認值是8KB。
(6)autoFlush="true|false"
? 該屬性用于緩沖區滿時,緩存的輸出是否應該自動刷新。如果設置為false,當緩沖區溢出的時候,一個異常將被拋出。默認值為true。
(7)isThreadSafe="true|false"
? 該屬性用于指定對JSP頁面的訪問是否是線程安全的。如果設置為true,則向JSP容器表明這個頁面可以同時被多個客戶端請求訪問。默認值是true。
(8) info="info_text"
? 該屬性用于指定頁面的相關信息,該信息可以通過調用Servlet接口的getServletInfo()方法來得到。
(9) errorPage="error_url"
? 該屬性用于指定當JSP頁面發生異常時,將轉向哪一個錯誤處理頁面。
? 注意:如果一個頁面通過使用該屬性定義了錯誤頁面,那么在web.xml文件中定義的任何錯誤頁面將不會被使用。
(10) isErrorPage="true|false"
? 該屬性用于指定當前的JSP頁面是否是另一個JSP頁面的錯誤處理頁面。默認值是false。
(11)contentType="type"
? 該屬性指定用于響應的JSP頁面的MIME類型和字符編碼,中文頁面中必須要設置。例如:<%@page contentType="text/html;charset=gb2312" %>
(12) pageEncoding="peinfo"
? 該屬性指定JSP頁面使用的字符編碼。如果設置了這個屬性,則JSP頁面的字符編碼使用該屬性指定的字符集,如果沒有設置這個屬性,則JSP頁面使用contentType屬性指定的字符集,如果這兩個屬性都沒有指定,則使用字符集“ISO-8859-1”。
(13)isELIgnored="true|false"
? 該屬性用于定義在JSP頁面中是否執行或忽略EL表達式。如果設置為true,EL表達式將被容器忽略,如果設置為false,EL表達式將被執行。
? 注意:無論將page指令放在JSP文件的哪個位置,它的作用范圍都是整個JSP頁面。
? 為了JSP程序的可讀性,以及養成良好的編程習慣,應該將page指令放在JSP文件的頂部。
.include指令
? include指令用于在JSP頁面中靜態包含一個文件,該文件可以是JSP頁面、HTML網頁、文本文件或一段Java代碼。使用了include指令的JSP頁面在轉換時,JSP服務器會在指令出現的位置插入所包含文件的文本或代碼。
? include指令的語法為:
? <%@ include file="relativeURL"%>
? XML語法格式的include指令為:
? <jsp:directive.include? file="relativeURL"/>
? 其中file屬性值為相對于當前JSP文件的URL。
例:<%@page contentType="text/html;charset=gb2312" %>
<html>
<head><title>歡迎你</title></head>
?<body>
?歡迎你,現在的時間是
?<%@ include file="date.jsp" %>
?</body>
?</html>
?date.jsp:
?<% out.println (new java.util.Date (). toLocaleString ()); %>
- 使用include編譯指令的好處:
可以將一個復雜的JSP頁面分割成若干個簡單的、能進行單獨處理的部分。這種方式大大增強了JSP頁面的管理性和靈活性及擴展型。當要修改頁面時,可以只單獨對要修改的包含文件進行修改即可。
- 注意事項:
? 1)在test1.jsp中進行 <%@ include file="test2.jsp" %>出現錯誤。
錯誤為:Multiple annotations found at this line:
- Duplicate local variable path
- Duplicate local variable
解決方法:
法I:將test2.jsp中的path和basepath改為其他名字?
法II:將test2.jsp中的path和basepath刪除
taglib指令
? taglib指令允許頁面使用用戶自定義的標記。taglib指令的語法如下:
? <%@ taglib (uri="tagLibraryURI"| tagdir="tagDir")prefix="tagPrefix"%>
? XML語法的格式為:
? <jsp:directive.taglib (uri="tagLibraryURI"| tagdir="tagDir")prefix="tagPrefix"/>
taglib指令的三個屬性:
(1) uri
? 該屬性惟一地標識和前綴(prefix)相關的標簽庫描述符,可以是絕對或者相對的URI。這個URI被用于定位標記庫描述符的位置。
(2)tagdir
? 該屬性指示前綴(prefix)將被用于標識安裝在/WEB-INF/tags/目錄或其子目錄下的標簽文件。
(3)prefix
? 定義一個prefix:tagname形式的字符串前綴,用于區分多個自定義標簽。以jsp:,jspx:,java:, javax:,servlet:,sun:和sunw:開始的前綴被保留。前綴的命名必須遵循XML名稱空間的命名約定。
? 在JSP2.0規范中,空前綴是非法的。
總結
- 上一篇: Hadoop64位版本安装后遇到的警告处
- 下一篇: gradle idea java ssm