JSP的7個動作指令

來源:互聯網
上載者:User

動作指令與編譯指令不同,編譯指令時通知servlet引擎的處理訊息,而動作指令只是運行時的動作。編譯指令在將JSP編譯成Servlet時起作用,而處理指示通常可替換成JSP指令碼,它只是JSP指令碼的標準化寫法。

(1)JSP:forward  執行頁面轉向,將請求的處理轉寄到下一個頁面。

(2)JSP:param  用於傳遞參數,必須與其他支援參數的標籤一起使用

(3)JSP:include  用於動態引入一個JSP頁面

(4)JSP:plugin 用於下載JavaBean或者Applet到用戶端執行

  (5)   JSP:useBean 建立一個Javabean執行個體

(6)  JSP:setProperty  設定JavaBean執行個體的屬性值

(7)JSP:getProperty  擷取JavaBean執行個體的屬性值

(一)forward指令

       用於將頁面相應轉寄到另外的頁面,既可以轉寄到靜態html頁面,也可以轉寄到動態JSP頁面,或者轉寄到容器中的Servlet。動態指令只需直接<>中使用指令,靜態則是<%%>,動態指令均是成對出現的。

    JSP的forward指令格式如下:

      對於JSP1.0文法為:<JSP:forward page="{relativeURL|<%=expression%>}"/>   

      對於JSP1.1以上規範,文法為:<JSP:forward page="{relativeURL|<%=expression%>}">

                                                                            {<JSP:param·······/>}

                                                             </JSP:forward>  

   這種文法用於在轉寄時增加額外的請求參數。增加的請求參數的值可以通過HttpServletRequest類的getParameter()方法擷取。執行forward指令時,使用者請求的地址依然沒有發生改變,仍然是一次請求,但頁面內容完全變為被forward目標頁的內容。執行forward指令轉寄請求時,用戶端的請求參數不會丟失。

(二)include指令

       include指令時一個動態include指令,也用於包含某一個頁面,它不會匯入被include頁面的編譯指令,僅僅被匯入頁面的body內容插入頁面。

      <jsp:include page="{relativeURL|<%=expression%>}" flush="true">

               <jsp:param name="parameterName" value="parameterValue"/>

    <jsp:include/>

     flush屬性用於指定輸出緩衝是否轉移到被匯入檔案中,如果指定為true,則包含在被匯入檔案;如果指定為false,則包含在原檔案中。對於JSP1.1舊版本中,只能設定為false。

註:include靜態:編譯指令 -----兩個JSP頁面融合成一個servlet

       include動態:動作指令------在servlet中使用include引入被匯入頁面的內容

    靜態匯入頁面被匯入頁面的編譯指令必須一致,否則會出錯,動態則只包含body部分。

(三)userBean,setProperty,getProperty指令

這三個指令都是與JavaBean相關的指令,其中userBean指令用於在JSP頁面中初始化一個java執行個體,setProperty指令用於為JavaBean執行個體的屬性設定值;getProperty指令用於輸出JavaBean執行個體的屬性。如果多個JSP頁面中需要重複使用的某段代碼,我們可以把這段代碼定義為java類的方法,然後多個JSP頁面調用該方法即可,這樣可以達到較好的代碼複用。

userBean的文法格式如下

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

其中,id屬性是JavaBean的執行個體名,class屬性確定JavaBean的實作類別。scope屬性用於指定JavaBean執行個體的作用範圍。

setProperty的文法格式

 <jsp:setProperty name="BeanName" property="propertyName"   value="propertyValue"/>

其中,name屬性是要確定JavaBean的執行個體名,property屬性要確定設定屬性的屬性名稱,value屬性時要確定屬性名稱對應的值。

getProperty的文法格式

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

其中,name屬性時要確定JavaBean的執行個體名,name屬性是指定要擷取的屬性名稱對應的值。

註:使用userBean標籤時,除在頁面指令碼中建立了JavaBean執行個體之外,該標籤還會將該JavaBean執行個體放入指定scope中,所以我們還需要在指令碼中將JavaBean放入指定的scope中,所下面的代碼所示:

pageContext.setAttribute("beanName",beanName)

request.setAtttibutr("beanName",beanName)

session.setAttribute("beanName",beanName)

application.setAttribute("beanName",beanName)

(四)plugin指令

 plugin指令主要用於下載伺服器端的JavaBean或Applet到到用戶端執行,由於程式在用戶端執行,因此用戶端必須安裝虛擬機器。

(五)param指令

param用於設定參數值,這個指令本身不能單獨使用,因此單獨的param指令沒有實際意義,param指令可以與以下指令結合使用

jsp:include  jsp:forward   jsp:plugin

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.