Căn bản Java Server Pages

Chọn vào DSN System | Add để thêm tên tham chiếu, cửa sổ xuất hiện yêu cầu bạn nhập tên (sẽ

sử dụng trong khai báo) và chỉ định server (trường hợp này dùng dấu . tương đương với SQL của

máy cục bộ) như hình 9-2.

Bước kế tiếp chọn vào đặt quyền kết nối cơ sở dữ liệu bằng SQL hay Windows, trong trường hợp

này chúng ta chọn vào tuỳ chọn thứ hai như hình 9-3. Khi chọn vào tuỳ chọn này, bạn cần cung

cấp username và password để định nghĩa cơ sở dữ liệu SQ Server.

Nếu các tham số trên cung cấp hợp lệ, chọn Nextcửa sổ kế tiếp xuất hiện như hình 9-4 yêu cầu

bạn chọn tên cơ sở dữ liệu cần làm việc. Lưu ý rằng, cơ sở dữ liệu mặc định chính là cơ sở dữ liệu

khai báo mặc định trong SQL Server khi người sử dụng với username đó được tạo ra.

Chọn Next và đến bước cuối cùng, bạn có thể kiểm tra kết nối cơ sở dữ liệu vừa chọn có thành

công hay không bằng cách nhấn vào nút Test Conneciton như hình 9-5.

pdf118 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2644 | Lượt tải: 1download
Tóm tắt nội dung Căn bản Java Server Pages, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
n mua một cuốn sách Visual Basic 6.0 
thì nên mua thêm cuốn sách SQL Server bở vì cuốn sách SQL Server cung cấp 
kiến thức bổ sung để học Visual Basic 6.0 tốt hơn. 
Để làm điều này, bạn khai báo thêm cột GreateBuy lưu trữ mã của những sản 
phẩm mà nhà quản lý cho là có thể bổ sung cho sản phẩm đó. Ví dụ những cố 
sách có sản phẩm bổ sung là như sau: 
select I.ItemID, ItemName, GreateBuy 
from tblItems I, tblItemDetails D Where I.ItemID=D.ItemID 
Kết quả trình bày như hình 12-2 trong Query Analyzer như sau. 
Hình 12-2: Sản phầm bổ sung 
2.
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Bằng cách lấy giá trị trong cột GreateBuy của từng sản phẩm, bạn có thể khai báo 
chuỗi Select ứng với những sản phẩm có mã nằm trong chuỗi giá trị này: 
String GreateBuy=””; 
... 
GreateBuy=rst.getString("GreateBuy"); 
... 
strSQL="select I.ItemID, ItemName, GreateBuy "; 
strSQL+=" from tblItems I, tblItemDetails D 
strSQL+=" Where I.ItemID=D.ItemID"; 
strSQL+=" and I.ItemID in (" + GreateBuy + ")"; 
Sau đó duyệt tất cả sản phẩm và trình bày như hình 12-3. 
Hình 12-3: Sản phẩm bổ sung 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Để làm điều này, bạn khai báo như sau: 
... 
strSQL="select I.ItemID, ItemName, GreateBuy "; 
strSQL+=" from tblItems I, tblItemDetails D 
strSQL+=" Where I.ItemID=D.ItemID"; 
strSQL+=" and I.ItemID in (" + GreateBuy + ")"; 
rst=smt.executeQuery(strSQL); 
while(rst.next()) 
 { 
 id=rst.getString("ItemID"); 
 %> 
 "> 
 <% 
} 
rst.close(); 
... 
3. SẢN PHẨM CỦA KHÁCH HÀNG THƯỜNG MUA 
Ngoài danh sách các sản phẩm bổ sung, nhà quản lý nên cung cấp những cuốn 
sách mà thuờng khách hàng mua đính kèm khi mua cuốn sách hiện hành. Để làm 
điều này, bạn khai báo cột dữ liệu trong bảng tbltemDetails có tên là Relations. 
Bằng cách khai báo biến Relations và lấy giá trị từ cột này ra, sau đó khai báo 
phát biểu Select để liệt kê danh sách các sản phẩm này. 
String Relations=""; 
... 
Relations=rst.getString("Relations"); 
... 
strSQL="select I.ItemID, ItemName, GreateBuy "; 
strSQL+=" from tblItems I, tblItemDetails D Where " ; 
strSQL+=" I.ItemID=D.ItemID"; 
strSQL+=" and I.ItemID in (" + Relations + ")"; 
rst=smt.executeQuery(strSQL); 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Kết quả trình bày như hình 12-4. 
Hình 12-4: Danh sản phẩm liên quan khác 
Để làm điều này, bạn khai báo đoạn chương trình như sa: 
<table width="100%" border="1" 
 cellspacing="1" cellpadding="1"> 
 <% 
 strSQL="select I.ItemID, ItemName, GreateBuy "; 
 strSQL+=" from tblItems I, tblItemDetails D "; 
 strSQL+=" Where I.ItemID=D.ItemID"; 
 strSQL+=" and I.ItemID in (" + Relations + ")"; 
 rst=smt.executeQuery(strSQL); 
 while(rst.next()) 
 { 
 id=rst.getString("ItemID"); 
 %> 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 "> 
 <% 
 } 
 rst.close(); 
 KẾT LUẬN 
