JSP基礎--動作標簽


JSP動作標簽

 

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

 

 

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>的使用。

 

<%@ 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"/>[崔1] 

    </jsp:include>

</body>

</html>

<%@ 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");[崔2] 

       out.print("你好:" + username);

    %>

  </body>

</html>

 


 [崔1]給被包含的頁面b.jsp傳遞參數。

 [崔2]獲取參數

JSP動作標簽
  這些jsp的動作標簽,與html提供的標簽有本質的區別。
  * 動作標簽是由tomcat(服務器)來解釋執行!它與java代碼一樣,都是在服務器端執行的!
  * html由瀏覽器來執行!
    * <jsp:forward>:轉發!它與RequestDispatcher的forward方法是一樣的,一個是在Servlet中使用,一個是在jsp中使用!
    * <jsp:include>:包含:它與RequestDispatcher的include方法是一樣的,一個是在Servlet中使用,一個是在jsp中使用!
      > <%@include>和<jsp:include>有什么不同!
    * <jsp:param>:它用來作為forward和include的子標簽!用來給轉發或包含的頁面傳遞參數!

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM