jsp+servlet实现商城购物车功能
<a href="AddCart?id=${b.id}"><button class="btn btn-default">加入购物车<span class="glyphicon glyphicon-shopping-cart"></span></button></a>
商品详情页选中“加入购物车”后跳到AddCart
public class AddCart extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String id=request.getParameter("id");ProductService ps=new ProductService();Book b=ps.findBookById(id);HttpSession session=request.getSession();//从session中获取购物车对象Map<Book,Integer> cart=(Map<Book,Integer>)session.getAttribute("cart");//如果购物车为空,说明没有商品存储在购物车中,创建除购物车if(cart==null) {cart=new HashMap<Book,Integer>() ; }//向购物车添加商品数量信息Integer count=cart.put(b, 1);//如果商品数量不为空,则商品数量+1,否则添加新的商品信息if(count!=null) {cart.put(b, count+1);} session.setAttribute("cart", cart);request.getRequestDispatcher("cart.jsp").forward(request, response);;}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}
以map集合存储Book对象还有购买数量,并且新建购物车,存进session中
<script type="text/javascript">function changeNum(id,num,totalCount){num = parseInt(num);totalCount =parseInt(totalCount);if(num<1){if(confirm("是否确认要删除此商品?")){num = 0;}else{num=1;}}if(num>totalCount){alert("购买数量不能大于库存数量!");num=totalCount;}location.href="${pageContext.request.contextPath}/ChangeNumServlet?id="+id+"&num="+num;}</script>
<table cellpadding="1" style="width: 80%; height: auto;border:1px #8B0000 solid;text-align:center;margin-left:150px;"><tr><td width="10%"> 序号</td><td width="30%"> 商品名称</td><td width="10%">价格</td><td width="20%"> 数量</td><td width="10%">库存</td><td width="10%">小计</td><td width="10%">取消</td></tr></table><!-- 循环输出商品信息 --><c:set var="total" value="0"/><c:forEach items="${cart}" var="entry" varStatus="vs"><table width="80%" border="0" cellspacing="0" style="margin-left:150px;text-align:center"><tr><td width="10%">${vs.count}</td><td width="30%">${entry.key.name}</td><td width="10%">${entry.key.price }</td><td width="20%"><!-- 减少商品数量 -->、 <input type="button" value='-' style="width:20px" onclick="changeNum('${entry.key.id}','${entry.value-1 }','${entry.key.pnum }')"><!-- 商品数量显示 --><input name="text" type="text" value="${entry.value}" style="width:40px;text-align:center"><!-- 添加商品数量 --><input type="button" value='+' style="width:20px" onclick="changeNum('${entry.key.id}','${entry.value+1 }','${entry.key.pnum }')"> </td><td width="10%">${entry.key.pnum}</td><td width="10%">${entry.key.price*entry.value}</td><td width="10%"><!-- 删除商品 -->、 <a href="ChangeNumServlet?id=${entry.key.id}&num=0" style="color: #FF0000; font-weight: bold">X</a></td></tr></table><c:set value="${total+ entry.key.price*entry.value}" var="total"/></c:forEach><br><!-- 合计信息 --><table style="margin-left:1000px"><tr><td><font style="color: #FF6600; font-weight: bold">合计: ${total}元</font></td></tr></table><br><br><br><div style="padding-left:690px;"><a href="index.jsp"><button class="btn btn-info">继续购物</button></a><a href="order.jsp"><button class="btn btn-default">立即买单</button></a></div>
public class ChangeNumServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String id = request.getParameter("id");int num = Integer.parseInt(request.getParameter("num"));HttpSession session = request.getSession();Map<Book, Integer> cart = (Map<Book, Integer>) session.getAttribute("cart");ProductService ps=new ProductService();Book b=ps.findBookById(id);//如果商品数据为0,就删除对象if(num==0) {cart.clear();}else {cart.clear();cart.put(b, num);}request.getRequestDispatcher("cart.jsp").forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
通过id找到对应的book对象后,从session中取出集合,要先清空集合再重新存键值(书和购买数量进去),不清空就会导致一会的cart页面出现多行从购物车里遍历取出来的数据
jsp+servlet实现商城购物车功能相关推荐
- 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果...
基于vue2.0打造移动商城页面实践 地址:https://www.jianshu.com/p/2129bc4d40e9 vue实现商城购物车功能 地址:http://www.jb51.net/art ...
- JAVAWEB使用JSP+Servlet实现商品管理功能,后台为数据库,功能包括商品信息浏览、商品信息详情、商品信息删除及修改。
商品管理功能 一.功能介绍 1.1显示 1.2商品详情 1.3新增 1.4修改 1.5删除 二.数据库语句 三.项目结构 四.java代码 4.1Good类 4.2 Charge类 4.3GoodDa ...
- jq 移动端网页分享功能_jQuery实现移动端手机商城购物车功能
购物车数量加减 右加号 数量 t.val(parseInt(t.val()) + 1);//parseInt()解析input一个字符串,返回一个整数 heji();//调用后面计算的函数 }) 左减 ...
- 基于jsp+javabean+servlet的二手物品交易系统_基于Jsp+Servlet的商城系统
今天给大家演示一款由jsp+servlet+MySQL实现的在线商城系统,本系统实现了管理员管理用户.商品(商品分类).订单.留言.新闻等功能,前台会员注册登录,查看商品信息,加入商品到购物车.提交订 ...
- 编程小白的计算机毕业设计指导开发教程-JSP+Servlet实现注册登陆功能
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- jsp+servlet学子商城项目--servlet、dao层的各项练习
Login的登录项目完成传值,select语句索引 UserDao.java /*** 根据用户名查询* @param name:表示用户名* @return如果用户名存在,封装成对象返回* 否则返回 ...
- 购物商城框架java_基于jsp的购物商城-JavaEE实现购物商城 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的购物商城, 该项目可用各类java课程设计大作业中, 购物商城的系统架构分为前后台两部分, 最终实现在线上进行购物 ...
- 二手商城java 源码_基于jsp的二手商城-JavaEE实现二手商城 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的二手商城, 该项目可用各类java课程设计大作业中, 二手商城的系统架构分为前后台两部分, 最终实现在线上进行二手 ...
- java实现电子商城报告_基于jsp的电子商城-JavaEE实现电子商城 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的电子商城, 该项目可用各类java课程设计大作业中, 电子商城的系统架构分为前后台两部分, 最终实现在线上进行电子 ...
最新文章
- Paddle网络结构中的层和模型
- 「百度@了所有车企」:Apollo自动驾驶商用上岗,欢迎上车
- DLINQ *.dbml文件该属于哪一层
- minecraft666java_我的世界的666的世界
- 程序猿的节日:1024,今天祝愿全球所有程序猿们、IT精英们节日快乐!——我在上海写代码
- 迅雷CEO陈磊出席深圳IT领袖峰会 解析区块链未来布局
- Web笔记-移动前端开发笔记
- Hbase的伪分布式安装
- iptables用法简介
- 后台cs代码控制html控件,cshtml中正则表达式使用后台代码
- 用户自定义变量、系统变量、环境变量
- 谷粒学院-第二天笔记
- cad无法安装_装机必备!免安装CAD迷你看图特别版PC软件
- Eclipse保护色设置
- NetCore3.1开发后台管理系统框架思路与实现
- 秋名山老司机(bugku-web)
- IE的Kiosk模式
- 传统蓝牙base on pincode配对以及安全简单配对(Secure Simple Pairing)流程介绍
- Android笔记:将布局转换成图片
- 【计算机毕业设计】248高校奖学金管理系统