Submit Search
Upload
Ch08 自訂標籤
•
Download as PPTX, PDF
•
0 likes
•
135 views
Justin Lin
Follow
使用 Tag File 自訂標籤 使用 Simple Tag 自訂標籤 使用 Tag 自訂標籤
Read less
Read more
Technology
Report
Share
Report
Share
1 of 54
Download now
Recommended
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Justin Lin
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Justin Lin
Recommended
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Justin Lin
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
CH16:整合資料庫
CH16:整合資料庫
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
Ch07 使用JSTL
Ch07 使用JSTL
Justin Lin
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
Ch06 使用JSP
Ch06 使用JSP
Justin Lin
整合資料庫
整合資料庫
Justin Lin
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Justin Lin
CH02:從JDK到IDE
CH02:從JDK到IDE
Justin Lin
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
J2ee经典学习笔记
J2ee经典学习笔记
yiditushe
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
Anthony Chen
More Related Content
What's hot
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
CH16:整合資料庫
CH16:整合資料庫
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
Ch07 使用JSTL
Ch07 使用JSTL
Justin Lin
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
Ch06 使用JSP
Ch06 使用JSP
Justin Lin
整合資料庫
整合資料庫
Justin Lin
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Justin Lin
CH02:從JDK到IDE
CH02:從JDK到IDE
Justin Lin
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
What's hot
(20)
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Ch08 自訂標籤
Ch08 自訂標籤
Ch09 整合資料庫
Ch09 整合資料庫
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
CH16:整合資料庫
CH16:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Ch07 使用JSTL
Ch07 使用JSTL
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Ch03 請求與回應
Ch03 請求與回應
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Ch06 使用JSP
Ch06 使用JSP
整合資料庫
整合資料庫
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
CH02:從JDK到IDE
CH02:從JDK到IDE
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Similar to Ch08 自訂標籤
J2ee经典学习笔记
J2ee经典学习笔记
yiditushe
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
Anthony Chen
Django development
Django development
loveyudu
中远公司 Java培训资料
中远公司 Java培训资料
yiditushe
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
Jsp面试知识
Jsp面试知识
yiditushe
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
开源应用日志收集系统
开源应用日志收集系统
klandor
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
Hibernate教程
Hibernate教程
Shilong Sang
test
test
xieyq
20111018 zhouchen share
20111018 zhouchen share
zcbug
喬叔 Elasticsearch Index 管理技巧與效能優化
喬叔 Elasticsearch Index 管理技巧與效能優化
Joe Wu
Altibase管理培训 管理篇
Altibase管理培训 管理篇
小新 制造
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
Justin Lin
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
lovingprince58
Lucene实践
Lucene实践
晓锋 陈
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
Ibatis技术讲座
Ibatis技术讲座
xujie
03.wls depoly jdbc
03.wls depoly jdbc
Meng He
Similar to Ch08 自訂標籤
(20)
J2ee经典学习笔记
J2ee经典学习笔记
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
Django development
Django development
中远公司 Java培训资料
中远公司 Java培训资料
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Jsp面试知识
Jsp面试知识
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
开源应用日志收集系统
开源应用日志收集系统
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Hibernate教程
Hibernate教程
test
test
20111018 zhouchen share
20111018 zhouchen share
喬叔 Elasticsearch Index 管理技巧與效能優化
喬叔 Elasticsearch Index 管理技巧與效能優化
Altibase管理培训 管理篇
Altibase管理培训 管理篇
OpenEJB - 另一個選擇
OpenEJB - 另一個選擇
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
Lucene实践
Lucene实践
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Ibatis技术讲座
Ibatis技术讲座
03.wls depoly jdbc
03.wls depoly jdbc
More from Justin Lin
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
Ch04 會話管理
Ch04 會話管理
Justin Lin
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
14. 進階主題
14. 進階主題
Justin Lin
13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
11. 常用內建模組
11. 常用內建模組
Justin Lin
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
9. 資料結構
9. 資料結構
Justin Lin
8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
7. 例外處理
7. 例外處理
Justin Lin
6. 類別的繼承
6. 類別的繼承
Justin Lin
5. 從模組到類別
5. 從模組到類別
Justin Lin
4. 流程語法與函式
4. 流程語法與函式
Justin Lin
3.型態與運算子
3.型態與運算子
Justin Lin
1. Python起步走
1. Python起步走
Justin Lin
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Ch12 Spring 起步走
Ch12 Spring 起步走
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Ch04 會話管理
Ch04 會話管理
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
14. 進階主題
14. 進階主題
13.並行、平行與非同步
13.並行、平行與非同步
12. 除錯、測試與效能
12. 除錯、測試與效能
11. 常用內建模組
11. 常用內建模組
10. 資料永續與交換
10. 資料永續與交換
9. 資料結構
9. 資料結構
8. open() 與 io 模組
8. open() 與 io 模組
7. 例外處理
7. 例外處理
6. 類別的繼承
6. 類別的繼承
5. 從模組到類別
5. 從模組到類別
4. 流程語法與函式
4. 流程語法與函式
3.型態與運算子
3.型態與運算子
1. Python起步走
1. Python起步走
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Ch08 自訂標籤
1.
1
2.
8 • 自訂標籤 學習目標 • 使用
Tag File 自訂標籤 • 使用 Simple Tag 自訂標籤 • 使用 Tag 自訂標籤 2
3.
簡介 Tag File 3
4.
簡介 Tag File 4
5.
簡介 Tag File •
撰寫副檔名為 .tag,放在WEB-INF/tags 底下 5
6.
簡介 Tag File 6
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 7
8.
簡介 Tag File •
Tag File 在 JSP 中,並不是靜態包含 (<%@include>)或動態包含 (<jsp:include>) • 在 Tag File 撰寫 Scriplet 的話 – 其中的隱含物件其實是轉譯後的 .java 中 doTag() 方法中的區域變數 – 不可能與 JSP 的 Scriptlet 溝通 8
9.
簡介 Tag File 9
10.
處理標籤屬性與本體 10
11.
處理標籤屬性與本體 11
12.
處理標籤屬性與本體 12
13.
處理標籤屬性與本體 13
14.
處理標籤屬性與本體 • Tag File
的標籤在使用時若有本體,預設是不 允許有 Scriptlet 的 • tag 指示元素的 body-content 屬性預設 就是 scriptless,還可以設定 empty 或 tagdependent 14
15.
TLD檔案 • 如果要將 Tag
File 包成 JAR 檔案,那麼有幾 個地方要注意一下: – *.tag 檔案必須放在 JAR 的 META-INF/tags 資料 夾或子資料夾下。 – 要定義 TLD(Tag Library Description)檔案。 – TLD 檔案必須放在 JAR 的 META-INF/TLDS 15
16.
16
17.
TLD 檔案 17
18.
簡介 Simple Tag 18
19.
簡介 Simple Tag 19
20.
簡介 Simple Tag 20
21.
了解 API 架構與生命週期 21
22.
了解 API 架構與生命週期 •
建立自訂標籤處理器實例。 • 呼叫標籤處理器的 setJspContext()方法設定 PageContext 實例。 • 如果是巢狀標籤中的內層標籤,則還會呼叫標籤處 理器的 setParent()方法,並傳入外層標籤處理 器的實例。 • 設定標籤處理器屬性(例如這邊是呼叫 IfTag 的 setTest()方法來設定)。 • 呼叫標籤處理器的 setJspBody() 方法設定 JspFragment 實例。 • 呼叫標籤處理器的 doTag() 方法。 • 銷毀標籤處理器實例。 22
23.
了解 API 架構與生命週期 •
每一次的請求都會建立新的標籤處理器實例, 而在執行 doTag()過後就銷毀實例 • Simple Tag 的實作中,建議不要有一些耗資 源的動作 23
24.
了解 API 架構與生命週期 •
如果執行 doTag()的過程在某些條件下,必 須中斷接下來頁面的處理或輸出,則可以丟 出 SkipPageException 24
25.
處理標籤屬性與本體 25
26.
處理標籤屬性與本體 26
27.
27
28.
處理標籤屬性與本體 28
29.
處理標籤屬性與本體 29
30.
與父標籤溝通 30
31.
與父標籤溝通 31
32.
與父標籤溝通 32
33.
33
34.
34
35.
TLD 檔案 • JAR
檔案根目錄下放置編譯好的類別(包含 對應套件的資料夾)。 • JAR 檔案 META-INF 資料夾或子資料夾中放 置 TLD 檔案。 35
36.
簡介 Tag 36
37.
簡介 Tag 37
38.
簡介 Tag 38
39.
了解架構與生命週期 39
40.
了解架構與生命週期 • 嘗試從標籤池(Tag Pool)找到可用的標籤物件,如果找 到就直接使用,如果沒找到就建立新的標籤物件。 •
呼叫標籤處理器的 setPageContext()方法設定 PageContext 實例。 • 如果是巢狀標籤中的內層標籤,則還會呼叫標籤處理器的 setParent() 方法,並傳入外層標籤處理器的實例。 • 設定標籤處理器屬性(例如這邊是呼叫 IfTag 的 setTest() 方法來設定)。 • 呼叫標籤處理器的 doStartTag() 方法,並依不同的傳 回值決定是否執行本體或呼 叫doAfterBody()、 doEndTag()方法(稍後詳述)。 • 將標籤處理器實例置入標籤池中以便再度使用。 40
41.
了解架構與生命週期 • Tag 實例是可以重複使用的 •
自訂 Tag 類別時,要注意物件狀態是否會保 留下來,必要的時候,在 doStartTag()方 法中,可以進行狀態重置的動作 • 別以為可以使用 release()方法來作狀態重 置,因為 release()方法只會在標籤實例真 正被銷毀回收前被呼叫 41
42.
了解架構與生命週期 42
43.
重複執行標籤本體 • 想繼承 TagSupport
實作 <f:forEach>標 籤,該在哪個方法中實作? • doStartTag()?doEndTag()? 43
44.
44
45.
45
46.
處理本體執行結果 46
47.
處理本體執行結果 47
48.
處理本體執行結果 48
49.
處理本體執行結果 49
50.
與父標籤溝通 50
51.
51
52.
與父標籤溝通 52
53.
53
54.
綜合練習/微網誌 • 在微網誌首頁顯示使用者發佈的最新訊息, 並稍微利用一下自訂標籤,讓頁面的處理更 為精簡且易維護 54
Download now