JSP頁面的構成總結

JSP頁面主要由指令標籤、HTML標記語言、註釋、嵌入的JAVA代碼、JSP動作標籤等組成。所有的JSP頁面在執行之前會被服務器解析成servlet。

1.JSP指令標籤

指令標籤不會產生任何的輸出內容到頁面中,主要用來定義整個頁面的相關信息。語法格式如下:

<%@directive attribute="value"......>

其中:directive:指令的名稱,可以爲page、include和taglib其中的之一。

attribute:屬性名稱,不同的指令有不同的屬性。

value:指定屬性的屬性值。

1.1 page指令

page指令用來定義整個頁面的相關屬性,語法爲<%@page attribute1="value1" attribute2="value"  .......%>

attribute1和attribute2的屬性主要包含以下內容(具體有15個之多):

1)屬性language,用來設置JSP頁面的使用的語言。

例如:<%@page language="java"%>

2)import設置JSP導入的類包。

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

3)extends屬性:設置JSP頁面繼承的Java類,該屬性並不常用,有可能影響服務器的性能優化。

4)pageEncoding屬性

該屬性用來定義JSP頁面的編碼格式,指定文件的編碼。JSP頁面中的所有代碼都使用該屬性指定的字符集。例如:

<%@page pageEncoding="UTF-8" %>

5) contentType屬性

該屬性定義JSP頁面的MIME(Multipurpose Internet Mail Extensions)類型和字符編碼,瀏覽器會根據該屬性顯示網頁內容。

<%@page contentTpye="text/html;charset=UTF-8" %>

6)session 屬性

指定JSP頁面是否使用http的session會話對象。屬性值是boolean類型的。默認值是true。

<%@page session="false" %>該例子中不使用session對象,任何對session的引用都會發生錯誤。

7)buffer屬性

該屬性用來設置out對象的使用緩衝區的大小,默認大小爲8kb,且單位只能使用KB.<%@page buffer="12kb" %>

8)autoFlush屬性

用於設置JSP頁面緩存滿時,是否自動刷新緩存,默認值爲true。

9)info屬性

該屬性用來設置jsp頁面的相關信息,該信息可以在servlet接口的getServletInfo()方法中獲取。

10)errorPage屬性

該屬性用來處理當前頁面錯誤的指定頁面,其屬性值是一個url字符串,指定的錯誤處理頁面的isErrorPage屬性必須設置成true。

<%@page errorpage="xxxx/xxx.jsp" %>

如果使用該屬性,在web.xml中定義的錯誤處理頁面都將被忽略,優先使用該屬性定義的錯誤處理頁面。

11)isErrorPage屬性

該屬性將當前頁面設置成處理另一個頁面的錯誤。

<%@page isErrorPage="true" %>

12)IsELIgnored屬性

該屬性用於定義Jsp頁面是否忽略EL表達式的使用。

1.2 include指令

該指令用於文件包含,它僅支持靜態包含,在當前頁面中更包含另一個文件的內容。如:

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

被包含的文件會直接使用包含文件的設置。源文件和被包含文件的變量和方法的名稱不要衝突,因爲會生成一個文件,重名會導致錯誤發生。

1.3 taglib指令

該指令用來加載用戶自定義的標籤,格式如下:

<%@taglib prefix="XXX" uri="taglibUriValue.tld" %>

prefix:設置自定義標籤的前綴。

uri:用於自定義標籤的描述文件位置。

2.註釋

2.1 HTML註釋

格式:<!--  註釋內容 -->
該註釋可以在源代碼中看到。不會顯示到頁面中。 

2.2 JSP註釋

格式: <%-- 註釋內容 --%>
該註釋方式是被服務器編譯執行的,不會發送到客戶端,在源代碼中不會被看到。

2.3 動態註釋

html註釋對JSP嵌入的代碼不作用,可以組合構成動態的註釋。
例如:<!-- <%=new Date()%> -->。

3.嵌入的Java代碼

3.1 嵌入java代碼片段

格式:<% 編寫的java code %>每行代碼中使用分號,於編寫Java類代碼格式相同。

例如:<%

out.println("hello,world");

String str="hello";

out.println(str);

%>

3.2 JSP表達式

表達式可以直接把結果輸出到頁面中,表達式的最終運算結果都將被轉換成字符串,因爲在網頁中顯示的文字都是字符串。

例如:<%= express %>

3.3 jsp 聲明

語法格式:<%! 聲明的變量 %>

該變量是可以在整個jsp頁面被訪問的,具有全局性。

例如:

聲明全局變量:<%! long couter=0; %>

聲明全局方法:<%! int getConter(){

return counter;

}

%>

4.JSP動作標籤

動作標籤是在請求處理階段按照在頁面中出現的順序被執行的,其優先級低於指令標籤,jsp頁面在被執行時將首先進入翻譯階段,程序會先查找頁面中的指令標籤,將它們轉換成servlet,從而設置整個jsp頁面。

4.1  <jsp:include>

該標籤可以將另一個文件的內容包含到當前jsp頁面中,包含的文件內容可以是靜態文本,亦可以是動態代碼。
語法格式爲:<jsp:include page="url" flush="true| false"/>
<jsp:include page ="url" flush="true| false" >
其他子標籤內容
</jsp:include>
page:包含文件內容的相對路徑屬性。
flush:可選參數,用來設置時候刷新緩衝區,默認值爲false。設置爲true,則在當前頁面輸出使用了緩衝區的情況下,將先刷新緩衝區,再執行包含工作。

4.2  <jsp:forward>

該標籤是請求轉發標籤,可以將當前頁面的請求轉發給其他web資源(jsp頁面,html頁面、servlet等)。
格式爲:<jsp:forward page="url" />
<jsp:forward page = 'url">
子標籤
</jsp:forward>

4.3 <jsp:param>

該標籤可以作爲其他標籤的子標籤,爲其他標籤傳遞參數。
語法格式爲:
<jsp:param name="paramName" value="paramValue"/>
name:用於指定參數名稱
value:用於設置對應的參數。
例如:
<jsp:forward page ="xxx.jsp">
<jsp:param name=“test” value="hello"/>
</jsp:forward>
在轉發請求的過程中,將值爲hello的參數test殘體給xxx.jsp頁面。

4.4 JavaBean動作標籤

包含<jsp:useBean>、<jsp:setProperty> <jsp:getProperty>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章