標籤: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