SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Report
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Feb. 13, 2013
•
0 likes
•
1,840 views
1
of
55
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Feb. 13, 2013
•
0 likes
•
1,840 views
Download Now
Download to read offline
Report
Technology
Servlet & JSP 教學手冊第二版
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Recommended
Ch08 自訂標籤
Justin Lin
131 views
•
54 slides
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Justin Lin
2.9K views
•
71 slides
Ch06 使用 JSP
Justin Lin
245 views
•
83 slides
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
6.1K views
•
36 slides
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Justin Lin
3.2K views
•
77 slides
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin
3.4K views
•
106 slides
More Related Content
What's hot
Ch02 撰寫與設定 Servlet
Justin Lin
336 views
•
37 slides
Ch08 自訂標籤
Justin Lin
380 views
•
54 slides
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
2.7K views
•
64 slides
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
199 views
•
69 slides
Ch07 使用 JSTL
Justin Lin
155 views
•
74 slides
Ch09 整合資料庫
Justin Lin
229 views
•
92 slides
What's hot
(20)
Ch02 撰寫與設定 Servlet
Justin Lin
•
336 views
Ch08 自訂標籤
Justin Lin
•
380 views
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
2.7K views
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
199 views
Ch07 使用 JSTL
Justin Lin
•
155 views
Ch09 整合資料庫
Justin Lin
•
229 views
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
•
4.9K views
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
•
10K views
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
•
2.9K views
Ch07 使用JSTL
Justin Lin
•
430 views
Ch03 請求與回應
Justin Lin
•
229 views
整合資料庫
Justin Lin
•
853 views
CH16:整合資料庫
Justin Lin
•
354 views
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
•
11.6K views
Ch13 整合 Spring MVC/Security
Justin Lin
•
279 views
Ch06 使用JSP
Justin Lin
•
532 views
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
•
2.6K views
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Justin Lin
•
1.6K views
CH02:從JDK到IDE
Justin Lin
•
477 views
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin
•
2.5K views
Viewers also liked
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Justin Lin
1.9K views
•
30 slides
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
2K views
•
19 slides
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
3.2K views
•
39 slides
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Justin Lin
4.3K views
•
80 slides
Spring 2.0 技術手冊目錄
Justin Lin
2.4K views
•
9 slides
進階主題
Justin Lin
3K views
•
61 slides
Viewers also liked
(19)
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Justin Lin
•
1.9K views
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
•
2K views
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
•
3.2K views
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Justin Lin
•
4.3K views
Spring 2.0 技術手冊目錄
Justin Lin
•
2.4K views
進階主題
Justin Lin
•
3K views
讓程式展現樂趣 玩出實驗精神與創造力
Justin Lin
•
3K views
Spring 2.0 技術手冊第四章 - Spring AOP
Justin Lin
•
3.5K views
Spring 2.0 技術手冊第十章 - 專案:線上書籤
Justin Lin
•
2K views
Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
Justin Lin
•
2.6K views
Spring 2.0 技術手冊第九章 - API 封裝
Justin Lin
•
2.1K views
Spring 2.0 技術手冊第五章 - JDBC、交易支援
Justin Lin
•
5.1K views
Spring 2.0 技術手冊第三章 - IoC 容器
Justin Lin
•
4.7K views
Spring 2.0 技術手冊第二章 - Spring 入門
Justin Lin
•
5K views
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Justin Lin
•
11K views
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
•
3.8K views
Spring 2.0 技術手冊導讀
Justin Lin
•
1.7K views
Spring 2.0 技術手冊第一章 - 認識 Spring
Justin Lin
•
10K views
Java 8 與 retrolambda
Justin Lin
•
5K views
Similar to Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Hibernate教程
Shilong Sang
2.1K views
•
193 slides
Altibase管理培训 管理篇
小新 制造
1.1K views
•
84 slides
Mybatis学习培训
flynofry
709 views
•
26 slides
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
3.6K views
•
66 slides
Django development
loveyudu
711 views
•
49 slides
Java 網路程式
PingLun Liao
836 views
•
75 slides
Similar to Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
(20)
Hibernate教程
Shilong Sang
•
2.1K views
Altibase管理培训 管理篇
小新 制造
•
1.1K views
Mybatis学习培训
flynofry
•
709 views
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
•
3.6K views
Django development
loveyudu
•
711 views
Java 網路程式
PingLun Liao
•
836 views
View 與 Blade 樣板引擎
Shengyou Fan
•
41.6K views
开源应用日志收集系统
klandor
•
839 views
HTML CSS Javascript 语法手册
Ying wei (Joe) Chou
•
3.8K views
J2ee经典学习笔记
yiditushe
•
1.4K views
Log4j使用说明
yiditushe
•
167 views
3 hibernate映射元素和类型
Zelin Wang
•
489 views
Jsp面试知识
yiditushe
•
472 views
View 與 Blade 樣板引擎
Shengyou Fan
•
7.9K views
Web设计 3 java_script初探(程序员与设计师的双重眼光)
ziggear
•
320 views
test
xieyq
•
396 views
Times Ten Training
Li Chen
•
750 views
第五章:Struts2标签库
shmily7788
•
3.3K views
Ibatis技术讲座
xujie
•
528 views
中远公司 Java培训资料
yiditushe
•
132 views
More from Justin Lin
Ch14 簡介 Spring Boot
Justin Lin
859 views
•
22 slides
Ch12 Spring 起步走
Justin Lin
262 views
•
31 slides
Ch11 簡介 JavaMail
Justin Lin
155 views
•
8 slides
Ch10 Web 容器安全管理
Justin Lin
152 views
•
30 slides
Ch04 會話管理
Justin Lin
235 views
•
30 slides
CH1. 簡介 Web 應用程式
Justin Lin
1.1K views
•
55 slides
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Justin Lin
•
859 views
Ch12 Spring 起步走
Justin Lin
•
262 views
Ch11 簡介 JavaMail
Justin Lin
•
155 views
Ch10 Web 容器安全管理
Justin Lin
•
152 views
Ch04 會話管理
Justin Lin
•
235 views
CH1. 簡介 Web 應用程式
Justin Lin
•
1.1K views
14. 進階主題
Justin Lin
•
400 views
13.並行、平行與非同步
Justin Lin
•
233 views
12. 除錯、測試與效能
Justin Lin
•
148 views
11. 常用內建模組
Justin Lin
•
140 views
10. 資料永續與交換
Justin Lin
•
148 views
9. 資料結構
Justin Lin
•
284 views
8. open() 與 io 模組
Justin Lin
•
242 views
7. 例外處理
Justin Lin
•
114 views
6. 類別的繼承
Justin Lin
•
165 views
5. 從模組到類別
Justin Lin
•
165 views
4. 流程語法與函式
Justin Lin
•
187 views
3.型態與運算子
Justin Lin
•
196 views
1. Python起步走
Justin Lin
•
645 views
2. 從 REPL 到 IDE
Justin Lin
•
231 views
Recently uploaded
ncuma_函數畫圖.pptx
NCU MCL
20 views
•
9 slides
ncuma_串列.pptx
NCU MCL
6 views
•
29 slides
ncuma_字串.pptx
NCU MCL
6 views
•
19 slides
ncuma_Taylor 多項式.pptx
NCU MCL
12 views
•
6 slides
ncuma_牛頓法.pptx
NCU MCL
5 views
•
4 slides
ncuma_函數畫圖_習題2.pptx
NCU MCL
7 views
•
1 slide
Recently uploaded
(14)
ncuma_函數畫圖.pptx
NCU MCL
•
20 views
ncuma_串列.pptx
NCU MCL
•
6 views
ncuma_字串.pptx
NCU MCL
•
6 views
ncuma_Taylor 多項式.pptx
NCU MCL
•
12 views
ncuma_牛頓法.pptx
NCU MCL
•
5 views
ncuma_函數畫圖_習題2.pptx
NCU MCL
•
7 views
ncuma_pylab.pptx
NCU MCL
•
9 views
ncuma_Taylor 多項式_習題1.pptx
NCU MCL
•
9 views
ncuma_函式.pptx
NCU MCL
•
5 views
ncuma_邏輯與迴圈.pptx
NCU MCL
•
6 views
ncuma_SymPy符號運算套件.pptx
NCU MCL
•
15 views
ncuma_Taylor 多項式_習題2.pptx
NCU MCL
•
7 views
ncuma_函數畫圖_習題1.pptx
NCU MCL
•
25 views
ncuma_型別與迴圈.pptx
NCU MCL
•
129 views
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
2.
CHAPTER 8 • 自訂標籤
學習目標 • 了解如何使用Tag File自訂 標籤 • 了解如何使用Simple Tag自 訂標籤 • 了解如何使用Tag自訂標籤
3.
簡介Tag File
4.
簡介Tag File
5.
簡介Tag File • 撰寫一個副檔名為.tag的檔案,把它們放在
WEB-INF/tags底下
6.
簡介Tag File
7.
簡介Tag File • Tag
File會被容器轉譯為 javax.servlet.jsp.tagext.SimpleT agSupport的子類別 • 在Tag File中可以使用out、config、 request、response、session、 application、jspContext等隱含物件 • 其中jspContext在轉譯之後,實際上則是 javax.servlet.jsp.JspContext物件
8.
簡介Tag File • Tag
File在JSP中,並不是靜態包含 (<%@include>)或動態包含 (<jsp:include>) • 在Tag File中撰寫Scriplet的話 – 其中的隱含物件其實是轉譯後的.java中doTag() 方法中的區域變數 – 不可能與JSP中的Scriptlet溝通
9.
簡介Tag File
10.
處理標籤屬性與本體
11.
處理標籤屬性與本體
12.
處理標籤屬性與本體
13.
處理標籤屬性與本體
14.
處理標籤屬性與本體
15.
處理標籤屬性與本體 • Tag File的標籤在使用時若有本體,預設是不
允許有Scriptlet的 • tag指示元素的body-content屬性預設就 是scriptless,還可以設定empty或 tagdependent
16.
TLD檔案 • 如果要將Tag File包成JAR檔案,那麼有幾個
地方要注意一下: – *.tag檔案必須放在JAR檔的META-INF/tags資料 夾或子資料夾下。 – 要定義TLD(Tag Library Description)檔案。 – TLD檔案必須放在JAR檔的META-INF/TLDS資 料夾下。
18.
TLD檔案
19.
簡介Simple Tag
20.
簡介Simple Tag
21.
簡介Simple Tag
22.
了解API架構與生命週期
23.
了解API架構與生命週期 • 建立自訂標籤處理器實例。 • 呼叫標籤處理器的setJspContext()方法設定
PageContext實例。 • 如果是巢狀標籤中的內層標籤,則還會呼叫標籤處 理器的setParent()方法,並傳入外層標籤處理 器的實例。 • 設定標籤處理器屬性(例如這邊是呼叫IfTag的 setTest()方法來設定)。 • 呼叫標籤處理器的setJspBody()方法設定 JspFragment實例。 • 呼叫標籤處理器的doTag()方法。 • 銷毀標籤處理器實例。
24.
了解API架構與生命週期 • 每一次的請求都會建立新的標籤處理器實例,
而在執行doTag()過後就銷毀實例 • Simple Tag的實作中,建議不要有一些耗資 源的動作
25.
了解API架構與生命週期 • 如果執行doTag()的過程在某些條件下,必
須中斷接下來頁面的處理或輸出,則可以丟 出SkipPageException
26.
處理標籤屬性與本體
27.
處理標籤屬性與本體
28.
處理標籤屬性與本體
29.
處理標籤屬性與本體
30.
處理標籤屬性與本體
31.
與父標籤溝通
32.
與父標籤溝通
33.
與父標籤溝通
36.
TLD檔案 • JAR檔案根目錄下放置編譯好的類別(包含
對應套件的資料夾)。 • JAR檔案META-INF資料夾或子資料夾中放置 TLD檔案。
37.
簡介Tag
38.
簡介Tag
39.
簡介Tag
40.
了解架構與生命週期
41.
了解架構與生命週期 •
嘗試從標籤池(Tag Pool)找到可用的標籤物件,如果找 到就直接使用,如果沒找到就建立新的標籤物件。 • 呼叫標籤處理器的setPageContext()方法設定 PageContext實例。 • 如果是巢狀標籤中的內層標籤,則還會呼叫標籤處理器的 setParent()方法,並傳入外層標籤處理器的實例。 • 設定標籤處理器屬性(例如這邊是呼叫IfTag的 setTest()方法來設定)。 • 呼叫標籤處理器的doStartTag()方法,並依不同的傳回 值決定是否執行本體或呼叫doAfterBody()、 doEndTag()方法(稍後詳述)。 • 將標籤處理器實例置入標籤池中以便再度使用。
42.
了解架構與生命週期 • Tag實例是可以重複使用的 • 自訂Tag類別時,要注意物件狀態是否會保
留下來,必要的時候,在doStartTag()方 法中,可以進行狀態重置的動作 • 別以為可以使用release()方法來作狀態重 置,因為release()方法只會在標籤實例真 正被銷毀回收前被呼叫
43.
了解架構與生命週期
44.
重複執行標籤本體 • 想繼承TagSupport實作<f:forEach>標
籤,該在哪個方法中實作? • doStartTag()?doEndTag()?
47.
處理本體執行結果
48.
處理本體執行結果
49.
處理本體執行結果
50.
處理本體執行結果
51.
與父標籤溝通
53.
與父標籤溝通
55.
綜合練習/微網誌 • 在微網誌首頁顯示使用者發佈的最新訊息,
並稍微利用一下自訂標籤,讓頁面的處理更 為精簡且易維護