图书类
public class Book implements Serializable {
private static final long seriaVersionUID = 1L;
private String Id;
private String name;
public Book() {
}
public Book(String id, String name) {
Id = id;
this.name = name;
}
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
图书数据库类
public class BookDB {
private static Map<String, Book> book = new LinkedHashMap<String, Book>();
static {
book.put("1", new Book("1", "JAVA"));
book.put("2", new Book("2", "JDBC"));
book.put("3", new Book("3", "Spring"));
book.put("4", new Book("4", "Web"));
book.put("5", new Book("5", "Git"));
book.put("6", new Book("6", "struts"));
}
//获取所有的图书
public static Collection<Book> getAll() {
return book.values();
}
//获取指定id的图书
public static Book getBook(String id) {
return book.get(id);
}
}
Servlet类
public class PurchaseServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获得用户购买的商品
String id = request.getParameter("Id");
if (id == null) {
//如果id为null,重定向到ListBookServlet页面
String url = "/shopping/ListBookServlet";
response.sendRedirect(url);
return;
}
Book book = BookDB.getBook(id);
//创建或者获得用户的session对象
HttpSession session = request.getSession();
//从Session对象中获得用户的购物车
List<Book> cart = (List) session.getAttribute("cart");
if (cart == null) {
//首次购买,为用户创建一个购物车(list集合模拟购物车)
cart = new ArrayList<Book>();
session.setAttribute("cart", cart);
}
//将商品加入购物车
cart.add(book);
//创建Cookie存放session的标识号
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(60 * 30);
cookie.setPath("/shopping");
response.addCookie(cookie);
//重定向到购物车页面
String url = "/shopping/CartServlet";
response.sendRedirect(url);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
public class ListBookServlet extends HttpServlet {
private static final long seriaVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
Collection<Book> books = BookDB.getAll();
writer.write("本站提供的图书有:<br />");
for (Book book : books) {
String url = "/shopping/PurchaseServlet?Id=" + book.getId();
writer.write(book.getName() + "<a href='" + url + "'>点击购买</a><br />");
}
}
}
public class CartServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//变量cart引用用户购物车
List<Book> cart = null;
//变量purFlag标记用户是否买过商品
boolean purFlag = true;
//获得用户session
HttpSession session = request.getSession(false);
//如果session为null,purflag置为false
if (session == null) {
purFlag = false;
} else {
//获得用户购物车
cart = (List) session.getAttribute("cart");
//如果用的购物车为null,purflag置为false
if (cart == null) {
purFlag = false;
}
}
/**
* 如果purflag为false,表明用户没有购买图书 重定向到ListServlet页面
*/
if (!purFlag) {
out.write("对不起!您还没有购买任何商品!<br />");
} else {
//否则显示用户购买图书的信息
out.write("您购买的图书有:<br />");
double price = 0;
for (Book book : cart) {
out.write(book.getName() + "<br />");
}
}
}
}
版权声明:本文为qq_53344479原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。