1. 程式人生 > >JSP中的動作標籤

JSP中的動作標籤

目錄

0.碼仙勵志

人生如棋,我願為卒,行動雖慢,可何曾後退過一步

1.JSP動作標籤概述

  1. 動作標籤的作用是用來簡化Java指令碼的!
  2. JSP動作標籤是JavaWeb內建的動作標籤,它們是已經定義好的動作標籤,我們可以拿來直接使用。
  3. 如果JSP動作標籤不夠用時,還可以使用自定義標籤。JavaWeb一共提供了20個JSP動作標籤,但有很多基本沒有用,這裡只介紹一些有座標的動作標籤。
  4. JSP動作標籤的格式:<jsp:標籤名 …>

2.jsp:include

  1. <jsp:include>標籤的作用是用來包含其它JSP頁面的!你可能會說,有include指令不就行了嗎?雖然它們都是用來包含其它JSP頁面的,但它們的實現的級別是不同的!
  2. include指令是在編譯級別完成的包含,即把當前JSP和被包含的JSP合併成一個JSP,然後再編譯成一個Servlet。
  3. 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>