Your SlideShare is downloading. ×
  • Like
Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Servlet & JSP 教學手冊第二版 - 第 5 章:Servlet 進階 API、過濾器與傾聽器

  • 1,248 views
Published

Servlet & JSP 教學手冊第二版

Servlet & JSP 教學手冊第二版

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,248
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
120
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. CHAPTER 5• Servlet進階API、過濾器 與傾聽器 學習目標 • 了解Servlet生命週期 • 使用ServletConfig 與ServletContext • 各種傾聽器的使用 • 實作Filter介面來開 發過濾器
  • 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. 使用ServletConfig• 如果web.xml中的設定要覆蓋標註設定, <servlet-name>的設定必須與 @WebServlet的name屬性相同• 如果不設定name屬性,預設是類別完整名稱
  • 11. 使用ServletConfig
  • 12. ServletContext介面• 定義了運行Servlet的應用程式環境的一些行 為與觀點• 整個Web應用程式載入Web容器之後,容器 會生成一個ServletContext物件作為整個 應用程式的代表• 透過ServletConfig的 getServletContext()方法就可以取得
  • 13. 使用ServletContext• getRequestDispatcher()• getResourcePaths()
  • 14. 使用ServletContext• getResourceAsStream() – 在3.3.3節中有個讀取PDF的範例
  • 15. ServletContextListener• 想得知何時Web應用程式已經初始化或即將 結束銷毀
  • 16. ServletContextListener
  • 17. ServletContextListener• 在Servlet 3.0之前, ServletContextListener實作類別,必 須在web.xml中設定
  • 18. ServletContextListener• 有些應用程式的設定,必須在Web應用程式 初始時進行
  • 19. ServletContextAttributeListener
  • 20. HttpSessionListener
  • 21. HttpSessionListener
  • 22. HttpSessionListener
  • 23. HttpSessionAttributeListener
  • 24. HttpSessionAttributeListener• 讓即將加入HttpSession的屬性物件實作, 不需註釋或在web.xml中設定
  • 25. HttpSessionAttributeListener
  • 26. 請求相關的傾聽器• ServletRequestListener• ServletRequestAttributeListener• AsyncListener
  • 27. 過濾器的概念• 針對所有的Servlet,產品經理想要了解從請求到回 應之間的時間差。• 針對某些特定的頁面,客戶希望只有特定幾個使用 者才可以瀏覽。• 基於安全性的考量,使用者輸入的特定字元必須過 濾並替換為無害的• 字元。• 請求與回應的編碼從Big5改用UTF-8。• …
  • 28. 過濾器的概念• 執行Servlet的service()方法「前」,記錄超始時 間,Servlet的service()方法執行「後」,記錄結 束時間並計算時間差。• 執行Servlet的service()方法「前」,驗證是否為 允許的使用者。• 執行Servlet的service()方法「前」,對請求參數 進行字元過濾與替換。• 執行Servlet的service()方法「前」,對請求與回 應物件設定編碼。• …
  • 29. 過濾器的概念
  • 30. 過濾器的概念
  • 31. 過濾器的概念
  • 32. 實作與設定過濾器
  • 33. 實作與設定過濾器• FilterChain的doFilter()實作概念
  • 34. 實作與設定過濾器
  • 35. 實作與設定過濾器• 在過濾器的請求套用上,除了指定URL模式 之外,也可以指定Servlet名稱,這可以透過 @WebServlet的servletNames來設定
  • 36. 初始參數設定
  • 37. 觸發過濾器的時機• 預設是瀏覽器直接發出請求
  • 38. 請求包裹器• 實作字元替換過濾器 <a href="http://openhome.cc">OpenHome.cc</a>
  • 39. 請求包裹器
  • 40. &lt;a href=&quot;http://openhome.cc&quot;&gt;OpenHome.cc&lt;/a&gt;
  • 41. 實作編碼設定過濾器
  • 42. 回應包裹器
  • 43. 實作壓縮過濾器
  • 44. 簡介AsyncContext• 在Servlet 3.0中,在ServletRequest上提 供了startAsync()方法• 呼叫了startAsync()方法取得 AsyncContext物件之後,此次請求的回應 會被延後,並釋放容器分配的執行緒
  • 45. 簡介AsyncContext• getRequest()• getResponse()• complete()• dispatch()
  • 46. 簡介AsyncContext• 必須告知容器此Servlet支援非同步處理
  • 47. 簡介AsyncContext• 若其前端有過濾器,則過濾器亦需標示其支 援非同步處理
  • 48. 簡介AsyncContext
  • 49. 簡介AsyncContext
  • 50. 模擬伺服器推播
  • 51. 綜合練習/微網誌• 先停下來檢討目前的應用程式,有哪些維護 上的問題• 在不改變目前應用程式的功能下,程式碼必 須作出哪些調整• 讓每個程式碼職責上變得更為清晰,對於將 來的維護更有幫助