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