版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.应用 Servlet实现购物车具体实现过程1、创建封装商品信息的值JavaBean-GoodsSinglepublic 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
2、 num) this.num = num;.专业 .专注.public float getPrice() return price;public void setPrice(float price) this.price = price;2、创建工具 JavaBean-MyTools实现字符型数据转换为整型及乱码处理public class MyTools public static int strToint(String str)/ 将 String型数据转换为int 型数据的方法if(str=null|str.equals("")str="0"int
3、 i=0;try.专业 .专注.i=Integer.parseInt(str);/ 把 str 转换成 int类型的变量catch(NumberFormatExceptione)/try-catch 就是监视 try 中的语句 ,如果抛出 catch 中声明的异常类型i=0;e.printStackTrace();/ 把Exception的详细信息打印出来return i;public static String toChinese(String str)/ 进行转码操作的方法if(str=null)str=""try str=newString(str.getBytes(
4、"ISO-8859-1"),"gb2312"); catch (UnsupportedEncodingException e) str=""e.printStackTrace();.专业 .专注.return str;3、创建购物车JavaBean- ShopCar实现添加 、删除,购物车制作public class ShopCar private ArrayList buylist=new ArrayList();/ 用来存储购买的商品public void setBuylist(ArrayList buylist) this.bu
5、ylist = 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.getNu
6、m();buylist.add(temp);/ 存储商品else/ 如果 buylist 中存在商品 int i=0; for(;i<buylist.size();i+)/ 遍历 buylist 集合对象 ,判断该集合中是否已经存在当前要添加的商品GoodsSingletemp=(GoodsSingle)buylist.get(i);/ 获取buylist集合中当前元素.专业 .专注.if(temp.getName().equals(single.getName()/ 判断从 buylist 集合中获取的当前商品的名称是否与要添加的商品的名称相同/ 如果相同 ,说明已经购买了该商品 ,只
7、需要将商品的购买数量加 1temp.setNum(temp.getNum()+1);/ 将商品购买数量加 1 break;/ 结束 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);/ 存储商品.专业 .专注./* 功能 从购物车中移除指定名称的商品* 参
8、数 name 表示商品名称*/public void removeItem(String name)for(int i=0;i<buylist.size();i+)/ 遍历buylist集合,查找指定名称的商品GoodsSingletemp=(GoodsSingle)buylist.get(i);/ 获取集合中当前位置的商品 if(temp.getName().equals(name)/ 如果商品的名称为 name 参数指定的名称if(temp.getNum()>1)/如果商品的购买数量大于1temp.setNum(temp.getNum()-1);/ 则将购买数量减 1break
9、;/结束 for 循环else if(temp.getNum()=1)/ 如果商品的购买数量为1.专业 .专注.buylist.remove(i);/从buylist集合对象中移除该商品4、创建实例首页面index.jsp ,初始化商品信息<%pagecontentType="text/html;charset=gb2312"%> <jsp:forward page="/index"/>5、创 建 处 理 用 户 访 问 首 页 面 请 求 的Servlet-IndexServlet.专业 .专注.public class Ind
10、exServlet extends HttpServlet private static ArrayList goodslist=new ArrayList();protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponse response) throws ServletException, IOException doPost(request,response);protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsSe
11、rvletException, 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;.专业 .专注.f
12、or(int i=0;i<4;i+)GoodsSingle single=new GoodsSingle();single.setName(namesi);single.setPrice(pricesi);single.setNum(1);goodslist.add(single);6、show.jsp显示商品信息<%pagegoodslist=(ArrayList)session.getAttribute("goodslist");%><tableborder="1"width="450"rules=&quo
13、t;none".专业 .专注.cellspacing="0" cellpadding="0"><trheight="50"><tdcolspan="3"align="center">提供商品如下 </td></tr><tralign="center"height="30"bgcolor="lightgrey"><td> 名称 </td>&
14、lt;td> 价格 ( 元/ 斤)</td><td> 购买 </td></tr><% if(goodslist=null|goodslist.size()=0) %> <tr height="100"><td colspan="3" align="center">没有商品可显示 !</td></tr><%elsefor(int i=0;i<goodslist.size();i+)GoodsSinglesingl
15、e=(GoodsSingle)goodslist.get(i);%><tr height="50" align="center"><td><%=single.getName()%></td><td><%=single.getPrice()%></td>.专业 .专注.<td><ahref=" doCar ?action=buy&id=<%=i%>">购买</a></td><
16、/tr><%>7、 创建处理用户购买 、移除、清空购物车请求的 Servlet Servlet- BuyServlet.专业 .专注.public class BuyServlet extends HttpServlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doPost(request,response);protected void doPost(HttpServletReques
17、t 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("
18、remove")/ 触发了“移除 ”请求remove(request,response);/ 调用 remove() 方法实现商品的移除if(action.equals("clear")/ 触发了“清空购物车 ”请求clear(request,response);/ 调用clear() 方法实现购物车的清空/ 实现购买商品的方法protected void buy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSe
19、ssion session=request.getSession();String strId=request.getParameter("id");/ 获取触发 “购买 ”请求时传递的id 参数,该参数存储的是商品在goodslist对象中存储的位置int id=MyTools.strToint(strId);ArrayListgoodslist=(ArrayList)session.getAttribute("goodslist");GoodsSingle.专业 .专注.single=(GoodsSingle)goodslist.get(id);Ar
20、rayListbuylist=(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
21、("buylist",buylist);response.sendRedirect("show.jsp");/ 将请求重定向到show.jsp页面/ 实现移除商品的方法protected void remove(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException .专业 .专注.HttpSession session=request.getSession(); ArrayListbuylist=(ArrayList)ses
22、sion.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"
23、);/ 实现清空购物车的方法protected void clear(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException HttpSession session=request.getSession();ArrayListbuylist=(ArrayList)session.getAttribute("buylist");/ 从 session 范围内获取存储了用户已购买商品的集合对.专业 .专注.象buylist.clear();/ 清空
24、buylist 集合对象 ,实现购物车清空的操作response.sendRedirect("shopcar.jsp");8、在 web.xml文件中配置 Servlet<?xml version="1.0" encoding="UTF-8"?> <web-app><!-配置 IndexServlet -><servlet><servlet-name>indexServlet</servlet-name></servlet><servlet-ma
25、pping><servlet-name>indexServlet</servlet-name> <url-pattern> /index </url-pattern></servlet-mapping><!-配置 BuyServlet ->.专业 .专注.<servlet><servlet-name>buyServlet</servlet-name></servlet><servlet-mapping><servlet-name>buyServl
26、et</servlet-name> <url-pattern> /doCar </url-pattern></servlet-mapping></web-app>9、创建页面 shopcar.jsp购物车<%pagecontentType="text/html;charset=gb2312"%><%page.专业 .专注.<%/ 获取存储在 session 中用来存储用户已购买商品的buylist集合对象ArrayListbuylist=(ArrayList)session.getAttri
27、bute("buylist");float total=0;/ 用来存储应付金额%><tableborder="1"width="450"rules="none"cellspacing="0" cellpadding="0"><trheight="50"><tdcolspan="5"align="center">购买的商品如下 </td></tr>&l
28、t;tralign="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>.专业 .专注.<%elsefor(int i=0;i<buylist.size();i+)GoodsSinglesingle=(GoodsSingle)buylist.get(i);Strin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省绵阳市北川羌族自治县2025届九年级上学期1月期末考试化学试卷答案
- 山东省滨州市2025届高三上学期1月期末考试数学试题(含答案)
- 2025年度35KV电力设施建设与维护合同模板3篇
- 2024年一级建造师之一建工程法规题库附完整答案【历年真题】
- 2025年度互联网公司HR实习生培养及人才储备合同3篇
- 2024陶瓷行业品牌授权合作合同3篇
- 《财经应用文写作》课件-项目四 任务四 经济合同的相关专业名词解释
- 2024年金融服务风险评估与管理合同
- 2024集体土地评估与入市交易合同
- 2025年度人工智能语音助手开发与授权合同模板(含技术支持条款)3篇
- 档案馆业务管理制度
- 神经根型颈椎病演示课件
- 第十六章1二次根式第一课时
- 2022年10月全国自考英语(一)真题试卷含答案
- 建筑行业试验员培训试验检测基础
- 2024年国药集团招聘笔试参考题库含答案解析
- 2024届北京初三中考 病句修改专题讲义及其专题练习 学案
- 特种设备使用安全风险日管控、周排查、月调度管理制度
- 贵州省贵阳市花溪区2022-2023学年四年级上学期语文期末试卷
- 基础课部本科教学工作合格评估自评工作汇报-PPT2015-10-9-2
- 装饰装修工程施工方案(完整版)
评论
0/150
提交评论