SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Report
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Feb. 13, 2013
•
0 likes
•
2,693 views
1
of
64
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Feb. 13, 2013
•
0 likes
•
2,693 views
Download Now
Download to read offline
Report
Technology
Servlet & JSP 教學手冊第二版
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Recommended
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Justin Lin
10K views
•
28 slides
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
200 views
•
69 slides
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Justin Lin
19.2K views
•
53 slides
Servlet & JSP 教學手冊第二版 - 課後練習解答
Justin Lin
4.9K views
•
39 slides
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
6.1K views
•
36 slides
Ch02 撰寫與設定 Servlet
Justin Lin
337 views
•
37 slides
More Related Content
What's hot
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Justin Lin
3.2K views
•
77 slides
Ch09 整合資料庫
Justin Lin
230 views
•
92 slides
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin
3.4K views
•
106 slides
Ch06 使用 JSP
Justin Lin
245 views
•
83 slides
整合資料庫
Justin Lin
853 views
•
102 slides
Ch03 請求與回應
Justin Lin
231 views
•
73 slides
What's hot
(20)
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Justin Lin
•
3.2K views
Ch09 整合資料庫
Justin Lin
•
230 views
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Justin Lin
•
3.4K views
Ch06 使用 JSP
Justin Lin
•
245 views
整合資料庫
Justin Lin
•
853 views
Ch03 請求與回應
Justin Lin
•
231 views
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Justin Lin
•
1.8K views
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin
•
2.5K views
Ch05 Servlet進階API、過濾器與傾聽器
Justin Lin
•
504 views
Ch13 整合 Spring MVC/Security
Justin Lin
•
279 views
Ch08 自訂標籤
Justin Lin
•
380 views
Spring 2.0 技術手冊第十章 - 專案:線上書籤
Justin Lin
•
2K views
Ch07 使用JSTL
Justin Lin
•
430 views
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Justin Lin
•
4.3K views
CH1. 簡介 Web 應用程式
Justin Lin
•
1.1K views
Ch04 會話管理
Justin Lin
•
235 views
Ch08 自訂標籤
Justin Lin
•
131 views
工作坊總結
Shengyou Fan
•
23.8K views
Ch01 簡介Web應用程式
Justin Lin
•
1.7K views
Ch04 會話管理
Justin Lin
•
390 views
Viewers also liked
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Justin Lin
1.9K views
•
30 slides
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
2K views
•
19 slides
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Justin Lin
1.6K views
•
7 slides
進階主題
Justin Lin
3K views
•
61 slides
讓程式展現樂趣 玩出實驗精神與創造力
Justin Lin
3K views
•
45 slides
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
3.2K views
•
39 slides
Viewers also liked
(19)
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Justin Lin
•
1.9K views
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
•
2K views
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Justin Lin
•
1.6K views
進階主題
Justin Lin
•
3K views
讓程式展現樂趣 玩出實驗精神與創造力
Justin Lin
•
3K views
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
•
3.2K views
Spring 2.0 技術手冊目錄
Justin Lin
•
2.4K views
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Justin Lin
•
11K views
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
•
3.8K views
Java 8 與 retrolambda
Justin Lin
•
5K views
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
•
2.5K views
java8-patterns
Justin Lin
•
15.3K views
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
•
3.2K views
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
•
2.6K views
Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Justin Lin
•
3.5K views
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
•
2.1K views
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Justin Lin
•
2.4K views
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
•
3.6K views
Java Web 程式之效能技巧與安全防護
Justin Lin
•
2.6K views
Similar to Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Ch02 撰寫與設定Servlet
Justin Lin
998 views
•
37 slides
DEV305 - ASP.NET 5 開發攻略
Will Huang
6.1K views
•
39 slides
Asp.net mvc 6 新功能初探
Gelis Wu
2.7K views
•
72 slides
ASP.NET MVC 6 新功能探索
Will Huang
11.5K views
•
48 slides
Introduction to ASP.NET MVC and MVC 5 Features
Jeff Chu
2.2K views
•
42 slides
02.web sphere培训 应用websphere
littlecong
432 views
•
44 slides
Similar to Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
(20)
Ch02 撰寫與設定Servlet
Justin Lin
•
998 views
DEV305 - ASP.NET 5 開發攻略
Will Huang
•
6.1K views
Asp.net mvc 6 新功能初探
Gelis Wu
•
2.7K views
ASP.NET MVC 6 新功能探索
Will Huang
•
11.5K views
Introduction to ASP.NET MVC and MVC 5 Features
Jeff Chu
•
2.2K views
02.web sphere培训 应用websphere
littlecong
•
432 views
Spring mvc
pepsixp
•
1.2K views
Ceph customize ap is for programmatic access with python
Bo-Yu Chen
•
170 views
Asp.net core v1.0
國昭 張
•
254 views
Asp.net core v1.0
chang kuo-chao
•
103 views
Java华为面试题
yiditushe
•
606 views
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
•
2.1K views
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
•
1.2K views
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC
•
5K views
The Rails 4 Way Chapter 1
Drake Huang
•
181 views
利用Xfire创建Web Service
icy leaf
•
945 views
中远公司 Java培训资料
yiditushe
•
132 views
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
•
2.9K views
使用 Controller
Shengyou Fan
•
34.1K views
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
Chieh Kai Yang
•
1.7K views
More from Justin Lin
Ch14 簡介 Spring Boot
Justin Lin
861 views
•
22 slides
Ch12 Spring 起步走
Justin Lin
266 views
•
31 slides
Ch11 簡介 JavaMail
Justin Lin
155 views
•
8 slides
Ch10 Web 容器安全管理
Justin Lin
152 views
•
30 slides
Ch07 使用 JSTL
Justin Lin
155 views
•
74 slides
14. 進階主題
Justin Lin
401 views
•
86 slides
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Justin Lin
•
861 views
Ch12 Spring 起步走
Justin Lin
•
266 views
Ch11 簡介 JavaMail
Justin Lin
•
155 views
Ch10 Web 容器安全管理
Justin Lin
•
152 views
Ch07 使用 JSTL
Justin Lin
•
155 views
14. 進階主題
Justin Lin
•
401 views
13.並行、平行與非同步
Justin Lin
•
234 views
12. 除錯、測試與效能
Justin Lin
•
148 views
11. 常用內建模組
Justin Lin
•
140 views
10. 資料永續與交換
Justin Lin
•
148 views
9. 資料結構
Justin Lin
•
285 views
8. open() 與 io 模組
Justin Lin
•
243 views
7. 例外處理
Justin Lin
•
114 views
6. 類別的繼承
Justin Lin
•
165 views
5. 從模組到類別
Justin Lin
•
166 views
4. 流程語法與函式
Justin Lin
•
187 views
3.型態與運算子
Justin Lin
•
196 views
1. Python起步走
Justin Lin
•
648 views
2. 從 REPL 到 IDE
Justin Lin
•
232 views
Python 3.9 技術手冊目錄
Justin Lin
•
570 views
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
2.
CHAPTER 5 • Servlet進階API、過濾器
與傾聽器 學習目標 • 了解Servlet生命週期 • 使用ServletConfig 與ServletContext • 各種傾聽器的使用 • 實作Filter介面來開 發過濾器
3.
Servlet介面 • init() • service() •
destroy()
4.
ServletConfig介面
5.
Servlet類別架構圖
6.
GenericServlet類別 • 將初始Servlet呼叫init()方法傳入的
ServletConfig封裝起來 • 有一些初始時所要執行的動作,可以重新定 義這個無參數的init()方法
7.
GenericServlet類別 • 包括了Servlet與ServletConfig定義方
法的簡單實作
8.
使用ServletConfig • 使用標註設定個別Servlet的初始參數
9.
使用ServletConfig • 在web.xml中設定個別Servlet的初始參數
10.
使用ServletConfig • GenericServlet定義了一些方法,將
ServletConfig封裝起來,便於取得設定 資訊
12.
使用ServletConfig • 如果web.xml中的設定要覆蓋標註設定,
<servlet-name>的設定必須與 @WebServlet的name屬性相同 • 如果不設定name屬性,預設是類別完整名稱
13.
使用ServletConfig
14.
ServletContext介面 • 定義了運行Servlet的應用程式環境的一些行
為與觀點 • 整個Web應用程式載入Web容器之後,容器 會生成一個ServletContext物件作為整個 應用程式的代表 • 透過ServletConfig的 getServletContext()方法就可以取得
15.
使用ServletContext • getRequestDispatcher() • getResourcePaths()
16.
使用ServletContext • getResourceAsStream() –
在3.3.3節中有個讀取PDF的範例
17.
ServletContextListener • 想得知何時Web應用程式已經初始化或即將
結束銷毀
18.
ServletContextListener
19.
ServletContextListener • 在Servlet 3.0之前,
ServletContextListener實作類別,必 須在web.xml中設定
20.
ServletContextListener • 有些應用程式的設定,必須在Web應用程式
初始時進行
21.
ServletContextAttributeListener
22.
HttpSessionListener
23.
HttpSessionListener
24.
HttpSessionListener
25.
HttpSessionAttributeListener
26.
HttpSessionAttributeListener • 讓即將加入HttpSession的屬性物件實作,
不需註釋或在web.xml中設定
27.
HttpSessionAttributeListener
28.
請求相關的傾聽器 • ServletRequestListener • ServletRequestAttributeListener •
AsyncListener
29.
過濾器的概念 • 針對所有的Servlet,產品經理想要了解從請求到回
應之間的時間差。 • 針對某些特定的頁面,客戶希望只有特定幾個使用 者才可以瀏覽。 • 基於安全性的考量,使用者輸入的特定字元必須過 濾並替換為無害的 • 字元。 • 請求與回應的編碼從Big5改用UTF-8。 • …
30.
過濾器的概念 • 執行Servlet的service()方法「前」,記錄超始時
間,Servlet的service()方法執行「後」,記錄結 束時間並計算時間差。 • 執行Servlet的service()方法「前」,驗證是否為 允許的使用者。 • 執行Servlet的service()方法「前」,對請求參數 進行字元過濾與替換。 • 執行Servlet的service()方法「前」,對請求與回 應物件設定編碼。 • …
31.
過濾器的概念
32.
過濾器的概念
33.
過濾器的概念
34.
實作與設定過濾器
35.
實作與設定過濾器 • FilterChain的doFilter()實作概念
37.
實作與設定過濾器
38.
實作與設定過濾器 • 在過濾器的請求套用上,除了指定URL模式
之外,也可以指定Servlet名稱,這可以透過 @WebServlet的servletNames來設定
39.
初始參數設定
41.
觸發過濾器的時機 • 預設是瀏覽器直接發出請求
43.
請求包裹器 • 實作字元替換過濾器 <a
href="http://openhome.cc">OpenHome.cc</a>
44.
請求包裹器
46.
<a href="http://openhome.cc">OpenHome.cc</a>
47.
實作編碼設定過濾器
49.
回應包裹器
50.
實作壓縮過濾器
56.
簡介AsyncContext • 在Servlet 3.0中,在ServletRequest上提
供了startAsync()方法 • 呼叫了startAsync()方法取得 AsyncContext物件之後,此次請求的回應 會被延後,並釋放容器分配的執行緒
57.
簡介AsyncContext • getRequest() • getResponse() •
complete() • dispatch()
58.
簡介AsyncContext • 必須告知容器此Servlet支援非同步處理
59.
簡介AsyncContext • 若其前端有過濾器,則過濾器亦需標示其支
援非同步處理
60.
簡介AsyncContext
61.
簡介AsyncContext
62.
模擬伺服器推播
64.
綜合練習/微網誌 • 先停下來檢討目前的應用程式,有哪些維護
上的問題 • 在不改變目前應用程式的功能下,程式碼必 須作出哪些調整 • 讓每個程式碼職責上變得更為清晰,對於將 來的維護更有幫助