Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Ch05 Servlet 進階 API、過濾器與傾聽器
Report
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Jun. 1, 2021
•
0 likes
0 likes
×
Be the first to like this
Show More
•
193 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
CH1:Java平台概論
Justin Lin
Introduction to Spring Framework
Serhat Can
CH04:認識物件
Justin Lin
CH03:基礎語法
Justin Lin
Spring mvc
Hamid Ghorbani
Spring MVC Framework
Hùng Nguyễn Huy
CH02:從JDK到IDE
Justin Lin
Spring boot jpa
Hamid Ghorbani
1
of
69
Top clipped slide
Ch05 Servlet 進階 API、過濾器與傾聽器
Jun. 1, 2021
•
0 likes
0 likes
×
Be the first to like this
Show More
•
193 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
了解 Servlet 生命週期 使用 ServletConfig 與ServletContext 使用 PushBuilder 各種傾聽器的使用 繼承 HttpFilter 實作過濾器
Justin Lin
Follow
Technology / Community Evangelist at Free lancer
Advertisement
Advertisement
Advertisement
Recommended
CH1. 簡介 Web 應用程式
Justin Lin
954 views
•
55 slides
Ch02 撰寫與設定 Servlet
Justin Lin
301 views
•
37 slides
Ch07 使用 JSTL
Justin Lin
146 views
•
74 slides
Ch03 請求與回應
Justin Lin
212 views
•
73 slides
Ch06 使用 JSP
Justin Lin
233 views
•
83 slides
Ch13 整合 Spring MVC/Security
Justin Lin
268 views
•
58 slides
More Related Content
Slideshows for you
(20)
CH1:Java平台概論
Justin Lin
•
1.2K views
Introduction to Spring Framework
Serhat Can
•
24.8K views
CH04:認識物件
Justin Lin
•
411 views
CH03:基礎語法
Justin Lin
•
507 views
Spring mvc
Hamid Ghorbani
•
829 views
Spring MVC Framework
Hùng Nguyễn Huy
•
3.4K views
CH02:從JDK到IDE
Justin Lin
•
455 views
Spring boot jpa
Hamid Ghorbani
•
879 views
Spring Framework - Core
Dzmitry Naskou
•
34.5K views
Spring mvc
Pravin Pundge
•
169 views
Spring - Part 1 - IoC, Di and Beans
Hitesh-Java
•
1.2K views
Servlet.ppt
VMahesh5
•
199 views
Spring 2.0 技術手冊第二章 - Spring 入門
Justin Lin
•
4.9K views
Xke spring boot
sourabh aggarwal
•
1.2K views
Spring Boot in Action
Alex Movila
•
2.9K views
PUC SE Day 2019 - SpringBoot
Josué Neis
•
627 views
Spring boot
Pradeep Shanmugam
•
480 views
Spring Boot and REST API
07.pallav
•
380 views
Spring Framework
tola99
•
1K views
Spring boot
Bhagwat Kumar
•
2.4K views
Similar to Ch05 Servlet 進階 API、過濾器與傾聽器
(20)
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
2.7K views
Introduction to ASP.NET MVC and MVC 5 Features
Jeff Chu
•
2.2K views
Asp.net mvc 6 新功能初探
Gelis Wu
•
2.7K views
DEV305 - ASP.NET 5 開發攻略
Will Huang
•
6.1K views
ASP.NET MVC 6 新功能探索
Will Huang
•
11.5K views
Ceph customize ap is for programmatic access with python
Bo-Yu Chen
•
170 views
Asp.net core v1.0
chang kuo-chao
•
103 views
Asp.net core v1.0
國昭 張
•
254 views
Spring mvc
pepsixp
•
1.2K views
使用 Controller
Shengyou Fan
•
33.9K views
The Rails 4 Way Chapter 1
Drake Huang
•
181 views
使用 Controller
Shengyou Fan
•
5.5K views
09 UITableView and UITableViewController
Tom Fan
•
819 views
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Justin Lin
•
6.1K views
Ch03 請求與回應
Justin Lin
•
648 views
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
SernHao TV
•
182 views
Asp.net mvc網站的從無到有
Wade Huang
•
6.6K views
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
•
4.3K views
Kubernetes project update and how to contribute
inwin stack
•
672 views
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Justin Lin
•
4.5K views
Advertisement
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Justin Lin
•
841 views
Ch12 Spring 起步走
Justin Lin
•
250 views
Ch11 簡介 JavaMail
Justin Lin
•
151 views
Ch10 Web 容器安全管理
Justin Lin
•
146 views
Ch09 整合資料庫
Justin Lin
•
220 views
Ch08 自訂標籤
Justin Lin
•
127 views
Ch04 會話管理
Justin Lin
•
228 views
14. 進階主題
Justin Lin
•
394 views
13.並行、平行與非同步
Justin Lin
•
218 views
12. 除錯、測試與效能
Justin Lin
•
140 views
11. 常用內建模組
Justin Lin
•
136 views
10. 資料永續與交換
Justin Lin
•
145 views
9. 資料結構
Justin Lin
•
267 views
8. open() 與 io 模組
Justin Lin
•
238 views
7. 例外處理
Justin Lin
•
111 views
6. 類別的繼承
Justin Lin
•
159 views
5. 從模組到類別
Justin Lin
•
159 views
4. 流程語法與函式
Justin Lin
•
180 views
3.型態與運算子
Justin Lin
•
192 views
1. Python起步走
Justin Lin
•
607 views
Recently uploaded
(20)
☀️【路易斯维尔大学毕业证成绩单留学生首选】
2125nuh
•
2 views
留信网认证可查【路易斯安那理工大学文凭证书毕业证购买】
1lkjhg
•
2 views
thothmind
MarlowChen
•
5 views
微服务架构设计模式-第一次课v2.pdf
LiShanshan2
•
1 view
留学美国必看:长岛大学毕业证、学位证办理流程
oqcymp
•
3 views
《索尔福德大学毕业证|学位证书校内仿真版本》
w124dsa
•
2 views
①【温哥华岛大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
☀️【北卡罗来纳大学格林波若分校毕业证成绩单留学生首选】
25mjhd12
•
2 views
①【凤凰城大学毕业证文凭学位证书|工艺完美复刻】
0987hgh789
•
4 views
本科/硕士《加拿大湖首大学毕业证成绩单》
1523dsa
•
3 views
留信网认证可查【中央昆士兰大学文凭证书毕业证购买】
khh123kj
•
4 views
①【玛格丽特女王大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
☀️【阿卡迪亚大学毕业证成绩单留学生首选】
15sad
•
2 views
①【拉筹伯大学毕业证文凭学位证书|工艺完美复刻】
vgh215w
•
2 views
☀️【杜塞尔多夫大学毕业证成绩单留学生首选】
bjd42as
•
2 views
☀️【北卡罗来纳大学教堂山分校毕业证成绩单留学生首选】
2125nuh
•
3 views
49133383-Final (1).pdf
AryanAmeen1
•
1 view
☀️【伦敦国王学院毕业证成绩单留学生首选】
25mjhd12
•
2 views
留信网认证可查【格鲁斯特大学文凭证书毕业证购买】
12da12
•
2 views
①【密歇根理工大学毕业证文凭学位证书|工艺完美复刻】
C25lokh12
•
2 views
Advertisement
Ch05 Servlet 進階 API、過濾器與傾聽器
1
5 • Servlet 進階
API、過濾器 與傾聽器 學習目標 • 了解 Servlet 生命週期 • 使用 ServletConfig 與 ServletContext • 使用 PushBuilder • 各種傾聽器的使用 • 繼承 HttpFilter 實作過濾器 2
Servlet 介面 • init() •
service() • destroy() 3
ServletConfig 介面 4
Servlet 類別架構圖 5
GenericServlet 類別 • 將初始
Servlet 呼叫 init()方法傳入的 ServletConfig 封裝起來 • 有一些初始時所要執行的動作,可以重新定 義這個無參數的 init()方法 6
GenericServlet 類別 • 包括了
Servlet 與 ServletConfig 定義 方法的簡單實作 7
使用 ServletConfig • 使用標註設定個別
Servlet 的初始參數 8
使用 ServletConfig • 在
web.xml 設定個別 Servlet 的初始參數 9
使用 ServletConfig • GenericServlet
定義了一些方法,將 ServletConfig 封裝起來,便於取得設定 資訊 10
11
使用 ServletConfig • 如果
web.xml 的設定要覆蓋標註設定, <servlet-name> 的設定必須與 @WebServlet 的 name 屬性相同 • 不設定 name 屬性,預設是類別完整名稱 12
使用 ServletConfig 13
ServletContext 介面 • 定義了運行
Servlet 的應用程式環境的一些行 為與觀點 • 整個 Web 應用程式載入 Web 容器之後,容 器會生成一個 ServletContext 物件作為 整個應用程式的代表 • 透過 ServletConfig 的 getServletContext()方法就可以取得 14
使用 ServletContext • getRequestDispatcher() •
getResourcePaths() 15
使用 ServletContext • getResourceAsStream() –
在 3.3.3 節中有個讀取 PDF 的範例 16
使用 PushBuilder • Servlet
4.0 規範中制訂了對 HTTP/2 的支援, 在伺服器推送上,提供了PushBuilder 17
使用 PushBuilder 18
ServletContextListener • 想得知何時 Web
應用程式已經初始化或即將 結束銷毀 19
ServletContextListener 20
ServletContextListener • 在Servlet 3.0
之前, ServletContextListener 實作類別,必 須在 web.xml 設定 21
ServletContextListener • 有些應用程式的設定,必須在 Web
應用程式 初始時進行 22
ServletContextListener • 在應用程式初始化時,也可以實作 ServletContextListener 進行
Servlet、 過濾器等的建立、設定與註冊 • 好處是給予 Servlet、過濾器等更多設定上的 彈性 23
ServletContextListener 24
ServletContextAttributeListener 25
HttpSessionListener 26
HttpSessionListener 27
HttpSessionListener 28
HttpSessionAttributeListener 29
HttpSessionBindingListener • 讓即將加入 HttpSession
的屬性物件實作, 不需註釋或在 web.xml 設定 30
HttpSessionAttributeListener 31
HttpSessionIdListener • Servlet 3.1
新增 • HttpSession 的 Session ID 發生變化時, 就會呼叫 sessionIdChanged()方法 32
請求相關的傾聽器 • ServletRequestListener • ServletRequestAttributeListener •
AsyncListener • ReadListener 33
過濾器的概念 • 針對所有的 Servlet,產品經理想要了解從請求到回 應之間的時間差。 •
針對某些特定的頁面,客戶希望只有特定幾個使用 者才可以瀏覽。 • 基於安全性的考量,使用者輸入的特定字元必須過 濾並替換為無害的 • 字元。 • 請求與回應的編碼從 Big5 改用 UTF-8。 • … 34
過濾器的概念 • 執行 Servlet
的 service()方法「前」,記錄超始 時間,Servlet 的 service()方法執行「後」,記 錄結束時間並計算時間差。 • 執行 Servlet 的 service()方法「前」,驗證是否 為允許的使用者。 • 執行 Servlet 的 service()方法「前」,對請求參 數進行字元過濾與替換。 • 執行 Servlet 的 service()方法「前」,對請求與 回應物件設定編碼。 • … 35
過濾器的概念 36
過濾器的概念 37
過濾器的概念 38
實作與設定過濾器 39
實作與設定過濾器 • FilterChain 的
doFilter() 實作概念 40
GenericFilter 與 HttpFilter •
Servlet 4.0 新增 41
42
43
44
實作與設定過濾器 45
實作與設定過濾器 • 在過濾器的請求套用上,除了指定 URL
模式 之外,也可以指定 Servlet 名稱,這可以透過 @WebServlet 的 servletNames 設定 46
初始參數設定 47
48
觸發過濾器的時機 • 預設是瀏覽器直接發出請求 49
50
請求包裹器 • 實作字元替換過濾器 <a href="http://openhome.cc">OpenHome.cc</a> 51
請求包裹器 52
53
<a href="http://openhome.cc">Openhome.cc</a> 54
55
56
57
回應包裹器 58
實作壓縮過濾器 59
60
61
62
簡介 AsyncContext • 在
Servlet 3.0 中,ServletRequest 提供了 startAsync()方法 • 呼叫了 startAsync()方法取得 AsyncContext 物件之後,此次請求的回應 會被延後,並釋放容器分配的執行緒 63
簡介 AsyncContext • getRequest() •
getResponse() • complete() • dispatch() 64
簡介 AsyncContext • 必須告知容器此
Servlet 支援非同步處理 65
簡介 AsyncContext • 若其前端有過濾器,則過濾器亦需標示其支 援非同步處理 66
67
68
綜合練習/微網誌 • 先停下來檢討目前的應用程式,有哪些維護 上的問題 • 在不改變目前應用程式的功能下,程式碼必 須作出哪些調整 •
讓每個程式碼職責上變得更為清晰,對於將 來的維護更有幫助 69
Advertisement