JSP(IAVA SERVER PAGES)是由Sun 公司在java語言上開發出來的一種動態網頁製作技術,其可使您可以將網頁中的動態部分和靜態HTML相分離。您可以使用平常得心應手的工具並按照平常的方式來書寫HTML語句。然後,將動態部分用特殊的標記嵌入即可,這些標記常常以“<%”開始並以“%>”結束。例如,這兒有一個JSP頁面:
<html>
<head><title>jsp教程</title></head>
<body>
<I><%out.println(“hello world”);%></I>
</body></html>
它將輸出“hello world”。
通常,您要將檔案以“.jsp”為副檔名,並將它放置到任何您可以放置普通WEB頁面的路徑下。儘管JSP檔案看起來更象是HTML檔案而不是Servlet檔案,但,事實上,它恰恰將轉換為Servlet檔案,其中的靜態HTML僅僅用來輸出Servlet服務方法返回的資訊。如果JSP pages 已經被轉換為Servlet且Servlet 被編譯進而被裝載(在第一次被Request時),當您再次Request 此JSP頁面時,將察覺不到一瞬的延遲。也請留意這個現象,一些Web Servers允許您為它定義別名,從而,好象一個URL是指向一個HTML,但事實上它指向的是一個Servlet 或JSP pages.
構造一個JSP page,除了可內嵌的規則的HTML,還有三類主要的JSP元素:Scripting elements,Directives,和 Actions.使用Scripting elements您可以定義最終轉換為Servlet的部分,Directives 使您可以控制這個Servlet的整體結構,而Actions使您可以指定可重用的已有組件,另外,還可控制JSP引擎的運行。為了簡化Scripting elements,您可以在某一段上利用一些預定義的變數,如request。
本教程式是以JSP1.1版本進行講解的。其文法概括如下表,其詳細使用在隨後的課程中詳細講解.
JSP 元素 |
文法 |
解釋 |
JSP Expression |
<%= 運算式 %> |
Expression 用於計算並用於輸出。 <jsp:expression>運算式</jsp:expression>,可使用的預定義的變數有request, response, out, session, application, config, and pageContext(在Sriptlets中也可使用)。 |
JSP Scriptlet |
<% 代碼 %> |
插入用於服務的代碼。 <jsp:scriptlet>代碼</jsp:scriptlet> |
JSP Declaration |
<!% 代碼 %> |
屬於Servlet部分的代碼但並不是服務方法。 <jsp:declaration>代碼</jsp:declaration> |
JSP page Directive |
<%@ page att=”val” %> |
指向Servlet引擎的路徑。 <jsp:directive.page att="val"\>. 以下是其合法的屬性(預設值加粗): import="package.class" contentType="MIME-Type" isThreadSafe="true|false" session="true|false" buffer="sizekb|none" autoflush="true|false" extends="package.class" info="message" errorPage="url" isErrorPage="true|false" language="java" |
JSP include Directive |
<%@ include file =”URL” %> |
當JSP page被翻譯成Servlet 時將被包含進去的本地系統上的檔案。 <jsp:directive.include file=”URL”\> 這個URL必須是相對的。當頁面被請求時才用 “jsp:include action”調入。 |
JSP 注釋 |
<%-- 注釋--%> |
當JSP 轉換為Servlet 時將被忽略。 <-- 注釋 --> |
The JSP:include Action |
<jsp:include page=”relative URL” flush=”true”/> |
在頁面被請求(Requested)時調入檔案。 如果您想要在頁面被轉化(Translated)時將檔案包含進來,則,請使用上面所提到的directive來代替。警告:在一些伺服器上(Servers),被包含的檔案只能是HTML或JSP,一般以檔案的尾碼名來判定。 |
The jsp:useBean Action |
<jsp:useBean att=val*/>或<jsp:useBean att=val*> ….. </jsp:useBean> |
尋找或產生一個Java Bean. 可能的屬性是: id="name" scope="page|request|session|application" class="package.class" type="package.class" beanName="package.class" |
The jsp:setProperty Action |
<jsp:setProperty att=val*/> |
設定bean的屬性,通過明確的指定或使用request得到的參數。 合法的屬性: name="beanName" property="propertyName|*" param="parameterName" value="val” |
The jsp:getProperty Action |
<jsp:getProperty name=”propertyName” value=”val”/> |
檢索並輸出bean的屬性。 |
The jsp:forward Action |
<jsp:forward page=”relative URL”/> |
向前請求(request)另一個頁面。 |
The jsp:plugin Action |
<jsp:plugin attribute=”value”*> </jsp:plugin> |
產生特定的瀏覽器的OBJECT 或EMBED標籤,用來明確運行Applet所 使用的JAVA外掛程式(plugin)。 |