亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

annuaire recherche
JSP 基礎(chǔ)教程 JSP 開發(fā)環(huán)境搭建 JSP 結(jié)構(gòu) JSP 生命周期 JSP 語法 JSP 指令 JSP 動作元素 JSP 隱式對象 JSP 客戶端請求 JSP 服務(wù)器響應(yīng) JSP HTTP 狀態(tài)碼 JSP 表單處理 JSP 過濾器 JSP Cookies 處理 JSP Session JSP 文件上傳 JSP 日期處理 JSP 頁面重定向 JSP 點擊量統(tǒng)計 JSP 自動刷新 JSP 發(fā)送郵件 JSP 高級教程 JSP 標準標簽庫(JSTL) <c:out> 標簽 <c:set> 標簽 <c:remove> 標簽 <c:catch> 標簽 <c:if> 標簽 <c:choose> <c:import> 標簽 <c:forEach> <c:param> 標簽 <c:redirect> 標簽 <fmt:formatNumber>標簽 <fmt:parseNumber> 標簽 <fmt:formatDate> 標簽 <fmt:parseDate> 標簽 <fmt:bundle> 標簽 <fmt:setLocale> 標簽 <fmt:setBundle> 標簽 <fmt:timeZone> 標簽 <fmt:setTimeZone> 標簽 <fmt:message> 標簽 <fmt:requestEncoding> 標簽 <sql:setDataSource> 標簽 <sql:query> 標簽 <sql:update> 標簽 <sql:param> 標簽 <sql:dateParam> 標簽 <sql:transaction> 標簽 <x:out> 標簽 <x:parse> 標簽 <x:set> 標簽 <x:if> 標簽 <x:forEach> 標簽 <x:choose> <x:transform> 標簽 <x:param> 標簽 fn:contains()函數(shù) fn:containsIgnoreCase()函數(shù) fn:endsWith()函數(shù) fn:escapeXml()函數(shù) fn:indexOf()函數(shù) fn:join()函數(shù) fn:length()函數(shù) fn:replace()函數(shù) fn:split()函數(shù) fn:startsWith()函數(shù) fn:substring()函數(shù) fn:substringAfter()函數(shù) fn:substringBefore()函數(shù) fn:toLowerCase()函數(shù) fn:toUpperCase()函數(shù) fn:trim()函數(shù) JSP 連接數(shù)據(jù)庫 JSP XML 數(shù)據(jù)處理 JSP JavaBean JSP 自定義標簽 JSP 表達式語言 JSP 異常處理 JSP 調(diào)試 JSP 國際化
personnages

JSP 動作元素


與JSP指令元素不同的是,JSP動作元素在請求處理階段起作用。JSP動作元素是用XML語法寫成的。

利用JSP動作可以動態(tài)地插入文件、重用JavaBean組件、把用戶重定向到另外的頁面、為Java插件生成HTML代碼。

動作元素只有一種語法,它符合XML標準:

<jsp:action_name attribute="value" />

動作元素基本上都是預(yù)定義的函數(shù),JSP規(guī)范定義了一系列的標準動作,它用JSP作為前綴,可用的標準動作元素如下:

語法 描述
jsp:include 在頁面被請求的時候引入一個文件。
jsp:useBean 尋找或者實例化一個JavaBean。
jsp:setProperty 設(shè)置JavaBean的屬性。
jsp:getProperty 輸出某個JavaBean的屬性。
jsp:forward 把請求轉(zhuǎn)到一個新的頁面。
jsp:plugin 根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標記。
jsp:element 定義動態(tài)XML元素
jsp:attribute 設(shè)置動態(tài)定義的XML元素屬性。
jsp:body 設(shè)置動態(tài)定義的XML元素內(nèi)容。
jsp:text 在JSP頁面和文檔中使用寫入文本的模板

常見的屬性

所有的動作要素都有兩個屬性:id屬性和scope屬性。

  • id屬性:

    id屬性是動作元素的唯一標識,可以在JSP頁面中引用。動作元素創(chuàng)建的id值可以通過PageContext來調(diào)用。

  • scope屬性:

    該屬性用于識別動作元素的生命周期。 id屬性和scope屬性有直接關(guān)系,scope屬性定義了相關(guān)聯(lián)id對象的壽命。 scope屬性有四個可能的值: (a) page, (b)request, (c)session, 和 (d) application。


<jsp:include>動作元素

<jsp:include>動作元素用來包含靜態(tài)和動態(tài)的文件。該動作把指定文件插入正在生成的頁面。語法格式如下:

<jsp:include page="relative URL" flush="true" />

 前面已經(jīng)介紹過include指令,它是在JSP文件被轉(zhuǎn)換成Servlet的時候引入文件,而這里的jsp:include動作不同,插入文件的時間是在頁面被請求的時候。

