- JSP常見的7個動作指令
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: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則拿目標頁面插入原有頁面
(三)userBean,setProperty,getProperty指令
這三個指令都是與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實例在本次請求有效
Session:該javabean實例在本次session內有效
application:該javabean實例在本次應用內一直有效
(四)plugin指令
plugin指令主要用於下載服務器端的JavaBean或Applet到到客戶端執行,由於程序在客戶端執行,因此客戶端必須安裝虛擬機。
(五)param指令
param用於設置參數值,這個指令本身不能單獨使用,因此單獨的param指令沒有實際意義,param指令可以與以下指令結合使用
jsp:include jsp:forward jsp:plugin