JSP初學者必須掌握的文法點

來源:互聯網
上載者:User

如果你不熟悉Java編程,也許你想看一下Sun的指南 。然而網頁建立者並不需要進行太多的Java開發。除了一些方法調用,在你的JSP網頁裡應儘可能少用Java代碼。

記住以上提示,我們首先來看一看JSP指令和指令碼元素,之後我們會解釋JavaBeans和隱含對象。共有五種JSP指令和指令碼元素。在JSP 1.0版中,大部分JSP被一個以“< %” 開頭和以“%>”結尾的的標記括在其中。在更新的JSP 1.1規範出台後,就有了與XML相容的版本。

JSP指令和指令碼元素

Directives < %@ directive %>
  Declarations < %! declaration %>
  Expressions < %= expression %>
  Code Fragment/Scriptlet < % code fragment %>
  Comments < %-- comment --%>
 
指令

JSP指令是為JSP引擎而設計的。他們並不直接產生任何可見輸出,而只是告訴引擎如何處理其餘JSP頁面。這些指令始終被括在 “< %@ ?%>”標記中。兩個最重要的指令是“pagePage”和“Include”。“Taglib”指令不在討論之列,但是在用JSP1.1建立自訂標籤可以使用它。

幾乎在所有JSP頁面頂部都會看到“Page”指令。儘管不是必須的,但它可以讓你指定:

到何處尋找起支援作用的Java類別:

< %@ page import="java.util.Date" %>,

出現Java運行問題時,將網上衝浪者引向何處:

< %@ page errorPage="errorPage.jsp" %>,

還有你是否需要系統管理使用者的會話級資訊,這些資訊可能來自多個網頁(在下面的JavaBeans一節將對此做進一步講)述:

< %@ page session="true" %>.

“Include”指令可以把你的內容分成更多可管理的元素,比如包括一個普通頁首或頁尾的元素。包含的網頁可以是一個固定的HTML 頁面或更多的JSP內容:

< %@ include file="filename.jsp" %>

聲明

JSP聲明用來讓你定義頁面級變數,以儲存資訊或定義JSP頁面的其餘部分可能需要的支援方法。如果你發現代碼太多,通常最好把它們寫成一個獨立的Java類別。聲明一般都在“< %! ?%>”標記中。一定要以分號(;)結束變數聲明,因為任何內容都必須是有效Java語句:

< %! int i=0; %>。

運算式

有了JSP運算式,運算式評估結果會被轉換成一個字串,並且被直接包括在輸出頁面之內。JSP 運算式包含在“< %= ?%>” 標記中,沒有分號,除非在加引號的字串部分使用分號。

< %= i %>
< %= "Hello" %> .

程式碼片段/指令碼片段

程式碼片段/指令碼片段(Scriptlets) JSP程式碼片段或指令碼片段是嵌在“< % ?%>”標記中的。這種Java代碼在Web伺服器響應請求時就會運行。在指令碼片段周圍可能是原始的HTML或XML語句,在這些地方,程式碼片段可以使你建立條件執行代碼,或要用到另外一段代碼的代碼。例如,以下的程式碼群組合使用運算式和程式碼片段,顯示H1、H2、H3和H4標記中的字串“Hello”。程式碼片段並不局限於一行原始碼:

< % for (int i=1; i< =4; i++) { %>
< H< %=i%>>Hello< /H< %=i%>>
< % } %>.

注釋

最後一個主要的JSP元素是嵌入式注釋。儘管你始終可以在檔案中加入HTML注釋,但使用者在查看頁面原始碼時會看到這些注釋。如果你不想讓使用者看到它,你就應該將其嵌入“< %-- ?--%>” 標記中:

< %-- comment for server side only --%>.

隱藏注釋

JSP頁面的文檔,但是不被傳送到用戶端

JSP文法

< %-- 注釋 --%>
  例子1
  < %@ page language="java" %>
  < html>
  < head>< title>注釋測試< /titel>< /head>
  < body>
  < h2>注釋測試< /h2>
  < %-- 這一段注釋在原代碼中是看不到的 --%>
  < /body>
  < /html>

描述

JSP會忽略隱藏注藏的文本行,隱藏注釋通常被用來注釋你不願意被別人看到的注釋。JSP不處理任何< %--和--%>之間的字元,這段注釋也不會被發送到用戶端,當然查看原代碼也發現不了它。

在使用--%>結束注釋之前你可以使用任何符號,如果你想在注釋中用--%>,那麼你可以用--%>避開。

聲明

在JSP頁面聲明變數和方法

JSP文法

< %! 聲明;[聲明;]+……%>
  例子1
  < %! int i =0; %>
  < %! int a, b, c; %>
  < %! circle a = new circle (2,0); %>

描述

在JSP頁面中,如果你想用變數和方法必須事先聲明。

你可以在一個聲明元素裡聲明任意多個變數和方法,不夠最後有多長,你都要加一個分號在後面。聲明必須遵守JAVA程式語言的規定。

當你在JSP中聲明變數和方法的時候,必須牢記住以下幾點規則:

1、必須以分號結尾(同樣的規則適用於指令碼的編寫,相反,運算式不用)

2、用< %@ page %>引入的頁面已經聲明過的變數和方法可以直接使用,不用再次聲明。

聲明可以擴充範圍,也就是說可以擴充到任何靜態JSP檔案。任何用< jsp:include>包含的靜態檔案都可以。記詮動態頁面不可以。

運算式

在JSP頁面裡用指令碼語言運算式

JSP文法

< %=運算式%>

例子1

地圖檔案有< font color="bule">< %=map.size()%>< /font>個。

猜的不錯,但是不對。試試< b>< %=numguess.gethint()%>< /b>。

描述

運算式通過計算得出值,轉換成字串,插入到JSP頁面中想要顯示出來的地方。因為得出的值已經是字串了,那麼你就可以在JSP頁面中用HTML標籤任意的控制它。

當你在JSP頁面中寫運算式的時候,記住以下要點:

1、千萬不要用分號來結束運算式(可是,在指令碼中的運算式卻要加分號;參閱指令碼)

2、運算式中可以包含任何適合Java語言規範運算式。

有時候你可以把運算式的值作為JSP要素的屬性值。

指令碼

頁面中用指令碼語言編寫的指令碼段

JSP文法

< %=程式碼片段%>
  例子1
  < %
  String name = null;
  if (request.getParameter("name")==null {
  %>
  < %@ include file="error.html"%>
  < % } else {
  foo.setName(request.getParmeter("name"));
  if (foo.getname().equalsIgnoreCase("integra"))
  name = "acura";
  if (name.equalsIgnoreCase("acura")){
  %>

描述

一段代碼可以包括任意長的代碼,聲明任意多的變數和方法或者包括任意多的運算式。當你在編寫代碼的時候,你可以做如下事情:

1、為以後的需要聲明變數和方法(參閱:聲明)

2、使用運算式(參閱:運算式)

3、使用固定值和< jsp:useBean>中的對象

4、在頁面中使用任意其他聲明值(如果你使用JAVA語言,必須遵守JAVA規則)文本,HTML標籤和JSP元素必須在指令碼之外。指令碼執行需要時間。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.