购物车的实现(jsp+servlet)

    购物车包括货物bean,业务逻辑处理bean(购物车bean),控制器servlet,显示页面mycart.jsp

货物bean的属性对应了货物的数据库表的一些字段,同时加上了购买的数量。

package com.xie.shop.modal;

//货物bean

public class CartBean{

    private String id;

    private String goodName;

    private float goodsPrice;

    private int goodsNum;

    private String buyNum;

   

    public String getBuyNum() {

       return buyNum;

    }

    public void setBuyNum(String buyNum) {

       this.buyNum = buyNum;

    }

    public String getId() {

       return id;

    }

    public void setId(String id) {

       this.id = id;

    }

    public String getGoodName() {

       return goodName;

    }

    public void setGoodName(String goodName) {

       this.goodName = goodName;

    }

    public float getGoodsPrice() {

       return goodsPrice;

    }

    public void setGoodsPrice(float goodsPrice) {

       this.goodsPrice = goodsPrice;

    }

    public int getGoodsNum() {

       return goodsNum;

    }

    public void setGoodsNum(int goodsNum) {

       this.goodsNum = goodsNum;

    }

 

}

业务逻辑处理bean(购物车bean):

主要的逻辑是:将货物编号和货物实体放入一个HashMap中,HashMap购物车bean的一个属性,同时提供了一个能返回HashMapvalue所对应的货物bean

import java.sql.Connection;

import java.sql.PreparedStatement;

//购物车的业务逻辑处理

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

public class MyCartPro {

    private Connection ct=null;

    private PreparedStatement ps=null;

    private ResultSet rs=null;

    Map<String , CartBean> cMap=new HashMap<String, CartBean>();

    private float totalPrice=0;

   

      

    public float getTotalPrice() {

       return totalPrice;

    }

    public Map<String, CartBean> getcMap() {

       return cMap;

    }

    /**

     * 返回选中准备购买的货物

     * @author Administrator:centre

     * @param id:传入选中货物的编号

     * @return cb:操作成功返回一个CartBean

     */

    private CartBean getGood(String id){

    CartBean cb=new CartBean();

    try {

           ct=new ConnGood().getConn();

           ps=ct.prepareStatement("select goodsid, goodsname,goodsprice,goodsnum from goods where goodsid=?");

           ps.setString(1, id);

           rs=ps.executeQuery();

           if(rs.next()) {

              cb.setId(rs.getLong(1)+"");

              cb.setGoodName(rs.getString(2));

              cb.setGoodsPrice(rs.getFloat(3));

              cb.setGoodsNum(rs.getInt(4));

              cb.setBuyNum(1+"");

             

           }

          

       } catch (Exception e) {

           System.out.println("取得CartBean失败。");

           e.printStackTrace();

       }finally{

           closeRs();

       }     

        return cb;

   

    }

    /**

     * cb放入到一个map

     * @author Administrator:centre

     * @param id:商品id

     */

    public void addBook(String id){

       if (!cMap.containsKey(id)) {

           cMap.put(id, getGood(id));        

       }else {

           cMap.get(id).setBuyNum((Integer.parseInt(cMap.get(id).getBuyNum())+1)+"");

       }

 

    }

    /**

     * 返回购物车容器

     * @author Administrator:centre

     * @return 返回购物车的容器

     */

    public Map<String , CartBean> myCart(){

       return getcMap();

    }

    /**

     * 删除选定的商品

     * @author Administrator:centre

     * @param id:货物的id

     * @return:删除成功,返回true,否则返回false

     */

    public void deleteBook(String id){

    cMap.remove(id);

    }

    /**

     * 删除购物车的所有商品

     * @author Administrator:centre

     */

    public void deleteAllBooks(){

    cMap.clear();

    }

    /**

     * 修改所有商品购买数量

     * @author Administrator:centre

     * @param id:商品id

     * @param num:商品数量

     */

    public void updateNum(String[] id,String[] num){

    for (int i = 0; i < id.length; i++) {

        if (cMap.containsKey(id[i])) {

             if (num[i].equals("0")||num[i].equals("")) {

               cMap.remove(id[i]);

            }else {

            cMap.get(id[i]).setBuyNum(num[i]);           

            }

        }         

       }

    }

