Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
0,91 MB
Nội dung
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM LẬP TRÌNH ỨNG DỤNG MẠNG BÀI GIẢNG VIÊN: VÕ TẤN DŨNG GV: Võ Tấn Dũng SHOPPING CART PHẦN GV: Võ Tấn Dũng TÌM HIỂU VỀ GIỎ HÀNG (SHOPPING CART) CÁC VẤN ĐỀ ĐƯỢC TRÌNH BÀY GV: Võ Tấn Dũng • Thiết kế giỏ hàng (shopping cart) với session • Thiết kế giỏ hàng với sở liệu • Tìm hiểu cookies KHÁI NIỆM GIỎ HÀNG • Để mua hàng mạng cần giỏ hàng Đó shopping cart • Các mặt hàng hiển thị trang web cho ta chọn đưa vào giỏ hàng Giỏ hàng cho biết tổng số mặt hàng mà bạn mua với giá phải toán • Bạn thêm bớt số lượng loại bỏ, chọn lại mặt hàng khác • Có hai cách để xây dựng shopping cart: GV: Võ Tấn Dũng – Sử dụng session – Sử dụng bảng sở liệu KHÁI NIỆM GIỎ HÀNG GV: Võ Tấn Dũng • Chương trước ta dùng session application để lưu liệu để truyền qua lại trang web Bây ta sử dụng session ứng dụng thực tế áp dụng để xây dựng shopping cart cho trang web mua sắm mạng • Đối tượng session nơi lý tưởng để xây dựng shopping cart lưu mặt hàng mà người dùng chọn mua trước toán • Ngoài ta xây dựng giỏ hàng sở liệu để lưu mặt hàng bảng liệu CÁC PHƯƠNG THỨC CỦA GIỎ HÀNG • Một giỏ hàng cần có phương thức thực công việc sau: addItem: thêm mục hàng vào giỏ hàng removeItem: loại bỏ mục hàng khỏi giỏ hàng clearItem: xóa bỏ tất mục hàng giỏ hàng updateQuantity: thay đổi số lượng mua mục hàng – getCost: cho biết tổng số tiền phải trả cho tất mục hàng có giỏ hàng – getNumOfItem: đếm tổng số mục hàng có giỏ hàng GV: Võ Tấn Dũng – – – – • Một mục hàng (item) lưu giỏ hàng cần có thông tin sau: – Mã số mục hàng (item id) – Tên mục hàng (item desc) – Đơn giá (price) – Số lượng mua (quantity) • Bởi giỏ hàng chứa nhiều mục hàng tương ứng với khóa (item id) nên ta sử dụng bảng Hashtable Java (bảng dùng để lưu giá trị dựa khóa) dùng table CSDL để lưu giá trị mục hàng mà người dùng thêm vào GV: Võ Tấn Dũng THÔNG TIN CỦA MỘT MỤC HÀNG PHẦN GV: Võ Tấn Dũng XÂY DỰNG GIỎ HÀNG VỚI SESSION XÂY DỰNG GIỎ HÀNG VỚI SESSION GV: Võ Tấn Dũng • Sau ta tiến hành viết code xây dựng giỏ hàng với session lớp ShoppingCart.java 10 GV: Võ Tấn Dũng Lớp ShoppingCart.java PHẦN 37 GV: Võ Tấn Dũng TÌM HIỂU CÁCH LƯU DỮ LIỆU CỦA COOKIES • Session chế lưu vết trạng thái trình chủ Nếu muốn lưu vết trạng thái giao dịch phía máy khách ta dùng kỹ thuật cookies • Cookies mẩu thông tin gồm tên giá trị thể (tương tự biến) Ta sử dụng ngôn ngữ kịch JavaScript để tạo mẩu cookies • Trình duyệt cho phép tạo mẩu cookies ghi nhớ xuống máy khách Cookies tạo từ trình chủ (cụ thể Servlet) yêu cầu trình duyệt lưu xuống máy khách • Trong trình thực lệnh POST lệnh GET giao thức HTTP, trình chủ trình khách gửi nhận mẩu tin cookies 38 GV: Võ Tấn Dũng LƯU GIAO DỊCH BẰNG COOKIES 39 GV: Võ Tấn Dũng LƯU GIAO DỊCH BẰNG COOKIES COOKIES LƯU VẾT PHÍA TRÌNH KHÁCH Ví dụ sau cho thấy cách sử dụng cookies phía máy khách 40 GV: Võ Tấn Dũng • • Trang web vừa ta có tên cookieshow.html Trang web sử dụng JavaScript để tạo mẩu tin cookies mang tên “pagecolor” với giá trị “yellow” • Hàm setCookie() trang web đơn giản, gọi đối tượng document trang để lưu trị tên cookie: setCookie(“pagecolor”,”yellow”) • Hàm getCookieVal() để đọc lại giá trị cookie Mỗi mẩu tin cookie phân cách dấu chấm phẩy(;) • Hàm escape JavaScript giúp ta loại bỏ ký tự đặc biệt cookies chuyển ký tự đặc biệt thành dạng mã hóa khác 41 GV: Võ Tấn Dũng GIẢI THÍCH (cookieshow.html) GIẢI THÍCH (cookieshow.html) 42 GV: Võ Tấn Dũng • Kết hiển thị mẩu tin vừa tạo trình duyệt IE hình sau Ngoài mẩu tin pagecolor=yellow ta nhận số mẩu tin cookie khác trình duyệt tạo GỬI COOKIE LÊN TRÌNH CHỦ 43 GV: Võ Tấn Dũng • Trang web cookieshow.html mà ta thiết kế có thẻ FORM gọi đến Servlet mang tên CookieListing • Khi ta nhấn nút “Send cookies to server” trình duyệt gọi đến Servlet CookieListing máy chủ Đồng thời toàn cookies máy khách trình duyệt đóng gói gửi • Servlet CookieListing thiết kế để tiếp nhận cookie trình khách 44 GV: Võ Tấn Dũng CookieListing.java 45 GV: Võ Tấn Dũng CookieListing.java (tt) 46 GV: Võ Tấn Dũng CookieListing.java (tt) Biên dịch cookieListing.java Đăng ký servlet với trình chủ Trở lại trang Cookieshow.html, nhấn vào nút “Send cookies to Server” kết hình 47 GV: Võ Tấn Dũng CookieListing.java (tt) GIẢI THÍCH (CookieListing.java) 48 GV: Võ Tấn Dũng • CookieListening ta tiếp nhận mẩu tin cookie mang tên “pagecolor=yellow” từ trình khách cách gọi hàm getcookieValue() • Hàm sử dụng danh sách cookies đối tượng req trả để tìm cookie mang tên “pagecolor” Màu trang web phản hồi từ CookieListing định màu giá trị cookie pagecolor yêu cầu (vàng) • Đồng thời CookieListening tạo thêm cookie servervar1 với giá trị vardata1 trả cho trình khách • Phía trình khách, trang web ta tạo mã JavaScript gọi document.write(document.cookie) để in toàn cookie mang từ trình chủ GIẢI THÍCH (CookieListing.java) 49 GV: Võ Tấn Dũng • Thông thường cookie dùng để lưu giá trị cần thiết không quan trọng Ví dụ, ta lưu thông tin người dùng ghé thăm Website Trong lần viếng thăm khác ta làm họ ngạc nhiên hiển thị lại thông tin trước • Hoặc ứng dụng WebMail Yahoo sử dụng cookie để lưu thông tin người dùng đăng nhập trước Khi người dùng mở trang web khác thay yêu cầu đăng nhập lại,Yahoo mail sử thông dụng tin cookie để chứng thực • Ta quy định thời gian hiệu lực cookie gọi phương thức setMaxAge() Đối số truyền cho phương thức kiểu int quy định số giây mà cookie phép lưu trữ trình khách GIẢI THÍCH (CookieListing.java) 50 GV: Võ Tấn Dũng • Ví dụ để thiết lập cookie phép lưu trữ vòng tiếng, ta gọi setMaxAge từ trang JSP servlet sau: • Nếu bạn truyền cho setMaxAge() giá trị âm cookie bị xóa khỏi máy khách trình duyệt đóng lại 51 GV: Võ Tấn Dũng HẾT BÀI [...]... • Chúng ta hãy xem và sử dụng lớp ShoppingCart này như thế nào trong trang ShoppingCart.jsp sau đây: 15 GV: Võ Tấn Dũng ShoppingCart.jsp 16 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 17 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 18 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 19 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 20 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) ShoppingCart.jsp (tt) 21 GV: Võ Tấn Dũng • Hình sau đây là kết... và ta phải sử dụng tên người dùng để tạo thông tin cho giỏ hàng • Lớp shopping cart được tạo với CSDL cũng có đầy đủ 28 các phương thức của một giỏ hàng GV: Võ Tấn Dũng SHOPPING CART VỚI CƠ SỞ DỮ LIỆU 29 GV: Võ Tấn Dũng ShoppingCartDB.java 30 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 31 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 32 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 33 GV: Võ Tấn Dũng ShoppingCartDB.java...11 GV: Võ Tấn Dũng Lớp ShoppingCart.java (tt) 12 GV: Võ Tấn Dũng Lớp ShoppingCart.java (tt) 13 GV: Võ Tấn Dũng Lớp ShoppingCart.java (tt) Biên dịch ShoppingCart.java 14 GV: Võ Tấn Dũng • Biên dịch lớp ShoppingCart nói trên thành file ShoppingCart.class và chép file class này vào thư mục WEB-INF\cart\classese của ứng dụng Bạn sẽ có một giỏ hàng sẵn sàng phục vụ cho các ứng dụng mua sắm trên mạng chuyên... ShoppingCartDB.java (tt) 34 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) Giải thích (ShoppingCartDB.java) 35 GV: Võ Tấn Dũng • Để sử dụng đối tượng ShoppingCartDB này, ta cần bổ sung vào trang ShoppingCart.jsp đoạn mã để kiểm tra xem người dùng đã đăng nhập hay chưa và thiết lập giá trị UserID tương ứng cho giỏ hàng trước khi sử dụng Giải thích (ShoppingCartDB.java) (tt) 36 GV: Võ Tấn Dũng • Trong quá trình mua hàng... Dũng • Hình sau đây là kết quả hiển thị nội dung giỏ hàng của trang ShoppingCart.jsp TestShoppingCart.html 22 GV: Võ Tấn Dũng • Ta có thể xây dựng một trang web độc lập khác để kiểm tra trang ShoppingCart.jsp 23 GV: Võ Tấn Dũng TestShoppingCart.html (tt) Giải thích (ShoppingCart.jsp) 24 GV: Võ Tấn Dũng • Trong trang ShoppingCart.jsp, trước hết chúng ta tìm xem đối tượng giỏ hàng mang tên “cart” đã được... session Giải thích (ShoppingCart.jsp) (tt) 25 GV: Võ Tấn Dũng • Ta sử dụng một đoạn mã JavaScript phía trình khách để xác định thao tác khi người dùng muốn loại bỏ hay cập nhật các mặt hàng Sau khi đã xác định được thao tác xử lý, hành động submit mới được gọi để chuyển dữ liệu về lại cho trang ShoppingCart.jsp trên trình chủ xử lý PHẦN 3 26 GV: Võ Tấn Dũng XÂY DỰNG GIỎ HÀNG VỚI CƠ SỞ DỮ LIỆU • Session... hàng, ta có thể thoát khỏi trình duyệt để chấm dứt session Trong lần mua hàng tiếp theo, thông tin trong giỏ hàng vẫn còn tồn tại để ta tiếp tục quá trình giao dịch • Cài đặt giỏ hàng với session hay với CSDL là tùy theo nhu cầu của ứng dụng web đòi hỏi • Tuy nhiên, ta cũng còn một cơ chế lưu trữ trạng thái khác nữa Cơ chế này diễn ra tại trình khách và khá thông dụng Đó là sử dụng cookies ... bộ trên một máy chủ Web Server Trong thực tế, các ứng dụng web có tính đa quốc gia Các máy Web Server của một tổ chức có thể đặt ở nhiều nơi, các mục hàng để ở các Web Server khác nhau Nếu dùng session trong trường hợp này là không được • Khi người dùng đang mua hàng online, máy chủ có thể gặp sự cố Lúc đó đối tượng session sẽ bị mất 27 GV: Võ Tấn Dũng HẠN CHẾ CỦA SESSION • Thay vì tạo giỏ hàng với ... ShoppingCart.jsp 16 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 17 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 18 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 19 GV: Võ Tấn Dũng ShoppingCart.jsp (tt) 20 GV: Võ Tấn Dũng ShoppingCart.jsp... 30 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 31 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 32 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 33 GV: Võ Tấn Dũng ShoppingCartDB.java (tt) 34 GV: Võ Tấn Dũng. .. ShoppingCart.java 11 GV: Võ Tấn Dũng Lớp ShoppingCart.java (tt) 12 GV: Võ Tấn Dũng Lớp ShoppingCart.java (tt) 13 GV: Võ Tấn Dũng Lớp ShoppingCart.java (tt) Biên dịch ShoppingCart.java 14 GV: Võ Tấn Dũng •