以下是include動作相關(guān)的屬性列表。

屬性 描述
page 包含在頁面中的相對URL地址。
flush 布爾屬性,定義在包含資源前是否刷新緩存區(qū)。

實例

以下我們定義了兩個文件date.jsp和main.jsp,代碼如下所示:

date.jsp文件代碼:

<p>
   Today's date: <%= (new java.util.Date()).toLocaleString()%>
</p>

main.jsp文件代碼:

<html>
<head>
<title>The include Action Example</title>
</head>
<body>
<center>
<h2>The include action Example</h2>
<jsp:include page="date.jsp" flush="true" />
</center>
</body>
</html>

現(xiàn)在將以上兩個文件放在服務(wù)器的根目錄下,訪問main.jsp文件。顯示結(jié)果如下:

The include action Example
Today's date: 12-Sep-2013 14:54:22

<jsp:useBean>動作元素

 jsp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。

這個功能非常有用,因為它使得我們既可以發(fā)揮Java組件重用的優(yōu)勢,同時也避免了損失JSP區(qū)別于Servlet的方便性。

jsp:useBean動作最簡單的語法為:

<jsp:useBean id="name" class="package.class" />

在類載入后,我們既可以通過 jsp:setProperty 和 jsp:getProperty 動作來修改和檢索bean的屬性。

以下是useBean動作相關(guān)的屬性列表。

屬性 描述
class 指定Bean的完整包名。
type 指定將引用該對象變量的類型。
beanName 通過 java.beans.Beans 的 instantiate() 方法指定Bean的名字。

在給出具體實例前,讓我們先來看下 jsp:setProperty 和 jsp:getProperty 動作元素:


<jsp:setProperty>動作元素

 jsp:setProperty用來設(shè)置已經(jīng)實例化的Bean對象的屬性,有兩種用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:

<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName" property="someProperty" .../>

 此時,不管jsp:useBean是找到了一個現(xiàn)有的Bean,還是新創(chuàng)建了一個Bean實例,jsp:setProperty都會執(zhí)行。第二種用法是把jsp:setProperty放入jsp:useBean元素的內(nèi)部,如下所示:

<jsp:useBean id="myName" ... >
...
   <jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>

此時,jsp:setProperty只有在新建Bean實例時才會執(zhí)行,如果是使用現(xiàn)有實例則不執(zhí)行jsp:setProperty。

屬性 描述
name name屬性是必需的。它表示要設(shè)置屬性的是哪個Bean。
property property屬性是必需的。它表示要設(shè)置哪個屬性。有一個特殊用法:如果property的值是"*",表示所有名字和Bean屬性名字匹配的請求參數(shù)都將被傳遞給相應(yīng)的屬性set方法。
value value 屬性是可選的。該屬性用來指定Bean屬性的值。字符串數(shù)據(jù)會在目標類中通過標準的valueOf方法自動轉(zhuǎn)換成數(shù)字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如"true")通過 Boolean.valueOf轉(zhuǎn)換,int和Integer類型的屬性值(比如"42")通過Integer.valueOf轉(zhuǎn)換。   value和param不能同時使用,但可以使用其中任意一個。
param param 是可選的。它指定用哪個請求參數(shù)作為Bean屬性的值。如果當前請求沒有參數(shù),則什么事情也不做,系統(tǒng)不會把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認屬性值,只有當請求參數(shù)明確指定了新值時才修改默認屬性值。

<jsp:getProperty>動作元素

 jsp:getProperty動作提取指定Bean屬性的值,轉(zhuǎn)換成字符串,然后輸出。語法格式如下:

<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../>

下表是與getProperty相關(guān)聯(lián)的屬性:

屬性 描述
name 要檢索的Bean屬性名稱。Bean必須已定義。
property 表示要提取Bean屬性的值

實例

以下實例我們使用了Bean:


package action;
 
public class TestBean {
   private String message = "No message specified";
 
   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

編譯以上實例并生成 TestBean.class 文件,將該文件拷貝至服務(wù)器正式存放Java類的目錄下,而不是保留給修改后能夠自動裝載的類的目錄( 如:C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action目錄中,CLASSPATH 變量必須包含該路徑。 )。例如,對于Java Web Server來說,Bean和所有Bean用到的類都應(yīng)該放入classes目錄,或者封裝進jar文件后放入lib目錄,但不應(yīng)該放到servlets 下。   下面是一個很簡單的例子,它的功能是裝載一個Bean,然后設(shè)置/讀取它的message屬性。

現(xiàn)在讓我們在main.jsp文件中調(diào)用該Bean:

