指令標(biāo)示
指令標(biāo)示在服務(wù)器解釋并執(zhí)行,在客戶端不可見。使用指令標(biāo)示可以按照指令的設(shè)置執(zhí)行動作和設(shè)置整個JSP頁面范圍內(nèi)有效的屬性
<%@ 指令名稱 屬性1="屬性值" 屬性2="屬性值" ... %>
指令名稱有
- page
page指令除了import屬性,其他只能在指令中出現(xiàn)一次。
- language="java"
- contentType="mimeType;charset=CHARSET"
- import="java.util.Date,java.util.*" 多個包使用 , 隔開
......
- include
在使用指令的位置嵌入其他文件(比如另一個jsp文件)
- file="文件絕對路徑或相對路徑"
文件的路徑不支持任何表達(dá)式,只能使用確定的路徑。如果以 /
開頭說明是絕對路徑,否則是相對路徑
-
taglib
使用基本標(biāo)識或自定義標(biāo)識完成特殊功能<%@ taglib uri="tagURI" prefix="tagPrefix" %>
- uri屬性描述了標(biāo)簽描述符,它是對標(biāo)簽描述文件(*.tld)的映射.
- prefix屬性指定了一個在頁面中使用有uri屬性指定的標(biāo)簽庫的前綴,不能為jsp、jspx...
腳本標(biāo)識
包括聲明標(biāo)識、JSP表達(dá)式和腳本程序
- JSP表達(dá)式
<%=變量或有返回值的方法或Java表達(dá)式>
下面這個例子輸出name的值
<%String name="dad"; %>
<%=name%>
在轉(zhuǎn)換為servlet過程中會轉(zhuǎn)換為out.print(),值得注意的是表達(dá)式中不能有分號
- 聲明標(biāo)識
在JSP頁面中聲明變量或方法,類似與在類中定義變量和方法
<%! 變量聲明或方法的代碼 %>
- 腳本程序
在腳本程序中可以定義變量、調(diào)用方法和進行各種表達(dá)式運算,這里定義的變量是局部變量每行語句后都要有分號
注釋
HTML注釋中仍然可以插入JSP表達(dá)式、聲明標(biāo)識、腳本程序。在HTML源代碼可見
- 隱藏注釋
<%--注釋內(nèi)容--%>
只在服務(wù)器端可見,其內(nèi)部不能插入表達(dá)式等 - 腳本程序中的注釋
和Java中的注釋相同
動作標(biāo)識
<動作標(biāo)識名稱 屬性1="值1" 屬性2="值2" />
或
<動作標(biāo)識名稱 屬性1="值1" 屬性2="值2" >
<子動作 屬性1="值1" 屬性2="值2" />
</動作標(biāo)識名稱>
用來實現(xiàn)特殊功能,如請求轉(zhuǎn)發(fā),在當(dāng)前頁面包含其他文件,在頁面中創(chuàng)建一個JavaBean實例等。
常見表示動作有
- <jsp:include>
- <jsp:forward>
- <jsp:param>
- <jsp:useBean>
- <jsp:setProperty>
- <jsp:getProperty>
- <jsp:fallback>
- <jsp:plugin>
-
<jsp:include>
對應(yīng)于當(dāng)前的頁面包含其他的文件
<jsp:include page="被包含文件的路徑" flush="true|false" />
還可以向被包含的動態(tài)頁面?zhèn)鬟f參數(shù)<jsp:include page="被包含文件的路徑" flush="true|false"> <jsp:param name="參數(shù)名稱",value="參數(shù)值" /> </jsp:include>
- page指出被包含頁面的路徑,可以使用表達(dá)式
- flush表示緩沖區(qū)滿時是否刷新緩沖區(qū)
<jsp:include>和includez的指令的區(qū)別:
使用include,被包含文件被原封不動的插入。JSP再進行翻譯,只生成一個文件。使用<jsp:forward>,程序?qū)⒄埱筠D(zhuǎn)發(fā)到被包含的頁面,并將執(zhí)行結(jié)果輸出到瀏覽器,會生成兩個文件。
include若改變了被包含文件就要被重新編譯,而<jsp:forward>本來就是兩個文件。