JSP 簡明教程(二):JSP基本文法

來源:互聯網
上載者:User

標籤:jsp

基本文法

JSP只是在html的基礎上嵌入一些動態元素。下面是HelloWorld代碼:

<html><%out.println("hello world");%></html>

以上代碼中的<% %>就是動態元素。JSP中所有的特殊文法如下:
<% %>:用於表示一段Java代碼。這段代碼在編譯之後會放在_jspService()方法中。
<%! %>:多了一個歎號,也用於表示一段Java代碼,但是這段代碼編譯之後會放在JSP產生的Servlet類中,因此可以用它定義方法或者成員變數。
<%@ %>:多了一個@符號,是JSP指令,用於對JSP檔案進行設定。
<%= %>:多了一個等號,相當於out.println()。
<%-- --%>:這是注釋。不會在返回結果中顯示。

JSP指令。可以設定的指令有三種:
<%@ page %><%@ include %><%@ taglib %>


page指令可以設定的屬性如下:

  • buffer 設定out對象緩衝區的大小。
  • autoFlush 控制out對象的緩衝區。
  • contentType 指定當前JSP頁面的MIME類型和字元編碼
  • errorPage 指定當JSP頁面發生異常時要轉向的頁面
  • isErrorPage 指定當前JSP頁面是否可以作為另外頁面的錯誤頁面。錯誤頁面中可以直接使用exception隱含變數擷取錯誤資訊。
  • extends 指定Servlet從哪個類繼承
  • import 匯入要使用的包
  • info 定義JSP頁面的描述資訊
  • isThreadSafe 指定JSP頁面是否安全執行緒
  • language 指定程式設計語言,預設為Java
  • session 指定JSP頁面是否使用session
  • isELIgnored 指定是否指定EL運算式。
  • isScriptingEnabled 指定指令碼元素是否能被使用。如果為false,那麼JSP中如果出現<% %>就會發生錯誤。

include指令用於包含一個檔案。文法為<%@ include file="xxx"%>。在編譯的時候起作用。

taglib指令用於載入一個自訂標籤庫。文法為<%@ taglib uri="uri" prefix="xx" %>

動作元素

  • <jsp:scriptlet> 和 <% %> 是等價的。
  • <jsp:expression> 和 <%= %> 是等價的。
  • <jsp:include> 包含檔案,在執行的過程中起作用。
  • <jsp:useBean> 初始化一個 JavaBean 組件
  • <jsp:setProperty> 給 JavaBean 設定屬性
  • <jsp:getProperty>
  • <jsp:forward> 向另外一個 JSP 檔案傳遞請求。
  • <jsp:plugin> 在產生的頁面中包含 Applet 和 JavaBean 對象。在執行的過程中會被替換成 embed 或者 object 標籤。
  • <jsp:element> 動態建立 XML 元素。
  • <jsp:attribute> 定義動態建立的 XML 元素屬性
  • <jsp:body> 動態建立 XML 元素的主體。
  • <jsp:text> 與 CDATA 連用,顯示 CDATA 中的內容,但不執行 CDATA中的標籤動作。比如以下代碼:
<jsp:text><![CDATA[<hello></hello><jsp:world/>]]></jsp:text>


最後輸出的結果是:

<hello></hello><jsp:world/>

裡面的 <jsp:world/> 並沒有被執行。


所有的動作元素都是在執行 Servlet 代碼的過程中被執行。因此需要注意的是 jsp:include 動作,它是在 Servlet 被執行的過程中才引入檔案的。這與<%@ include file=""%>不同,後者是在編譯的時候引入的。

所有的動作元素都包含id和scope屬性。id用於通過PageContext擷取動作元素,scope用於定義對象的壽命。

useBean、setProperty、getProperty的用法。useBean的作用是引入一個JavaBean,需要提供id和class兩個參數。id就是變數的名稱,class就是變數的類型。setProperty可以放在useBean的標籤裡面,表示初始化的時候調用。如果沿用現有的JavaBean,那麼標籤裡面的語句是不會調用的。
<jsp:useBean id="test" class="test.TestBean">  <jsp:setProperty name="test" property="name" value="Value"/></jsp>


動態建立元素的代碼如下:
<jsp:element name="employee">  <jsp:attribute name="name">張三</jsp:attribute>  <jsp:body>張三是銷售部經理</jsp:body></jsp:element>


該代碼會產生:

<employee name="張三">張三是銷售部經理</employee>

白色咖啡

部落格地址:http://blog.csdn.net/caipeichao2

聯繫我們

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