JSP文法介紹

來源:互聯網
上載者:User
js|文法 JSP頁面中的元素

一,釋:三種注釋,<!-- -->會列印到用戶端,剩下的兩種被JSP引擎忽略。

二,模板元素:指JSP中的靜態HTLM或者XML內容,它影響頁面的結構和美觀程度,但那是美工的事,與程式員無關。

三,指令碼元素:包括聲明(Declaration),運算式(Expression)和Scriptlets,除去一些微小的差異外,Scriptlets完全可以取代前兩種的功能。

四,指令元素:

JSP指令是JSP向JSP包容器發送的訊息。他們用來設定全域值,如類聲明,要實現的方法,輸出內容類型等,並不向客戶口產生任何輸出。它隻影響本JSP檔案。

1, age指令:用來定義和操作許多重要的頁面的屬性,這些屬性與JSP包容器進行通訊。在JSP的任何地方,以任何順序,一個頁面可以包含任意數量的page指令。但除了import指令外,其它的指令只能出現一次。幾個重要的page指令:

<% @ page import =”java.io.*,java.util.*”%>//匯入包

<% @ buffer=” ”%>//定義對客戶輸出資料流的緩衝模型。

<% @ info=” ”%>//可以使用servlet.getServletInfo()得到該字串

<% @ isErrorPage=” ”%>

<% @ errorPage=” ”%>

<% @ isThreadSafe=” ” %>//JSP檔案是否能多線程使用

2, include指令:ASP中用的很多了吧,後面再介紹。

3, taglib指令:詳見作者以前文章《Struts中的自訂標籤》。

五,動作元素

JSP動作元素是使用XML文法寫成的,它是在請求處理階段起作用的,它影響JSP運行時的行為和發送給客戶的應答。它們應當由所有的包容器提供,而不管它們的實現如何。

從效果上來說,一個標準動作是能夠嵌入到JSP頁面之中的一個標記。在頁面被編譯為servlet期間,當包容器遇到這個標記時,就用相應於請求的預定義的任務的JAVA代碼來代替它。

1,<jsp:param>:為其他標籤提供附加資訊。

<jsp:param name=”paramName” value=”paramValue”/>

它與<jsp:include>,<jsp:forward>,<jsp:plugin>一起使用。

2,<jsp:include>

如果包含是靜態檔案,那麼僅僅是把內容加到JSP檔案中去,這個檔案不會被JSP編譯器執行,如果是動態檔案,將會被JSP編譯器材執行。

理論上<% @ page include=””%>與<jsp:include>有所不同,我把它叫做自動重新整理,但實際上使用較高版本的tomcat時,他們的功能是一樣的。

下面是這一標記的範例程式碼:

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<body>

<%@ include file="static.html" %>

<%//只是把檔案包含進來%>

<a href="two.jsp">goto two--></a><br>

this examples show include works

<jsp:include page="two.jsp" flush="true">

<jsp:param name="a1" value="<%=request.getParameter("name")%>" />

<jsp:param name="a2" value="<%=request.getParameter("password")%>" />

</jsp:include>

</body>

</html>

ßthis is static.html>

<html>

<body>

<form method=post action="jsp_include.jsp">

<table>

<tr>

<td>please input your name:</td></tr>

<tr><td>

<input type=text name=name>

</td></tr>

<tr><td>input you password:</td>

<td>

<input type=text name=password>

</td>

</tr>

<tr>

<td>

<input type=submit value=login>

</td>

</tr>

</table>

</body>

</html>

ßthis is a two.jsp-->

<%@ page contentType="text/html; charset=gb2312" language="java" %>

舉例說明include的工作原理:

<br>

this is a1=<%=request.getParameter("a1")%>

<br>

this is a2=<%=request.getParameter("a2")%>

<br>

<% out.println("hello from two.jsp");%>

3,<jsp:forward> 是允許將請求轉寄到另一個JSP,Servlet,或者靜態資源檔案。當要根據不同的請求,轉換到不同的視圖時,這個動作特別有用。但請求被轉向到的資源必須位於同JSP發送請求相同的上下文環境中。

<jsp:forward page="url">

<jsp:param name="paramName" value="paramValue"/>

</jsp:forward>

4,<jsp:useBean> 它用來執行個體化JavaBean,或者定位一個已經存在的Bean執行個體,並且把它賦給一個變數名(或者id)。並給定一個具體的範圍來確定對象的生命週期。

<jsp:useBean id=”myclassname” scope=”page” class=”Class1” type=”Class2”/ >

等價於:Class2 myclassname=new Class1();

page:表示對象與到該頁面的特定的請求相關聯。

Request:表示對象與到該頁面的特定的客戶請求相聯絡。如果請求被使用<jsp:forward>標準動作發送到別的jsp,或者使用<jsp:include>動作包含了另外的JSP,則在所涉及的JSP中,該對象是有效。

Session:在當前會話中,在由同一個客戶發送的任何的請求中,該對象都是有效。

Application:在同一個web應用程式中,在任何的JSP頁面中,該對象都是有效。

5,<jsp:setProperty> 與<jsp:getProperty>

與useBean一起協作,用來設定Bean的簡單屬性和索引屬性,因為它的使用太頻繁了,那我就少說點吧,大家在具體代碼中學習。

<jsp:serproperty name=”beanname” BopertyDetails />

A, property=*;

B,property=”propertyName” param=”parameterName”

在Bean中的屬性名稱與Request中參數名不同時使用這個方法。

C,property=”propertyName”

Bean中的屬性與Request中的參數名必須相同。

D,property=”propertyName” value=”propertyValue”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.