欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

使用session实现简易购物车功能

程序员文章站 2021-12-03 08:59:52
本文实例为大家分享了用session实现简易购物车功能的具体代码,供大家参考,具体内容如下整体思路:先写一个jsp用于实现商品图片的读取(再次之前要写好连接数据库),当点加入购物车市,根据商品唯一的标...

本文实例为大家分享了用session实现简易购物车功能的具体代码,供大家参考,具体内容如下

整体思路:先写一个jsp用于实现商品图片的读取(再次之前要写好连接数据库),当点加入购物车市,根据商品唯一的标识来添加进去(我这里是商品的id号),点击查看购物车可以看到刚添加进去的东西,和总价钱,点击删除商品可以删除商品。点击返回就到商品商城

前置工作:

我在webcontent下创建了一个imges的文件夹放我的图片

使用session实现简易购物车功能

然后创建了一个product.java的实体类用来封装,如下:

package com.huangxu.dao;
import java.sql.date;
public class product {
    private int pid;
    private int ptype;
    private string pname;
    private float pprice;
    private int pquantity;
    private string pimage;
    private string pdesc;
    private date ptime;

    public int getpid() {
        return pid;
    }

    public void setpid(int pid) {
        this.pid = pid;
    }

    public int getptype() {
        return ptype;
    }

    public void setptype(int ptype) {
        this.ptype = ptype;
    }

    public string getpname() {
        return pname;
    }

    public void setpname(string pname) {
        this.pname = pname;
    }

    public float getpprice() {
        return pprice;
    }

    public void setpprice(float pprice) {
        this.pprice = pprice;
    }

    public int getpquantity() {
        return pquantity;
    }

    public void setpquantity(int pquantity) {
        this.pquantity = pquantity;
    }

    public string getpimage() {
        return pimage;
    }

    public void setpimage(string pimage) {
        this.pimage = pimage;
    }

    public string getpdesc() {
        return pdesc;
    }

    public void setpdesc(string pdesc) {
        this.pdesc = pdesc;
    }

    public date getptime() {
        return ptime;
    }

    public void setptime(date ptime) {
        this.ptime = ptime;
    }
}

接着写了一个productdao.java的类用来连接数据库,如下:

package com.huangxu;

import java.sql.sqlexception;
import java.util.arraylist;
import java.util.list;
import com.huangxu.dao.product;
public class productdao extends jdbcdao {
    /*
     * 得到产品的信息
     */
    public list<product> getallproducts() {
        string sql = "select * from product";
        list<product> plist = new arraylist<product>();
        try {
            conn = getconnection();
            pst = conn.preparestatement(sql);
            rs=pst.executequery();
            while(rs.next()){
                product p=new product();
                p.setpid(rs.getint(1));
                p.setptype(rs.getint(2));
                p.setpname(rs.getstring(3));
                p.setpprice(rs.getfloat(4));
                p.setpquantity(rs.getint(5));
                p.setpimage(rs.getstring(6));
                p.setpdesc(rs.getstring(7));
                p.setptime(rs.getdate(8));
                plist.add(p);
            }
        
        } catch (sqlexception e) {
            // todo auto-generated catch block
            e.printstacktrace();
        }

        return plist;
    }
    public product findproductbyid(int pid)
    {
        product p=null;
        string sql="select * from product where pid=?";
        try {
            pst=getconnection().preparestatement(sql);
            pst.setint(1, pid);
            rs=pst.executequery();
            if(rs.next())
            {
                p=new product();
                p.setpid(rs.getint(1));
                p.setptype(rs.getint(2));
                p.setpname(rs.getstring(3));
                p.setpprice(rs.getfloat(4));
                p.setpquantity(rs.getint(5));
                p.setpimage(rs.getstring(6));
                p.setpdesc(rs.getstring(7));
                p.setptime(rs.getdate(8));
                }
        } catch (sqlexception e) {
            // todo auto-generated catch block
            e.printstacktrace();
        }finally
        {
            close();
        }
        
        return p;
    }

}

前置工作完毕,接着开始设计购物车

1.首先写一个jsp页面,我这里叫做imgs.jsp

<%@page import="java.util.arraylist"%>
<%@page import="java.util.list"%>
<%@page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%@page import="com.huangxu.productdao"%>
<%@ page import="com.huangxu.dao.product"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>insert title here</title>
<style type="text/css">
.mybox {
    widows: 200pt;
    height: auto;
    border: 1px solid red;
    float: left;
    margin: 10px 10px;
    padding: 5px 10px;
}

