一、指令與動作
指令:<%@ 指令名 屬性 %>
動作:<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代碼,比如響應報頭的設定和字段、方法的定義。

五、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>