JSP 七、JSP指令與動作元素

  • include指令

  • include動作

  • include指令與include動作的區別

  • <jsp:forward>動作

  • <jsp:param>動作

  • <jsp:plugin>動作

 

 7-1 include指令

常用的有page、include、taglib指令這三種指令;

page:位於頁面頂端,一個頁面可以包含多個page指令

include:將一個外部文件嵌入jsp中,同時解析這個頁面中的jsp語句。

taglib:使用標籤庫,自定義新的標籤,在jsp中啓動定製行爲。

include指令

1.語法 <% include file="地址"%>。

案例:顯示當前時間的頁面。(1)寫一個只輸出時間的方法的date.jsp。(2)用於顯示的頁面,包含<% include file="date.jsp"%>

 

7-2 include動作

語法 <jsp:include page="URL" flush="true|false,默認爲false" ></jsp:include>

page:要包含的頁面

flush:被包含的頁面是否使用緩衝讀取

JSP 中include 另一個文件時有個很偏的屬性,叫flush,默認爲 false。在同一個 JSP 中,如果不斷 include 自己(源文件),在邏輯上會形成死循環。而當把flush 屬性賦爲真值時,在緩存累積了一定數據時,服務器會先提供一部分數據給瀏覽器,並等待後續內容。由此可以得出結論,在簡單頁面中,該屬性不納入考慮,而在頁面包含大量數據時,爲縮短客戶端延遲,可將一部分內容先行輸出。

 

7-3  include指令與include動作的區別

1、包含內容: 指令包含的是【源代碼】,動作包含的是頁面輸出的【結果】

2、生成的servlet:指令會生成一個整體的Servlet;而動作會分別生成兩個,即在一個Servlet中調用另一個Servlet

3、其他區別如圖:

4、【使用場合】:頁面內容不經常變化使用include指令,頁面內容經常變化使用<jsp:include>動作

include指令: include指令是編譯階段的指令,即include所包含的文件的內容是編譯的時候插入到JSP文件中‘因此如果只修改了include文件內容,而沒有對JSP修改,得到的結構將不會改變,所以直接執行已經存在的字節碼文件,而沒有重新編譯。因此對不經常變化的內容,用include指令是合適的,如果需要的內容是經常變化的,則需要動作元素<jsp:include>.

include動作在維護上的優勢十分巨大,當兩種方法都可以使用時,include動作幾乎肯定是首選的方法。對於文件包含,應該儘可能地使用include動作。僅在所包含的文件中定義了主頁面要用到的字段或方法,或所包含的文件設置了主頁面的響應報頭時,才應該使用include指令。

因爲include指令更爲強大。include指令允許所包含的文件中含有影響主頁面的Jsp代碼,比如響應報頭的設置和字段、方法的定義。

例子:

//subpage.jsp

<%! int num=0; %>

 

//mainpage.jsp

<html>

<body>

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

<%= num %>

</body>

</html>

當然使用include動作時這是不可能的,因爲num變量未定義,主頁面不能成功的轉換成servlet。

 

7-4 forward動作 

1、語法:<jsp:forward page="URL"/>

2、等於服務器內部轉發指令 request.getRequestDispacher("URL").forward(req,res);

四種跳轉.

<% response.sendRedirect("login_seccess.jsp"); %>//告訴瀏覽器此路不通,你再問問另一頁面能解決你的問題不?

<jsp:forward page="login_fail.jsp"/> //服務器將請求轉發到另一頁面,瀏覽器不知情.

<% pageContext.forward("login_fail.jsp");%> //服務器將請求轉發到另一頁面,瀏覽器不知情.

<% request.getRequestDispatcher("login_fail.jsp").forward(request,response);%> //服務器將請求轉發到另一頁面,瀏覽器不知情.

 

7-5 param動作

1、語法:<jsp:param name="參數名" value="參數值">

2、【常常與<jsp:forward></jsp:forward>一起使用】,並作爲其【子標籤】。

3、用於傳遞新參數或者【修改原有參數值】,修改參數時使用form表單裏的參數名稱即可。同樣用request.getParameter("參數名")獲取

必須與forward、include及plugin動作配合使用。

通常與forward動作一起使用,作爲它的子標籤,它的作用是指定某個參數值,可以用於傳遞參數,

<jsp:forward page="url"> <jsp:param value="[email protected]" name="email"/> </jsp:forward>

 

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