HTML注釋
在客戶端顯示一個注釋。
JSP 語法
<!-- comment [ <%= expression %> ] -->
<!-- This file displays the user login screen --> 在客戶端的HTML源代碼中產生和上面一樣的 數據: <!-- This file displays the user login screen -->
<!-- This page was loaded on <%= (new java.util.Date()).toLocaleString() %> -->
<!-- This page was loaded on January 1, 2000 -->
<%-- comment --%>
<%@ page language="java" %> <html> <head><title>A Comment Test</title></head> <bo dy> <h2>A Test of Comments</h2> <%-- This comment will not be visible in the page sour ce --%> </body> </html>
<%! declaration; [ declaration; ]+ ... %>
<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>
<%= expression %>
<font color="blue"><%= map.size() %></font> <b><%= numguess.getHint() %></b>.
描述
表達式元素表示的是一個在腳本語言中被定義的表達式,在運行後被自動轉化為字符串,然後插入到這個表達式在JSP文件的位置顯示。因為這個表達式的值已經被轉化為字符串,所以你能在一行文本中插入這個表達式(形式和ASP完全一樣)。
當你在JSP中使用表達式時請記住以下幾點:
1 你不能用一個分號(“;”)來作為表達式的結束符。但是同樣的表達式用在scriptlet中就需要以分號來結尾了!查看Scriptlet這個表達式元素能夠包括任何在Java Language Specification中有效的表達式。
2 有時候表達式也能作為其它JSP元素的屬性值。一個表達式能夠變得很復雜,它可能由一個或多個表達式組成,這些表達式的順序是從左到右。
Scriptlet
包含一個有效的程序段。
JSP 語法
<% code fragment %>
例子
<% String name = null; if (request.getParameter("name") == null) { %> <%@ include file="error.html" %> <% } el se { foo.setName(request.getParameter("name")); if (foo.getName().equalsIgnoreCase("integra")) na me = "acura"; if (name.equalsIgnoreCase( "acura" )) { %>
描述
一個scriptlet能夠包含多個jsp語句、方法、變量、表達式。
因為有了scriptlet,我們便能做以下的事:
1 聲明將要用到的變量或方法(參考 聲明)。
2 編寫JSP表達式(參考 表達式)。
3 使用任何隱含的對象和任何用jsp:useBean聲明過的對象。
4 編寫JSP語句(如果你在使用Java語言,這些語句必須遵從Java Language Specification)。
任何文本、HTML標記、JSP元素必須在scriptlet之外。
當JSP收到客戶的請求時,scriptlet就會被執行,如果scriptlet有顯示的內容,這些顯示的內容就被存在out對象中。
Page 指令
定義JSP文件中的全局屬性。
JSP 語法
<%@ page [ language="java" ] [ extends="package.class" ] [ import="{package.class | packa ge.*}, ..." ] [ session="true | false" ] [ buffer="none | 8kb | sizekb" ] [ autoFlush="true | false" ] [ isThre adSafe="true | false" ] [ info="text" ] [ errorPage="relativeURL" ] [ contentType="mimeType [ ;chars et=characterSet ]" | "text/html; charset=ISO-8859-1" ] [ isErrorPage="true | false" ] %>
<%@ page import="java.util.*, java.lang.*" %> <%@ page buffer="5kb" autoFlush="false" %> <%@ pa ge errorPage="error.jsp" %>
描述
%@ page %指令作用於整個JSP頁面,同樣包括靜態的包含文件。但是% @ page %指令不能作用於動態的包含文件,比如jsp:include。
你可以在一個頁面中用上多個% @ page %指令,但是其中的屬性只能用一次,不過也有個例外,那就是import屬性。因為import屬性和Java中的import語句差不多(參照Java Language),所以你就能多用此屬性幾次了。
無論你把% @ page %指令放在JSP的文件的哪個地方,它的作用范圍都是整個JSP頁面。不過,為了JSP程序的可讀性,以及好的編程習慣,最好還是把它放在JSP文件的頂部。
Taglib 指令
定義一個標簽庫以及其自定義標簽的前綴。
JSP 語法
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
例子
<%@ taglib uri="http://www.jspcentral.com/tags" prefix="public" %> <public:loop> . . </public:loop>
描述
% @ taglib %指令聲明此JSP文件使用了自定義的標簽,同時引用標簽庫,也指定了他們的標簽的前綴。
這裡自定義的標簽含有標簽和元素之分。因為JSP文件能夠轉化為XML,所以了解標簽和元素之間的聯系很重要。標簽只不過是一個在意義上被抬高了點的標記,是JSP元素的一部分。JSP元素是JSP語法的一部分,和XML一樣有開始標記和結束標記。元素也可以包含其它的文本、標記、元素。比如,一個jsp:plugin元素有jsp:plugin開始標記和/jsp:plugin結束標記,同樣也可以有jsp:params和jsp:fallback元素。
你必須在使用自定義標簽之前使用% @ taglib %指令,而且你可以在一個頁面中多次使用,但是前綴只能使用一次。
屬性
uri="URIToTagLibrary"
Uniform Resource Identifier (URI)根據標簽的前綴對自定義的標簽進行惟一的命名,URI可以是以下的內容:
Uniform Resource Locator(URL),由RFC 2396定義,查看http://www.hut.fi/u/jkorpela/rfc/2396/full.html。
Uniform Resource Name(URN),由RFC 2396定義。
一個相對或絕對的路徑
prefix="tagPrefix"
在自定義標簽之前的前綴,比如,在
jsp:forward
重定向一個HTML文件、JSP文件、或者是一個程序段。
JSP 語法
<jsp:forward page={"relativeURL" | "<%= expression %>"} /> or <jsp:forward page={"relativeURL" | "<%= ex pression %>"} > <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+ </js p:forward>
例子
<jsp:forward page="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="userna me" value="jsmith" /> </jsp:forward>
描述
jsp:forward標簽從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象。jsp:forward標簽以下的代碼,將不能執行。
你能夠向目標文件傳送參數和值,在這個例子中我們傳遞的參數名為username,值為scott,如果你使用了jsp:param標簽的話,目標文件必須是一個動態的文件,能夠處理參數。
如果你使用了非緩沖輸出的話,那麼使用jsp:forward時就要小心。如果在你使用jsp:forward之前,jsp文件已經有了數據,那麼文件執行就會出錯。
屬性
page="{relativeURL | <%= expression %>}"
這裡是一個表達式或是一個字符串用於說明你將要定向的文件或URL。這個文件可以是JSP、程序段、或者其它能夠處理request對象的文件(如asp、cgi、php)。
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+
向一個動態文件發送一個或多個參數,這個文件一定是動態文件。
如果你想傳遞多個參數,你可以在一個JSP文件中使用多個jsp:param。name指定參數名,value指定參數值。
jsp:getProperty
獲取Bean的屬性值,用於顯示在頁面中。
JSP 語法
<jsp:getProperty name="beanInstanceName" property="propertyName" />
<jsp:useBean id="calendar" scope="page" class="employee.Calendar" /> <h2> Calendar of <jsp:g etProperty name="calendar" property="username"/> </h2>
<jsp:include page="{relativeURL | <%= expression%>}" flush="true" /> or <jsp:include page="{relat iveURL | <%= expression %>}" flush="true" > <jsp:param name="parameterName" value="{parame terValue | <%= expression %>}" />+ </jsp:include>
<jsp:include page="scripts/login.jsp" /> <jsp:include page="copyright.html" /> <jsp:include page="/inde x.html" /> <jsp:include page="scripts/login.jsp"> <jsp:param name="username" value="jsmith" /> </jsp:include>
<jsp:param name="parameterName" value="{parameterValue | <%= expression %> }" />+
<jsp:plugin type="bean | applet" code="classFileName" codebase="classFileDirectoryName" [ name="instan ceName" ] [ archive="URIToArchive, ..." ] [ align="bottom | top | middle | left | right" ] [ height="display Pixels" ] [ width="displayPixels" ] [ hspace="leftRightPixels" ] [ vspace="topBottomPixels" ] [ jreversio n="JREVersionNumber | 1.1" ] [ nspluginurl="URLToPlugin" ] [ iepluginurl="URLToPlugin" ] > [ <jsp:p arams> [ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+ </jsp:pa rams> ] [ <jsp:fallback> text message for user </jsp:fallback> ] </jsp:plugin>
<jsp:plugin type=applet code="Molecule.class" codebase="/html"> <jsp:params> <jsp:param name="m olecule" value="molecules/benzene.mol" /> </jsp:params> <jsp:fallback> <p>Unable to load applet</p> </j sp:fallback> </jsp:plugin>
<jsp:params> [ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+ </j sp:params>
<jsp:fallback> text message for user </jsp:fallback>
<jsp:useBean id="beanInstanceName" scope="page | request | session | application" { class="package.cla ss" | type="package.class" | class="package.class" type="package.class" | beanName="{package.cla ss | <%= expression %>}" type="package.class" } { /> | > other elements </jsp:useBean> }
<jsp:useBean id="cart" scope="session" class="session.Carts" /> <jsp:setProperty name="cart" prop erty="*" /> <jsp:useBean id="checking" scope="session" class="bank.Checking" > <jsp:setProperty na me="checking" property="balance" value="0.0" /> </jsp:useBean>