Thứ Sáu, 13 tháng 6, 2014

Session in JavaServlet

1.Khái niệm về Session:
 -Mỗi Session được hiểu là 1 phiên làm việc của một người dùng, nó chính là khoảng thời gian mà người dùng giao tiếp với ứng dụng.
- Một Session được tính từ khi người dùng bắt đầu truy cập vào ứng dụng lần đầu tiên, cho đến khi người dùng thoát khỏi ứng (Ví dụ như: Tắt trình duyệt, tắt máy, Logout).

2. Các kỹ thuật  xử lý Session.
-Có khá nhiều kỹ thuật xử lý session trong servlet và có một số cách như sau:


*Url Rewritting
- Mỗi một yêu cầu mà client gửi đến thông qua url thì chúng ta có thể thêm một tham số định danh session cùng với mỗi yêu cầu và phản hồi để theo dõi phiên làm việc (session). Điều này rất quan trọng  vì chúng ta cần phải theo dõi các thông số này trong mọi phản hồi và chắc chắn rằng nó không xung đột với các thông số khác.


*Persistent Cookies
- Cookie là các mảnh nhỏ lưu thông tin ở trong trình duyệt bên phía client, nó được gửi tới máy chủ. Lúc đó server sẽ nhận ra client qua các thông tin của cookie.Cách này cũng khá thông dụng.

*Hidden Form Variables
- Chúng ta có thể dùng các thẻ ẩn mà người dùng không nhìn thấy nhưng chúng vẫn là các thẻ nằm trong form để gửi lên server.

*Servlet API
- Được xây dựng trên phương pháp theo dõi phiên.

Ngoài ra các bạn có thể tìm hiểu thông qua video này của thầy Phạm Anh Đới trước khi chúng ta làm một demo về nó .

Bây giờ chúng ta làm một demo về session cụ thể ở đây là làm ứng dụng đăng nhập với servlet và dữ liệu được fix cứng :

Bước 1 : Tạo web application như bình thường(cách tạo tại đây) sau đó tạo class User và các servlet như hình dưới :

Tham khảo cách tạo servlet tại đây
Bước 2: Xử lí code trong index như sau :

Bước 3: Xử lí code trong class User như sau :

Bước 4 : Xử lí code trong LoginServlet :

Ta Override Method Init và tạo hàm checkLogin như hình trên

Bước 5: Xử lí code trong phương thức processrequest

Bước 6 : Xử lí code trong HomeServlet
Bước 7: Ta xử lí code trong servlet session như đã tạo ở trên như sau :
Chạy code ta sẽ được kết quả như hình dưới , do tôi có sử dụng code HTML trên mạng nên kết quả sẽ như này , nếu bạn nào thích cũg có thể tham khảo tại link này :

Chúng ta đăng nhập với username và pass đã tạo trong servlet login sẽ được kết quả như này
Để kiểm tra Session chúng ta sửa trực tiếp link thành như sau :
Và được kết quả như này , vậy phiên làm việc được lưu lại với điều kiện chúng ta chưa thoát ứng dụng
Theo cảm nhận của tôi thì cách làm này khá đơn giản vì code không khó và cách làm cũng rất dễ hiểu , không cần phải kết nối tới database nhưng nhược điểm là dữ liệu sẽ khá là hạn chế và vì không dùng database nên mỗi khi muốn thêm một tài khoản chúng ta phải thêm code khá là "nghiệp dư".

Các bạn có thể tải bài làm trên của tôi tại link này

Không có nhận xét nào:

Đăng nhận xét