Jsp7個動作指令

  • JSP常見的7個動作指令

1jsp:forward指令

執行頁面轉向,將請求處理轉發到下一個頁面

2jsp:param指令

用於傳遞參數

3jsp:include指令

用於動態引入一個JSP頁面

4jsp:plugin指令

用於下載JavaBeanApplet到客戶端執行

5jsp:useBean指令

創建一個JavaBean實例

6jsp:setProperty指令

設置JavaBean實例的屬性值

7jsp:getProperty指令

獲取JavaBean實例的屬性值

  • 部分指令詳解

(一)forward指令

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

    JSPforward指令格式如下:

     對於JSP1.0語法爲:<JSP:forwardpage="{relativeURL|<%=expression%>}"/>   

     對於JSP1.1以上規範,語法爲<JSP:forwardpage="{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部分。

 forward拿目標頁面代替原有頁面,include則拿目標頁面插入原有頁面

(三)userBeansetPropertygetProperty指令

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

userBean的語法格式如下

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

其中,id屬性是JavaBean的實例名,class屬性確定JavaBean的實現類。scope屬性用於指定JavaBean實例的作用範圍。

 

 setProperty的語法格式

 <jsp:setPropertyname="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)

Page:javabean實例僅在該頁面有效

Request:javabean實例在本次請求有效

Sessionjavabean實例在本次session內有效

applicationjavabean實例在本次應用內一直有效

(四)plugin指令

 plugin指令主要用於下載服務器端的JavaBeanApplet到到客戶端執行,由於程序在客戶端執行,因此客戶端必須安裝虛擬機。

(五)param指令

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

jspinclude  jspforward   jspplugin

發佈了148 篇原創文章 · 獲贊 140 · 訪問量 69萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章