购物车模块myshoppingcart

来源:互联网 发布:新西兰硕士知乎 编辑:程序博客网 时间:2024/04/29 22:02

先看看模块的文件目录结构:

CartItem.java的源代码:

public class CartItem {private Computer c;private int quantity;public Computer getC() {return c;}public void setC(Computer c) {this.c = c;}public int getQuantity() {return quantity;}public void setQuantity(int quantity) {this.quantity = quantity;}}
Cart.java的源代码:

public class Cart {private List<CartItem> items=new ArrayList<CartItem>();public boolean add(CartItem c){for(int i=0;i<items.size();i++){CartItem item=items.get(i);if(item.getC().getId()==c.getC().getId()){return false;}}items.add(c);return true;}public List<CartItem> list(){return items;}public double getTotalPrice(){double sum=0;for(int i=0;i<items.size();i++){CartItem item=items.get(i);sum+=item.getQuantity()*item.getC().getPrice();}return  sum;}public void delete(long id){for(int i=0;i<items.size();i++){CartItem item=items.get(i);if(item.getC().getId()==id){items.remove(item);return;}}}public void clear(){items.clear();}public void modify(long id,int quantity){for(int i=0;i<items.size();i++){CartItem item=items.get(i);if(item.getC().getId()==id){item.setQuantity(quantity);return;}}}}
ShoppingCartServlet.java的源代码:

public class ShoppingCartServlet extends HttpServlet {public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String uri=request.getRequestURI();String path=uri.substring(uri.lastIndexOf("/"),uri.lastIndexOf("."));if(path.equals("/list")){ComputerDAO dao=new ComputerDAO();try {List<Computer> computers=dao.findAll();request.setAttribute("computers",computers);request.getRequestDispatcher("computer_list.jsp").forward(request, response);} catch (Exception e) {e.printStackTrace();throw new ServletException(e);}}else if(path.equals("/buy")){String id=request.getParameter("id");ComputerDAO dao=new ComputerDAO();try {Computer c = dao.findById(Long.parseLong(id));HttpSession session=request.getSession();Cart cart=(Cart) session.getAttribute("cart");if(cart==null){cart=new Cart();session.setAttribute("cart",cart);}CartItem item=new CartItem();item.setC(c);item.setQuantity(1);boolean flag=cart.add(item);if(!flag){request.setAttribute("buy_err"+id,"你已经购买过该商品");request.getRequestDispatcher("list.do").forward(request, response);}else{response.sendRedirect("list.do");}} catch (Exception e) {e.printStackTrace();throw new ServletException(e);} }else if(path.equals("/delete")){String id=request.getParameter("id");HttpSession session=request.getSession();Cart cart=(Cart) session.getAttribute("cart");cart.delete(Long.parseLong(id));request.getRequestDispatcher("cart.jsp").forward(request, response);}else if(path.equals("/clear")){HttpSession session=request.getSession();Cart cart=(Cart) session.getAttribute("cart");cart.clear();request.getRequestDispatcher("cart.jsp").forward(request, response);}else if(path.equals("/modify")){String id=request.getParameter("id");String quantity=request.getParameter("quantity");HttpSession session=request.getSession();Cart cart=(Cart) session.getAttribute("cart");cart.modify(Long.parseLong(id),Integer.parseInt(quantity));request.getRequestDispatcher("cart.jsp").forward(request, response);}}}
computer_list.jsp的源代码:

<%@ page import="entity.Computer,java.util.*" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><h3>商品列表</h3><table><tr><td>商品型号</td><td>商品图片</td><td>商品说明</td><td>商品价格</td></tr><%List<Computer> computers=(List<Computer>)request.getAttribute("computers");for(int i=0;i<computers.size();i++){Computer curr=computers.get(i);%><tr><td><%=curr.getType()%></td><td><img src="img/<%=curr.getPicName()%>" width="150" height="110"/></td><td><%=curr.getProdDesc()%></td><td>¥<%=curr.getPrice()%></td><td><a href="buy.do?id=<%=curr.getId()%>">购买</a><%String info=(String)request.getAttribute("buy_err"+curr.getId());%><span style="color:red"><%=(info==null)?"":info%></span></td></tr><%}%></table><br><input type="button" value="查看购物车" onclick="location='cart.jsp'"/></body></html>
cart.jsp的源代码:

<%@ page import="bean.*,java.util.*"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><h3>购物车信息</h3><table><tr><td>商品名称</td><td>商品单价</td><td>商品数量</td></tr><%Cart cart = (Cart) session.getAttribute("cart");if (cart != null && cart.list().size() > 0) {List<CartItem> items = cart.list();for (int i = 0; i < items.size(); i++) {CartItem item = items.get(i);%><tr><td><%=item.getC().getType()%></td><td>¥<%=item.getC().getPrice()%></td><td><%=item.getQuantity()%></td><td><input type="text" size="3" id="num_<%=item.getC().getId()%>"></td><td><a href="javascript:;"onclick="location='modify.do?id=<%=item.getC().getId()%>'+'&quantity='+document.getElementById('num_<%=item.getC().getId()%>').value;">更改数量</a></td><td><a href="test.do?id=<%=item.getC().getId()%>">测试</a></td><td><a href="delete.do?id=<%=item.getC().getId()%>">删除</a></td></tr><%}} else {%><tr><td>你还没有选购任何商品</td></tr><%}%><tr><td>商品总价格:¥<%=cart.getTotalPrice()%></td></tr></table><input type="button" value="返回商品列表" onclick="location='list.do'"><input type="button" value="清空购物车" onclick="location='clear.do'"></body></html>
全部打包文件已经上传至我的资源,可以免费下载,菜鸟可以学习学习。sql脚本过于简单,可以参看源码自己写出来,代码里不再给出。IDE为myeclipse6.5。

原创粉丝点击