 <html>
<head>
<title>Using JavaBeans in JSP</title>
</head>
<body>
<center>
<h2>Using JavaBeans in JSP</h2>
 
<jsp:useBean id="test" class="action.TestBean" />
 
<jsp:setProperty name="test" 
                    property="message" 
                    value="Hello JSP..." />
 
<p>Got message....</p>
 
<jsp:getProperty name="test" property="message" />
 
</center>
</body>
</html>

執(zhí)行以上文件,輸出如下所示:

Using JavaBeans in JSP
Got message....
Hello JSP...

<jsp:forward> 動作元素

 jsp:forward動作把請求轉(zhuǎn)到另外的頁面。jsp:forward標記只有一個屬性page。語法格式如下所示:

<jsp:forward page="Relative URL" />

以下是forward相關(guān)聯(lián)的屬性:

屬性 描述
page page屬性包含的是一個相對URL。page的值既可以直接給出,也可以在請求的時候動態(tài)計算,可以是一個JSP頁面或者一個 Java Servlet.

實例

以下實例我們使用了兩個文件,分別是: date.jps 和 main.jsp。

date.js文件代碼如下:

<p>
   Today's date: <%= (new java.util.Date()).toLocaleString()%>
</p>

main.jsp文件代碼:

<html>
<head>
<title>The forward Action Example</title>
</head>
<body>
<center>
<h2>The forward action Example</h2>
<jsp:forward page="date.jsp" />
</center>
</body>

現(xiàn)在將以上兩個文件放在服務(wù)器的根目錄下,訪問main.jsp文件。顯示結(jié)果如下:

Today's date: 12-Sep-2010 14:54:22

<jsp:plugin>動作元素

jsp:plugin動作用來根據(jù)瀏覽器的類型,插入通過Java插件 運行Java Applet所必需的OBJECT或EMBED元素。

如果需要的插件不存在,它會下載插件,然后執(zhí)行Java組件。 Java組件可以是一個applet或一個JavaBean。

plugin動作有多個對應(yīng)HTML元素的屬性用于格式化Java 組件。param元素可用于向Applet 或 Bean 傳遞參數(shù)。

以下是使用plugin 動作元素的典型實例:

<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class"
                           width="60" height="80">
   <jsp:param name="fontcolor" value="red" />
   <jsp:param name="background" value="black" />
 
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
 
</jsp:plugin>

如果你有興趣可以嘗試使用applet來測試jsp:plugin動作元素,<fallback>元素是一個新元素,在組件出現(xiàn)故障的錯誤是發(fā)送給用戶錯誤信息。


<jsp:element> 、 <jsp:attribute>、 <jsp:body>動作元素

<jsp:element> 、 <jsp:attribute>、 <jsp:body>動作元素動態(tài)定義XML元素。動態(tài)是非常重要的,這就意味著XML元素在編譯時是動態(tài)生成的而非靜態(tài)。

以下實例動態(tài)定義了XML元素:

<%@page language="java" contentType="text/html"%>
<html xmlns="http://www.w3c.org/1999/xhtml"
      xmlns:jsp="http://java.sun.com/JSP/Page">

<head><title>Generate XML Element</title></head>
<body>
<jsp:element name="xmlElement">
<jsp:attribute name="xmlElementAttr">
   Value for the attribute
</jsp:attribute>
<jsp:body>
   Body for XML element
</jsp:body>
</jsp:element>
</body>
</html>

執(zhí)行時生成HTML代碼如下:

<html xmlns="http://www.w3c.org/1999/xhtml"
      xmlns:jsp="http://java.sun.com/JSP/Page">
 
<head><title>Generate XML Element</title></head>
<body>
<xmlElement xmlElementAttr="Value for the attribute">
   Body for XML element
</xmlElement>
</body>
</html>

<jsp:text>動作元素

<jsp:text>動作元素允許在JSP頁面和文檔中使用寫入文本的模板,語法格式如下:

<jsp:text>Template data</jsp:text>

以上文本模板不能包含其他元素,只能只能包含文本和EL表達式(注:EL表達式將在后續(xù)章節(jié)中介紹)。請注意,在XML文件中,您不能使用表達式如 ${whatever > 0},因為>符號是非法的。 你可以使用 ${whatever gt 0}表達式或者嵌入在一個CDATA部分的值。

<jsp:text><![CDATA[<br>]]></jsp:text>

如果你需要在 XHTML 中聲明 DOCTYPE,必須使用到<jsp:text>動作元素,實例如下:

<jsp:text><![CDATA[<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">]]>
</jsp:text>
<head><title>jsp:text action</title></head>
<body>

<books><book><jsp:text>  
    Welcome to JSP Programming
</jsp:text></book></books>

</body>
</html>

你可以對以上實例嘗試使用<jsp:text>及不使用該動作元素執(zhí)行結(jié)果的區(qū)別。

關(guān)于我們 聯(lián)系我們 留言板

手冊網(wǎng)

Article précédent: Article suivant: