JSP 的語法

renegade發表於2006-12-19

JSP語法


★JSP語法(1)——HTML註釋

HTML 註釋
在客戶端顯示一個註釋.
JSP 語法
<!-- comment [ ] --&gt

例子 1
<!-- This file displays the user login screen --&gt
在客戶端的HTML原始碼中產生和上面一樣的資料:
<!-- This file displays the user login screen --&gt

例子 2
<!-- This page was loaded on --&gt
在客戶端的HTML原始碼中顯示為:
<!-- This page was loaded on January 1, 2000 --&gt

描述
這種註釋和HTML中很像,也就是它可以在"檢視原始碼"中看到。

唯一有些不同的就是,你可以在這個註釋中用表示式(例子2所示)。這個表達示是不定的,由頁面不同而不同,你能夠使用各種表示式,只要是合法的就行。


★JSP語法(2)——隱藏註釋

隱藏註釋
寫在JSP程式中,但不是發給客戶。
JSP 語法

例子:


A Comment Test

A Test of Comments


描述
用隱藏註釋標記的字元會在JSP編譯時被忽略掉。這個註釋在你希望隱藏或註釋你的JSP程式時是很有用的。

JSP編譯器不是會對之間的語句進行編譯的,它不會顯示在客戶的瀏覽器中,也不會在原始碼中看到在之間,你可以任意寫註釋語句,但是不能使用 "--%>",如果你非要使用請用"--%>".


★JSP語法(3)——宣告

宣告
在JSP程式中宣告合法的變數和方法

JSP 語法

例子



描述

宣告你將要在JSP程式中用到的變數和方法。你也必須這樣做,不然會出錯.
你可以一次性宣告多個變數和方法,只要以";"結尾就行,當然這些宣告在Java中要是合法的。

當你宣告方法或變數時,請注意以下的一些規則:
宣告必須以";"結尾(Scriptlet有同樣的規則,但是 表示式就不同了).

你可以直接使用在中被包含進來的已經宣告的變數和方法,不需要對它們重新進行宣告.

一個宣告僅在一個頁面中有效。如果你想每個頁面都用到一些宣告,最好把它們寫成一個單獨的檔案,然後用或元素包含進來。



★JSP語法(4)——表示式

表示式
包含一個符合JSP語法的表示式

JSP 語法

例子

.

描述
表示式元素表示的是一個在指令碼語言中被定義的表示式,在執行後被自動轉化為字串,然後插入到這個表達示在JSP檔案的位置顯示。因為這個表示式的值已經被轉化為字串,所以你能在一行文字中插入這個表示式(形式和ASP完全一樣).

當你在JSP中使用表示式時請記住以下幾點:

你不能用一個分號(";")來作為表示式的結束符.但是同樣的表示式用在scriptlet中就需要以分號來結尾了!檢視Scriptlet 這個表示式元素能夠包括任何在Java Language Specification中有效的表示式.

有時候表示式也能做為其它JSP元素的屬性值.一個表示式能夠變得很複雜,它可能由一個或多個表示式組成,這些表示式的順序是從左到右。


★JSP語法(5)——Scriptlet

Scriptlet
包含一個有效的程式段.

JSP 語法

例子

