• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    JSP/Servlet/JSF--標簽庫的深入研究

    發布: 2008-5-23 11:00 | 作者: 不詳 | 來源: 不詳 | 查看: 118次 | 進入軟件測試論壇討論

    領測軟件測試網

    a.生成servlet需要創建標簽處理器類的一個實例。實現方式通常是調用JSP容器的工廠類的一個方法,工廠類包含一個標簽處理器實例池以使其可重用不再處于激活狀態的對象。
    b.初始化標簽處理器,使servlet獲知其存在性。servlet通過調用標簽處理器的兩個方法實現此過程:setPageContext(PageContext ctx)和setParent(Tag parent)。
    c.如果標簽具有屬性,屬性的取值通過處理器提供setter方法傳入到對象。屬性setter方法是一個標簽支持屬性所需的唯一方法。
    d.頁面的上下文和父標簽已被調置,并已具備屬性。調用標簽處理器的doStartTag()方法,該方法可以讀取這些變量并執行實現標答功能所需的計算和操作。
    doStartTag()方法必須返回一個整型數。
    返回EVAL_BODY_TAG則正常處理標簽體(跳到e);
    返回SKIP_BODY則從初始JSP頁面中直到此標簽結束標記處的內容均被忽略。(跳到f)
    e.如果返回EVAL_BODY_TAG時,則正常處理標簽體。
        e1.在棧中保存當前的JspWriter對象,創建新的BodyContent對象,并將其置為JSP頁面的out對象保存在上下文范圍內名為name的屬性中。并調用它的setBodyContent()方法。
        e2.調用doInitBody()方法進行初始化。
        e3.處理標簽體。將輸出寫入BodyContent對象中,此過程依賴于TLD的標簽元素,有三種可能取值。
        e4.調用doAfterBody()方法,將體內體內容寫入JspWriter,可如下實現:
    JspWriter out=bodyContent.getEnclosingWriter();
    out.println(bodyContent.getString());//bodyContent.writeOut(out);
    bodyContent.clear();
        e5.doAfterBody()方法返回兩種可能:
    返回EVAL_BODY_TAG時,再對標簽體進行評估,這是數組和枚舉被循環處理的典型情況。
        返回SKIP_PAGE時,繼續頁面的其余部份。
    e6.體內容完成,因此創建它的過程被反向:
        調用pageContent.popBody()方法檢索前面的JspWriter對象。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>