    /**

     * 返回所有购买的货物

     * @author Administrator:centre

     * @return:无返回值

     */

    public List<CartBean> showMyCart(){

    List<CartBean> al=new ArrayList<CartBean>();

    Iterator<String> it=cMap.keySet().iterator();

    totalPrice=0;

    while (it.hasNext()) {

         CartBean cb=cMap.get(it.next());

         totalPrice+=Integer.parseInt(cb.getBuyNum())*cb.getGoodsPrice();

         al.add(cb);

           }

    return al;   

    }

   /**

    * @author Administrator:centre

    * 关闭相关的数据库资源

    */

   private void closeRs(){

       try {

          if (rs!=null) {

           rs.close();

           rs=null;

          }

          if (ps!=null) {

              ps.close();

              ps=null;

           }        

          if (ct!=null) {

              ct.close();

              ct=null;

           }     

    } catch (Exception e) {

       System.out.println("关闭资源失败。");

       e.printStackTrace();

    }

   }

}

控制器servlet

如何让每个IE进程都只有唯一的一个购物车呢?我用了session

import java.io.IOException;

import java.util.List;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.xie.shop.modal.CartBean;

import com.xie.shop.modal.MyCartPro;

 

public class MyCartServlet extends HttpServlet {

 

   

 

    /**

     * The doGet method of the servlet. <br>

     *

     * This method is called when a form has its tag value method equals to get.

     *

     * @param request the request send by the client to the server

     * @param response the response send by the server to the client

     * @throws ServletException if an error occurred

     * @throws IOException if an error occurred

     */

    public void doGet(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       String cartop=request.getParameter("cartop");

       if (cartop.equals("add")) {

            String id=request.getParameter("id");

            String pageNow=request.getParameter("pageNow");

            MyCartPro mcp=(MyCartPro)request.getSession().getAttribute("mycart");

            if (mcp==null) {

            //第一次购物,创建一个购物车,同时加入session

            mcp=new MyCartPro();

            request.getSession().setAttribute("mycart", mcp);

           }

            if (id!=null) {

             mcp.addBook(id);

           }      

            List<CartBean> al=mcp.showMyCart();

            request.setAttribute("alist", al);

            request.setAttribute("pageNow", pageNow);

            request.getRequestDispatcher("jsps/mycart.jsp").forward(request, response);          

       }else if (cartop.equals("delete")) {

           MyCartPro mcp=(MyCartPro)request.getSession().getAttribute("mycart");

           String id=request.getParameter("id");

           String pageNow=request.getParameter("pageNow");

           mcp.deleteBook(id);

            List<CartBean> al=mcp.showMyCart();

            request.setAttribute("alist", al);

            request.setAttribute("pageNow", pageNow);

            request.getRequestDispatcher("jsps/mycart.jsp").forward(request, response);          

       }else if (cartop.equals("deleteall")) {

           String pageNow=request.getParameter("pageNow");

           MyCartPro mcp=(MyCartPro)request.getSession().getAttribute("mycart");

           if (mcp==null) {

              request.setAttribute("pageNow", pageNow);

              request.getRequestDispatcher("index.jsp").forward(request, response);

           }else {

              mcp.deleteAllBooks();

              request.setAttribute("pageNow", pageNow);

              request.getRequestDispatcher("index.jsp").forward(request, response);           

           }

       }else if (cartop.equals("chagenum")) {

           String pageNow=request.getParameter("pageNow");

           String[] id=request.getParameterValues("goodId");

           String[] newNum=request.getParameterValues("newNum");

           /*for (int i = 0; i < id.length; i++) {

              System.out.println("id=="+id[i]+" "+"num=="+newNum[i]);

           }*/

 

           MyCartPro mcp=(MyCartPro)request.getSession().getAttribute("mycart");

            if (mcp==null) {

            request.getRequestDispatcher("jsps/mycart.jsp").forward(request, response);             

           }else {

               mcp.updateNum(id, newNum);

               List<CartBean> al=mcp.showMyCart();

               request.setAttribute("alist", al);

               request.setAttribute("pageNow", pageNow);

               request.getRequestDispatcher("jsps/mycart.jsp").forward(request, response);                

           }

          

       }

 

    }

 

