以购买图书为例,使用session模拟实现购物车,定义了5个类:
(1)Book类:此类用于封装图书的信息,定义id和name属性,分别表示编号和名称
(2)BookDB类:模拟保存所有图书的数据库,此类实现时通过Map集合存储了5个不同的Book对象,提供了指定图书和所有图书的相关方法
(3)ListBookServlet:显示所有可购买图书的列表,通过单击购买链接,即可将指定图书加入购物车
(4)PurchaseServlet:此类有两个功能:一是将用户购买的图书信息保存到session对象中去,二是用户购买图书结束后,将页面重定向到用户已经购买的图书列表
(5)CartServlet:购物车类 用于展示用户购买的图书列表
package cn.edu.bdu.mc02;
/*
* 此类用于封装图书的信息,定义id和name属性,分别表示编号和名称
*/
public class Book {
private String id;
private String name;
public Book(String id, String name) {
this.id=id;
this.name=name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
----------------------------------------------------------------------------------------------------------------------------
package cn.edu.bdu.mc02;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
/*模拟保存所有图书的数据库
* 此类实现时通过Map集合存储了5个不同的Book对象,提供了指定图书和所有图书的相关方法
*/
public class BookDB {
private static Map<String,Book>books=new LinkedHashMap<String,Book>();
static{
books.put("1", new Book("1","java开发"));
books.put("2", new Book("2","java基础"));
books.put("3", new Book("3","java1"));
books.put("4", new Book("4","java2"));
books.put("5", new Book("5","java3"));
}
//获