Chúng ta vừa tập trung tìm hiểu cách cài đặt giỏ hàng, cho phép người sử dụng 
thêm, cập nhật số lượng và huỷ giỏ hàng bằng JSP. 
4.
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Môn học: Java Server Pages 
BÀI 13: GIỎ HÀNG VÀ CHI TIẾT SẢN PHẨM 
Bất kỳ ứng dụng thương mại điển tử nào có bán hàng qua mạng đều 
có chức năng giỏ hàng, giỏ hàng giúp cho người sử dụng lưu trữ sản phẩm 
trong khi đang chọn những sản phẩm khác trên mạng. 
Sau khi kết thúc quá trình thêm vào giỏ hàng, người sử dụng có thể 
xem, xoá hay cập nhập số lượng của giỏ hàng. 
Ngoài ra, người sử dụng quyết định đặt hàng sau khi xem xét giỏ 
hàng. 
Các vấn đề chính sẽ được đề cập: 
9 Xây dựng chức năng giỏ hàng 
9 Cập nhật, xoá giỏ hàng 
9 Đặt hàng 
 XÂY DỰNG GIỎ HÀNG 
Sau khi khách hàng chọn một sản phẩm trên trang kết quả tìm kiếm, toàn bộ 
thông tin chi tiết của sản phẩm đó cần được trình bày. 
Hình 13-1: Chi tiết sản phẩm 
1.
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Để xây dựng giỏ hàng trong JSP bạn có thể sử dụng nhiều cách khác nhau như 
vector, session, cơ sở dữ liệu, cookie. Tuy nhiên, đối với bài học này chúng ta sử 
dụng cách dùng session kết hợp với mảng hai hciều để xây dựng và quản lý giỏ 
hàng trong JSP. 
Khi người sử dụng chọn nút “Gio Hang” trong trang chi tiết sản phẩm, thì trang 
them.jsp được triệu gọi. Trang này lấy 3 giá trị chính khai báo hidden trong trang 
chi tiết là id, name,price và update để xây dựng giỏ hàng. 
String id=getVal(request.getParameter("id"),""); 
String name=getVal(request.getParameter("name"),""); 
String price=getVal(request.getParameter("price"),"0"); 
String update=getVal(request.getParameter("update"),""); 
Bằng cách sử dụng mảng dữ liệu hai chiều gồm tối đa 10 sản phẩm và mỗi sản 
phẩm chúng ta lưu trữ 4 thông tin chính là mã, tên, số lượng và đơn giá của sản 
phẩm. 
String cart[][] =new String[10][4]; 
int cartno=0; 
Trong đó, biến cart là mảng lưu trữ thông tin của sản phẩm, cartno là số sản 
phẩm có trong mảng cart. 
Trong trường hợp lần đầu tiên người sử dụng thêm sản phẩm vào giỏ hàng, chúng 
ta dựa vào biến session có tên session.getValue("cartno") với giá trị là 0 thì thêm 
sản phẩm vào giỏ hàng tại phần tử thứ 0, còn các phần tử còn lại chúng ta khởi 
tạo giá trị là rỗng như sau: 
}else 
{ 
 if(update.equals("")) 
 { 
 cart[0][0]=id; 
 cart[0][1]=name; 
 cart[0][2]="1"; 
 cart[0][3]=price; 
 for (int j=cartno+1;j<cart.length;j++) 
 { 
 cart[j][0]=""; 
 cart[j][1]=""; 
 cart[j][2]=""; 
 cart[j][3]=""; 
 } 
 } 
} 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Nếu sản phẩm được thêm vào trong lần kế tiếp, chúng ta lấy giá trị từ biến 
session có tên cart và cartno, sau đó ép kiểu sang mảng và kiểm tra nếu mã sản 
phẩm chưa tồn tại thì thêm vào. 
if(cartno<=9) 
 { 
 boolean check=false; 
 for (int j=0;j<cartno;j++) 
 { 
 if(cart[j][0].equals(id)) 
 { 
 check=true; 
 } 
 } 
 if (check==false) 
 { 
 cart[cartno][0]=id; 
 cart[cartno][1]=name; 
 cart[cartno][2]="1"; 
 cart[cartno][3]=price; 
 cartno++; 
 } 
 } 
