JSP 標準動作

JSP 動作的作用
JSP動作利用XML語法格式的標記來控制Servlet引擎的行爲。利用JSP動作可以動態地插入文件、重用JavaBean組件、把用戶重定向到另外的頁面、爲Java插件生成HTML代碼,通過標記庫定義自定義標記
-----起始標記
-----結束標記
-------空標記

包括:
<jsp:include>
<jsp:param>
<jsp:forward>
<jsp:plugin>
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>

<jsp:useBean>標記

創建Bean或從服務器獲得現有Bean

語法:
<jsp:useBean  id="bean name" class="class name" />
或者
<jsp:useBean  id="bean name" class="class name ">
  初始化代碼
</jsp:useBean> 

jsp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。這個功能非常有用,因爲它使得我們既可以發揮Java組件重用的優勢,同時也避免了損失JSP區別於Servlet的方便性 !


獲得Bean實例之後,要修改Bean的屬性既可以通過jsp:setProperty動作進行,也可以在Scriptlet中利用id屬性所命名的對象變量,通過調用該對象的方法顯式地修改其屬性 .

id屬性-在整個頁面引用Bean的唯一值
Bean名稱的規則:
      唯一
區分大小寫
第一個字符必須爲字母
不允許有空格

可爲同一 Bean 類指定不同的 id 值.

class 屬性-JavaBean 的類名

---Count Bean不屬於包
             <jsp:useBean id="count" class="Count" />
-----Count Bean屬於test包
             <jsp:useBean id="count" class="test.Count" />



type屬性---------將引用此對象的變量的類型
beanName 屬性-指定串行化Bean的名稱

scope 屬性-表明Bean應可用的環境 
----page
----session
----request
-----application


page 作用域 
將 JavaBean 對象存儲在當前頁面的 javax.servlet.jsp.PageContext 中
JavaBean 對象僅可用於當前頁面

session 作用域 
將 JavaBean 對象存儲在 HTTP 會話中
JavaBean 對象在當前 HttpSession 的生命週期內可用於所有頁面


request 作用域 
將 JavaBean 對象存儲在當前 ServletRequest 中
JavaBean 對象可用於被包括的 JSP 頁面

application 作用域 
將 JavaBean 對象存儲在 ServletContext 中
JavaBean 對象可用於共享同一 ServletContext 的所有頁面


非空 useBean 標記僅在新建 Bean 實例時纔會處理標記的內容

<jsp:useBean id="currentuser" class="CurrentUser" scope="session">
    Hello,new user!!!
</jsp:useBean>

 

<jsp:getProperty>標記

檢索 Bean 屬性的值,將此值轉換成字符串,並插入輸出結果中
name 屬性-指定 Bean 的名稱
property 屬性-指定 Bean 的屬性
<jsp:getProperty name="bean name" property="property name"/>


<jsp:setProperty>標記

設置 Bean 類的屬性
name 屬性-指定 Bean 的名稱
property 屬性-指定 Bean 的屬性
value 屬性-指定要設置的值

<jsp:setProperty name="bean name" property="property name" value="str" /> 
jsp:setProperty動作有下面四個屬性
 name屬性是必需的。它表示要設置屬性的是哪個Bean。
property property屬性是必需的。它表示要設置哪個屬性。
有一個特殊用法:如果property的值是“*”,表示所有名字和Bean屬性名字匹配的請求參數都將被傳遞給相應的屬性set方法。

value屬性是可選的。該屬性用來指定Bean屬性的值。字符串數據會在目標類中通過標準的valueOf方法自動轉換成數字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如“true”)通過Boolean.valueOf轉換,int和Integer類型的屬性值(比如“42”)通過Integer.valueOf轉換。 
value和param不能同時使用,但可以使用其中任意一個

 param是可選的。它指定用哪個請求參數作爲Bean屬性的值。如果當前請求沒有參數,則什麼事情也不做,系統不會把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認屬性值,只有當請求參數明確指定了新值時才修改默認屬性值。

例如,下面的代碼片斷表示:如果存在numItems請求參數的話,把numberOfItems屬性的值設置爲請求參數numItems的值;否則什麼也不做。

<jsp:setProperty name="orderBean"  property="numberOfItems"  param="numItems" /> 
如果同時省略value和param,其效果相當於提供一個param且其值等於property的值。進一步利用這種藉助請求參數和屬性名字相同進行自動賦值的思想,你還可以在property(Bean屬性的名字)中指定“*”,然後省略value和param。此時,服務器會查看所有的Bean屬性和請求參數,如果兩者名字相同則自動賦值。


<jsp:forward>標記 
將控制權傳輸至本地服務器上的另一地址

page 屬性-指定替代地址
可爲靜態值,也可在請求時計算
語法:
<jsp: forward page = "localURL" />
<jsp:forward page=“/utils/errorReporter.jsp” />
<jsp:forward page="<%= someJavaExpression %>" />

<jsp:include>標記

可將另一個頁面生成的內容包括在當前頁面的輸出結果中
也可包括Servlet
page 屬性-要插入當前頁面的文檔
flush 屬性-是否刷新當前頁面的緩衝器
<jsp:param> 標記指定附加的 request 參數

<jsp:include page="localURL" flush="true" >
 <jsp:param name="parameterName1" value="parameterValue1" />
  <jsp:param name="parameterNameN" value="parameterValueN" />
<jsp:include page="localURL" flush="true" />

 

include 指令和 include 動作的區別
動重新編譯和類大小
靜態或動態內容的包括
合併主頁和包括的頁面的時間
共享局部變量
修改的生效
變量的作用域
include指令,它是在JSP文件被轉換成Servlet的時候引入文件,而這裏的jsp:include動作不同,插入文件的時間是在頁面被請求的時候!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章