使用session实现简易购物车功能
程序员文章站
2021-12-03 08:59:52
本文实例为大家分享了用session实现简易购物车功能的具体代码,供大家参考,具体内容如下整体思路:先写一个jsp用于实现商品图片的读取(再次之前要写好连接数据库),当点加入购物车市,根据商品唯一的标...
本文实例为大家分享了用session实现简易购物车功能的具体代码,供大家参考,具体内容如下
整体思路:先写一个jsp用于实现商品图片的读取(再次之前要写好连接数据库),当点加入购物车市,根据商品唯一的标识来添加进去(我这里是商品的id号),点击查看购物车可以看到刚添加进去的东西,和总价钱,点击删除商品可以删除商品。点击返回就到商品商城
前置工作:
我在webcontent下创建了一个imges的文件夹放我的图片
然后创建了一个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("   "+"已经添加"+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
下列是表中的数据如图:
这些就是整个购物车的全部。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
js,jq,css多方面实现简易下拉菜单功能
-
express+vue+mongodb+session 实现注册登录功能
-
php使用curl模拟多线程实现批处理功能示例
-
thinkPHP5.1框架使用SemanticUI实现分页功能示例
-
使用python 3实现发送邮件功能
-
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
-
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
-
python编写简易聊天室实现局域网内聊天功能
-
Android开发之TextView使用intent传递信息,实现注册界面功能示例
-
微信小程序使用template标签实现五星评分功能