intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

CHUYÊN ĐỀ JAVA_SERVLET SESSION TRACKING

Chia sẻ: Huongdanhoctot Huongdanhoctot | Ngày: | Loại File: PDF | Số trang:19

76
lượt xem
11
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong ứng dụng bán hàng trực tuyến, nhiều khách hàng thực hiện mua hàng. Mỗi khách hàng có một giỏ hàng riêng biệt.  Mỗi khách hàng thực hiện các thao tác như thêm sản phẩm vào giỏ hàng, xóa sản phẩm khỏi giỏ hàng, cập nhật số lượng mua, tiếp tục mua hàng, thanh toán…

Chủ đề:
Lưu

Nội dung Text: CHUYÊN ĐỀ JAVA_SERVLET SESSION TRACKING

  1. CHUYÊN ĐỀ JAVA SERVLET SESSION TRACKING Nguyễn Hoàng Anh Email: nhanh@fit.hcmus.edu.vn hoanganhis@gmail.com ĐH KHTN, 2011
  2. Nội dung trình bày  Session Tracking  Cài đặt Session Tracking – Servlet Session API  Xây dựng BookOnline – Đăng nhập – Quản lý giỏ hàng Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 2
  3. Session Tracking  Trong ứng dụng bán hàng trực tuyến, nhiều khách hàng thực hiện mua hàng. Mỗi khách hàng có một giỏ hàng riêng biệt.  Mỗi khách hàng thực hiện các thao tác như thêm sản phẩm vào giỏ hàng, xóa sản phẩm khỏi giỏ hàng, cập nhật số lượng mua, tiếp tục mua hàng, thanh toán…  Để thực hiện mỗi thao tác của từng khách hàng làm sao server biết được các sản phẩm hiện có trong giỏ hàng của khách hàng đó? Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 3
  4. Session Tracking  Cần cơ chế duy trì trạng thái của các request từ cùng một người dùng (hoặc có nguồn gốc cùng một browser) trong một khoảng thời gian.  Tuy nhiên HTTP là giao thức phi trạng thái (stateless) – Mỗi lần client kết nối đến server đều mở ra một kết nối mới. – Server không tự động duy trì trạng thái của một user. Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 4
  5. Session Tracking Session ID 1 Session 1 Client 1 Server Session ID 2 Session 2 Client 2 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 5
  6. Session Tracking  Cài đặt Session Tracking sử dụng – Servlet Session API Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 6
  7. Session Tracking – Servlet Session API  Lấy đối tượng session HttpSession session = request.getSession();  Lấy dữ liệu: Object obj = session.getAttribute(String name);  Lưu trữ dữ liệu vào session session.setAttribute(String name, Object obj)  Xóa dữ liệu session theo tên session.removeAttribute(String name)  Xóa toàn bộ dữ liệu trong session : session.invalidate()  Kiểm tra session được tạo mới từ client: boolean ok = session.isNew() Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 7
  8. Session Tracking – Servlet Session API  Lấy session id: String id = session.getId()  Lấy các tên của các thuộc tính từ session Enumeration names = session.getAttributeNames()  Lấy thời gian tạo session lần đầu tiên long time = session.getCreationTime();  Lấy thời gian truy xuất session lần cuối long time = session.getLastAccessedTime();  Gán/lấy thời gian session timeout session.setMaxInactiveInterval(int interval); int interval = session.getMaxInactiveInterval(); Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 8
  9. Session Tracking – Servlet Session API 1 //Lưu trữ dữ liệu 2 HttpSession session = request.getSession(); 3 SomePOJO data= ... ; 4 session.setAttribute("SomeName", data); 5 ... 6 //Lấy dữ liệu 7 HttpSession session = request.getSession(); 8 if(session.getAttribute(“SomeName”)!=null){ 9 SomePOJO data = (SomePOJO)session.getAttribute(“ SomeName”); 10 11 ... 12 } 13 //Xóa dữ liệu 14 HttpSession session = request.getSession(); 15 session.removeAttribute(“SomeName”); 16 //Xóa tất cả dữ liệu trong session 17 HttpSession session = request.getSession(); 18 session.invalidate(); 19 Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 9
  10. Session Tracking – Servlet Session API 1 HttpSession session = request.getSession(); 2 synchronized (session){ 3 session.setAttribute(...); 4 session.getAttribute(...); 5 session.removeAttribte(...); 6 session.invalidate(...); 7 ... 8 } - Synchronized : xử lý đồng bộ giữa các request đến từ cùng một user - Thường sử dụng trong ứng dụng ajax Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 10
  11. Servlet Session API – Access Count 1 HttpSession session = request.getSession(); 2 synchronized (session) { 3 Integer accessCount; 4 if (session.getAttribute("AccessCount") != null) { 5 accessCount = (Integer) 6 session.getAttribute("AccessCount") + 1; 7 8 } else { 9 accessCount = 1; 10 } 11 session.setAttribute("AccessCount", accessCount); 12 out.println(""); 13 out.println(""); 14 out.println(""); 16 out.println("Show Session"); 17 out.println(""); 18 out.println(""); 19 out.println("THÔNG TIN SESSION" ); Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 11
  12. Servlet Session API – Access Count 1 out.println(""); 3 out.println(" "); 4 out.println(" Thông tin" ); 5 out.println(" Giá tr?" ); 6 out.println(" "); 7 out.println(" "); 8 out.println(" ID"); 9 out.println(" " + session.getId() + ""); 10 out.println(" "); 11 out.println(" "); 12 out.println(" Thời gian tạo lần đầu tiên"); 13 out.println(" " + new 14 Date(session.getCreationTime()) + ""); 15 out.println(" "); out.println(" "); 16 out.println(" Thời gian truy cập lần cuối "); 17 out.println(" " + new 18 Date(session.getLastAccessedTime()) + ""); 19 out.println(" "); Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 12
  13. Servlet Session API – Access Count 1 out.println(" "); 2 out.println(" Thời gian timeout"); 3 out.println(" " + 4 session.getMaxInactiveInterval() + ""); 5 6 out.println(" "); 7 out.println(" "); 8 out.println(" Số lần truy cập"); 9 out.println(" "+accessCount + ""); 10 11 out.println(" "); 12 out.println(""); 13 out.println(""); 14 out.println(""); 15 16 out.println(""); Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 13
  14. Servlet Session API – Access Count Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 14
  15. BookOnline – Các chức năng  Cho phép khách hàng quản lý giỏ hàng của mình – Xem giỏ hàng – Thêm sách vào giỏ hàng – Xóa một số đầu sách trong giỏ – Cập nhật số lượng sách mua – Xóa tất cả các sách trong giỏ – Thanh toán giỏ hàng – Xem các đơn đặt hàng đã mua Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 15
  16. BookOnline – Use case DuaSachVaoGioHang KhachHang XoaMotSoDauSachKhoiGioHang XemGioHang XemDanhSachDonDatHang CapNhatSoLuongSach TrongGioHang XemChiTietDonDatHang ThanhToan Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 16
  17. BookOnline – Cơ sở dữ liệu Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 17
  18. Tài liệu tham khảo  Nguyễn Hoàng Anh, Tập bài giảng và video môn chuyên đề Java, 2010  Marty Hall, Tập bài giảng về Servlet, 2010 – http://courses.coreservlets.com/Course-Materials/csajsp2.html Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 18
  19. HỎI VÀ ĐÁP Nguyễn Hoàng Anh – nhanh@fit.hcmus.edu.vn – ĐH KHTN - 2011 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2