Successfully reported this slideshow.

Ch04 會話管理

0

Share

Upcoming SlideShare
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Loading in …3
×
1 of 30
1 of 30

Ch04 會話管理

0

Share

Download to read offline

了解會話管理基本原理
使用 Cookie 類別
使用 HttpSession 會話管理
了解容器會話管理原理

了解會話管理基本原理
使用 Cookie 類別
使用 HttpSession 會話管理
了解容器會話管理原理

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Ch04 會話管理

  1. 1. 4 • 會話管理 學習目標 • 了解會話管理基本原理 • 使用 Cookie 類別 • 使用 HttpSession 會話管理 • 了解容器會話管理原理
  2. 2. 會話管理基本原理 • 每個請求對伺服器來說都是新的訪客請求 • 每次請求時「主動告知」伺服器多次請求間 必要的資訊
  3. 3. 使用隱藏欄位
  4. 4. 使用隱藏欄位
  5. 5. 使用 Cookie
  6. 6. 使用 Cookie • Cookie 的設定是透過 set-cookie 標頭 • 必須在實際回應瀏覽器之前使用 addCookie() 來新增 Cookie 實例 • 瀏覽器輸出 HTML 回應之後再執行 addCookie() 是沒有作用的
  7. 7. 使用 Cookie • 可以使用 setMaxAge() 設定 Cookie 的有效 期限,設定單位是「秒」 • 預設關閉瀏覽器之後 Cookie 就失效
  8. 8. 取得 Cookie • HttpServletRequest 的 getCookies()
  9. 9. 取得 Cookie • Cookie 若要避免被竊取,可以透過 Cookie 的 setSecure()設定 true,那麼就只會在 連線有加密(HTTPS)的情況下傳送 Cookie。 • 在 Servlet 3.0 ,Cookie 新增了 setHttpOnly()方法 – 會在 set-cookie 標頭上附加 HttpOnly 屬性, 在瀏覽器支援的情況下,這個 Cookie 將不會被 客戶端腳本(例如 JavaScript)讀取 – 使用 isHttpOnly() 得知一個 Cookie 是否被 setHttpOnly()
  10. 10. 使用 URI 重寫
  11. 11. 使用 HttpSession • 用 HttpServletRequest 的 getSession() 取得 HttpSession 物件 • 會話範圍屬性 – setAttribute() – getAttribute()
  12. 12. 使用 HttpSession • 預設關閉瀏覽器前,取得的 HttpSession 都是相同的實例 • 直接讓目前的 HttpSession 失效,可以執 行 HttpSession 的 invalidate()
  13. 13. 使用 HttpSession
  14. 14. HttpSession 會話管理原理
  15. 15. HttpSession 會話管理原理
  16. 16. HttpSession 自動失效 • 執行 HttpSession 的 setMaxInactiveInterval() 方法,單 位是「秒」 • 在 web.xml 設定
  17. 17. HttpSession 自動失效 • HttpSession 物件在瀏覽器多久沒活動就 失效的時間 • 不是儲存 Session ID 的 Cookie 失效時間 • 儲存 Session ID 的 Cookie 預設為關閉瀏覽器 就失效
  18. 18. SessionCookieConfig • Servlet 3.0 新增,可在 web.xml 設定
  19. 19. HttpSession 與 URI 重寫 • HttpSession 預設用 Cookie 存 Session ID • 在使用者禁用 Cookie 的情況下,仍打算運用 HttpSession 來進行會話管理,那麼可以 搭配 URI 重寫的 • 可以使用 HttpServletResponse 的 encodeURL() 協助產生所需的 URI 重寫
  20. 20. HttpSession 與 URI 重寫 • encodeURL() • encodeRedirectURL()

×