String name = null;
if (request.getParameter("name") == null)
{
%>

} else {
foo.setName(request.getParameter("name"));
if (foo.getName().equalsIgnoreCase("integra"))
name = "acura";
if (name.equalsIgnoreCase( "acura" )) {
%>


描述
一個scriptlet能夠包含多個jsp語句,方法,變數,表示式

因為scriptlet,我們便能做以下的事:

宣告將要用到的變數或方法(參考 宣告).
編寫JSP表示式(參考 表示式).
使用任何隱含的物件和任何用宣告過的物件
編寫JSP語句 (如果你在使用Java語言,這些語句必須遵從Java Language Specification,).
任何文字,HTML標記,JSP元素必須在scriptlet之外
當JSP收到客戶的請求時,scriptlet就會被執行,如果scriptlet有顯示的內容,這些顯示的內容就被存在out物件中。


★JSP語法(6)——Page指令

Page 指令
定義JSP檔案中的全域性屬性.
JSP 語法
[ language="java" ]

[ extends="package.class" ]

[ import="{package.class | package.*}, ..." ]

[ session="true | false" ]

[ buffer="none | 8kb | sizekb" ]

[ autoFlush="true | false" ]

[ isThreadSafe="true | false" ]

[ info="text" ]

[ errorPage="relativeURL" ]

[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]

[ isErrorPage="true | false" ]

%>

例子



描述
指令作用於整個JSP頁面,同樣包括靜態的包含檔案。但是指令不能作用於動態的包含檔案,比如

你可以在一個頁面中用上多個指令,但是其中的屬性只能用一次,不過也有個例外,那就是import屬性。因為import屬性和Java中的import語句差不多(參照Java Language),所以你就能多用此屬性幾次了.

無論你把指令放在JSP的檔案的哪個地方,它的作用範圍都是整個JSP頁面。不過,為了JSP程式的可讀性,以及好的程式設計習慣,最好還是把它放在JSP檔案的頂部.



★JSP語法(7)——Taglib指令

Taglib 指令
定義一個標籤庫以及其自定義標籤的字首.

JSP 語法

例子


.
.


描述
指令宣告此JSP檔案使用了自定義的標籤,同時引用標籤庫,也指定了他們的標籤的字首。

這裡自定義的標籤含有標籤和元素之分。因為JSP檔案能夠轉化為XML,所以瞭解標籤和元素之間的聯絡很重要。標籤只不過是一個在意義上被抬高了點的標記,是JSP元素的一部分。JSP元素是JSP語法的一部分,和XML一樣有開始標記和結束標記。元素也可以包含其它的文字,標記,元素。比如,一個jsp:plugin元素有開始標記和結束標記,同樣也可以有元素.

你必須在使用自定義標籤之前使用指令,而且你可以在一個頁面中多次使用,但是字首只能使用一次

屬性

uri="URIToTagLibrary"

Uniform Resource Identifier (URI)根據標籤的字首對自定義的標籤進行唯一的命名,URI可以是以下的內容:

Uniform Resource Locator (URL), 由 RFC 2396 定義, 檢視

Uniform Resource Name (URN), 由 RFC 2396定義

一個相對或絕對的路徑

prefix="tagPrefix"

在自定義標籤之前的字首,比如,在中的public,如果這裡不寫public,那麼這就是不合法的。請不要用jsp, jspx, java, javax, servlet, sun, 和sunw做為你的字首


★JSP語法(8)——


重定向一個HTML檔案,JSP檔案,或者是一個程式段.

JSP 語法
"} />
or
"} >
value="{parameterValue | }" />+

例子



描述
標籤從一個JSP檔案向另一個檔案傳遞一個包含使用者請求的request物件.標籤以下的程式碼,將不能執行.

你能夠向目標檔案傳送引數和值,在這個例子中我們傳遞的引數名為username,值為scott,如果你使用了

如果你使用了非緩衝輸出的話,那麼使用時就要小心。如果在你使用之前,jsp檔案已經有了資料,那麼檔案執行就會出錯.

屬性
page="{relativeURL | }"

這裡是一個表示式或是一個字串用於說明你將要定向的檔案或URL.這個檔案可以是JSP,程式段,或者其它能夠處理request物件的檔案(如asp,cgi,php).

+

向一個動態檔案傳送一個或多個引數,這個檔案一定是動態檔案.

如果你想傳遞多個引數,你可以在一個JSP檔案中使用多個


★JSP語法(9)——


獲取Bean的屬性值,用於顯示在頁面中

JSP 語法

例子


Calendar of

描述
這個元素將獲得Bean的屬性值,並可以將其使用或顯示在JSP頁面中.在你使用之前,你必須用建立它.

元素有一些限制:

你不能使用來檢索一個已經被索引了的屬性

你能夠和JavaBeans元件一起使用,但是不能與Enterprise

Bean一起使用。

屬性
name="beanInstanceName"

bean的名字,由指定

property="propertyName"

所指定的Bean的屬性名。

技巧:
在sun的JSP參考中提到,如果你使用來檢索的值是空值,那麼NullPointerException將會出現,同時如果使用程式段或表示式來檢索其值,那麼在瀏覽器上出現的是null(空).


★JSP語法(10)——


包含一個靜態或動態檔案.

JSP 語法

or

value="{parameterValue | }" />+

Examples





描述
元素允許你包含動態檔案和靜態,這兩種包含檔案的結果是不同的。如果檔案僅是靜態檔案,那麼這種包含僅僅是把包含檔案的內容加到jsp檔案中去,而如果這個檔案動態的,那麼這個被包含檔案也會被Jsp編譯器執行(這一切與asp相似)

你不能從檔名上判斷一個檔案是動態的還是靜態的,比如aspcn.asp

就有可能只是包含一些資訊而已,而不需要執行。能夠同時處理這兩種檔案,因此你就不需要包含時還要判斷此檔案是動態的還是靜態的.

如果這個包含檔案是動態的,那麼你還可以用

屬性
page="{relativeURL | }"
引數為一相對路徑,或者是代表相對路徑的表示式.

flush="true"

這裡你必須使用flush="true",你不能使用false值.預設值為false

+



★JSP語法(11)——


執行一個applet或Bean,有可能的話還要下載一個Java外掛用於執行它.

JSP 語法

type="bean | applet"

code="classFileName"

codebase="classFileDirectoryName"

[ name="instanceName" ]

[ archive="URIToArchive, ..." ]

[ align="bottom | top | middle | left | right" ]

[ height="displayPixels" ]

[ width="displayPixels" ]

[ hspace="leftRightPixels" ]

[ vspace="topBottomPixels" ]

[ jreversion="JREVersionNumber | 1.1" ]

[ nspluginurl="URLToPlugin" ]

[ iepluginurl="URLToPlugin" ] >

[

[

例子

Unable to load applet

描述
元素用於在瀏覽器中播放或顯示一個物件(典型的就是applet和Bean),而這種顯示需要在瀏覽器的java外掛。

當Jsp檔案被編譯,送往瀏覽器時,元素將會根據瀏覽器的版本替換成或者元素。注意,用於HTML 4.0 ,用於HTML 3.2.<embed><embed>

一般來說,元素會指定物件是Applet還是Bean,同樣也會指定class的名字,還有位置,另外還會指定將從哪裡下載這個Java外掛。具體如下:

屬性
type="bean | applet"

.將被執行的外掛物件的型別,你必須得指定這個是Bean還是applet,因為這個屬性沒有預設值.

code="classFileName"

將會被Java外掛執行的Java Class的名字,必須以.class結尾。這個檔案必須存在於codebase屬性指定的目錄中.

codebase="classFileDirectoryName"

將會被執行的Java Class檔案的目錄(或者是路徑),如果你沒有提供此屬性,那麼使用的jsp檔案的目錄將會被使用.

name="instanceName"

這個Bean或applet例項的名字,它將會在Jsp其它的地方呼叫.

archive="URIToArchive, ..."

一些由逗號分開的路徑名,這些路徑名用於預裝一些將要使用的class,這會提高applet的效能.

align="bottom | top | middle | left | right"

圖形,物件,Applet的位置,有以下值:

bottom

top

middle

left

right

height="displayPixels" width="displayPixels"

Applet或Bean將要顯示的長寬的值,此值為數字,單位為象素.

hspace="leftRightPixels" vspace="topBottomPixels"

Applet或Bean顯示時在螢幕左右,上下所需留下的空間,單位為象素.

jreversion="JREVersionNumber | 1.1"

Applet或Bean執行所需的Java Runtime Environment (JRE) 的版本.

預設值是 1.1.

nspluginurl="URLToPlugin"

Netscape Navigator使用者能夠使用的JRE的下載地址,此值為一個標準的URL,如

iepluginurl="URLToPlugin"

IE使用者能夠使用的JRE的下載地址,此值為一個標準的URL,如

[

你需要向applet或Bean傳送的引數或引數值。

text message for user

一段文字用於Java

外掛不能啟動時顯示給使用者的,如果外掛能夠啟動而applet或Bean不能,那麼瀏覽器會有一個出錯資訊彈出.


★JSP語法(12)——

建立一個Bean例項並指定它的名字和作用範圍.

JSP 語法

id="beanInstanceName"

scope="page | request | session | application"

{

class="package.class" |

type="package.class" |

class="package.class" type="package.class" |

beanName="{package.class |}" type="package.class"

}

{

/> |

> other elements

}

例子

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/143614/viewspace-884876/,如需轉載,請註明出處,否則將追究法律責任。

相關文章