1. 程式人生 > >暑假自學JAVA Web心得(2)

暑假自學JAVA Web心得(2)

聲明 代碼 請求 區別 處理請求 nbsp 編譯器 心得 最終

3.JSP腳本

1.JSP中應用代碼片段
格式:<% Java代碼或是腳本代碼 %>
在頁面請求處理 期間被執行。通過java代碼可以定義變量或是流程控制語句,通過腳本代碼可以應用JSP的內置對象在頁面輸出內容、處理請求和響應並訪問session會話等。
2.JSP表達式
格式:<%= 表達式 %>
用於在頁面中輸出信息。註意:在=和%之間不能有空格
3.聲明標識
格式:<%! 聲明變量或方法的代碼%>
在JSP頁面中也可以如編寫Java文件一樣定義成員變量及成員方法,定義的變量和方法是全局的 。

腳本片段和聲明標識的區別:通過聲明標識創建的變量和方法,在當前JSP頁面中有效,它的生命周期是從創建開始到服務器關閉結束;

而代碼片段創建的變量或方法,也是在當前JSP頁面中有效,但它的生命周期是頁面關閉後,就會被銷毀。並且,聲明標識是定義變量和方法,而代碼片段不能用來定義方法。

4.包含動作標識和文件包含指令

想要包含頁面有兩種方式:
①使用文件包含指令include。它屬於JSP的指令標識,可以將一個JSP頁面包含到另一個JSP頁面中,實現JSP頁面的重用。
格式:<%@ include file="path"%>
原理:被包含文件中所有內容會被原樣包含到JSP頁面中。即使是被包含文件中有JSP代碼,在包含時也不會被編譯執行,將兩個頁面組合成一個頁面後編譯處理,最後返回結果頁面。
②使用包含動作標識jsp:include。它屬於JSP的動作標識,同樣可以包含其他頁面。
格式:<jsp:include page="url" flush="false/true" /> 或 <jsp:include page="url" flush="false/true"> </jsp:include>
原理:將被包含的頁面編譯處理後將結果包含在頁面中。Web會首先編譯被包含的頁面。然後將編譯處理後的結果返回包含在頁面之中,再編譯包含頁面,最後將兩個頁面組合的結果回應給瀏覽器。


區別:1、include指令通過file屬性指定被包含的文件,並且該屬性不支持任何表達式;<jsp:include>動作標識通過page屬性指定被包含的文件,而且該屬性支持JSP表達式。
2、使用include指令時,被包含的文件內容會原封不動地插入到包含頁中,然而JSP編譯器將合成後的文件最終編譯為一個Java文件;使用<jsp:inlcude>動作標識包含文件且該標識被執行時,程序會將請求轉發(不是重定向)到被包含的頁面並將執行結果輸出到瀏覽器中,然後返回包含頁面繼續執行後面的代碼。因為服務器執行多個文件,所以JSP編譯器會分別編譯這些文件。
3、在應用include指令包含文件時由於被包含的文件最終會生成一個文件,所以在被包含文件和包含文件中不能有重名的變量或方法;在應用<jsp:include>動作標識包含文件時,由於每個文件單獨編譯,所以在被包含文件和包含文件中重名的變量和方法不沖突
4、include指令包含的只能是靜態頁面,而<jsp:include>動作標識能包含靜態或動態頁面。

暑假自學JAVA Web心得(2)