天天看點

JSP指令與動作元素

一、指令與動作

指令:<%@ 指令名 屬性 %>

動作:<jsp: 動作名 屬性 />

二、include指令

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

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

include:将一個外部檔案嵌入jsp中,同時解析這個頁面中的jsp語句。

taglib:使用标簽庫,自定義新的标簽,在jsp中啟動定制行為。

include指令

文法 

<% include file="位址"%>
           

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

三、include動作:

文法

<jsp:include page="URL" flush="true|false,預設為false"/ >
           

page:要包含的頁面

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

目前學了3種方法導入外面檔案

1、pageContext的方法include()。

2、JSP的指領<%@ inlcude file="url"%>

3、javabean的動作元素<jsp:include page="url"flush="true|false">

四、include指令與include動作差別

include指令:

1.include指令是編譯階段的指令,即include所包含的檔案的内容是編譯的時候插入到JSP檔案中‘是以如果隻修改了include檔案内容,而沒有對JSP修改,得到的結構将不會改變,是以直接執行已經存在的位元組碼檔案,而沒有重新編譯。是以對不經常變化的内容,用include指令是合适的,如果需要的内容是經常變化的,則需要動作元素<jsp:include>.

2.include指令的主要優點是功能強大,所包含的代碼可以含有總體上影響首頁面的JSP構造,比如屬性、方法的定義和文檔類型的設定。

3.缺點是難于維護隻要被包含的頁面發生更改,就得更改首頁面,這是因為首頁面不會自動地檢視被包含的頁面是否發生更改。

4.僅當include動作不能滿足要求時,我們才應該使用include指令。

5.include動作在維護上的優勢十分巨大,當兩種方法都可以使用時,include動作幾乎肯定是首選的方法。

6.對于檔案包含,應該盡可能地使用include動作。僅在所包含的檔案中定義了首頁面要用到的字段或方法,或所包含的檔案設定了首頁面的響應報頭時,才應該使用include指令。

7.include指令更為強大。include指令允許所包含的檔案中含有影響首頁面的Jsp代碼,比如響應報頭的設定和字段、方法的定義。

JSP指令與動作元素

五、Forward動作

文法:

<jsp:forward page="URL"/>
           

等于伺服器内部轉發指令request.getRequestDispacher("URL").forward(req,res);

四種跳轉.

<%response.sendRedirect("login_seccess.jsp"); %>//告訴浏覽器此路不通,你再問問另一頁面能解決你的問題不?
<jsp:forwardpage="login_fail.jsp"/> //伺服器将請求轉發到另一頁面,浏覽器不知情.
<%pageContext.forward("login_fail.jsp");%> //伺服器将請求轉發到另一頁面,浏覽器不知情.
<%request.getRequestDispatcher("login_fail.jsp").forward(request,response);%>//伺服器将請求轉發到另一頁面,浏覽器不知情.
           

六、param動作,傳遞方法為post

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>