JSP中的動作標籤
阿新 • • 發佈:2018-12-17
目錄
0.碼仙勵志
人生如棋,我願為卒,行動雖慢,可何曾後退過一步
1.JSP動作標籤概述
- 動作標籤的作用是用來簡化Java指令碼的!
- JSP動作標籤是JavaWeb內建的動作標籤,它們是已經定義好的動作標籤,我們可以拿來直接使用。
- 如果JSP動作標籤不夠用時,還可以使用自定義標籤。JavaWeb一共提供了20個JSP動作標籤,但有很多基本沒有用,這裡只介紹一些有座標的動作標籤。
- JSP動作標籤的格式:<jsp:標籤名 …>
2.jsp:include
- <jsp:include>標籤的作用是用來包含其它JSP頁面的!你可能會說,有include指令不就行了嗎?雖然它們都是用來包含其它JSP頁面的,但它們的實現的級別是不同的!
- include指令是在編譯級別完成的包含,即把當前JSP和被包含的JSP合併成一個JSP,然後再編譯成一個Servlet。
- include動作標籤是在執行級別完成的包含,即當前JSP和被包含的JSP都會各自生成Servlet,然後在執行當前JSP的Servlet時完成包含另一個JSP的Servlet。它與RequestDispatcher的include()方法是相同的!
hel.jsp
<body>
<h1>hel.jsp</h1>
<jsp:include page="lo.jsp" />
</body>
lo.jsp
<%
out.println("<h1>lo.jsp</h1>");
%>
其實<jsp:include>在“真身”中不過是一句方法呼叫,即呼叫另一個Servlet而已。
3.jsp:forward
forward標籤的作用是請求轉發!forward標籤的作用與RequestDispatcher的forward()方法相同。
hel.jsp
<body> <h1>hel.jsp</h1> <jsp:forward page="lo.jsp"> </body>
lo.jsp
<%
out.println("<h1>lo.jsp</h1>");
%>
注意,最後客戶端只能看到lo.jsp的輸出,而看不到hel.jsp的內容。也就是說在hel.jsp中的<h1>hel.jsp</h1>是不會發送到客戶端的。<jsp:forward>的作用是“別在顯示我,去顯示它吧!”。
4.jsp:param
還可以在<jsp:include>和<jsp:forward>標籤中使用<jsp:param>子標籤,它是用來傳遞引數的。下面用<jsp:include>來舉例說明<jsp:param>的使用。
a.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>a.jsp</title>
</head>
<body>
<h1>a.jsp</h1>
<hr/>
<jsp:include page="/b.jsp">
<jsp:param value="zhangSan" name="username"/>
</jsp:include>
</body>
</html>
b.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>b.jsp</title>
</head>
<body>
<h1>b.jsp</h1>
<hr/>
<%
String username = request.getParameter("username");
out.print("你好:" + username);
%>
</body>
</html>