五、JSP的7個動作指令

動作指令只是在運行時的動作,編譯指令在將JSP翻譯成Servlet時起作用

JSP的主要動作指令

  • jsp:forword:執行頁面轉向,將請求的處理轉發到下一頁面。
  • jsp:param:用于傳遞參數必須與其他支持參數的標簽一起使用。
  • jsp:include:用于動態引入一個JSP頁面。
  • jsp:plugin:用于下載JavaBean或Applet到客服端執行。
  • jsp:useBean:創建一個JavaBean實例。
  • jsp:setProperty:設置JavaBean實例的屬性值。
  • jsp:getProperty:輸出JavaBean實例的屬性值。
5.1forward指令

forward指令用于將頁面響應轉發到另外的頁面。
JSP的forward指令格式:
JSP1.0

<jsp:forward page="{relativeURL|<%=expression%>}" />

JSP1.1以上

<!--
轉發頁面是增加額外的參數傳遞,
參數的值可以通過HttpServletRequest類的getParameter()方法獲取
-->
<jsp:forward page="{relativeURL|<%=expression%>}">
   <jsp:param.../>
</jsp:forward>

例:

<jsp:forward page="forward-result.jsp">
   <jsp:param name=age value=29 />
</jsp:forward>
<body>
<!--使用request內置對象獲取age參數的值-->
<%=request.getParameter("age")%>
</body>

表單提交:

<form id="login" method="post" action="jsp-forward.jsp">
   <input type="text" name="username" />
   <input type="submit" value="submit" />
</form>

<jsp:forward.../>指令給人一種:它是將用戶的請求“轉發”到另一頁面,但實際上并沒有重新向新頁面發送請求,它只是完全采用對用戶生成響應,請求依然是一次請求,所以請求參數、請求屬性都不會丟失。

5.2include指令

include指令是一個動態指令,也用于包含某個頁面,它不會導入被include頁面的編譯指令,僅僅將被導入的頁面的body內容插入本頁面。

語法格式:

<jsp:include page="{relativeURL|<%=expression%>}"  flush=""true />
<jsp:include page="{relativeURL|<%=expression%>}"  flush=""true>
   <jsp:param name="parameterName" value="patameterValue"/>
</jsp:include>

動態導入語法:

<body>
 <!--使用動態include指令導入頁面-->
<jsp:include page="include-result.jsp"/>
</body>

動態導入只是使用一個include方法來插入目標頁面,而不是將目標頁面完全融入本頁面中。

靜態導入和動態導入的三點區別:

  • 靜態導入是將導入頁面完全融入本頁面,兩個頁面完全融合生成一個整體的Servlet,而動態導入則在Servlet中使用include方法來引入被導入頁面的內容。
  • 靜態導入時被導入頁面的的編譯指令會起作用,而動態導入時被導入頁面的編譯指令則失去作用,只是插入被導入頁面的body內容。
  • 動態導入還可以增加額外的參數。

簡而言之,forward那布標頁面代替原有的頁面,include拿目標頁面插入原有的頁面。

5.3useBean、setProperty、getProperty指令

這三個指令都是與JavaBean相關的指令,useBean指令用于在JSP頁面中初始化一個Java實例;setProperty指令用于為JavaBean實例的屬性設置值,getProperty指令用于輸出JavaBean實例的屬性

useBean的語法:

<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>

scop屬性指定的JavaBean實例的作用范圍:

  • page:該JavaBean實例僅在該頁面有效。
  • request:該JavaBean實例在本次請求有效。
  • session:該JavaBean實例在本次session內有效。
  • application:該JavaBean實例在本應用內一直有效。
    setProperty指令語法:
<jsp:setProperty name="BeanName" property="propertyName" value="value" />

getProperty的語法:

<jsp:getProperty name="BeanName" property="propertyName" />

例:

<body>
<!--創建lee.Person的實例,該實例的實例名為p1-->
<jsp:useBean id="p1" class="lee.Person" scope="page" />
<!--設置p1的name屬性-->
<jsp:setProperty name="p1" property="name" value="zhangsan" />
<!--輸出p1的name值-->
<jsp:gettProperty name="p1" property="name" />
</body>

當頁面調用setProperty和getProperty標簽時,系統底層就是調用setName()和getName()方法來操作Person實例的屬性的。

5.4plugin指令

plugin指令主要用于下載服務端的JavaBean或Applet到客服端執行。由于程序要在客服端執行,所以客服端必須安裝虛擬機,實際中很少使用。

5.5param指令

param指令用于設置參數值,這個指令不能單獨使用,因為單獨的param指令沒有實際意義,param主要結合一下三個指令使用:

  • jsp:include
  • jsp:forward
  • jsp:plugin

語法格式:

<jsp:param name="paramName" value="paramValue" />
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前面講了servlet入門實踐現在開始介紹jsp入門實踐,開發環境的搭建請參考我前面的tomcat的文章,jsp入...
    伊豚wall閱讀 3,384評論 2 56
  • JSP 基本結構JSP 頁面組成:模板文本(HTML,XML,純文本),JSP 元素;JSP 元素:腳本元素,指令...
    jslancer閱讀 873評論 0 11
  • 一、jsp定義及作用 JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網...
    yzw12138閱讀 1,246評論 0 0
  • 什么是jsp? 很久之前,我們的網頁都是靜態的,就是我們所看到的頁面在編寫好之后總是唯一的。后來有人便提出動態頁面...
    ezsync小智閱讀 1,534評論 0 13
  • JSP(Java Server Pages),其根本是一個簡化的 Servlet 設計,實現了在 Java 當中使...
    靜候那一米陽光閱讀 489評論 0 1