JSP 語法詳解(轉)

post0發表於2007-08-11
JSP 語法詳解(轉)[@more@]

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程式中,但不是發給客戶。

JSP 語法

例子:

CODE:

A Comment Test

A Test of Comments

描述

用隱藏註釋標記的字元會在JSP編譯時被忽略掉。這個註釋在你希望隱藏或註釋你的JSP程式時是很有用的。JSP編譯器不是會對之間的語句進行編譯的,它不會顯示在客戶的瀏覽器中,也不會在原始碼中看到

宣告

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

JSP 語法

例子

描述

宣告你將要在JSP程式中用到的變數和方法。你也必須這樣做,不然會出錯.

你可以一次性宣告多個變數和方法,只要以";"結尾就行,當然這些宣告在Java中要是合法的。

當你宣告方法或變數時,請注意以下的一些規則:

宣告必須以";"結尾(Scriptlet有同樣的規則,但是 表示式就不同了).

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

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

表示式

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

JSP 語法

例子

.

描述

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

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

你不能用一個分號(";")來作為表示式的結束符.但是同樣的表示式用在scriptlet中就需要以分號來結尾了!檢視Scriptlet

這個表示式元素能夠包括任何在Java Language Specification中有效的表示式.

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

[/b]Scriptlet [/b]

包含一個有效的程式段.

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物件中。

Include 指令

在JSP中包含一個靜態的檔案,同時解析這個檔案中的JSP語句.

JSP 語法

例子

include.jsp:

CODE:

An Include Test

The current date and time are

date.jsp:

CODE:

Displays in the page:

The current date and time are

Aug 30, 1999 2:38:40

描述

< %@include %>指令將會在JSP編譯時插入一個包含文字或程式碼的檔案,當你使用指命時,這個包含的過程就當是靜態的。靜態的包含就是指這個被包含的檔案將會被插入到JSP檔案中去,這個包含的檔案可以是JSP檔案,HTML檔案,文字檔案。如果包含的是JSP檔案,這個包含的JSP的檔案中程式碼將會被執行。

如果你僅僅只是用include 來包含一個靜態檔案。那麼這個包含的檔案所執行的結果將會插入到JSP檔案中放的地方。一旦包含檔案被執行,那麼主JSP檔案的過程將會被恢復,繼續執行下一行.

這個被包含檔案可以是html檔案,jsp檔案,文字檔案,或者只是一段Java程式碼,但是你得注意在這個包含檔案中不能使用, ,,標記,因為這將會影響在原JSP檔案中同樣的標記 ,這樣做有時會導致錯誤.

有一些指命的行為是以特殊的JSP編譯條件為基礎,比如:

這個被包含的檔案必須對所有客戶都有開放且必須f有效,或者它有安全限制

如果這個包含檔案被改變,包含此檔案的JSP檔案將被重新編譯

屬性:

file="relativeURL"

這個包含檔案的路徑名一般來說是指相對路徑,不需要什麼埠,協議,和域名,如下:

"error.jsp""templates/onlinestore.html""/beans/calendar.jsp"

如果這個路徑以"/"開頭,那麼這個路徑主要是參照JSP應用的上下關係路徑,如果路徑是以檔名或目錄名開頭,那麼這個路徑就是正在使用的JSP檔案的當前路徑.

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檔案的頂部.

屬性

language="java"

宣告指令碼語言的種類,暫時只能用"java"

extends="package.class"

標明JSP編譯時需要加入的Java Class的全名,但是得慎重的使用它,它會限制JSP的編譯能力.

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

需要匯入的Java包的列表,這些包就作用於程式段,表示式,以及宣告。

下面的包在JSP編譯時已經匯入了,所以你就不需要再指明瞭:

java.lang.*

javax.servlet.*

javax.servlet.jsp.*

javax.servlet.http.*

session="true | false"

設定客戶是否需要HTTP Session.(學過ASP的人,應該對它不陌生)如果它為true,那麼Session是有用的。

如果它有false,那麼你就不能使用session物件,以及定義了scope=session的元素。這樣的使用會導致錯誤.

預設值是true.

buffer="none | 8kb | sizekb"

buffer的大小被out物件用於處理執行後的JSP對客戶瀏覽器的輸出。預設值是8kb

autoFlush="true | false"

設定如果buffer溢位,是否需要強制輸出,如果其值被定義為true(預設值),輸出正常,如果它被設定為false,如果這個buffer溢位,就會導致一個意外錯誤的發生.如果你把buffer設定為none,那麼你就不能把autoFlush設定為false.

isThreadSafe="true | false"

設定Jsp檔案是否能多執行緒使用。預設值是true,也就是說,JSP能夠同時處理多個使用者的請求,如果設定為false,一個jsp只能一次處理一個請求

info="text"

一個文字在執行JSP將會被逐字加入JSP中,你能夠使用Servlet.getServletInfo方法取回。

errorPage="relativeURL"

設定處理異常事件的JSP檔案。

isErrorPage="true | false"

設定此頁是否為出錯頁,如果被設定為true,你就能使用exception物件.

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

設定MIME型別 。預設MIME 型別是: text/html, 預設字符集為 ISO-8859-1.

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

JSP 語法

"} />

or

"} >

例子

描述

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

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

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

相關文章