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