第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

JSP自定義標(biāo)簽

難度初級(jí)
時(shí)長(zhǎng) 1小時(shí)55分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.70
52人評(píng)價(jià) 查看評(píng)價(jià)
9.9 內(nèi)容實(shí)用
9.8 簡(jiǎn)潔易懂
9.4 邏輯清晰
  • 自定義標(biāo)簽 繼承 TagSupport 類 實(shí)現(xiàn) dosStartTag()方法
    查看全部
  • JSP自定義標(biāo)簽——TagSupport之控制是否執(zhí)行標(biāo)簽結(jié)束后的內(nèi)容 需要重寫doEndTag方法,該方法一般默認(rèn)返回EVAL_PAGE EVAL_PAGE:是告訴WEB容器接著執(zhí)行自定義標(biāo)簽后面的代碼 SKIP_PAGE:就是忽略自定義標(biāo)簽結(jié)束后的內(nèi)容 Ps1:需要通過(guò)pageContext得到request對(duì)象(HttpServletRequest),通過(guò)request得到getHeader("referer")(屬于http請(qǐng)求頭的屬性),作用:通過(guò)該屬性判斷客戶是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的,只有通過(guò)超鏈接和表單提交的方式該屬性才會(huì)有效。比如:防止盜連,比如我是個(gè)下載軟件的網(wǎng)站,在下載頁(yè)面我先用referer來(lái)判斷上一頁(yè)面是不是自己網(wǎng)站,如果不是,說(shuō)明有人盜連了你的下載地址。 Ps2:通過(guò)request.getServerName()獲得服務(wù)器的URL,和上邊getHeader("referer")進(jìn)行比較判斷是否是自己的網(wǎng)站。 判斷字符串是否以某個(gè)子字符串開(kāi)頭。比如字符串“abcdefg”.startWith("abc") 判斷結(jié)果是true,因?yàn)樗且?abc 開(kāi)頭的。
    查看全部
  • Ps:body-content標(biāo)簽有4個(gè)值:empty,JSP,scriptless,tagdependent: empty:它是一個(gè)空的標(biāo)簽體。 JSP:是允許標(biāo)簽體內(nèi)出現(xiàn)JSP腳本,也就是java代碼。 scriptless:可以接受文本,EL表達(dá)式,和JSP的動(dòng)作。 tagdependent:它是指在標(biāo)簽體的內(nèi)容可以直接被寫入bodyContent,由自定義標(biāo)簽處理類來(lái)處理,而不被JSP容器所解析。
    查看全部
  • IterationTag繼承了Tag接口,除了擁有Tag接口的常量和方法之外呢, 它還增加了doAfterBody()方法和EVAL_BODY_AGAIN常量。 從這個(gè)接口的名稱上呢,可以看出它提供了對(duì)代碼循環(huán)的功能, 如果doAfterBody()方法向WEB容器返回了EVAL_BODY_AGAIN, WEB容器會(huì)把這個(gè)標(biāo)簽體的內(nèi)容再執(zhí)行一次,執(zhí)行完之后再次執(zhí)行, 直到doAfterBody()方法返回SKIP_BODY,容器才會(huì)開(kāi)始處理標(biāo)簽的結(jié)束 標(biāo)記,和調(diào)用doEndTag這個(gè)方法。 TagSupport是IterationTag的實(shí)現(xiàn)類,所以在實(shí)際的開(kāi)發(fā)中, 可以繼承該類,而簡(jiǎn)化自定義標(biāo)簽的處理類的開(kāi)發(fā) 而后來(lái)看BodyTag這個(gè)接口,這個(gè)接口繼承了IterationTag 并且增加了兩個(gè)方法,setBodyContent(BodyContent b) doInitBody() 和一個(gè)常量 EVAL_BODY_BUFFERED 而EVAL_BODY_TAG是一個(gè)已經(jīng)過(guò)時(shí)的常量 EVAL_BODY_BUFFERED可以對(duì)標(biāo)簽體的內(nèi)容進(jìn)行修改, BodyTagSupport實(shí)現(xiàn)了BodyTag的接口,它可以簡(jiǎn)化開(kāi)發(fā), 接下來(lái)看一下SimpleTag,這個(gè)接口是為了簡(jiǎn)化自定義標(biāo)簽的開(kāi)發(fā) 在jsp2.0規(guī)范中,所新增加的接口,這里蛀牙看doTag這個(gè)方法, 該方法會(huì)在執(zhí)行自定義標(biāo)簽時(shí)會(huì)被調(diào)用,并且只會(huì)被調(diào)用一次, Tag接口及其子接口所提供的功能呢,在doTag這個(gè)方法中,都可以完成, 它有一個(gè)實(shí)現(xiàn)類SimpleTagSupport,我們平時(shí)使用最多的就是 SimpleTagSupport類
    查看全部
  • 【jsp規(guī)范提供的自定義標(biāo)簽的類和接口的層次結(jié)構(gòu)】 在源碼中,TagSupport整個(gè)類實(shí)現(xiàn)了IterationTag整個(gè)接口,IterationTag接口又繼承了Tag接口,Tag接口又繼承了JspTag這個(gè)接口 JspTag這個(gè)接口是一個(gè)空的接口,它沒(méi)有任何的方法,它是自定義標(biāo)簽的頂級(jí)父接口。除了子接口Tag之外,它還有另外一個(gè)子接口SimpleTag SimpleTag有一個(gè)實(shí)現(xiàn)類是SimpleTagSupport JspTag是所有自定義標(biāo)簽的父接口,沒(méi)有任何的屬性和方法,它有兩個(gè)直接的子接口,分別是Tag和SimpleTag Tag接口是jsp2.0規(guī)范之前就存在的,而SimpleTag是為了簡(jiǎn)化自定義標(biāo)簽的開(kāi)發(fā),在 jsp2.0以后才出現(xiàn)的,Tag接口中定義了兩個(gè)重要的方法doStartTag()和doEndTag() 還定義了四個(gè)靜態(tài)常量, EVAL_BODY_INCLUDE SKIP_BODY EVAL_PAGE SKIP_PAGE 在jsp頁(yè)面運(yùn)行過(guò)程中,當(dāng)碰到了自定義標(biāo)簽的開(kāi)始標(biāo)記,就會(huì)調(diào)用標(biāo)簽處理類的 doStartTag方法,我們?cè)诘谝粋€(gè)例子中就是這個(gè)方法實(shí)現(xiàn)了處理邏輯的,doStartTag方法執(zhí)行完畢后,會(huì)向WEB容器返回常量, EVAL_BODY_INCLUDE SKIP_BODY 以此來(lái)決定是否執(zhí)行標(biāo)簽體, EVAL_BODY_INCLUDE是執(zhí)行自定義標(biāo)簽的標(biāo)簽體 SkIP_BODY是跳過(guò)標(biāo)簽體,也就是它不執(zhí)行標(biāo)簽體之間的內(nèi)容 當(dāng)我們執(zhí)行自定義標(biāo)簽的結(jié)束標(biāo)簽時(shí),doEndTag方法就會(huì)被調(diào)用它會(huì)返回 EVAL_PAGE SKIP_PAGE這兩個(gè)常量 EVAL_PAGE是告訴WEB容器接著執(zhí)行自定義標(biāo)簽后面的代碼 SKIP_PAGE就是忽略自定義標(biāo)簽結(jié)束后的內(nèi)容
    查看全部
  • JSP自定義標(biāo)簽——開(kāi)發(fā)第一個(gè)自定義標(biāo)簽 Ps:第一步:創(chuàng)建一個(gè)類LoginDateTag繼承TagSupport類,并重寫doStartTag方法,在這個(gè)方法里寫上在jsp中的java代碼,并用pageContext.getOut().print(dateStr);輸出結(jié)果。pageContext.getOut()會(huì)得到一個(gè)輸出流。 Ps:第二步:在WEB-INF下創(chuàng)建一個(gè)后綴名為tld的文件。這是一個(gè)標(biāo)簽庫(kù)文件,我們所定義的標(biāo)簽都要在這里進(jìn)行注冊(cè)。這個(gè)tld文件可以在C:\apache-tomcat-7.0.68\webapps\examples\WEB-INF\jsp2中找到一個(gè)示例的文件,這個(gè)文件內(nèi)容比較多,我們拷貝出對(duì)我們有用的部分。 Ps:第三步:在jsp中如何使用該標(biāo)簽?zāi)兀看蜷_(kāi)logininfo.jsp,在開(kāi)頭引入:<%@ taglib prefix="imooc" uri="/imooc-tag" %>。 結(jié)論:這樣,jsp頁(yè)面清爽很多,并沒(méi)有多余的java代碼。那它的執(zhí)行過(guò)程,可以這樣理解:jsp頁(yè)面在被jsp引擎解析時(shí),當(dāng)碰到頁(yè)面中自定義的標(biāo)簽時(shí),會(huì)通過(guò)頁(yè)面中的uri,就是<%@ taglib prefix="imooc" uri="/imooc-tag" %>中的uri的地址,去查找標(biāo)簽庫(kù)文件,根據(jù)標(biāo)簽庫(kù)文件再去查找自定義標(biāo)簽的處理類,也就是這個(gè)地方:<tag-class>com.imooc.tag.LoginDateTag</tag-class>,當(dāng)jsp引擎處理到開(kāi)始標(biāo)記時(shí),系統(tǒng)就會(huì)自動(dòng)的調(diào)用類LoginDateTag中的doStartTag()方法。我們可以在這個(gè)方法上寫入相應(yīng)的業(yè)務(wù)處理邏輯。這里的標(biāo)簽實(shí)例是線程安全的,也就是每執(zhí)行一次標(biāo)簽,都會(huì)生成一個(gè)新的對(duì)象。
    查看全部
  • JSP自定義標(biāo)簽——概述 Ps:將方法封裝到自定義標(biāo)簽處理類中,然后使用方法與JSTL標(biāo)簽一致。在實(shí)際開(kāi)發(fā)中,前臺(tái)頁(yè)面是不允許html代碼和java代碼相混合的,但有時(shí)jsp或第三方為我們提供的標(biāo)簽滿足不了需求,這時(shí)需要通過(guò)自己將業(yè)務(wù)邏輯封裝到繼承jsp規(guī)范的類或接口的處理類中來(lái)定義標(biāo)簽,這就是所謂的自定義標(biāo)簽。這樣的缺點(diǎn)是加重了工作量。但與前端人員溝通和后期的維護(hù)上來(lái)看,這點(diǎn)工作是微不足道的。
    查看全部
  • 【課程概述】將方法封裝到自定義標(biāo)簽處理類中,然后使用方法與JSTL標(biāo)簽一致。
    查看全部
  • aa啊啊
    查看全部
  • 繼承結(jié)構(gòu)圖
    查看全部
  • org.apache.jasper.JasperException: /logininfo.jsp (line: 11, column: 6) Unable to load tag handler class "com.n.tag.LoginDateTag" for tag "n:loginDate" 你們都沒(méi)遇到過(guò)這個(gè)嗎?
    查看全部
  • 實(shí)現(xiàn)simpletagsupport類時(shí),在dotag方法里獲取到標(biāo)簽體內(nèi)容后對(duì)該內(nèi)容進(jìn)行更改
    查看全部
    0 采集 收起 來(lái)源:SimpleSupport案例2

    2016-12-25

  • JSP自定義標(biāo)簽——SimpleTag接口詳解 一、什么是標(biāo)簽處理器?就是標(biāo)簽處理類——java文件。 二、SimpleTag接口提供方法:在源碼中可以看到SimpleTag接口有5個(gè)方法, 1、doTag()方法是核心方法,我們可以將所有的標(biāo)簽處理邏輯都寫在這個(gè)方法中,這個(gè)方法會(huì)拋出一個(gè)JspException,然后我們可以通過(guò)這個(gè)異常通知WEB容器,不再執(zhí)行此標(biāo)簽后面的內(nèi)容。 2、setParent(JspTag),這個(gè)方法呢,由WEB容器所調(diào)用的,是將父標(biāo)簽處理器對(duì)象傳遞給標(biāo)簽處理器。 3、getParent()是獲取當(dāng)前標(biāo)簽的父標(biāo)簽對(duì)象,比如在標(biāo)簽嵌套時(shí),可以用此方法得到當(dāng)前標(biāo)簽的父標(biāo)簽。 4、setJSPContext(JspContext)這個(gè)方法也是由容器調(diào)用的,這個(gè)方法是將JSP頁(yè)面中的pageContext對(duì)象傳遞給標(biāo)簽處理器對(duì)象。 5、setJspBody(JspFragment)這個(gè)方法也由web容器調(diào)用,意思是將代表當(dāng)前標(biāo)簽體的JspFragment對(duì)象傳遞給標(biāo)簽處理器對(duì)象,這里的參數(shù)可以理解為標(biāo)簽體的內(nèi)容。 注意:JSP引擎在處理簡(jiǎn)單標(biāo)簽的標(biāo)簽時(shí),會(huì)將標(biāo)簽體中的內(nèi)容封裝到JspFragment這個(gè)參數(shù)中,并調(diào)用setJspBody(JspFragment)將該對(duì)象傳遞給標(biāo)簽處理器,我們就可以根據(jù)需求來(lái)控制是否輸出標(biāo)簽體或者循環(huán)標(biāo)簽體。 三、來(lái)看下JspFragment的源碼:它是一個(gè)抽象類,有一個(gè)invoke(Writer)這個(gè)方法。這個(gè)方法用于執(zhí)行JspFragment對(duì)象所代表的代碼段,也就是說(shuō),我們要在標(biāo)簽體中輸出一段話,我們可以用invoke(Writer)這個(gè)方法中的參數(shù)是一個(gè)輸出流,使用這個(gè)方法就可以將我們想要輸出的數(shù)據(jù)輸出到JSP頁(yè)面中,getJspContext()這個(gè)方法用于返回代表JSP頁(yè)面的JspContext對(duì)象。getJspBody()返回代表標(biāo)簽體的JspFragment對(duì)象。也就是標(biāo)簽體的內(nèi)容。
    查看全部
    1 采集 收起 來(lái)源:SimpleTag接口詳解

    2016-12-25

  • tagSupport類中有pageContext屬性,可以用來(lái)獲取request等內(nèi)置對(duì)象
    查看全部
  • IterationTag繼承了Tag接口,除了擁有Tag接口的常量和方法之外呢, 它還增加了doAfterBody()方法和EVAL_BODY_AGAIN常量。 從這個(gè)接口的名稱上呢,可以看出它提供了對(duì)代碼循環(huán)的功能, 如果doAfterBody()方法向WEB容器返回了EVAL_BODY_AGAIN, WEB容器會(huì)把這個(gè)標(biāo)簽體的內(nèi)容再執(zhí)行一次,執(zhí)行完之后再次執(zhí)行, 直到doAfterBody()方法返回SKIP_BODY,容器才會(huì)開(kāi)始處理標(biāo)簽的結(jié)束 標(biāo)記,和調(diào)用doEndTag這個(gè)方法。 TagSupport是IterationTag的實(shí)現(xiàn)類,所以在實(shí)際的開(kāi)發(fā)中, 可以繼承該類,而簡(jiǎn)化自定義標(biāo)簽的處理類的開(kāi)發(fā) 而后來(lái)看BodyTag這個(gè)接口,這個(gè)接口繼承了IterationTag 并且增加了兩個(gè)方法,setBodyContent(BodyContent b) doInitBody() 和一個(gè)常量 EVAL_BODY_BUFFERED 而EVAL_BODY_TAG是一個(gè)已經(jīng)過(guò)時(shí)的常量 EVAL_BODY_BUFFERED可以對(duì)標(biāo)簽體的內(nèi)容進(jìn)行修改, BodyTagSupport實(shí)現(xiàn)了BodyTag的接口,它可以簡(jiǎn)化開(kāi)發(fā), 接下來(lái)看一下SimpleTag,這個(gè)接口是為了簡(jiǎn)化自定義標(biāo)簽的開(kāi)發(fā) 在jsp2.0規(guī)范中,所新增加的接口,這里蛀牙看doTag這個(gè)方法, 該方法會(huì)在執(zhí)行自定義標(biāo)簽時(shí)會(huì)被調(diào)用,并且只會(huì)被調(diào)用一次, Tag接口及其子接口所提供的功能呢,在doTag這個(gè)方法中,都可以完成, 它有一個(gè)實(shí)現(xiàn)類SimpleTagSupport,我們平時(shí)使用最多的就是 SimpleTagSupport類,
    查看全部

舉報(bào)

0/150
提交
取消
課程須知
學(xué)習(xí)本門課程前需要對(duì)Java Web的基礎(chǔ)知識(shí)有所了解,并會(huì)使用JSP的標(biāo)準(zhǔn)標(biāo)簽庫(kù)。
老師告訴你能學(xué)到什么?
1、什么是自定義標(biāo)簽 2、如何實(shí)現(xiàn)自定義標(biāo)簽及應(yīng)用

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無(wú)需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!