Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
1,97 MB
Nội dung
CHUYÊNĐỀJAVASERVLETSESSIONTRACKING • Lâm Thị Xuân Thanh • Đỗ Xuân Thiện • Lê Hữu Thống Nội dung trình bày SessionTracking Cài đặt SessionTracking - ServletSession API Xây dựng BookOnline - Đăng nhập - Quản lý giỏ hàng SessionTracking Trong ứng dụng bán hàng trực tuyến, nhiều khách hàng thực mua hàng Mỗi khách hàng có giỏ hàng riêng biệt Mỗi khách hàng thực thao tác 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, toán… Để thực thao tác khách hàng server biết sản phẩm có giỏ hàng khách hàng đó? SessionTracking Cần chế trì trạng thái request từ người dùng(hoặc có nguồn gốc browser) khoảng thời gian Tuy nhiên HTTP giao thức phi trạng thái (stateless) - Mỗi lần client kết nối đến server mở kết nối - Server không tự động trì trạng thái user SessionTrackingSession ID Session Client Server Session ID Session Client SessionTracking Cài đặt SessionTracking sử dụng - ServletSession API SessionTracking - ServletSession API Lấy đối tượng session HttpSession session = request.getSession(); Lấy liệu: Object obj = session.getAttribute(String name); session.setAttribute(String name, Object obj) Lưu trữ liệu vào session Xóa liệu session theo tên session.removeAttribute(String name) Xóa toàn liệu session : session.invalidate() Kiểm tra session tạo từ client: boolean ok = session.isNew() SessionTracking - ServletSession API Lấy session id: String id = session.getId() Lấy tên thuộc tính từ session Enumeration names = session.getAttributeNames() longtạotime = lần Lấy thời gian session session.getCreationTime(); time long Lấy thời gian= truy xuất session lần cuối session.getLastAccessedTime(); session.setMaxInactiveInterval(int interval); Gán/lấy thời gian session timeout int interval = session.getMaxInactiveInterval(); SessionTracking - ServletSession API 10 11 12 13 14 15 16 17 18 19 //Lưu trữ liệu HttpSession session = request.getSession(); SomePOJO data= ; session.setAttribute("SomeName", data); //Lấy liệu HttpSession session = request.getSession(); if(session.getAttribute(“SomeName”)!=null){ SomePOJO data = (SomePOJO)session.getAttribute(“SomeName”); } //Xóa liệu HttpSession session = request.getSession(); session.removeAttribute(“SomeName”); //Xóa tất liệu session HttpSession session = request.getSession(); session.invalidate(); SessionTracking - ServletSession API HttpSession session = request.getSession(); synchronized (session){ session.setAttribute( ); session.getAttribute( ); session.removeAttribte( ); session.invalidate( ); } - Synchronized : xử lý đồng request đến từ user - Thường sử dụng ứng dụng ajax 10 ServletSession API - Access Count 10 11 12 13 14 15 16 17 18 19 11 HttpSession session = request.getSession(); synchronized (session) { Integer accessCount; if (session.getAttribute("AccessCount") != null) { accessCount = (Integer) session.getAttribute("AccessCount") + 1; } else { accessCount = 1; } session.setAttribute("AccessCount", accessCount); out.println(""); out.println(""); out.println(""); out.println("Show Session"); out.println(""); out.println(""); out.println("THÔNG TIN SESSION"); ServletSession API - Access Count 10 11 12 13 14 15 16 17 18 19 12 out.println(""); out.println(" "); out.println(" Thông tin"); out.println(" Giá tr?"); out.println(" "); out.println(" "); out.println(" ID"); out.println(" " + session.getId() + ""); out.println(" "); out.println(" "); out.println(" Thời gian tạo lần đầu tiên"); out.println(" " + new Date(session.getCreationTime()) + ""); out.println(" "); out.println(" "); out.println(" Thời gian truy cập lần cuối "); out.println(" " + new Date(session.getLastAccessedTime()) + ""); out.println(" "); ServletSession API - Access Count out.println(" "); Thời gian timeout"); out.println(" out.println(" " + session.getMaxInactiveInterval() + ""); out.println(" "); out.println(" "); out.println(" Số lần truy cập"); out.println(" " +accessCount + "" ) 10 11 "); out.println(" 12 out.println(""); 13 out.println(""); 14 15 out.println(""); 16 out.println(""); 13 ServletSession API - Access Count 14 BookOnline - Các chức Cho phép khách hàng quản lý giỏ hàng - Xem giỏ hàng - Thêm sách vào giỏ hàng - Xóa số đầu sách giỏ - Cập nhật số lượng sách mua - Xóa tất sách giỏ - Thanh toán giỏ hàng - Xem đơn đặt hàng mua 15 BookOnline - Use case DuaSachVaoGioHang KhachHang XoaMotSoDauSachKhoiGioHang XemDanhSachDonDatHang XemChiTietDonDatHang 16 XemGioHang CapNhatSoLuongSach TrongGioHang ThanhToan BookOnline - Cơ sở liệu 17 THE END 18 [...].. .Servlet Session API - Access Count 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 11 HttpSession session = request.getSession(); synchronized (session) { Integer accessCount; if (session. getAttribute("AccessCount") != null) { accessCount = (Integer) session. getAttribute("AccessCount") + 1; } else { accessCount = 1; } session. setAttribute("AccessCount", accessCount);... out.println(""); out.println(""); out.println("Show Session"); out.println(""); out.println(""); out.println("THÔNG TIN SESSION"); ServletSession API - Access Count 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 12 out.println("