總結2——JSP應用開發詳解

第四章 JSP語法詳解

1. p67JSP將動態部分用特殊的標記嵌入,這些標記通常以“<%”開始,並以“%>”結束。

2. p67)三類主要的JSP元素:

——Scripting elements:可以定義最終轉換爲Servlet的部分

——Directives:可以控制這個Servlet的整體結構

——Actions:可以指定可重用的已有組件,另外還可以控制JSP引擎的運行

3. p68)一般的註釋:<!--comment-->

隱藏的註釋:<%--comment--%>

用隱藏註釋標記的字符會在JSP編譯時被忽略。JSP編譯器不會對<%--and--%>之間的語句進行編譯,它不會顯示在客戶的瀏覽器中,也不會出現在源代碼中。

4. p68)聲明變量和方法:<%! declaration; [declaration]%>

一般情況下,一個聲明的有效範圍是本頁面。但是,如果JSP源文件用<jsp:include>指令或include指令包含一些靜態文件,聲明的有效範圍將會擴大,也就是說:聲明在該靜態文件中也有效。但是如果JSP源文件中用<jsp:include>指令包含進來一個動態文件,主JSP文件中的聲明在該動態文件中將不起作用。

5. p69)表達式:<%=expression %>

表達式用於求值,然後其值轉化爲字符串,而且插入在JSP文件中顯示該表達式的地方。而且可以在文本中使用表達式。表達式標籤能包含符合JAVA語言規範的任何有效表達式,但是要注意:不能使用分號作爲表達式的結尾,然而,在腳本段<%……%>標籤中,表達式要求以分號作爲結尾。

例子1
  <%! String s = new String("hello"); %>
  <font color="blue"><%=s%></font>

  例子2
  隨機顯示一個數字:
  <font color="blue"><%=java.lang.Math.random()%></font>

6. p70Page指令用來定義JSP文件中的全局屬性。在一個JSP頁面中,可以定義一個或多個Page指令。但是,除了import屬性以外的其他幾種屬性,只能定義一次。<%@page%>指令作用於整個JSP頁面,同樣包括靜態的包含文件。但是不能作用於動態的包含文件。

<% page attribute="value"...%>

屬性:

1<%@ page language="java"%>

指定文件中所使用的腳本語言,目前僅java爲有效值和默認值。該指令作用於整個文件,當多次使用該指令時,只有第一次使用是有效的。

2<%@ page import="java.io.*,java.util.*" %>

指定導入的Java軟件包名或者類名列表,該列表逗號分隔,在JSP文件中,可以多次使用該指令來導入不同的軟件包。

3)<%@ page content-type="text/html;charset=GB2312" %>

指定響應結果的MIME類型,默認的MIME類型是text/html默認字符編碼爲ISO-8859-1當多次使用該指令時,只有第一次使用是有效的。

4)<%@ page session="true"  %>

指定JSP頁是否使用Session默認true。如果它爲false,就不能使用session對象,以及定義scope=session<jsp:useBean>元素,這樣的使用會導致錯誤。

5)<%@ page buffer="none | 8kb | sizekb" %>

Buffer的大小被out對象用於緩存處理執行後的JSP對客戶瀏覽器的輸出。

6)<%@ page autoFlush="true | false" %>

用來設置當buffer溢出時,是否需要強制輸出。如果其值定義爲true,則輸出正常;如果它被設置爲false,當buffer溢出時,就會導致一些意外錯誤的發生。如果把buffer設置爲none,那麼就不能把autoFlush設置爲false。默認是true

7)<%@ page isThreadSafe="true | false" %>

用來設置JSP文件是否支持多線程使用。如果設置爲true,那麼一個JSP能夠同時處理多個用戶的請求;相反,如果設置爲false,一個JSP只能一次處理一個請求。默認值爲true

8)<%@ page info="text" %>

JSP被執行時,用來描述當前JSP文件的相關信息。可以通過Servlet.getServletInfo()方法取得。

9)<%@ page errorPage="relativeURL" %>

設置處理異常事件的JSP文件。當發生異常時,就跳轉到relativeURL指定的界面上。

10)<%@ isErrorPage="true | false" %>

設置此頁是否爲出錯頁,如果被設置爲true,則可以使用exception對象。默認爲false

11)<%@ extends="package.class" %>

表明JSP編譯時需要加入的Java class的全名,但是需要慎重使用,會限制JSP的編譯能力。

18. p72)在JSP文件中用Include指令包含一個靜態的文件,同時解析這個文件中的JSP語句:<%@ include file="path" %>

Include命令將在JSP編譯時插入一個包含文本或代碼的文件。當使用include時,這個包含的過程是靜態的。這個被包含的文件所執行的結果將會插入到JSP文件中放<%@include %>的地方。

19. p77<jsp:include>標籤允許包含動態文件和靜態文件。如果文件是靜態文件,那麼把包含的文件內容加到jsp文件中,這個被包含文件不會被JSP編譯器執行。相反,如果這個被包含文件是動態的文件,那麼這個被包含文件將會被JSP編譯器執行。

20. p78<jsp:forward>標籤重定向到一個HTML文件、JSP文件,或者一個程序段。該標籤從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象。<jsp:forward>標籤以下的代碼,將不能執行。可以使用<jsp:param>標籤向目標文件傳遞參數和值,注意如果使用了<jsp:param>標籤,那麼目標文件必須是一個動態的文件。

21. p80<jsp:useBean>標籤用來在JSP頁面中創建一個Bean實例並指定它的名字以及作用範圍。至於如何理解,請參考下面兩個帖子:

http://turingbook.group.javaeye.com/group/blog/577256

http://www.wang48.com/jishubaodianview/?jsd_id=201

22. p81<jsp:getProperty name="name" property="propertyName" /> 將獲得Bean的屬性值,並將之轉換爲一個字符串,然後顯示在JSP頁面中。注意事項:

1)在使用<jsp:getProperty>之前,必須用<jsp:useBean>創建它。

2)不能使用<jsp:getProperty>來檢索一個已經被索引了的屬性。

3)能否和JavaBeans組件一起使用<jsp:getProperty>,但是不能與EJB一起使用。

23. p85<jsp:plugin>元素用於在瀏覽器中播放或顯示一個對象(典型的就是AppletBean),而這種顯示需要有瀏覽器的java插件。

24. 本章最後的例子沒有看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章