servlet+jsp实现小小购物车功能

article/2025/10/17 22:45:42

这个小小购物车功能是接上个实现浏览记录保存功能的,首先是建立连接池,然后就创建一个购物车实体类,购物车实体类需要有items商品与商品的数量,成员变量如下

	//购物车商品的集合private HashMap<Items, Integer> goods; //购物车的总金额private double totalPrice;


然后就是写添加商品进购物车的功能

//将商品添加进购物车public boolean addGoodsInCart(Items item, int number) {if(goods.containsKey(item)) {goods.put(item, goods.get(item)+number);} else {goods.put(item, number);}calTotalPrice();return true;}
还有删除商品的功能

//删除商品的方法public boolean removeGoodsFromCart(Items item) {goods.remove(item);calTotalPrice();return true;}


还有统计总价的功能

//统计购物车的总金额public double calTotalPrice() {double sum = 0.0;Set<Items> keys = goods.keySet();Iterator<Items> its = keys.iterator();while(its.hasNext()) {Items i = its.next();sum += i.getPrice() * goods.get(i);}this.setTotalPrice(sum);return this.getTotalPrice();}

因为将商品添加进购物车时,发现添加相同的商品时候,数量不会叠加,于是就重写Items的hashcode方法与equals方法.以便不会重复添加商品,而且可以叠加商品数量

@Overridepublic int hashCode() {return this.getId() + this.getName().hashCode();}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if(obj == null) {return false;}if(obj instanceof Items) {Items i = (Items)obj;if(this.getId() == i.getId() && this.getName().equals(i.getName())) {return true;} else {return false;}} else {return false;}}


然后就是建立一些页面,首先是在详情页面那里添加三个功能,分别是将商品添加进购物车和查看购物车的功能还有加减商品数量,代码及图片如下

           <div id="cart"><img src="pic/buy_now.png"><a href="javascript:selflog_show(<%=items.getId()%>)"><img src="pic/in_cart.png"></a><a href="servlet/CartServlet?action=show"><img src="pic/view_cart.jpg"/></a></div>

控制加减按钮和数量输入框的js代码如下

      function add(){var num = parseInt(document.getElementById("number").value);if(num<100){document.getElementById("number").value = ++num;}}function sub(){var num = parseInt(document.getElementById("number").value);if(num>1){document.getElementById("number").value = --num;}}function changeNumber() {var num = parseInt(document.getElementById("number").value);if(num > 100) {document.getElementById("number").value = 100;} else if(num < 1) {document.getElementById("number").value = 1;}}

单击将商品放进购物车的js代码以及效果图片如下

      function selflog_show(id){ var num =  document.getElementById("number").value; alert(id+"-----------"+num);J.dialog.get({id: 'haoyue_creat',title: '购物成功',width: 600,height:400, link: '<%=path%>/servlet/CartServlet?id='+id+'&num='+num+'&action=add', cover:true});}

其中这里显示的是success的页面,请求的是CartServlet,转发的是success.jsp页面

success.jsp的代码如下

    <center><img src="../pic/add_cart_success.jpg"/><hr><% String id = request.getParameter("id");ItemsDAO itemsDAO = new ItemsDAO();Items items = itemsDAO.getItemsById(Integer.parseInt(id));String num = request.getParameter("num");%>您成功购买了<%=num%>件商品名称为<%=items.getName()%>的商品    <br><br><br></center>

然后就是查看购物车的功能,其效果如下

购物车页面的jsp页面代码如下

<h1>我的购物车</h1><a href="../index.jsp">首页</a> >> <a href="../index.jsp">商品列表</a><hr> <div id="shopping"><form action="" method="">		<table><tr><th>商品名称</th><th>商品单价</th><th>商品价格</th><th>购买数量</th><th>操作</th></tr><% //首先判断session中是否有购物车对象if(request.getSession().getAttribute("cart")!=null){%><%Cart cart = (Cart)request.getSession().getAttribute("cart");HashMap<Items, Integer> goods = cart.getGoods();Set<Items> items = goods.keySet();Iterator<Items> itr = items.iterator();while(itr.hasNext()) {Items i = itr.next();%><tr name="products" id="product_id_1"><td class="thumb"><img src="../pic/<%=i.getPicture() %>" /><a href=""><%=i.getName() %></a></td><td class="number"><%=i.getPrice() %></td><td class="price" id="price_id_1"><span><%=i.getPrice()*goods.get(i) %></span><input type="hidden" value="" /></td><td class="number"><%=goods.get(i) %></td>                        <td class="delete"><a href="CartServlet?action=delete&id=<%=i.getId() %>" οnclick="delcfm();">删除</a>					                  </td></tr><%}%></table><div class="total"><span id="total">总计:<%=cart.getTotalPrice() %>¥</span></div><%}%><div class="button"><input type="submit" value="" /></div></form></div>

