应用Servlet实现购物车_第1页
应用Servlet实现购物车_第2页
应用Servlet实现购物车_第3页
应用Servlet实现购物车_第4页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论