.mybox:hover {
    background-color: #fab;
}
</style>
</head>
<body>
    <%
        list list=(list)session.getattribute("shopcar");
    if(list==null){
        list=new arraylist();
        session.setattribute("shopcar", list);
    }
    out.println("&nbsp&nbsp "+"已经添加"+list.size()+"件商品");
    %>
    <div width="860px">
        <%
            productdao pdao=new productdao();

                for(product p:pdao.getallproducts()){
        %>


        <div class="mybox">
            <span><img src="<%=p.getpimage()%>"></span><br> 名字:<span><%=p.getpname()%></span><br>
            库存:<span><%=p.getpquantity()%></span>个<br> 单价:<span>¥<%=p.getpprice()%></span>元<br>
            <span><a href="shop.jsp?pid=<%=p.getpid()%>">加入购物车</a></span>
              
        </div>

        <%
            }
        %>
    </div>
    </div>
    <br>
    <div>

        <hr>
    
    <a href="showshop.jsp">查看购物车</a>
    
    </div>
</body>
</html>

2 接着写一个jsp页面(shop.jsp)为点击加入购物车的实际操作进行处理:

<%@page import="java.util.list"%>
<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%@page import="com.huangxu.productdao"%>
<%@ page import="com.huangxu.dao.product"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>insert title here</title>
</head>
<body>
<%
int pid=integer.parseint(request.getparameter("pid"));
productdao pdao=new productdao();
product p=pdao.findproductbyid(pid);
list shoplist=(list)session.getattribute("shopcar");
if(shoplist!=null){shoplist.add(p);}
response.sendredirect("imgs.jsp");

%>
</body>
</html>

3.在写一个jsp页面(showshop.jsp)用来处理查看购物车的实际操作:

<%@page import="java.util.list"%>
<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%@page import="com.huangxu.productdao"%>
<%@ page import="com.huangxu.dao.product"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>insert title here</title>
</head>

<body>
    <table width="400" border="0" cellpadding="0" cellspacing="1"   bgcolor="#00ff66">
  <tr bgcolor="#ffffff">
    <th>序号</td>
    <th>商品名</td>
    <th>价格</td>
    <th>删除</td>
  </tr>    
    <%
    list<product>list=(list)session.getattribute("shopcar"); 
    float sum=0;
    if(list!=null)
    {
        for(product p:list)
        {sum =sum+ p.getpprice();
    %>        

  <tr bgcolor="#ffffff">
    <td><%=list.indexof(p)+1 %></td>
    <td><%=p.getpname() %></td>
    <td><%=p.getpprice() %></td>
    <td><a href="spsc.jsp?xl=<%=list.indexof(p)%>">删除商品</a></td>
   
  </tr>                
    <%        
        }
    }
    %>
    <tr bgcolor="#ffffff">
    <td colspan="2">合计</td>
    
    <td colspan="2"><%=sum %>元</td>
  
   
  </tr>
      <tr><td colspan="3"><a href="imgs.jsp">返回商城</a></td></tr>    
    </table>    
</body>
</html>

4、最后是删除写一个jsp页面(spsc.jsp)用来处理删除的实际操作:

<%@page import="com.sun.corba.se.spi.orbutil.fsm.fsm"%>
<%@page import="com.huangxu.dao.product"%>
<%@page import="java.util.list"%>
<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>insert title here</title>
</head>
<body>
<%
float sum=0;

int xl=integer.parseint(request.getparameter("xl"));
list<product>list=(list)session.getattribute("shopcar"); 
if(list.remove(xl)!=null){%>
    
    
    <table width="400" border="0" cellpadding="0" cellspacing="1"   bgcolor="#00ff66">
      <tr bgcolor="#ffffff">
        <th>序号</td>
        <th>商品名</td>
        <th>价格</td>
        <th>删除</td>
      </tr>        <%
    for(product p:list){
        sum =sum+ p.getpprice();
    %>        

      <tr bgcolor="#ffffff">
        <td><%=list.indexof(p)+1 %></td>
        <td><%=p.getpname() %></td>
        <td><%=p.getpprice() %></td>
        <td><a href="spsc.jsp?xl=<%=list.indexof(p)%>">删除商品</a></td>
       
      </tr>                
        <%        
            }
        }else{
        
        response.sendredirect("imgs.jsp");}
        %>
        <tr bgcolor="#ffffff">
        <td colspan="2">合计</td>
        
        <td colspan="2"><%=sum %>元</td>
      
     
      </tr>    
        <tr><td colspan="3"><a href="imgs.jsp">返回商城</a></td></tr>
        </table>    

    
</body>
</html>

这样就全部写完了用session做的一个简易购物车!
下面附上sql的表:(在test库中)创建一个叫product的表
创建语句如下:

create table `product` (
  `pid` int(11) not null auto_increment,
  `ptype` int(11) default null,
  `pname` varchar(50) default null,
  `pprice` float default null,
  `pquantity` int(11) default null,
  `pimage` varchar(100) default null,
  `pdesc` varchar(300) default null,
  `ptime` time default null,
  primary key (`pid`)
) engine=innodb auto_increment=4 default charset=utf8

下列是表中的数据如图:

使用session实现简易购物车功能

这些就是整个购物车的全部。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: session 购物车