Tải bản đầy đủ (.pptx) (17 trang)

CHUYÊN đề JAVA session tracking

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.23 MB, 17 trang )

Session Tracking
GVHD: Thầy Đỗ Văn Tiến

Thành viên nhóm:
- Lưu Thanh Ngọc
- Lê Duy Thạnh
- Trần Dũ Phi


Nội dung
Session là gì ?

Tại sao cần tính năng theo vết session ?

Cơ chế thực hiện theo vết session

Các APIs lập trình theo vết session


Nội dung
Session là gì ?

Tại sao cần tính năng theo vết session ?

Cơ chế thực hiện theo vết session

Các APIs lập trình theo vết session


Session Tracking là gì ?
Session Tracking là sự duy trì trạng thái của


các request từ cùng một user (hoặc cùng một
trình duyệt) với server thông qua cơ chế request
và response.


Nội dung
Session là gì ?

Tại sao cần tính năng theo vết session?

Cơ chế thực hiện theo vết session

Các APIs lập trình theo vết session


Tại sao cần tính năng theo vết session?
HTTP là một giao thức phi trạng thái(stateless protocol).



Mỗi lần client giao tiếp với web sever, sever sẽ

tạo ra một connection mới.



Sever không tự động lưu trữ ‘trạng thái giao tiếp’

của một user
Giả sử, khi bạn mua sách từ trang amazon.com ,

khi người dùng thêm vào hoặc bỏ ra một sản
phẩm trong giỏ hàng(shopping cart) ==> Làm thế nào
để server biết được đã có sản phẩm nào user đã chọn
và thông tin về user đó để thực hiện kiểm tra, thanh
toán


Nội dung
Session là gì ?

Tại sao cần tính năng theo vết session?

Cơ chế thực hiện theo vết session

Các kĩ thuật lập trình theo vết session


Cơ chế lưu vết session


Cơ chế thực hiện theo vết session
Có 3 cơ chế :

1. Cookies
2. URL Rewriting
3. Hidden From Fields
Đều là kĩ thuật truyền ‘session id’

•. Không cung cấp các API mức cao
•. Không cung cấp framework để quản lí session

•. Là các tính năng Sevlet Session Tracking cung cấp


Cookies
Là công nghệ được sử dụng phổ biến nhất để theo dõi phiên
Là một file nhỏ được sever gửi đến và được lưu bởi trình duyệt,
sau đó trình duyệt sẽ gửi về lại cho sever trong các request về sau




Một cookie có tên, một giá trị đơn, và các thuộc tính tùy chọn
Một giá trị của cookie có thể định danh duy nhất 1 client

Sever sử dụng giá trị của cookie để trích xuất thông tin về session
lưu trên sever
Ưu điểm:





Dễ cài đặt
Tùy biến, linh động
Được duy trì đến khi đóng trình duyệt

Nhược điểm





User có thể tắt chức năng cookie
Không được hỗ trợ bởi tất cả trình duyệt


URL Rewriting
Khi yêu cầu từ phía client được thực hiện, sever sẽ viết lại hoặc mã
hóa URL để đưa thêm thông tin về sesion

URL Rewriting thường bao gồm 1 sesion id hoặc userid
Ví dụ : Original URL: http://server:port/servlet/ServletName
Rewritten URL: http://server:port/servlet/ServletName?sessionid=7456

Ưu điểm:




Làm việc được với user vô danh
Được hỗ trợ rộng rãi

Nhược điểm




Phải viết lại tất cả các URL
Chỉ làm việc với các documents được tạo tự động



Hidden From Fields
Không hiển thị trên trình duyệt nhưng có thể được gửi lại sever
khi submit form
Ví dụ: <INPUT TYPE ="hidden" NAME="session" VALUE="sevlet">

Sevlet đọc giá trị của field bằng phương thức req.getParameter()

Ưu điểm:




Làm việc được với user vô danh
Được hỗ trợ rộng rãi

Nhược điểm




Không xử lý được trường hợp đóng trình duyệt
Chỉ làm việc với các form sinh tự động


Nội dung
Session là gì ?

Tại sao cần tính năng theo vết session ?

Cơ chế thực hiện theo vết session


Các API lập trình theo vết session


Nếu sevlet không cung cấp tính năng theo vết sesion ?

Lập trình viên phải tự thực hiện một trong các kĩ
thuật theo vết session

o

Tạo và quản lí một session ID cho mỗi session

o

Truyền session ID qua cho client quan cookie hoặc URL

o

Lấy thông tin về sesion ID từ cookie hoặc URL

o

Tạo và quản lí một bảng băm hashtable, lưu sesion ID

và các thông tin về sesion

o

Tự đưa ra cơ chế để thêm mới hoặc loại bỏ các thông


tin của sesion


HttpSession
Lấy ra đối tượng session của một user



HttpSession session = req.getSession(true);

HttpSession là một giao diện, container sẽ
tạo ra 1 đối tượng có kiểu HttpSession



Giao diện HttpSesion chứa các phương thức để xem và quản lí thông

tin về 1 sesion, như : id, thời gian tạo, thời điểm truy cập cuối cùng



Cho phép lưu giữ (maintain) thông tin người dùng


Session Tracking trong Sevlet
Servlet được xây dựng dựa trên các kĩ thuật theo vết session
truyền thống

Servlet hỗ trợ cho trình duyệt cho phép và không cho phép cookie




Nếu cookie bị tắt: sever sẽ đính kèm sesionid vào URL



Ngược lại sẽ được xử lí mặc định theo cơ chế của Servlet

Lưu ý: để đảm bảo theo vết sesion tốt nhất, tất cả các URLs trả về
từ servlet phải chạy qua phương thức response.encodeURL(URL)

Ví dụ:


Cảm ơn thầy và các bạn đã lắng nghe !



×