亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網

17站長網 首頁 編程 JSP編程 查看內容

JSP動作

2022-10-27 18:48| 查看: 3386 |來源: 互聯網

JSP動作利用XML語法格式的標記來控制Servlet引擎的行為。利用JSP動作可以動態地插入文件、重用JavaBean組件、把用戶重定向到另外的頁面、為Java插件生成HTML代碼 ...
<code id="6hkly"><strike id="6hkly"><wbr id="6hkly"></wbr></strike></code>

      JSP動作利用XML語法格式的標記來控制Servlet引擎的行為。利用JSP動作可以動態地插入文件、重用JavaBean組件、把用戶重定向到另外的頁面、為Java插件生成HTML代碼。

         JSP動作包括:

      jsp:include:在頁面被請求的時候引入一個文件。
      jsp:useBean:尋找或者實例化一個JavaBean。
      jsp:setProperty:設置JavaBean的屬性。
      jsp:getProperty:輸出某個JavaBean的屬性。
      jsp:forward:把請求轉到一個新的頁面。
      jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記。
         13.1 jsp:include動作

         該動作把指定文件插入正在生成的頁面。其語法如下:
      <jsp:include page="relative URL" flush="true" />

         前面已經介紹過include指令,它是在JSP文件被轉換成Servlet的時候引入文件,而這里的jsp:include動作不同,插入文件的時間是在頁面被請求的時候。jsp:include動作的文件引入時間決定了它的效率要稍微差一點,而且被引用文件不能包含某些JSP代碼(例如不能設置HTTP頭),但它的靈活性卻要好得多。

         例如,下面的JSP頁面把4則新聞摘要插入一個“What's New ?”頁面。改變新聞摘要時只需改變這四個文件,而主JSP頁面卻可以不作修改:

         WhatsNew.jsp
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
      <HEAD>
      <TITLE>What's New</TITLE>
      </HEAD>

      <BODY BGCOLOR="#FDF5E6" TEXT="#000000" LINK="#0000EE"
            VLINK="#551A8B" ALINK="#FF0000">

      <CENTER>
      <TABLE BORDER=5 BGCOLOR="#EF8429">
        <TR><TH CLASS="TITLE">
            What's New at JspNews.com</TABLE>
      </CENTER>
      <P>
      Here is a summary of our four most recent news stories:
      <OL>
        <LI><jsp:include page="news/Item1.html" flush="true"/>
        <LI><jsp:include page="news/Item2.html" flush="true"/>
        <LI><jsp:include page="news/Item3.html" flush="true"/>
        <LI><jsp:include page="news/Item4.html" flush="true"/>
      </OL>
      </BODY>
      </HTML>


         13.2 jsp:useBean動作

         jsp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。這個功能非常有用,因為它使得我們既可以發揮Java組件重用的優勢,同時也避免了損失JSP區別于Servlet的方便性。jsp:useBean動作最簡單的語法為:
      <jsp:useBean id="name" class="package.class" />

         這行代碼的含義是:“創建一個由class屬性指定的類的實例,然后把它綁定到其名字由id屬性給出的變量上”。不過,就象我們接下來會看到的,定義一個scope屬性可以讓Bean關聯到更多的頁面。此時,jsp:useBean動作只有在不存在同樣id和scope的Bean時才創建新的對象實例,同時,獲得現有Bean的引用就變得很有必要。

         獲得Bean實例之后,要修改Bean的屬性既可以通過jsp:setProperty動作進行,也可以在Scriptlet中利用id屬性所命名的對象變量,通過調用該對象的方法顯式地修改其屬性。這使我們想起,當我們說“某個Bean有一個類型為X的屬性foo”時,就意味著“這個類有一個返回值類型為X的getFoo方法,還有一個setFoo方法以X類型的值為參數”。

         有關jsp:setProperty動作的詳細情況在后面討論。但現在必須了解的是,我們既可以通過jsp:setProperty動作的value屬性直接提供一個值,也可以通過param屬性聲明Bean的屬性值來自指定的請求參數,還可以列出Bean屬性表明它的值應該來自請求參數中的同名變量。

         在JSP表達式或Scriptlet中讀取Bean屬性通過調用相應的getXXX方法實現,或者更一般地,使用jsp:getProperty動作。

         注意包含Bean的類文件應該放到服務器正式存放Java類的目錄下,而不是保留給修改后能夠自動裝載的類的目錄。例如,對于Java Web Server來說,Bean和所有Bean用到的類都應該放入classes目錄,或者封裝進jar文件后放入lib目錄,但不應該放到servlets下。

         下面是一個很簡單的例子,它的功能是裝載一個Bean,然后設置/讀取它的message屬性。

         BeanTest.jsp
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
      <HEAD>
      <TITLE>Reusing JavaBeans in JSP</TITLE>
      </HEAD>

      <BODY>
      <CENTER>
      <TABLE BORDER=5>
        <TR><TH CLASS="TITLE">
            Reusing JavaBeans in JSP</TABLE>
      </CENTER>
      <P>

      <jsp:useBean id="test" class="hall.SimpleBean" />
      <jsp:setProperty name="test"
                property="message"
                value="Hello WWW" />
      <H1>Message: <I>
      <jsp:getProperty name="test" property="message" />
      </I></H1>

      </BODY>
      </HTML>

         SimpleBean.java

         BeanTest頁面用到了一個SimpleBean。SimpleBean的代碼如下:
      package hall;

      public class SimpleBean {
        private String message = "No message specified";

        public String getMessage() {
          return(message);
        }

        public void setMessage(String message) {
          this.message = message;
        }
      }

         13.3 關于jsp:useBean的進一步說明

         使用Bean最簡單的方法是先用下面的代碼裝載Bean:
      <jsp:useBean id="name" class="package.class" />

         然后通過jsp:setProperty和jsp:getProperty修改和提取Bean的屬性。不過有兩點必須注意。第一,我們還可以用下面這種格式實例化Bean:
        <jsp:useBean ...>
          Body
        </jsp:useBean>

         它的意思是,只有當第一次實例化Bean時才執行Body部分,如果是利用現有的Bean實例則不執行Body部分。正如下面將要介紹的,jsp:useBean并非總是意味著創建一個新的Bean實例。

         第二,除了id和class外,jsp:useBean還有其他三個屬性,即:scope,type,beanName。下表簡要說明這些屬性的用法。 屬性  用法  
      id  命名引用該Bean的變量。如果能夠找到id和scope相同的Bean實例,jsp:useBean動作將使用已有的Bean實例而不是創建新的實例。  
      class  指定Bean的完整包名。  
      scope  指定Bean在哪種上下文內可用,可以取下面的四個值之一:page,request,session和application。
      默認值是page,表示該Bean只在當前頁面內可用(保存在當前頁面的PageContext內)。
      request表示該Bean在當前的客戶請求內有效(保存在ServletRequest對象內)。
      session表示該Bean對當前HttpSession內的所有頁面都有效。
      最后,如果取值application,則表示該Bean對所有具有相同ServletContext的頁面都有效。
      scope之所以很重要,是因為jsp:useBean只有在不存在具有相同id和scope的對象時才會實例化新的對象;如果已有id和scope都相同的對象則直接使用已有的對象,此時jsp:useBean開始標記和結束標記之間的任何內容都將被忽略。

      type  指定引用該對象的變量的類型,它必須是Bean類的名字、超類名字、該類所實現的接口名字之一。請記住變量的名字是由id屬性指定的。  
      beanName  指定Bean的名字。如果提供了type屬性和beanName屬性,允許省略class屬性。  

         13.4 jsp:setProperty動作

         jsp:setProperty用來設置已經實例化的Bean對象的屬性,有兩種用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:
      <jsp:useBean id="myName" ... />
      ...
      <jsp:setProperty name="myName"
          property="someProperty" ... />

         此時,不管jsp:useBean是找到了一個現有的Bean,還是新創建了一個Bean實例,jsp:setProperty都會執行。第二種用法是把jsp:setProperty放入jsp:useBean元素的內部,如下所示:
      <jsp:useBean id="myName" ... >
        ...
        <jsp:setProperty name="myName"
           property="someProperty" ... />
      </jsp:useBean>

         此時,jsp:setProperty只有在新建Bean實例時才會執行,如果是使用現有實例則不執行jsp:setProperty。

         jsp:setProperty動作有下面四個屬性: 屬性  說明  
      name  name屬性是必需的。它表示要設置屬性的是哪個Bean。  
      property  property屬性是必需的。它表示要設置哪個屬性。有一個特殊用法:如果property的值是“*”,表示所有名字和Bean屬性名字匹配的請求參數都將被傳遞給相應的屬性set方法。  
      value  value屬性是可選的。該屬性用來指定Bean屬性的值。字符串數據會在目標類中通過標準的valueOf方法自動轉換成數字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如“true”)通過Boolean.valueOf轉換,int和Integer類型的屬性值(比如“42”)通過Integer.valueOf轉換。
      value和param不能同時使用,但可以使用其中任意一個。

      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屬性和請求參數,如果兩者名字相同則自動賦值。

         下面是一個利用JavaBean計算素數的例子。如果請求中有一個numDigits參數,則該值被傳遞給Bean的numDigits屬性;numPrimes也類似。

         JspPrimes.jsp
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
      <HEAD>
      <TITLE>在JSP中使用JavaBean</TITLE>
      </HEAD>

      <BODY>

      <CENTER>
      <TABLE BORDER=5>
        <TR><TH CLASS="TITLE">
            在JSP中使用JavaBean</TABLE>
      </CENTER>
      <P>

      <jsp:useBean id="primeTable" class="hall.NumberedPrimes" />
      <jsp:setProperty name="primeTable" property="numDigits" />
      <jsp:setProperty name="primeTable" property="numPrimes" />

      Some <jsp:getProperty name="primeTable" property="numDigits" />
      digit primes:
      <jsp:getProperty name="primeTable" property="numberedList" />

      </BODY>
      </HTML>

         注:NumberedPrimes的代碼略。

         13.5 jsp:getProperty動作

         jsp:getProperty動作提取指定Bean屬性的值,轉換成字符串,然后輸出。jsp:getProperty有兩個必需的屬性,即:name,表示Bean的名字;property,表示要提取哪個屬性的值。下面是一個例子,更多的例子可以在前文找到。
      <jsp:useBean id="itemBean" ... />
      ...
      <UL>
        <LI>Number of items:
            <jsp:getProperty name="itemBean" property="numItems" />
        <LI>Cost of each:
            <jsp:getProperty name="itemBean" property="unitCost" />
      </UL>


         13.6 jsp:forward動作

         jsp:forward動作把請求轉到另外的頁面。jsp:forward標記只有一個屬性page。page屬性包含的是一個相對URL。page的值既可以直接給出,也可以在請求的時候動態計算,如下面的例子所示:
      <jsp:forward page="/utils/errorReporter.jsp" />
      <jsp:forward page="<%= someJavaExpression %>" />


         13.7 jsp:plugin動作

         jsp:plugin動作用來根據瀏覽器的類型,插入通過Java插件 運行Java Applet所必需的OBJECT或EMBED元素。

         附錄:JSP注釋和字符引用約定
      tag標簽:JSP JSP動作

      本文最后更新于 2022-10-27 18:48,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
      ·END·
      站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

      免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

      17站長網微信二維碼

      始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

      掃一掃,關注站長網微信

      大家都在看

        熱門排行

          最近更新

            亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
            五月婷婷另类国产| 国产精品一区二区在线看| 日本一区二区免费在线观看视频| 国产精品全国免费观看高清 | 美女视频一区在线观看| 在线观看不卡一区| 26uuu亚洲综合色欧美| 亚洲欧美一区二区三区国产精品| 男男视频亚洲欧美| 不卡一区在线观看| 欧美一级二级在线观看| 91福利视频在线| 91无套直看片红桃| proumb性欧美在线观看| 国产欧美日韩麻豆91| 欧美视频一区二区三区在线观看| 欧美老年两性高潮| 日韩电影免费在线观看网站| 欧美裸体一区二区三区| 亚洲成av人在线观看| 99在线精品一区二区三区| 欧美精品乱人伦久久久久久| 成人免费高清视频| 成人午夜激情片| 无吗不卡中文字幕| 亚洲成人777| 欧美国产97人人爽人人喊| 91精品婷婷国产综合久久竹菊| 日韩国产欧美三级| 国产成人午夜视频| 欧美成人综合网站| 国产.欧美.日韩| 亚洲精品视频免费观看| 欧美日韩午夜在线视频| 欧美日韩中文精品| 欧美日韩国产天堂| 91视频www| 91黄色免费网站| 色婷婷综合久久| 亚洲欧美综合网| 日韩一区二区免费在线观看| 欧美日韩一区小说| 99精品黄色片免费大全| 日韩—二三区免费观看av| 91在线观看污| 1区2区3区精品视频| 日韩成人伦理电影在线观看| 国产精品1区二区.| 日韩三级视频在线看| 亚洲另类春色国产| 国产剧情av麻豆香蕉精品| 色哟哟亚洲精品| 依依成人精品视频| 国产欧美一区二区在线| 欧美一级日韩不卡播放免费| 色综合久久天天综合网| 成人福利视频网站| 欧美成人r级一区二区三区| 全国精品久久少妇| 欧美亚洲精品一区| 国产精品午夜久久| 精品一区二区三区在线视频| 日韩精品乱码免费| 亚洲成a天堂v人片| 国产网站一区二区三区| 9色porny自拍视频一区二区| 天天综合日日夜夜精品| 久久尤物电影视频在线观看| 91黄视频在线观看| 成人性视频免费网站| 首页国产欧美久久| 136国产福利精品导航| 欧美一区二区精品在线| 色94色欧美sute亚洲13| 国产成人av在线影院| 蜜臀99久久精品久久久久久软件| 国产精品区一区二区三| 精品精品国产高清一毛片一天堂| 91国产免费观看| 波多野结衣亚洲一区| 国产成人午夜精品影院观看视频| 日本不卡高清视频| 午夜成人免费视频| 亚洲第一福利视频在线| 一区二区在线观看av| 亚洲欧洲av在线| 中文字幕亚洲在| 中文一区二区在线观看| 亚洲国产精品成人久久综合一区 | 日韩免费成人网| 色94色欧美sute亚洲13| 暴力调教一区二区三区| 成人黄页在线观看| 高清不卡在线观看av| 国产成人在线视频网址| 精品在线一区二区| 国产呦萝稀缺另类资源| 极品少妇一区二区| 国产一区激情在线| 国内外成人在线视频| 国模冰冰炮一区二区| 国产精品综合网| 懂色av一区二区夜夜嗨| 不卡av在线网| 欧美亚洲精品一区| 欧美一区二区免费视频| 精品国产一区二区三区av性色| 精品国产网站在线观看| 国产日韩av一区| 亚洲精品五月天| 日本成人在线看| 国产一区二区精品久久99| 风间由美性色一区二区三区| 99精品欧美一区| 欧美二区三区91| 26uuu欧美| 亚洲欧美色图小说| 日本大胆欧美人术艺术动态| 韩国欧美国产一区| 91视频在线观看| 日韩一区二区在线看片| 国产精品久久毛片a| 亚洲bt欧美bt精品| 国产成人综合视频| 欧美日韩高清一区二区| 久久嫩草精品久久久精品| 亚洲免费观看高清完整版在线观看熊 | 欧美精品久久久久久久多人混战 | 91福利国产精品| 欧美一区二区三区四区五区| 欧美高清在线精品一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产一区二区在线影院| 欧美午夜精品久久久| 久久久久久一二三区| 日韩福利视频网| 色噜噜狠狠成人网p站| 国产三级精品视频| 美女爽到高潮91| 欧美日韩在线播放一区| 国产精品久久久久aaaa樱花| 青娱乐精品视频在线| 在线免费观看成人短视频| 国产欧美精品区一区二区三区| 丝袜亚洲另类欧美| 在线观看日产精品| 国产精品卡一卡二| 国产精品一卡二卡| 欧美不卡视频一区| 日本不卡一二三区黄网| 欧美午夜电影网| 一区二区三区四区中文字幕| 成人夜色视频网站在线观看| 精品女同一区二区| 久久国产精品一区二区| 欧美一区二区私人影院日本| 亚洲国产精品欧美一二99| 在线视频国内一区二区| 一区二区三区在线影院| 91免费看视频| 亚洲精品国产a久久久久久| eeuss鲁一区二区三区| 中文字幕+乱码+中文字幕一区| 国产999精品久久| 国产精品久久久久影院亚瑟| 波多野结衣在线一区| 国产精品成人免费在线| 91麻豆成人久久精品二区三区| 亚洲欧美精品午睡沙发| 91电影在线观看| 日本视频中文字幕一区二区三区| 欧美一区二区三区不卡| 久久99精品久久久久久 | 亚洲欧洲国产专区| 欧美在线免费播放| 日本亚洲天堂网| 精品蜜桃在线看| 成人免费高清视频| 亚洲一区中文日韩| 日韩一级大片在线观看| 国产成人99久久亚洲综合精品| 国产精品福利一区二区三区| 在线亚洲高清视频| 久久福利视频一区二区| 国产精品毛片a∨一区二区三区| a美女胸又www黄视频久久| 天堂va蜜桃一区二区三区| 久久久精品免费网站| 一本到高清视频免费精品| 日本不卡123| 亚洲日本一区二区| 精品国精品国产| 在线亚洲一区二区| 国产麻豆精品95视频| 一区二区三区国产| 国产目拍亚洲精品99久久精品| 欧美日韩成人综合天天影院 | 91女厕偷拍女厕偷拍高清| 久久国产精品99久久久久久老狼| 国产精品国产馆在线真实露脸|
            <nobr id="6hkly"><abbr id="6hkly"><form id="6hkly"></form></abbr></nobr>
            • <rp id="6hkly"><abbr id="6hkly"></abbr></rp>
            • <b id="6hkly"></b>
              <rp id="6hkly"></rp>
              <rp id="6hkly"><del id="6hkly"></del></rp>