然后就是删除功能的效果如下

删除的js提示代码如下

    <script language="javascript">function delcfm() {if (!confirm("确认要删除?")) {window.event.returnValue = false;}}</script>


然后基本功能就这样了,逻辑还是挺好理解的,刚看完教程,感觉很简单,可是自己写的时候,总是各种出错,于是只好边写边看源代码了,跌跌撞撞的才搞定了.

不过,这里最让我郁闷的就是,我用J.dialog插件时候,我竟然不知道这个怎么用的,我就照着源代码写了,后来折腾了好久,才发现,这TM的竟然是要导入js文件的,于是,瞬间整个人都不好不好的了,我一直以为是我的请求路径还是还是什么错了,原来是js文件没引入,

	<script type="text/javascript" src="js/lhgcore.js"></script><script type="text/javascript" src="js/lhgdialog.js"></script>

就是上面两个文件,不过不知道引入一个可不可以, 然后我引入之后才能触发那个请求服务...

还有碰到纠结好久的就是路径问题,当我从jsp页面请求到servlet页面后,再请求转发到jsp页面时.我的上层目录竟然算是servlet目录,我当时就震惊了,竟然不是按我的工程目录来看的,,,,于是我每次从servlet过去到jsp页面,我都要把那个jsp页面的css文件,js文件,还有图片路径都得先跳出servlet目录到根目录再进入到指定目录,例子如下

这是从servlet过去success.jsp页面时候,图片路径如下

  <img src="../pic/add_cart_success.jpg"/>

下面是从servlet过去cart购物车页面时候,页面的css文件导入路径

<link type="text/css" rel="stylesheet" href="../css/style1.css" />

虽然是照着教程做完的,不过总算是看到了效果,感觉还是挺有趣的.......






http://chatgpt.dhexx.cn/article/hfCU8W4d.shtml

相关文章

Servlet/Jsp实现购物车

(1)用servlet实现简单的购物车系统&#xff0c;项目结构如下&#xff1a;&#xff08;新建web Project项目 只需要AddItemServlet &#xff0c; ListItemServlet&#xff0c;exam403.jsp三个文件即可&#xff0c;其他的不用管&#xff09; &#xff08;2&#xff09;exam403.j…

jsp实现简单购物车页面

壹 我们今天所设计的购物车页面所实现的功能是点击商品所对应的购买按钮即可在另一页面显示所购买的商品。 贰 &#xff08;1&#xff09;我们想象一下购物的整个过程&#xff0c;当我们进入超市后&#xff0c;会首先拿一个购物推车或者购物篮&#xff0c; &#xff08;2&#…

jsp设计简单的购物车应用案例

