实现购物车案例
Posted 名字真的很急用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现购物车案例相关的知识,希望对你有一定的参考价值。
1.创建Book封装图书信息:Book。
2.创建BookDB:模拟数据库,里面保存图书。
3.提供图书的购买页面:ListBookServlet.
4.添加到购物车:purcharseServlet。
5.回显购物车图书信息:CartServlet。
代码如下:
package 购物车;
public class Book {
private String id;
private String name;
public Book() {
}
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 购物车;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
public class BookDB {
private static Map<String,Book> map = new LinkedHashMap<>();
static {
map.put("1",new Book("1","JAVAWEB"));
map.put("2",new Book("2","JDBC"));
map.put("3",new Book("3","JAVA"));
map.put("4",new Book("4","MATH"));
map.put("5",new Book("5","MVC"));
}
//得到所有的图书
public static Collection<Book> getAll(){
return map.values();
}
//根据map的key,也就是图书的id,得到某个图书。
public static Book getBook(String id){
return map.get(id);
}
}
package 购物车;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
@WebServlet("/list")
public class ListBookServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
//得到所有的图书
Collection<Book> books = BookDB.getAll();
//回显到页面
PrintWriter out = resp.getWriter();
out.write("以下是所售卖的图书: "+"<br/><br/>");
//遍历集合,把图书回显到页面
for (Book b:books){
String name = b.getName();
String id= b.getId();
//提供一个购买图书的链接
String url ="<a href='/purcharse?id="+id+"'>点击购买</a>";
out.write("图书名称: "+name+" "+url+"<br/><br/>");
}
}
}
package 购物车;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/purcharse")
public class purcharsetServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
//获取图书信息
String id =req.getParameter("id");
//判断id是否存在
if(id==null){
resp.sendRedirect("/list");
return;
}
//图书已经点击购买了
Book book =BookDB.getBook(id);
//把图书添加到购物车
HttpSession session = req.getSession();
List<Book> list = (List<Book>) session.getAttribute("cart");
if(list==null){
list=new ArrayList<Book>();
session.setAttribute("cart",list);
}
//把图书添加到购物车
list.add(book);
//把请求跳转到cartServlet
//session是基于cookie创建的,为了完成关闭浏览器,cookie还在 设置时长
Cookie cookie = new Cookie("JESSION",session.getId());
cookie.setMaxAge(60*60*24*7);
cookie.setPath("/");
resp.addCookie(cookie);
//跳转
resp.sendRedirect("/cart");
}
}
package 购物车;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
@WebServlet("/cart")
public class cartServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
//得到购物车
List<Book> cart =null;
//得到用户自己的session
HttpSession session = req.getSession(false);
//定义一个flag 来判断购物车是否为空
boolean cartflag=true;
if(session==null){
cartflag=false;
}else {
cart= (List<Book>) session.getAttribute("cart");
if(cart==null){
cartflag=false;
}
}
//购物车有商品了
if(!cartflag){
out.write("对不起,你的购物车没有商品,请去购买点击");
}else {
//购物车有商品
out.write("购买的商品如下:"+"<br><br>");
for (Book b:cart){
out.write("购买的图书:"+b.getName()+"<br><br>");
}
}
}
}
结果如下:
以下是所售卖的图书:
图书名称: JAVAWEB 点击购买
图书名称: JDBC 点击购买
图书名称: JAVA 点击购买
图书名称: MATH 点击购买
图书名称: MVC 点击购买
购买的商品如下:
购买的图书:JAVAWEB
购买的图书:JDBC
购买的图书:JAVA
购买的图书:JAVAWEB
购买的图书:MVC
购买的图书:JAVAWEB
以上是关于实现购物车案例的主要内容,如果未能解决你的问题,请参考以下文章