1. 三個偽指令
1.1 <%@ page%>
語法: <%@ page attribute=”value” attribute=”value” … %>
屬性:
language=”java”,目前僅java
extends=”classeName”,指定當前jsp應該作為哪個超類的子類,一般不用設置
import=”importList”,引入jsp中要用到類
session=”true|false”,指定jsp頁面是否需要一個session,默認true。一般不用設置
buffer=”none|size”,描述jsp采用的輸出緩存模型,默認8k,一般不用設置。與aotoFlus和配合使用
aotoFlush=”true|false”
isThreadSafe=”true|false”,默認true, 一般不用設置
info=”info_text”,jsp頁面的一些描述性信息,可以用servlet的getServletInfo()得到
contentType=”ctinfo”,請求應用返回一個HTTP Content-Type頭標,一般為contentType=”type/subtype; charset=charset”,例如:<%@ page contentType=”text/html; charset=utf-8” %>
errorPage=”error_url”,指定如果該jsp頁面出錯將顯示那個頁面
isErrorPage=”true|false”,如果為true則聲明了該頁面是其它jsp頁面出錯后顯示的頁面
1.2 <%@ include%>
語法: <%@ include file=”filename” %>
說明:filename必須是相對的URL文檔,即只能包含路徑信息,沒有協議或服務器信息。以“/”開始,被認為是相對servlet上下文根的絕對路徑。否則,文件名被認為是相對于當前JSP頁面的。
在JSP被容器轉換成servlet前首先將filename中的文本復制到相應位置,然后再轉換為servlet。如果當前JSP頁面中存在多個<%@ include%>偽指令,則根據出現的前后順序依次復制過來。
1.3 <%@ taglib%>
語法:<%@ taglib url=”tagLIbraryURL” prefix=”tagPrefix” %>
啟用已經定義過的一個標簽庫
tagLIbraryURL:標簽庫描述器的url
tagPrefix:用于標識在頁面后面部分使用定制標簽的唯一前綴
例如:如果abc.tld定義了一個名為table的標簽,那么我們可以
<%@ taglib url=”/tlds/abc.tld” prefix=”ft” %>
然后就可以用該標簽<ft:table> …</ft:table>
2. 兩種注釋
<%-- 僅jsp可見 --%>
<!-- html中也可見 -->
3. 表達式
<%= exp%>
4. scriptliet: 多個jsp語句的集合
<% statement;[statement;…]%>
scriptliet在servlet中的service() 方法中
5. 聲明
<%! statement;[statement;…]%>
聲明在servlet中的service() 方法之外,注意與scriptliet區別
6. 隱含變量
request(常用)
response(常用)
pageContext
session(常用)
application
out(常用)
config
page
exception
7. 標準行為
7.1. 概念
行為是創建、修改或使用對象的高層jsp元素。行為遵守嚴格的xml語法:
<tagname [attr=”value” attr=”value”…]>…</tagname>
如果沒有行為主體可簡化為:<tagname [attr=”value” attr=”value”…] / >
7.2. 7種標準行為標簽
<jsp:useBean>…< /jsp:useBean >
<jsp:setProperty … />
<jsp:getProperty … />
<jsp:include >…</jsp: include >
語法:<jsp:include page=”resourcename” flush=”true” />
說明: resourcename 路徑規則同<%@ include%>
表達式語法:<jsp:include page=”<%= jspfile %>” flush=”true” />
向被調用的jsp頁面傳遞參數:
<jsp:include page=”pageName” flush=”true”>
<jsp:parm name=”parm1Name” value=”parm1Value” />
<jsp:parm name=”parm2Name” value=”parm2Value” />
</jsp:include>
<jsp:forward>…</jsp: forward >
<jsp:param>…</jsp: param >
<jsp:plugin>…</jsp: plugin >
7.3. <jsp:include >…</jsp: include >與<%@ include%>的區別
<%@ include%>偽指令:用于在JSP源碼被轉換成JavaServlet源碼和被編譯前將靜態文本復制到其中。也就是在JSP中出現<%@ include%>的地方將<%@ include%>所包含的文件內容直接拷貝到此處,以此實現將變化和不變化的代碼分離。典型情況下,文本為HTML代碼,但它可以是在JSP頁面內顯示的任何內容。
<jsp:include … />行為:使得servlet引擎調用另一URL,生成帶有最初JSP頁面的輸出。
在構建一種思維模式的關鍵一點是<%@ include%>偽指令在編譯時只執行一次,而<jsp:include >行為每次進行請求時都執行。<jsp:include >行為更像一個C語言的函數調用,因為在Tomcat編譯后的源碼中可以看見將<jsp:include >翻譯為:pageContext.include(“resourcename”)。
此外還必須注意包含與被包含文件之間命名的沖突問題。
8. 標簽擴展
除了以上7種標準行為的基本標簽外,可以自由的擴展標簽
步驟:1)定義標簽
2)編寫標簽庫描述器的接口(創建TLD入口)
3)編寫標簽處理器
4)在JSP頁面中使用標簽
9. JSP與XML
9.1. DTD(文檔類型定義,Document Type Definition): 用來定義XML元素及其規則
9.2. XML解析器
1) DOM(Document Object Module) 文檔對象模型
2) SAX(Simple API for XML) XML的簡單API
SAX 較 DOM有很多優點
可以使用XSLT處理器和XSL樣式單轉換XML
posted on 2005-09-25 15:25
落花飛雪 閱讀(2295)
評論(0) 編輯 收藏 所屬分類:
J2EE