Bài giảng Lập trình ứng dụng mạng: Bài 8 - GV. Võ Tấn Dũng

Bài giảng Lập trình ứng dụng mạng: Bài 8 - GV. Võ Tấn Dũng

Lượt xem: 115,655Lượt tải: 3Số trang: 51

Mô tả tài liệu

Bài giảng Lập trình ứng dụng mạng: Bài 8 Shopping cart nhằm trình bày về tìm hiểu giỏ hàng, thiết kế giỏ hàng (shopping cart) với session, thiết kế giỏ hàng với cơ sở dữ liệu, tìm hiểu cookies, các mặt hàng hiển thị trên trang web cho ta chọn rồi đưa vào giỏ hàng.

Tóm tắt nội dung

1 GIẢNG VIÊN: VÕ TẤN CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TRÌNH ỨNG DỤNG MẠNG BÀI 1 TÌM HIỂU VỀ GIỎ VẤN ĐỀ ĐƯỢC TRÌNH BÀYCÁC VẤN ĐỀ ĐƯỢC TRÌNH BÀY • Thiết kế giỏ hàng (shopping cart) với Thiết kế giỏ hàng với cơ sở dữ liệu. • Tìm hiểu NIỆM GIỎ HÀNGKHÁI NIỆM GIỎ HÀNG • Để mua hàng trên mạng chúng ta cần một giỏ hàng. Đó chính là shopping cart. • Các mặt hàng hiển thị trên trang web cho ta chọn rồi đưa vào giỏ hàng. Giỏ hàng sẽ cho biết tổng số mặt hàng mà bạn đã mua cùng với giá phải thanh toán. • Bạn có thể thêm bớt số lượng hoặc loại bỏ, chọn lại các mặt hàng khác. • Có hai cách để xây dựng shopping cart: – Sử dụng Sử dụng các bảng của một cơ sở dữ NIỆM GIỎ HÀNGKHÁI NIỆM GIỎ HÀNG • Chương trước ta đã dùng session và để lưu dữ liệu để truyền qua lại giữa các trang web. Bây giờ ta sử dụng session trong một ứng dụng rất thực tế đó là áp dụng để xây dựng shopping cart cho các trang web mua sắm trên mạng. • Đối tượng session là nơi lý tưởng để xây cart lưu các mặt hàng mà người dùng chọn mua trước khi thanh toán. • Ngoài ra ta còn có thể xây dựng giỏ hàng bằng cơ sở dữ liệu để lưu các mặt hàng trong các bảng dữ PHƯƠNG THỨC CỦA GIỎ HÀNGCÁC PHƯƠNG THỨC CỦA GIỎ HÀNG • Một giỏ hàng cần có những phương thức cơ bản những công việc sau: – addItem: thêm một mục hàng mới vào giỏ hàng. – loại bỏ một mục hàng ra khỏi giỏ hàng. – xóa bỏ tất cả các mục hàng trong giỏ hàng. – thay đổi số lượng mua của một getCost: cho biết tổng số tiền phải trả cho tất cả các mục hàng có trong giỏ hàng. – đếm tổng số mục hàng có trong TIN CỦA MỘT MỤC HÀNGTHÔNG TIN CỦA MỘT MỤC HÀNG • Một mục hàng (item) lưu trong giỏ hàng cần có tin cơ bản sau: – Mã số của mục hàng (item id). – Tên mục hàng (item desc). – Đơn giá Số lượng mua Bởi vì giỏ hàng có thể chứa nhiều mục hàng tương ứng với một khóa (item id) nên ta sử dụng bảng Java (bảng này dùng để lưu các giá trị dựa hoặc dùng các table của CSDL để lưu giá trị các mục hàng mà người dùng thêm 2 XÂY DỰNG GIỎ HÀNG VỚI DỰNG GIỎ HÀNG VỚI DỰNG GIỎ HÀNG VỚI Sau đây ta tiến hành viết code xây dựng giỏ hàng trong lớp dịchdịch Biên dịch lớp nói trên thành file và chép file .class này vào thư 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 Chúng ta hãy xem và sử dụng lớp này như thế nào trong trang sau Hình sau đây là kết quả hiển thị nội dung giỏ hàng Ta có thể xây dựng một trang web độc lập khác để kiểm tra trang Trong trang trước hết chúng ta tìm xem đối tượng giỏ hàng mang tên “cart” đã được lưu trong đối tượng session chưa. Nếu chưa thì ta tạo mới và lưu đối tượng này vào () (tttt)) • Ta sử dụng một đoạn mã 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 trên trình chủ xử 3 XÂY DỰNG GIỎ HÀNG VỚI CƠ SỞ DỮ CHẾ CỦA CHẾ CỦA SESSION • Session để lưu các trạng thái hiện thời của người dùng khi người dùng duyệt web nhưng session không lưu dữ liệu được lâu. Session chỉ lưu được dữ liệu trong thời gian nào đó. Quá thời gian này, các dữ session sẽ bị hủy bỏ. • Session chỉ có giá trị cục 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ị CART VỚI CƠ SỞ DỮ CART VỚI CƠ SỞ DỮ LIỆU • Thay vì tạo giỏ hàng với session và lưu các mục ta sẽ tạo giỏ hàng với CSDL và lưu các mục hàng trong một table của CSDL. • Table này có cấu trúc như TABLE varchar (50), item_id int, item_desc price float, quantity int) • Bảng này dùng để lưu trữ thông tin mua hàng của một người dùng. Vì vậy, ta phải buộc người dùng đăng nhập vào hệ thống trước khi mua hàng 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 đủ các phương thức của một giỏ Để sử dụng đối tượng này, ta cần bổ sung đ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ử () (tttt)) • Trong quá trình mua hàng ta có thể thêm, bớt, xóa các mặt hàng. Nếu chưa quyết định mua 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 4 TÌM HIỂU CÁCH LƯU DỮ LIỆU CỦA GIAO DỊCH BẰNG COOKIESU GIAO DỊCH BẰNG COOKIES • Session là cơ chế lưu vết các trạng thái tạ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 thì ta dùng kỹ thuật Cookies là một mẩu thông tin gồm tên và giá trị thể hiện (tương tự biến). Ta có thể sử dụng ngôn ngữ kịch bản để tạo các mẩu cookies. • Trình duyệt cho phép chúng ta tạo ra các mẩu cookies và ghi nhớ xuống máy khách. Cookies cũng có thể được tạo từ trình chủ (cụ thể là Servlet) và yêu cầu trình duyệt lưu xuống máy khách. • Trong quá trình thực hiện lệnh POST hoặc lệnh GET của giao thức HTTP, trình chủ và trình khách có thể gửi và nhận mẩu tin cookies của GIAO DỊCH BẰNG COOKIESU GIAO DỊCH BẰNG LCOOKIES LƯƯU VẾT PHÍA TRÌNH KHÁCHU VẾT PHÍA TRÌNH KHÁCH • Ví dụ sau đây cho thấy cách sử dụng cookies phía máy THÍCH (GIẢI THÍCH Trang web vừa rồi của ta có tên Trang web này sử dụng để tạo mẩu tin cookies mang tên với giá trị Hàm trong trang web này rất đơn giản, nó chỉ gọi đối tượng document của trang để lưu trị và Hàm để đọc lại giá trị của cookie. Mỗi mẩu tin trong cookie được phân cách nhau bằng dấu chấm Hàm escape của giúp ta loại bỏ các ký tự đặc biệt trong cookies hoặc chuyển các ký tự đặc dạng mã hóa THÍCH (GIẢI THÍCH Kết quả hiển thị của mẩu tin vừa mới tạo trên IE như hình sau. Ngoài mẩu tin thì ta có thể nhận được một số mẩu tin cookie khác do trình duyệt tạo COOKIE LÊN TRÌNH CHỦGỬI COOKIE LÊN TRÌNH CHỦ • Trang web mà ta đã thiết kế có thẻ FORM gọi đến Servlet mang tên Khi ta nhấn nút “Send cookies to server” thì trình duyệt sẽ gọi đến Servlet trên máy chủ. Đồng thời toàn bộ cookies trên máy khách cũng sẽ được đóng gói gửi đi. • Servlet này được thiết kế để tiếp của trình dịch Đăng ký servlet này với trình chủ. Trở lại trang nhấn vào nút “Send cookies to Server” được kết quả như hình THÍCH (GIẢI THÍCH của ta tiếp nhận được mẩu tin cookie mang tên từ trình khách bằng cách gọi hàm Hàm này sử dụng danh sách cookies do đối tượng req trả về để tìm ra cookie mang tên Màu nền trang web phản hồi từ được định màu như giá pagecolor đã yêu cầu Đồng thời cũng tạo thêm một cookie với giá trị vardata1 trả về cho trình khách. • Phía trình khách, trang web của ta tạo mã để in ra toàn bộ mang về từ trình THÍCH (GIẢI THÍCH Thông thường cookie được dùng để lưu các giá trị cần không quan trọng. Ví dụ, ta có thể lưu thông tin của người dùng đã ghé thăm Website của mình. Trong lần khác ta sẽ làm họ ngạc nhiên vì đã hiển thị lại đúng thông tin trước đó. • Hoặc những ứng dụng WebMail như 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 vì yêu cầu đăng nhập lại,Yahoo mail sử thông dụng tin của cookie để chứng thực. • Ta có thể quy định thời gian hiệu lực của cookie bằng thức Đối số truyền cho phương thức này là kiểu int quy định số giây mà cookie được phép lưu trữ THÍCH (GIẢI THÍCH Ví dụ để thiết lập cookie được phép lưu trữ trong vòng 8 tiếng, ta có thể gọi setMaxAge từ trang JSP hoặc một servlet như sau: • Nếu bạn truyền cho giá trị âm thì cookie sẽ bị xóa khỏi máy khách khi trình duyệt đóng 8