jsp购物车实例
- 格式:doc
- 大小:481.00 KB
- 文档页数:13
⽤javascript实现的购物车实例基于javascript实现的购物车实例:⾸先是效果和功能,如下图所⽰,具有购物车的基本功能。
包括1、选中和全选商品;2、商品数量的增减;3、单个商品价格的计算;4、总价的计算;5、删除商品。
⼀、界⾯布局使⽤的是table来进⾏布局,由于⽤js来获取tr 和 td节点的时候,可以获取带下标的元素集合,操作起来较为便利。
html+css的代码如下:1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <title>购物车</title>6 <style>7 *{margin:0px; padding:0px;}8 table,td,td{9 border:1px solid #000000;10 font-size:10px;11 }12 table{13 display: block;14 }1516 img{17float:left;18 }19 tr{20 text-align: center;21 }22 #box{23 width:900px;24 }2526 #cart{27float:left;28 border-collapse:collapse;29 }30 #head{31 background:#F0FFFF;32 }33 #settlement{34 margin-top:20px;35 width:805px;36 height:30px;37 border:1px solid #EBEBEB;38float:left;39 background: #EBEBEB;4041 font-size:10px;42 line-height:30px ;43 }44 #settlement div{45float:left;46 }47 #addupto{48 color:#ff0000;49 font-weight:700;50 }51 #NumofGoods{52 color:#ff0000;53 font-weight:700;54 }5556 .goods{57 padding:5px;58 text-align: left;59 }60 .number{61 position:relative;62 left:19px;63 width:60px;64 height:10px;65 border:1px solid #cccccc;66 }6768 .acc{69 width:40px;70 height:10px;71 border-left:0px solid #cccccc;72 border-right:0px solid #cccccc;73 line-height: 10px;74float:left;75 }76 .desymbol{77 width:10px;78 height:10px;79 line-height: 10px;80 background:#ccc;81float:left;82 cursor:pointer;83 }84 .adsymbol{85 width:10px;86 height:10px;87 line-height: 10px;88 background:#ccc;89float:right;90 cursor: pointer;91 }92/*.dele{93 cursor: pointer;94 }*/95 .total{96 color:#ff0000;97 font-weight:700;98 }99 </style>100 </head>101 <body>102 <div id="box">103 <table id="cart">104 <tr id="head">105 <td width="50px"><input class="allSelect" type="checkbox"> 全选</td>106 <td width="400px;">商品</td>107 <td width="100px">单价</td>108 <td width="100px">数量</td>109 <td width="100px">⼩计</td>110 <td width="50px">操作</td>111 </tr>112 <tr>113 <td><input class="select" type="checkbox"></td>114 <td class="goods"><img src="img/goods1.jpg">外星⼈笔记本电脑17 R4 15R3 13⼨ 17⼨ alienware今晚吃鸡游戏本</td> 115 <td class="price">12888.00</td>116 <td>117 <div class="number">118 <div class="desymbol">-</div>119 <div class="acc">1</div>120 <div class="adsymbol">+</div>121 </div>122 </td>123 <td class="total"></td>124 <td class="dele">删除</td>125 </tr>126 <tr>127 <td><input class="select" type="checkbox"></td>128 <td class="goods"><img src="img/goods2.jpg">任天堂(Nintendo)Switch 家⽤游戏机掌机NS智能体感游戏主机</td> 129 <td class="price">2258.00</td>130 <td>131 <div class="number">132 <div class="desymbol">-</div>133 <div class="acc">1</div>134 <div class="adsymbol">+</div>135 </div>136 </td>137 <td class="total"></td>138 <td class="dele">删除</td>139 </tr>140 <tr>141 <td><input class="select" type="checkbox"></td>142 <td class="goods"><img src="img/goods3.jpg">Microsoft/微软 Surface Pro i5 8G 256G 笔记本平板电脑⼆合⼀</td> 143 <td class="price">4999.00</td>144 <td>145 <div class="number">146 <div class="desymbol">-</div>147 <div class="acc">1</div>148 <div class="adsymbol">+</div>149 </div>150 </td>151 <td class="total"></td>152 <td class="dele">删除</td>153 </tr>154 <tr>155 <td><input class="select" type="checkbox"></td>156 <td class="goods"><img src="img/goods4.jpg">Apple/苹果10.5英⼨ iPad Pro</td>157 <td class="price">3666.00</td>158 <td>159 <div class="number">160 <div class="desymbol">-</div>161 <div class="acc">1</div>162 <div class="adsymbol">+</div>163 </div>164 </td>165 <td class="total"></td>166 <td class="dele">删除</td>167 </tr>168 </table>169170 <div id="settlement">171 <div style="width:550px"><input class="allSelect" type="checkbox"> 全选</div>172 <div style="width:120px">全选商品<span id="NumofGoods"></span><span>件^</span></div>173 <div style="width:80px">合计:¥<span id="addupto"></span></div>174 <div style="width:50px;text-align: center;border-left:1px solid #000000;">结算</div>175 </div>176177 </div>178179 <script src="cart.js"></script>180 </body>181 </html>View Code⼆、javascript代码⾃⾏封装了getClasses()函数,避免兼容性问题。
基于JSP购物网站的设计和实现指导老师:班级:组员:基于JSP的网上购物系统的设计与实现——小萌购物网摘要在当今这种信息化、网络化时代,网上购物作为一种全新的理念影响着人们的生活,网上购物系统的诞生就是由此而来。
本次设计的内容是设计并且实现一个基于JSP 技术的网上购物系统,主要使用了Struts+Spring+Hibernate等多种框架的结合使用,用MyEclipse作为开发工具,以MySQL作为数据库,Tomcat作为应用服务器。
应用Macromedia公司的Dreamweaver作为界面美化工具,使用Java语言开发,页面采取JSP动态页面开发技术。
该系统界面简单、操作方便,容易维护。
系统分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,个人资料管理等功能。
后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理,新闻信息管理等功能。
建立后的网站系统是一个动态、交互式、具有商品提供、系统管理等功能的电子商务网站.关键字:网上购物饰品JSP MySQL目录1 引言 (4)1.1 网上购物的发展与现状 (4)1.2 系统实现的目标 (5)1.3 系统的开发意义 (5)2 可行性分析 (6)2.1 技术可行性 (6)2.2 经济可行性 (6)2.3 操作可行性 (7)2.4 硬件、软件可行性 (7)3 需求分析 (7)3.1 消费需求分析 (7)3。
2 效益需求分析 (8)3。
3 功能需求分析 (9)4 概要设计 (13)4.1 系统功能模块设计 (13)4.2 数据库设计 (16)5 详细设计 (18)5.1 系统功能实现的主要架构 (18)5。
2 系统各功能模块的实现 06. 系统测试 06。
1 系统测试的目的 06.2 系统测试的方法 06。
3 系统测试的环境 06.4 本系统测试 07总结 0参考文献 01.引言1。
1 网上购物的发展与现状随着网络、通信和信息技术的突破性进展,Internet在全球爆炸性增长并迅速普及。
JS实现购物车功能(JS案例)购物车功能是一个非常常见的电商网站功能,它允许用户将感兴趣的商品加入购物车,然后在结算时一次性支付。
本文将使用JavaScript实现一个简单的购物车功能。
首先,我们需要定义一个购物车对象,用于保存用户选择的商品信息。
购物车对象可以包含以下几个属性:- `items`: 一个数组,用于保存用户选择的商品信息- `addItem`: 一个方法,用于将商品加入购物车- `removeItem`: 一个方法,用于从购物车中移除商品- `getTotalPrice`: 一个方法,用于计算购物车中所有商品的总价格```javascript//购物车对象var cart =items: [],addItem: function(item)this.items.push(item);},removeItem: function(itemIndex)this.items.splice(itemIndex, 1);},getTotalPrice: functiovar totalPrice = 0;for (var i = 0; i < this.items.length; i++)totalPrice += this.items[i].price;}return totalPrice;}```在上面的代码中,`addItem`方法用于将商品加入购物车,它接受一个商品对象作为参数,并将其添加到`items`数组中。
`removeItem`方法用于从购物车中移除商品,它接受一个商品在`items`数组中的索引作为参数,并使用`splice`方法将其从数组中删除。
`getTotalPrice`方法用于计算购物车中所有商品的总价格,它通过循环遍历`items`数组,将每个商品的价格累加到`totalPrice`变量中,最后返回总价格。
下面是一个简单的示例,演示如何使用购物车对象:```javascript//创建几个商品对象var item1 =name: '商品1',price: 100};var item2 =name: '商品2',price: 200};//将商品加入购物车cart.addItem(item1);cart.addItem(item2);//输出购物车中所有商品的名称和价格for (var i = 0; i < cart.items.length; i++) console.log('商品名称:', cart.items[i].name); console.log('商品价格:', cart.items[i].price); //输出购物车中所有商品的总价格console.log('总价格:', cart.getTotalPrice(); //从购物车中移除商品2cart.removeItem(1);//再次输出购物车中所有商品的总价格console.log('总价格:', cart.getTotalPrice();```在上面的示例中,我们通过创建了两个商品对象`item1`和`item2`,然后使用`addItem`方法将它们加入购物车。
javascript大作业案例JavaScript大作业案例1. 2048游戏2048游戏是一款经典的数字消除游戏,玩家通过滑动数字方块,使相同数字的方块相加,最终得到2048这个数字的方块。
这个案例可以通过JavaScript来实现游戏逻辑、界面交互以及分数统计等功能。
2. 在线购物车在线购物车是一个常见的电商网站功能,用户可以通过点击“加入购物车”按钮将商品添加到购物车中,然后可以查看购物车的商品列表、修改商品数量、删除商品等操作。
这个案例可以通过JavaScript实现购物车的动态更新、购物车总价的计算、商品数量的统计等功能。
3. 图片轮播图片轮播是网站常见的一种效果,可以展示多张图片,并通过自动播放或手动切换的方式进行显示。
这个案例可以通过JavaScript实现图片轮播的逻辑,包括图片的切换、自动播放的控制、切换按钮的显示等功能。
4. 数据可视化数据可视化是将抽象的数据通过图表、地图等可视化的方式展示出来,以便用户更直观地理解和分析数据。
这个案例可以通过JavaScript调用数据可视化库,如D3.js或Echarts,来实现数据的图表展示、交互操作、数据筛选等功能。
5. 在线聊天室在线聊天室是一个可以实现实时通信的网页应用,用户可以通过输入文字、发送图片等方式与其他用户进行交流。
这个案例可以通过JavaScript结合WebSocket技术来实现实时通信的功能,包括消息的发送、接收、显示等操作。
6. 博客系统博客系统是一个可以发布、编辑、管理文章的网站,用户可以注册账号、登录、撰写文章、查看文章列表等操作。
这个案例可以通过JavaScript实现用户的注册登录功能、文章的发布与编辑功能、文章列表的展示与分页等功能。
7. 在线音乐播放器在线音乐播放器可以实现在线播放音乐、创建歌单、收藏喜欢的音乐等功能。
这个案例可以通过JavaScript结合音乐API来实现音乐的搜索、播放、歌单的创建与管理等功能。
Web前端开发与设计13-购物车案例说明使⽤js脚本实现商品的添加、修改、删除、价格计算。
⽰例代码<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>JavaScript实现购物车功能</title><style type="text/css">.num {width: 30px;}</style><!--⼊jquery--><script src="script/jquery-1.12.4.js"></script><script>//1.实现全选的效果function checkAll() {let eles = document.getElementsByName("product");//获取的是对象集合//console.log(eles);//调试代码for (let i = 0; i < eles.length; i++) {eles[i].checked = document.getElementById("checkall").checked;}}//2.实现选择商品改变全选框的效果function checkProduct() {let ckall = document.getElementById("checkall");//全选框let eles = document.getElementsByName("product");//获取商品选框对象集合let size = eles.length;//商品数⽬let total = 0;//选中的商品数⽬//遍历集合,判断商品是否都被选中for (let i = 0; i < size; i++) {if (eles[i].checked == false) {ckall.checked = false;break;//中断循环} else {total += 1;}}//判断是否已经遍历完成if (total == size) {ckall.checked = true;}}//jquery开发环境$(function () {//alert("hello jquey!");//3.实现增加商品数量$("#mycart").find(".add").click(function () {let $_pre = $(this).prev();//console.log($_pre);let num = parseInt($_pre.val());//alert(num);$_pre.val(num + 1);//数量+1//改变⼩计⾦额let price=$_pre.parent().prev().text();//读取价格$_pre.parent().next().text(parseInt(price)*(num+1));totalPrice();})//4.减少商品数量$("#mycart").find(".sub").click(function () {let $_next = $(this).next();let num = parseInt($_next.val());if (num < 2) {let result = confirm("确定删除该商品?");if (result == true) {$_next.parent().parent().remove();//删除商品totalPrice();}} else {$_next.val(num - 1);//数量-1//改变⼩计⾦额let price=$_next.parent().prev().text();//读取价格$_next.parent().next().text(parseInt(price)*(num-1));totalPrice();}})//5.增加商品效果$("#addProduct").click(function () {let $_newRow =$("#mycart").find("tr").eq(1).clone(true);$("#mycart").find("tr").eq(1).after($_newRow);totalPrice();})//6.总计价格function totalPrice() {var sum=0;$(".total").each(function (i,e) {sum+=parseInt($(e).text());})$("#sum").text(sum);}//执⾏计算总价totalPrice();})</script></head><body><button id="addProduct">增加商品</button><hr><table id="mycart" border="1px"><tr><th>全选<input type="checkbox" id="checkall" onclick="checkAll()"></th><th>品名</th><th>价格</th><th>数量</th><th>⼩计</th></tr><tr><td><input type="checkbox" name="product" onclick="checkProduct()"></td> <td>⾐服</td><td>800</td><td><button class="sub">-</button><input type="text" name="num" class="num" value="1"><button class="add">+</button></td><td class="total">800</td></tr><tr><td><input type="checkbox" name="product" onclick="checkProduct()"></td> <td>鞋⼦</td><td>500</td><td><button class="sub">-</button><input type="text" name="num" class="num" value="1"><button class="add">+</button></td><td class="total">500</td></tr><tr><td colspan="3">总计</td><td colspan="2" id="sum">888</td></tr></table></body></html>。
JSP 实现购物车
在网络上开设自己的网络商店,购买商品,已经成为了人们的一种习惯。
在本节中,将以实验指导的方式,利用JavaBean实现一个简单的网上购物的案例。
(1)购物车Bean实现。
购物车Bean主要实现购物商品的名称、数量和单位属性的设置和获取,用一个哈希表对象list用来存放购买的商品。
用show()方法显
(2)添加商品。
添加商品文件car.jsp主要实现商品相关内容的添加,该文件的代码如下所示:
(3)显示添加商品信息。
显示添加商品文件show.jsp用来实现显示添加商品的
(4)购物功能实现。
将以上文件保存,打开IE浏览器,在地址栏输入http://l ocalhost:8080/stu/car.jsp,单击【转到】按钮,就会显示如图4-17所示的添加购物窗口。
在此窗口中添加完相关商品后,单击【提交添加】按钮,会显示如图4-18所示的商品信息。
图4-17 购物添加 图4-18 显示商品。
JavaScript实现html购物车代码<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><script src="jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script><title>购物车</title><style>input{width:25px;}</style></head><body><div><table border="1" cellspacing="0" cellpadding="10px"><thead><th><input type='checkbox'></th><th>商品</th><th>数量</th><th>单价</th><th>状态</th><th>库存</th><th>⼩计</th></thead><tbody><tr><td><input type='checkbox'></td><td>语⾳电⼦红外体温计枪</td><td><button class="jian">-</button><input type="number" maxlength="2" value="0" disabled><button class="jia">+</button></td><td>69.00</td><td>有货</td><td>20</td><td class="xiaoji"></td></tr><tr><td><input type='checkbox'></td><td>⼉童防晒⾐</td><td><button class="jian">-</button><input type="number" maxlength="2" value="0" disabled><button class="jia">+</button></td><td>109.00</td><td>有货</td><td>20</td><td class="xiaoji"></td></tr><tr><td><input type='checkbox'></td><td>⼩黄鸭玩具</td><td><button class="jian">-</button><input type="number" maxlength="2" value="0" disabled><button class="jia">+</button></td><td>9.90</td><td>有货</td><td>20</td><td class="xiaoji"></td></tr><tr><td><input type='checkbox'></td><td>⼉童滑板车</td><td><button class="jian">-</button><input type="number" maxlength="2" value="0" disabled> <button class="jia">+</button></td><td>169.00</td><td>有货</td><td>20</td><td class="xiaoji"></td></tr><tr><td><input type='checkbox'></td><td>轻薄长裤</td><td><button class="jian">-</button><input type="number" maxlength="2" value="0" disabled> <button class="jia">+</button></td><td>39.00</td><td>有货</td><td>20</td><td class="xiaoji"></td></tr><tr><td><input type='checkbox'></td><td>⼉童防蚊裤</td><td><button class="jian">-</button><input type="number" maxlength="2" value="0" disabled> <button class="jia">+</button></td><td>29.00</td><td>有货</td><td>20</td><td class="xiaoji"></td></tr></tbody><tfoot><tr><td colspan="5"></td><td>总计</td><td class="total"></td></tr></tfoot></table></div><script type="text/javascript">$(".jia").click(function () {var num = $(this).prev().val();if(num==20){return;}$(this).prev().val(parseInt(++num));$(this).parent().next().next().next().text(20-num)if ($(this).parent().next().next().next().text()==0) {$(this).parent().next().next().text('⽆货')}money ()})$(".jian").click(function () {var num = $(this).next().val();if(num==0){return;}$(this).next().val(parseInt(--num));$(this).parent().next().next().next().text(20-num)$(this).parent().next().next().text('有货') money ()})function money () {var price=$('.jia').parent().next();var num= $('.jia').prev();var xiaoji = $('.xiaoji');var sum = 0.0;for (var i=0;i<price.length;i++) {var price1 = parseFloat(price.eq(i).text()); var num1 = parseFloat(num.eq(i).val()); // alert(price1*num1)xiaoji.eq(i).text((price1*num1).toFixed(2)) sum+=price1*num1;}$('.total').text(sum.toFixed(2));}</script></body></html>。
JSP 使用session购物车当客户在某家网站购买大量的各种商品时,需要跳转页面的次数会很多。
每当客户选择一种商品就需要把这种商品的信息记录到某个位置,并且这个记录能跟踪客户直到最后结账。
这样的“信息记录的位置”类似于某人去超市购物时使用的购物车,所以也把它形象的叫做“购物车”。
session对象可用于跟踪浏览者,本练习使用session对象实现简易的购物车。
这里需要三个页面相互协作来完成任务,第一个页面用于展示商品,供客户来选择,第二个页面用于实现购物流程的控制(选择继续购物或结账),另一个负责对客户结账处理。
步骤如下:(1)创建选择商品页面:shop.jsp,其效果如图3-19所示。
为了方便演示起见,本练习把客户选择商品过程简化为一个文本输入框,直接让客户输入商品名即可。
文件核心代码如下所示。
图3-19 选择商品<form name="form1" method="post" action="doShop.jsp"><div align="left"><table width="100%" border="0" cellspacing="5"><tr><td><p>请选择要购买的商品:<input type="text" name="goods"><input type="submit" name="Submit" value="提交"></p></td></tr></table></div></form>客户选择的商品数据并加入到购物车,另一个就是实现购物流程的控制(继续购物或结账)。
Jsp购物车实例打开Tomcat,启动服务,在浏览器地址栏输入http://localhost:8080/dd/show.jsp,dd为自己建立的文件夹,位置为C:\Tomcat 7.0\webapps\dd程序结果截图如下:购买商品操作:移除商品操作:清空购物车操作:Jsp源程序C:\Tomcat 7.0\webapps\dd 文件中的文件Index.jsp源程序<%@ page contentType="text/html;charset=gb2312"%><jsp:forward page="/index"/>Shopcar.jsp源程序<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.util.ArrayList" %><%@ page import="com.yxq.valuebean.GoodsSingle" %><%//获取存储在session中用来存储用户已购买商品的buylist集合对象ArrayList buylist=(ArrayList)session.getAttribute("buylist");float total=0; //用来存储应付金额%><table border="1" width="450" rules="none" cellspacing="0" cellpadding="0"> <tr height="50"><td colspan="5" align="center">购买的商品如下</td></tr> <tr align="center" height="30" bgcolor="lightgrey"><td width="25%">名称</td><td>价格(元/斤)</td><td>数量</td><td>总价(元)</td><td>移除(-1/次)</td></tr><% if(buylist==null||buylist.size()==0){ %><tr height="100"><td colspan="5" align="center">您的购物车为空!</td></tr> <%}else{for(int i=0;i<buylist.size();i++){GoodsSingle single=(GoodsSingle)buylist.get(i);String name=single.getName(); //获取商品名称float price=single.getPrice(); //获取商品价格int num=single.getNum(); //获取购买数量//计算当前商品总价,并进行四舍五入float money=((int)((price*num+0.05f)*10))/10f;total+=money; //计算应付金额%><tr align="center" height="50"><td><%=name%></td><td><%=price%></td><td><%=num%></td><td><%=money%></td><td><a href="doCar?action=remove&name=<%=single.getName() %>">移除</a></td></tr><%}}%><tr height="50" align="center"><td colspan="5">应付金额:<%=total%></td></tr><tr height="50" align="center"><td colspan="2"><a href="show.jsp">继续购物</a></td><td colspan="3"><a href="doCar?action=clear">清空购物车</a></td> </tr></table>Show.jsp源程序为:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.util.ArrayList" %><%@ page import="com.yxq.valuebean.GoodsSingle" %><% ArrayList goodslist=(ArrayList)session.getAttribute("goodslist"); %><table border="1" width="450" rules="none" cellspacing="0" cellpadding="0"> <tr height="50"><td colspan="3" align="center">提供商品如下</td></tr><tr align="center" height="30" bgcolor="lightgrey"><td>名称</td><td>价格(元/斤)</td><td>购买</td></tr><% if(goodslist==null||goodslist.size()==0){ %><tr height="100"><td colspan="3" align="center">没有商品可显示!</td></tr><%}else{for(int i=0;i<goodslist.size();i++){GoodsSingle single=(GoodsSingle)goodslist.get(i);%><tr height="50" align="center"><td><%=single.getName()%></td><td><%=single.getPrice()%></td><td><a href="doCar?action=buy&id=<%=i%>">购买</a></td></tr><%}}%><tr height="50"><td align="center" colspan="3"><a href="shopcar.jsp">查看购物车</a></td> </tr></table>WEB-INF文件中的文件为Web.xml内容:<?xml version="1.0" encoding="UTF-8"?><web-app><!-- 配置IndexServlet --><servlet><servlet-name>indexServlet</servlet-name><servlet-class>com.yxq.servlet.IndexServlet</servlet-class></servlet><servlet-mapping><servlet-name>indexServlet</servlet-name><url-pattern>/index</url-pattern></servlet-mapping><!-- 配置BuyServlet --><servlet><servlet-name>buyServlet</servlet-name><servlet-class>com.yxq.servlet.BuyServlet</servlet-class></servlet><servlet-mapping><servlet-name>buyServlet</servlet-name><url-pattern>/doCar</url-pattern></servlet-mapping></web-app>Classes内容C:\Tomcat 7.0\webapps\dd\WEB-INF\classes\com\yxqSrc内容C:\Tomcat 7.0\webapps\dd\src\com\yxq编译后放入C:\Tomcat 7.0\webapps\dd\WEB-INF\classes\中C:\Tomcat 7.0\webapps\dd\src\com\yxq\servlet内容为BuyServlet.java源程序package com.yxq.servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.yxq.toolbean.MyTools;import com.yxq.toolbean.ShopCar;import com.yxq.valuebean.GoodsSingle;public class BuyServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String action=request.getParameter("action"); //获取action参数值if(action==null)action="";if(action.equals("buy")) //触发了“购买”请求buy(request,response); //调用buy()方法实现商品的购买if(action.equals("remove")) //触发了“移除”请求remove(request,response); //调用remove()方法实现商品的移除if(action.equals("clear")) //触发了“清空购物车”请求clear(request,response); //调用clear()方法实现购物车的清空}//实现购买商品的方法protected void buy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();String strId=request.getParameter("id"); //获取触发“购买”请求时传递的id 参数,该参数存储的是商品在goodslist对象中存储的位置int id=MyTools.strToint(strId);ArrayList goodslist=(ArrayList)session.getAttribute("goodslist");GoodsSingle single=(GoodsSingle)goodslist.get(id);ArrayList buylist=(ArrayList)session.getAttribute("buylist"); //从session范围内获取存储了用户已购买商品的集合对象if(buylist==null)buylist=new ArrayList();ShopCar myCar=new ShopCar();myCar.setBuylist(buylist); //将buylist对象赋值给ShopCar 类实例中的属性myCar.addItem(single); //调用ShopCar类中addItem()方法实现商品添加操作session.setAttribute("buylist",buylist);response.sendRedirect("show.jsp"); //将请求重定向到show.jsp页面}//实现移除商品的方法protected void remove(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {HttpSession session=request.getSession();ArrayList buylist=(ArrayList)session.getAttribute("buylist");String name=request.getParameter("name");ShopCar myCar=new ShopCar();myCar.setBuylist(buylist); //将buylist对象赋值给ShopCar 类实例中的属性myCar.removeItem(MyTools.toChinese(name)); //调用ShopCar类中removeItem ()方法实现商品移除操作response.sendRedirect("shopcar.jsp");}//实现清空购物车的方法protected void clear(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();ArrayList buylist=(ArrayList)session.getAttribute("buylist"); //从session 范围内获取存储了用户已购买商品的集合对象buylist.clear(); //清空buylist集合对象,实现购物车清空的操作response.sendRedirect("shopcar.jsp");}}IndexServlet.java源程序package com.yxq.servlet;import java.io.IOException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.yxq.valuebean.GoodsSingle;public class IndexServlet extends HttpServlet {private static ArrayList goodslist=new ArrayList();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session=request.getSession();session.setAttribute("goodslist",goodslist);response.sendRedirect("show.jsp");}static{ //静态代码块String[] names={"苹果","香蕉","梨","橘子"};float[] prices={2.8f,3.1f,2.5f,2.3f};for(int i=0;i<4;i++){GoodsSingle single=new GoodsSingle();single.setName(names[i]);single.setPrice(prices[i]);single.setNum(1);goodslist.add(single);}}}C:\Tomcat 7.0\webapps\dd\src\com\yxq\toolbean内容MyTools.java源程序:package com.yxq.toolbean;import java.io.UnsupportedEncodingException;public class MyTools {public static int strToint(String str){ //将String型数据转换为int型数据的方法if(str==null||str.equals(""))str="0";int i=0;try{i=Integer.parseInt(str);}catch(NumberFormatException e){i=0;e.printStackTrace();}return i;}public static String toChinese(String str){ //进行转码操作的方法if(str==null)str="";try {str=new String(str.getBytes("ISO-8859-1"),"gb2312");} catch (UnsupportedEncodingException e) {str="";e.printStackTrace();}return str;}}ShopCar.java源程序package com.yxq.toolbean;import java.util.ArrayList;import com.yxq.valuebean.GoodsSingle;public class ShopCar {private ArrayList buylist=new ArrayList(); //用来存储购买的商品public void setBuylist(ArrayList buylist) {this.buylist = buylist;}/*** @功能向购物车中添加商品* @参数single为GoodsSingle类对象,封装了要添加的商品信息*/public void addItem(GoodsSingle single){if(single!=null){if(buylist.size()==0){ //如果buylist中不存在任何商品GoodsSingle temp=new GoodsSingle();temp.setName(single.getName());temp.setPrice(single.getPrice());temp.setNum(single.getNum());buylist.add(temp); //存储商品}else{//如果buylist中存在商品int i=0;for(;i<buylist.size();i++){ //遍历buylist集合对象,判断该集合中是否已经存在当前要添加的商品GoodsSingle temp=(GoodsSingle)buylist.get(i); //获取buylist集合中当前元素if(temp.getName().equals(single.getName())){ //判断从buylist集合中获取的当前商品的名称是否与要添加的商品的名称相同//如果相同,说明已经购买了该商品,只需要将商品的购买数量加1temp.setNum(temp.getNum()+1); //将商品购买数量加1break;//结束for循环}}if(i>=buylist.size()){ //说明buylist中不存在要添加的商品GoodsSingle temp=new GoodsSingle();temp.setName(single.getName());temp.setPrice(single.getPrice());temp.setNum(single.getNum());buylist.add(temp); //存储商品}}}}/*** @功能从购物车中移除指定名称的商品* @参数name表示商品名称*/public void removeItem(String name){for(int i=0;i<buylist.size();i++){ //遍历buylist集合,查找指定名称的商品GoodsSingle temp=(GoodsSingle)buylist.get(i); //获取集合中当前位置的商品if(temp.getName().equals(name)){ //如果商品的名称为name参数指定的名称if(temp.getNum()>1){ //如果商品的购买数量大于1temp.setNum(temp.getNum()-1); //则将购买数量减1break; //结束for循环}else if(temp.getNum()==1){ //如果商品的购买数量为1buylist.remove(i); //从buylist集合对象中移除该商品}}}}}C:\Tomcat 7.0\webapps\dd\src\com\yxq\valuebean内容GoodsSingle.java源程序package com.yxq.valuebean;public class GoodsSingle {private String name; //保存商品名称private float price; //保存商品价格private int num; //保存商品购买数量public String getName() {return name;}public void setName(String name) { = name;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;} }。