    /**

     * The doPost method of the servlet. <br>

     *

     * This method is called when a form has its tag value method equals to post.

     *

     * @param request the request send by the client to the server

     * @param response the response send by the server to the client

     * @throws ServletException if an error occurred

     * @throws IOException if an error occurred

     */

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {      

        this.doGet(request, response);

    }

 

}

显示页面mycart.jsp

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
电子商务购物平台 概要设计说明书 1引言 作为互联网战略的延伸,电子商务的热潮一度兴起,但是一直以来,很多企业网站都局限在信息发布等一些基本的功能,而越来越深入的实践表明,这些仅仅代表了企业网站的一个起点功能。随着企业网络环境的发展成熟,企业门户网站可以帮助企业把现有的业务系统整合起来,集中优势资源为客户提供个性化服务,并为企业创建一个良好的收入渠道。 1.1编写目的 锻炼本阶段学校的成果,让我们更加的熟练运用所学的知识,对应web开发的流程更加的清晰,增加了我们对servlet的理解。 1.2背景 网上购物是电子商务的重要组成部分。网上购物就是通过互联网检索商品信息,并通过电订购单发出购物请求,然后填上私人支票帐号或信用卡的号码,厂商通过邮购的方式发货,或是通过快递公司送货上门。国内的网上购物,一般付款方式是款到发货(直接银行转帐,在线汇款)。担保交易(淘宝支付宝,百度百付宝,腾讯财付通等的担保交易),货到付款等 2总体设计 2.1运行环境 Jdk1.7 Tomcat7.0.61 Oracle 11g 2.2软件功能框架图 基于jsp+servlet开发的电子商务购物平台 3相关设计 3.1类框图(必须包括DAO相关类框图) 基于jsp+servlet开发的电子商务购物平台 1.1编写目的 锻炼本阶段学校的成果,让我们更加的熟练运用所学的知识,对应web开发的流程更加的清晰,增加了我们对servlet的理解。 2未完成功能说明 重置用户所有密码 3安装与初始化 3.1可执行程序安装运行说明 前台登录url:http://localhost:8080/EbProject/ 后台管理登录url:http://localhost:8080/EbProject/admin/AdminIndex.jsp 3.2数据库安装说明 百度安照教程去操作http://jingyan.baidu.com/article/ed15cb1b785b1c1be3698105.html 3.3初始数据说明 前台登录账号与密码, 账户0002密码2222 后台登录账号与密码 账户Admin密码8888 普通管理员: 账户0008密码8888 4操作简要说明 结合项目效果图说明操作步骤,每一个功能对应一张效果图 基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台基于jsp+servlet开发的电子商务购物平台
当然,下面是一个简单的Java Web实现购物车功能的jsp+servlet的完整代码示例: 首先,创建一个名为"CartServlet.java"的Servlet类,用于处理购物车相关的操作: ```java import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/cart") public class CartServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if (action != null && action.equals("add")) { String item = request.getParameter("item"); if (item != null && !item.isEmpty()) { List<String> cart = (List<String>) request.getSession().getAttribute("cart"); if (cart == null) { cart = new ArrayList<>(); request.getSession().setAttribute("cart", cart); } cart.add(item); } response.sendRedirect(request.getContextPath() + "/cart"); } else { request.getRequestDispatcher("/WEB-INF/views/cart.jsp").forward(request, response); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` 然后,创建一个名为"cart.jsp"的JSP页面,用于展示购物车内容和添加商品到购物车: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Shopping Cart</title> </head> <body> <h1>Shopping Cart</h1> <form action="${pageContext.request.contextPath}/cart?action=add" method="post"> <label for="item">Item:</label> <input type="text" id="item" name="item" required> <button type="submit">Add to Cart</button> </form> <h2>Cart Contents:</h2> <ul> <c:forEach items="${cart}" var="item"> <li>${item}</li> </c:forEach> </ul> </body> </html> ``` 最后,将以上代码保存到合适的目录下,并在你的Java Web项目中配置好ServletJSP的映射关系。 注意:上述代码使用了JSTL标签库(c标签),所以需要在项目中引入相应的JSTL库。 这个示例实现一个简单的购物车功能,可以通过表单输入商品名称,然后将其添加到购物车中,并在页面上展示购物车的内容。当然,实际的购物车功能可能会更加复杂,需要更多的业务逻辑和数据处理。希望这个示例能帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值