-
JSP自定義標(biāo)簽——SimpleSupport案例4 II 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例4 I 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例3 III 案例三的核心代碼: throw new SkipPageException(); SimpleTagSupport根據(jù)這個異常來決定是否往下繼續(xù)執(zhí)行余下的代碼。 Ps:小技巧:右鍵.java類文件——Copy Qualified Name:/Test1/src/t1/t1_01.java;右鍵.java文件旗下的C圖標(biāo)——Copy Qualified Name:t1.t1_01。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例3 II 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例3 I 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例2 III 案例二的核心代碼: getJspBody().invoke(null); JspFragment調(diào)用invoke方法,讓其顯示標(biāo)簽體。默認(rèn)的傳入null就是顯示標(biāo)簽體的內(nèi)容。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例2 II 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例2 I 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例1 III 案例一的核心代碼: JspWriter jspWriter=getJspContext().getOut(); jspWriter.write(dateStr); 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例1 II 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleSupport案例1 I 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——SimpleTag接口詳解 一、什么是標(biāo)簽處理器?就是標(biāo)簽處理類——java文件。 二、SimpleTag接口提供方法:在源碼中可以看到SimpleTag接口有5個方法, 1、doTag()方法是核心方法,我們可以將所有的標(biāo)簽處理邏輯都寫在這個方法中,這個方法會拋出一個JspException,然后我們可以通過這個異常通知WEB容器,不再執(zhí)行此標(biāo)簽后面的內(nèi)容。 2、setParent(JspTag),這個方法呢,由WEB容器所調(diào)用的,是將父標(biāo)簽處理器對象傳遞給標(biāo)簽處理器。 3、getParent()是獲取當(dāng)前標(biāo)簽的父標(biāo)簽對象,比如在標(biāo)簽嵌套時,可以用此方法得到當(dāng)前標(biāo)簽的父標(biāo)簽。 4、setJSPContext(JspContext)這個方法也是由容器調(diào)用的,這個方法是將JSP頁面中的pageContext對象傳遞給標(biāo)簽處理器對象。 5、setJspBody(JspFragment)這個方法也由web容器調(diào)用,意思是將代表當(dāng)前標(biāo)簽體的JspFragment對象傳遞給標(biāo)簽處理器對象,這里的參數(shù)可以理解為標(biāo)簽體的內(nèi)容。 注意:JSP引擎在處理簡單標(biāo)簽的標(biāo)簽時,會將標(biāo)簽體中的內(nèi)容封裝到JspFragment這個參數(shù)中,并調(diào)用setJspBody(JspFragment)將該對象傳遞給標(biāo)簽處理器,我們就可以根據(jù)需求來控制是否輸出標(biāo)簽體或者循環(huán)標(biāo)簽體。 三、來看下JspFragment的源碼:它是一個抽象類,有一個invoke(Writer)這個方法。這個方法用于執(zhí)行JspFragment對象所代表的代碼段,也就是說,我們要在標(biāo)簽體中輸出一段話,我們可以用invoke(Writer)這個方法中的參數(shù)是一個輸出流,使用這個方法就可以將我們想要輸出的數(shù)據(jù)輸出到JSP頁面中,getJspContext()這個方法用于返回代表JSP頁面的JspContext對象。getJspBody()返回代表標(biāo)簽體的JspFragment對象。也就是標(biāo)簽體的內(nèi)容。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——BodyTag接口和BodyTagSupport類 III 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——BodyTag接口和BodyTagSupport類 II 附加:JSP引擎是什么?是什么工作原理? 1、JSP引擎: 執(zhí)行JSP代碼需要在服務(wù)器上安裝JSP引擎,比較常見的引擎有WebLogic和Tomcat。把這些支持JSP的web服務(wù)器配置好后。就可以再客戶端通過瀏覽器來訪問JSP頁面了。 2、JSP引擎的工作原理: 當(dāng)一個JSP頁面第一次被訪問的時候,JSP引擎將執(zhí)行以下步驟: (1)將JSP頁面翻譯成一個Servlet,這個Servlet是一個java文件,同時也是一個完整的java程序 (2)JSP引擎調(diào)用java編譯器對這個Servlet進行編譯,得到可執(zhí)行文件class (3)JSP引擎調(diào)用java虛擬機來解釋執(zhí)行class文件,生成向客戶端發(fā)送的應(yīng)答,然后發(fā)送給客戶端 以上三個步驟僅僅在JSP頁面第一次被訪問時才會執(zhí)行,以后的訪問速度會因為class文件已經(jīng)生成而大大提高。 Ps:當(dāng)JSP引擎街道一個客戶端的訪問請求時,首先判斷請求的JSP頁面是否比對應(yīng)的Servlet新,如果新,對應(yīng)的JSP需要重新編譯。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
-
JSP自定義標(biāo)簽——BodyTag接口和BodyTagSupport類 I Ps:簡介BodyTag接口:BodyTag接口可以將標(biāo)簽體中的內(nèi)容修改后再輸出,BodyTag接口除了繼承自IterationTag接口的內(nèi)容之外呢,它還增加了兩個方法和兩個常量,分別是:setBodyContent(BodyContent b) doInitBody(),一個常量EVAL_BODY_BUFFERED,而EVAL_BODY_TAG是一個已經(jīng)過時的常量,這里不再討論它。前面使用的doStartTag方法,除了返回EVAL_BODY_INCLUDE和SKIP_BODY之外呢,它還會返回EVAL_BODY_BUFFERED。當(dāng)返回EVAL_BODY_BUFFERED時,JSP引擎會創(chuàng)建一個bodyContent對象,然后依次調(diào)用。setBodyContent(BodyContent b) doInitBody() 接著執(zhí)行標(biāo)簽體中的內(nèi)容,并且將標(biāo)簽體中的內(nèi)容通過setBodyContent(BodyContent b)方法中的BodyContent參數(shù),傳遞過來,也就是BodyContent封裝了標(biāo)簽體中的內(nèi)容,這樣就可以控制標(biāo)簽體內(nèi)容的輸出了,那doInitBody()會在setBodyContent(BodyContent b)之后被調(diào)用。我們再來看一下BodyContent,BodyContent繼承了JspWriter,根據(jù)名字,知道它是個輸出流,不同的是,它提供了一個緩沖區(qū)來存放數(shù)據(jù),它也為我們提供了一些比較方便的方法供我們使用,比如這節(jié)課例子中所要使用到的getString()還有g(shù)etEnclosingWriter();getString()用于返回BodyContent中的一個string,也就是它會返回緩沖區(qū)中緩存的數(shù)據(jù),而這個getEnclosingWriter()這個方法可以得到一個BodyContent所關(guān)聯(lián)的JspWriter對象。 Ps:最后return EVAL_PAGE;//EVAL_PAGE是告訴WEB容器接著執(zhí)行自定義標(biāo)簽后面的代碼。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進步!】查看全部
舉報
0/150
提交
取消