blogjava's web log

          blogjava's web log
          ...

          JSP標準動作--筆記

          ?

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

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

          <jsp:useBean>標記

          創(chuàng)建Bean或從服務(wù)器獲得現(xiàn)有Bean

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

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


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

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

          可為同一 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應(yīng)可用的環(huán)境
          ----page
          ----session
          ----request
          -----application


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

          session 作用域
          將 JavaBean 對象存儲在 HTTP 會話中
          JavaBean 對象在當前 HttpSession 的生命周期內(nèi)可用于所有頁面


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

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


          非空 useBean 標記僅在新建 Bean 實例時才會處理標記的內(nèi)容

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

          ?

          <jsp:getProperty>標記

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


          <jsp:setProperty>標記

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

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

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

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

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

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


          <jsp:forward>標記
          將控制權(quán)傳輸至本地服務(wù)器上的另一地址

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

          <jsp:include>標記

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

          <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 動作的區(qū)別
          動重新編譯和類大小
          靜態(tài)或動態(tài)內(nèi)容的包括
          合并主頁和包括的頁面的時間
          共享局部變量
          修改的生效
          變量的作用域
          include指令,它是在JSP文件被轉(zhuǎn)換成Servlet的時候引入文件,而這里的jsp:include動作不同,插入文件的時間是在頁面被請求的時候!

          整理的有點亂。恐怕就我自己看的懂了(暈)...

          posted on 2006-03-27 00:40 record java and net 閱讀(3069) 評論(4)  編輯  收藏 所屬分類: Jsp&&Web

          評論

          # re: JSP標準動作--筆記 2006-08-21 18:06 guest

          謝謝啦  回復(fù)  更多評論   

          # re: JSP標準動作--筆記 2007-02-27 23:20

          useBean 中的class要部署到應(yīng)用的classes文件夾中嗎?為什么總是找不到我的類(。。。 cannot be resolved to a type)。。?  回復(fù)  更多評論   

          # re: JSP標準動作--筆記 2008-04-14 22:11 孫文君

          你真棒!
            回復(fù)  更多評論   

          # re: JSP標準動作--筆記 2009-03-28 23:06 zr

          我愛死你了~~ - -`  回復(fù)  更多評論   

          導(dǎo)航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動態(tài)語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評論

          主站蜘蛛池模板: 乐山市| 个旧市| 平陆县| 界首市| 瑞昌市| 宁河县| 海南省| 萝北县| 峡江县| 阿巴嘎旗| 祁东县| 钟山县| 台东县| 永康市| 东山县| 泰来县| 东丰县| 北宁市| 北京市| 荥经县| 峨眉山市| 建始县| 宁德市| 龙海市| 靖宇县| 白山市| 同仁县| 宜黄县| 多伦县| 高邑县| 电白县| 鄂伦春自治旗| 茂名市| 都安| 慈利县| 花莲市| 上虞市| 衡阳县| 绥德县| 布尔津县| 禹城市|