代码解释 <%request.setCharacterEncoding("UTF-8");if (request.getParameter("c1")!null)session.setAttribute("s1",request.getParameter("c1"));if (request.getParameter("c2")!null)session.setAttribute("…

jsp实现简易购物车

实现要求: &#xff08;a&#xff09;输入要购买的商品 &#xff08;b&#xff09;点击提交按钮后 &#xff08;c&#xff09;结账页面将所选择的商品全部列出 代码实现: b9_shopping.jsp <% page language"java" contentType"text/html; charsetUTF-8…

JSP-购物类网站(购物车功能,翻页功能,文件下载功能,文末有代码及数据库备份)

目录 网站功能框架 网站架构图 网站项目树 网站首页 注册登录页面 用户个人中心页面 商家个人中心页面 搜索结果页面 商品详细信息页面 手机端页面(部署后) 之前在校内参加过网站设计大赛&#xff0c;贡献全部代码&#xff0c;供jsp小白学习。 这是一个购物类网站,后…

基于Java、Jsp实现购物车的功能

先看效果图&#xff1a; 实现代码&#xff1a; index.jsp <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"UTF-8&qu…

JSP——购物车

JSP—购物车 主页面&#xff08;buy.jsp&#xff09; <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> &l…

HTML代码实现简易购物车

网上关于购物车实现的代码非常多&#xff0c;本次的这篇文章主要是和大家分享了HTML代码实现简易购物车&#xff0c;有需要的小伙伴可以看一下&#xff0c;接下来讲解一下具体的实现。 1、用html实现内容&#xff1b; 2、用css修饰外观&#xff1b; 3、用js(jq)设计动效。 …

用jsp实现一个简单的购物车web应用系统。实现的添加购物商品,删除购物商品并且显示购物车信息。

用jsp实现一个简单的购物车web应用系统。实现的添加购物商品&#xff0c;删除购物商品并且显示购物车信息。 1. 在自己建立的WEB工程中,建立包shopcart.dto,在相应的包中添加类Product.java ,ShopCart.java /*类Product */package shopcart.dto;import java.io.Serializable;pu…

JSP | 简易购物车的实现

本程序共包含四部分文件&#xff0c;只包含jsp文件&#xff0c;将java代码嵌入到jsp文件中实现&#xff1a; loginID.jsp、shop.jsp、food.jsp、count.jsp&#xff0c;分别实现的功能是输入ID页面、超链接功能选择页面、购物页面和购物车页面。 login.jsp文件代码如下&#x…

Javaweb-购物商城实现展示商品,实现购物车购物,结算(Servlet+mysql+jsp+tomcat)

演示视频: 购物网站 代码: https://github.com/wu1369955/shopping 购物网站首页 首先说明:这个是花几天搭建出来玩的,从github上拉到找好看的框架组合的,效果还不错,主要是学习作用.源码之类的也会分享出来,希望一起进步,最好动手实践,可以参照逻辑做的更好, 简易购物商城设…

javascript购物车实现详细代码讲解

我们肯定都很熟悉商品购物车这一功能&#xff0c;每当我们在某宝某东上购买商品的时候&#xff0c;看中了哪件商品&#xff0c;就会加入购物车中&#xff0c;最后结算。购物车这一功能&#xff0c;方便消费者对商品进行管理&#xff0c;可以添加商品&#xff0c;删除商品&#…

JSP(6)简单购物车实现

两个jsp页面之间跳转需要通过Servlet控制器实现 1 创建数据库表 -- 创建一个序列&#xff0c;使book的id自增长 create sequence book_seq start with 1 increment by 1 minvalue 1 maxvalue 99999999999999 nocycle nocache -- 创建一个序列&#xff0c;使orders的id自增长…

用JSP实现的商城购物车模块

这两天&#xff0c;在学习JSP&#xff0c;正好找个小模块来练练手&#xff1a; 以下就是实现购物车模块的页面效果截图&#xff1a; 图1. 产品显示页面 通过此页面进行产品选择&#xff0c;加入到购物车 图2 .购物车页面 图3 . 商品数量设置 好了&#xff0c;先不贴图了&#x…

项目-Java Web购物车-JSP实现

文章目录 源码地址界面演示目录结构准备工作登录注册功能定义DaoBaseDaoProductDaoImp 定义EntityProductCartItem 商品列表与详情界面★购物车页面更多 源码地址 点击文章底部打赏后私信发送源码地址 界面演示 介绍(旧) 浏览器打开http://localhost:8080/ShopCart/login.j…

jsp购物车(session版)

目录 一、要用到的 js 和 css 文件 二、数据库表实体类Dao类 1、数据库表 2、实体类 3、Dao类方法(GoodsDao) 四、商品主页面&#xff08;index.jsp&#xff09; 1、代码分析 2、完整代码 五、购物车页面&#xff08;spcar.jsp&#xff09; 1、代码分析 2、完整代码 3、删除…

jsp实现购物车

文章目录 一、案例演示二、实现步骤1.info.jsp2.UserServlet3.cart.jsp4.UserServlet 一、案例演示 点击购买进入到购物车页面&#xff0c;增加减少数量都会对小计&#xff0c;总计产生影响&#xff0c;点击继续购买&#xff0c;回到挑选页面product_list.jsp 二、实现步骤 …

图像识别技术

图像识别算法实现收藏 <script type"text/javascript"></script> <script></script> 以往的图像处理函数实现&#xff0c;多是针对图像句柄。算法实现 需要操作复杂的图像文件。 但是&#xff0c;这种方式算法实现和调试的周期比较长。为了加…

神经网络图像识别算法,神经网络提取特征值

哪些神经网络可以用在图像特征提取上 BP神经网络、离散Hopfield网络、LVQ神经网络等等都可以。 1.BP&#xff08;BackPropagation&#xff09;神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出&#xff0c;是一种按误差逆传播算法训练的多层前馈网络&#xff0c;…

基于神经网络的图像识别

一、目的 1. 了解深度学习的基本原理&#xff1b; 2. 能够使用 PaddleHub 深度学习开源工具进行图像识别&#xff1b; 3. 能够使用 PaddlePaddle 训练神经网络模型&#xff1b; 4. 能够使用 Paddle 完成手写实验. 5. 能够使用 keras 训练神经网络模型。 二、环境配置&#xff1…