Lưu ý rằng, chỉ cho phép thêm vào giỏ hàng tối đa 10 sản phẩm, chính vì vậy 
chúng ta chỉ thêm khi giá trị của biến cartno nhỏ hoặc bằng 9. 
Sau đó, chúng ta trình bày danh sách những sản phẩm đã có trong giỏ hàng 
bằng cách sử dụng vòng lặp for như sau: 
 # 
 Ma 
 Ten 
 So Luong 
 Don Gia 
 Tien 
 <%for (int j=0;j<cart.length;j++) 
 { 
 if(cart[j][0]==null || cart[j][0].equals("")) break; 
 %> 
 " 
 name="chk"> 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
 <%= Integer.parseInt((String)cart[j][2])* 
 Double.parseDouble((String)cart[j][3])%> 
Kết quả trình bày như hình 13-2. 
Hình 13-2: Danh sản phẩm trong giỏ hàng 
Lưu ý: Trong trường hợp không có sản phẩm được thêm vào giỏ hàng hoặc trường 
hợp cập nhật thì trang timkiem.jsp sẽ được triệu gọi. 
 CẬP NHẬT GIỎ HÀNG 
Mặc định của mỗi sản phẩm khi thêm vào giỏ hàng là 1, sau khi trinh bày như 
hình 13-2, bạn khai báo nút Cập Nhật cho phép người sử dụng thay đổi số lượng 
trong giỏ hàng cho mỗi sản phẩm. 
Để làm điều này, trước tiên khai báo thẻ input có tên là chk và mã sản phẩm như 
sau: 
<input size=2 maxlength=3 
value="" name="chk"> 
... 
2.
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Sau đó, bạn khai báo biến update để lấy giá trị của nút Update khi người sử dụng 
submit để phân biệt trường hợp cập nhật số lượng trong giỏ hàng với trường hợp 
khi thêm sản phẩm vào giỏ hàng từ trang chi tiết. 
String update=getVal(request.getParameter("update"),""); 
Trong trường hợp này, dựa vào mã sản phẩm trong giò hàng, chúng ta cập nhật sl 
như sau: 
 /*trường hợp thêm mới từ trang chi tiết*/ 
else 
 { 
 for (int j=0;j<cartno;j++) 
 { 
 cart[j][2]=getVal(request.getParameter("chk" + 
 cart[j][0]),"1"); 
 } 
 } 
Lưu ý rằng, chúng ta chỉ duyệt số phần tử từ 0 đến số phần tử đang có, và cập 
nhật phần tử số lượng bằng sớ lượng từ màn hình. 
Ngoài ra, bạn có thể khai báo đoạn Javascript để kiểm soát số nhập hợp lệ trên 
từng phần số lượng của sản phẩm. 
Chẳng hạn, chúng ta thay đổi số lượng của sản phẩm thứ nhất lên 2 và sản phẩm 
thứ hai thành 3, kết quả trình bày như hình 13-3. 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 12-3: Cập nhật số lượng 
3. HUỶ GIỎ HÀNG 
Để huỷ giò hàng, bạn sử dụng phương thức removeAttribute để huỷ hai đối tượng 
session có tên cart và cartno. Để làm điều này, bạn khai báo trang xoa.jsp được 
triệu gọi, bạn khai báo như sau: 
<% session.removeAttribute("cart"); 
 session.removeAttribute("cartno");%> 
Sau khi xoá giỏ hàng, thông báo xuất hiện như hình 13-4. 
Phạm Hữu Khang huukhang@yahoo.com 
 COMPUTER LEARNING CENTER WWW.HUUKHANG.COM 
Hình 13-4: Xoá giỏ hàng 
4. KẾT LUẬN 
Chúng ta vừa tập trung tìm hiểu cách cài đặt giỏ hàng, cho phép người sử dụng 
thêm, cập nhật số lượng và huỷ giỏ hàng bằng JSP. 
Phạm Hữu Khang huukhang@yahoo.com 

File đính kèm:

  • pdfCan_ban_JSP.pdf
Tài liệu liên quan