




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目标:掌握购物车得信息如何存储;掌握购物车常用功能得实现。主要内容:首先分析用户上网购物得一般过程;介绍采用什么样得数据结构存储购物信息;编写购物界而;完成向购物车添加物品得功能。1、用户上网购物得一般过程在浏览物品得过程中如果对某件物品感兴趣,会添加到购物车(购物篮)中,随时可以查瞧 购物车中得信息,如果不想要某件物品得话,可以删除,或者修改某种物品得数量,或者整个淸 空购物车,可以继续选择物品向购物车中添加。最后用户可以购物这些物品,经过输入个人得 送货地址信息与设左交易方式之后,可以生成订单。网站得管理员可以对订单进行管理。本实例模拟这个过程,但就是进行了简化:只能在物品列表中选择物品向
2、购物车中添加。 确定购买后,不需要设置交易方式以及付款等。实际处理过程,可以使用我们前而介绍得功能 完成。2、购物车信息组织因为在用户访问网站得整个过程中都可以访问购物车信息,所以购物车对象应该存放在 session 中。因为用户购买得物品得种类与数量都不确定,所以需要使用一个合适得数据结构存储, 我们选择ArrayListo每一种物品都涉及数量,需要进行封装,把物品与数量封装成购物项,使用Item,每个Item 对应一种物品以及该种物品得数量。需要编写物品类表示物品得基本信息。参考代码如下:2、1物品类该类中包含两个与分页显示相关得方法。其中用到得DBBean就是前面介绍得。 package
3、 javabean;import java、utik ArrayList;import java、sqk *;public class Goodsprivate String goodsid;private String goods name;private float price;物品编号public void setGoodsid(String goodsid)this、goodsid = goodsid;public String getGoodsid()return goodsid;物品名称public void setGoods name(Sring goods name)this、
4、goodsname = goodsname;public String getGoodsname()return goods name;物品价格public void setPrice(float price)this、price = price;public float getPrice()return price;public ArrayList getGoodsByPage(int pageNo) int number = 10;/每一页显示得记录数int begin = (pageNo * number) - 9;int end = pageNo * number;int index
5、= 1;DBBean db = new DBBean();要返回得结果对象ArrayList goods = new ArrayList();String sql = ”select * from goods;ResultSet rs;tryrs = db、executeQuery(sql,null); while (rs、next() /在begin之前得记录就是不显示得 if (index end)break;index+;String goodsid = rs、getString(l);String goodsname = rs、getString(2); float price = r
6、s、getFloat(3);Goods g = new Goods();g、setGoodsid(goodsid);g、setGoodsname(goodsname);g、setPrice(price); goods、add(g);catch(Exception e)e、printStackTrace();finallydb、close();return goods;public Goods findGoodsByld(String goodsid)try /编写查询数据库信息得SQL语句String sql = select * from goods where goodsid=?H;DBB
7、ean db = new DBBean();ArrayList params = new ArrayList(); params, add(goodsid);ResultSet rs = db. executeQuery(sql,params);if(rs、next()/String goodsid =rs、getString(l);String goods name = rs getStri ng(2);float price = rs、getFloat(3);Goods temp = new Goods();temp. setGoodsid(goodsid);temp. setGoodsn
8、ame(goodsname);temp. setPrice(price);db、close();return temp;elsereturn null; catch (Exception e) System. ou仁 println(e、toStringO); return null;public int getPageCount() try /编写查询数据库信息得SQL语句String sql = select countC) from goods; DBBean db = new DBBean();ResultSet rs=db、executeQuery(sql,null); int nu
9、mber=0;if(rs、next()number = rs、getlnt(1);db、close(); return (number 1) / 10 + 1; catch (Exception e) return 0;2、2 Item 类package javabean;/购物项public class Itemprivate Goods goods;private int quantity;public ltem(Goods d,int quantity)this、goods = d;this、quantity = quantity;public void setGoods(Goods g
10、oods)this、goods = goods;public Goods getGoods()return goods;public void setQuantity(int quantity)this、quantity = quantity;public int getQuantity()return quantity;3、物品信息显示功能采用MVC模式,考虑视图部分,不需要输入界面,只需要显示信息得界面。 模型部分,在前面得代码中已经实现。控制器部分,需要编写GetAIIGoods、java。参考代码分别如下:3、1界而代码文件名:goodslist、jspa href=HgetAIIGo
11、ods?pageNo=1、第一页一页v/a 下一页最后一页 物品编号物品名称物品价格$g、goodsid$g、goods name$g、price goodsid、添加到购物车3、2控制器代package servlet;import java、io、;import javax. servlet、;import javax. servlet、*;import javabeanx *;import java、utik *;public class GetAIIGoods extends Servletpublic void doGet(ServletRequest request,Servlet
12、Response response) throws IOException,ServletException/response setContentType(Mtext/html;charset=gb2312M);/Printwriter out = response、getWriter();/第一步:获取用户得输入信息String pageNo二request、getParameter(”pageNo”);int iPageNo=1;if(pageNo!=null)iPageNo = Integer、parse I nt(pageNo);/第二步:调用JavaBeanGoods g = ne
13、w Goods();ArrayList goods=null;goods = g. getGoodsByPage(iPageNo);int pageCount二g、getPageCount();/ out、printing记录数T+users、size();/ out、printing当前页码T+iPageNo);/ out、printing总页码:,+pageCount);/第三步:传值 request、setAttribute(”goods”,goods);request、setAttribute(MpageNoM,new Integer(iPageNo);request、setAttri
14、bute(wpageCounterw,new Integer(pageCount);/第四步:选择一个界面对用户进行响应String forward-goodslist、jspM;RequestDispatcher rd = request、getRequestDispatcher(forward);rd. forward(request,response);public void doPost(ServletRequest request,ServletResponse response)throws IOException,ServletExceptiondoGet(request,res
15、ponse);4、显示购物车中信息该功能直接从session中获取购物车信息,所以不需要控制器与模型部分,只需要编写显 示购物车信息得JSP文件即可,文件名为cart、jsp,参考代码如下:购物车中得信息vtd物品编号v/tdvtd物品名称v/tdvtd 价格 数量 $item. goods. goodsid$item. goods、goodsname$item. goods、price$item. quantity5、向购物车中添加物品采用MVC模式。首先考虑输入与输岀,添加物品得输入就就是物品信息列表界而,输出应该就是添加后 得购物车信息界而(也可以重新回到物品信息界而),这两个界面都不需
16、要编写。考虑模型部分,需要编写购物车管理JavaBean,完成处理。考虑控制器部分,需要获取用户选择得物品,然后添加到调用购物车管理Bean,完成添 加。下而就是参考代码。5、1模型部分文件名 CartManager javapackage javabean;import java、utik ArrayList;public class CartManager/表示购物车private ArrayList cart;public void setCart(ArrayList cart)this、cart = cart;public ArrayList getCart()return cart;
17、添加得物品&数疑public ArrayList addToCart(Goods g,int quantity)if(cart=null)/实例化购物车对象cart二new ArrayList();添加到购物车Item item = new ltem(g,quantity);cart、add(item);)else转换成数组Object items = cart、toArray();boolean find=false; /表示就是否查找到for(int i=O;ivitems、length;i+)Item temp = (ltem)itemsi;/判断购物车中就是否存在要添加得物品if (t
18、emp x getGoods(). getGoodsid()、equals(g、getGoodsid() temp、 setQuantity(temp、getQuantity()+quantity);find=true;break;if(find)/添加到购物车Item item = new ltem(g,quantity);cart、add(item);return cart;)5、2控制群部分文件名:AddToCart、javapackage servlet;import java、io、;import javax. servlet、;import javax. servlet、*;imp
19、ort javabean ximport java、utik *;public class AddToCart extends Servletpublic void doGet(ServletRequest request,ServletResponse response) throws IOException,ServletException/responsex setContentType(Mtext/html;charset=gb2312M);/Printwriter out = response、getWriter();try得到要添加得物品得编号String goodsid = re
20、quest、getParameterCoodsid;/创建JavaBean对象CartManager cartManager=new CartManager();/得到session对象Session session = request、getSession(true);得到购物车对象ArrayList cart = (ArrayList)session、getAttribute(,cartH);/ 用 cart 初始化 cartManagercartManager setCart(cart);/构造物品对象Goods g = new Goods();g = g、findGoodsByld(g
21、oodsid);/ out、printing、getGoodsid();cartManager、addToCart(g,1);/先把购物车重新存到sessionsession. setAttribute(McartH,cartManager. getCart();catch(Exception e)/ out、println(e、toStringO);response、sendRedirect(”cart、jspH);public void doPost(ServletRequest request,ServletResponse response) throws IOException,Se
22、rvletExceptiondoGet(request,response);)6、Servlet得配置web、xml文件内容如下: 4” xmlns=m,xmlns:xsi=m,xsi:schemaLocati on=”MgetAIIGoodsv/servle卜 nameservlet、GetAIIGoodsgetAIIGoodsv/servlet nameurl-patter nA/getAIIGoodsv/urlpattemAaddToCartservlet AddToCartservlet-nameAaddToCart/addToCart7、运行编译所有文件,然后先访问getAIIGoo
23、ds Servlet,然后在物品信息界而上选择物品添加 到购物车,之后就可以瞧到购物车中得信息了。主要内容:I完成购物车得其她基本功能;I生成订单;I小结1、购物车得其它功能对购物车得物品数量修改与物品删除功能就是两外两个基本功能。实现过程与添加工 程比较类似,这里只给岀参考代码:仁1模型部分文件:CartManager. java(在上一讲得基础上修改,红色部分为添加得内容) package javabean;import java、utik ArrayList;import java、utik Iterator;public class CartManager/表示购物车private A
24、rrayList cart;public void setCart(ArrayList cart)this、cart = cart;public ArrayList getCart()return cart;添加得物品&数疑public ArrayList addlbCart(Goods gjnt quantity)if(cart=null)/实例化购物车对象cart二new ArrayList();/添加到购物车Item item = new ltem(g,quantity);cart、add(item);)else转换成数组Object items = cart toArray();boo
25、lean find=false; 表示就是否查找到for(int i=0;i add(item);return cart;public void delete(String goodsid)/转换成Iterator对象Iterator i = cart. iterator();while仏 hasNext()得到一个购物项Item temp = (ltem)i、next();if (temp getGoods()x getGoodsidf). equals(goodsid)cart、remove(temp); break;public void update(String goodsidjnt
26、 quantity)Iterator i = cart. iterator();while(i hasNext()得到一个购物项Item temp = (ltem)i、next();if(temp、getGoods(). getGoodsid()、equals(goodsid)temp. setQuantity(quantity); break;1、2修改视图部分文件划:cart、jsp(在上一讲得基础上修改,红色部分为添加得内容) 购物车中得信息vbrvtd物品编号v/tdAvtd物品名称v/tdA 价格 数量 input type=MhiddenH name=MgoodsidM value
27、=$item、goods, goodsid、 $item goods. goodsidvtd$item、goods, goodsnamev/tdvtd$item、goods. pricetdxinput type=HsubmitM name=MactionM value修改1、3控制器删除与修改功能使用相同得控制器,会根据提交按钮得值确定要完成得功能,参考代码 如下:文件名:ProcessCart、javapackage servlet;import java、io、;import javax. servlet、import javax. servlet、*;import javabean.;
28、import java、utik *;public class ProcessCart extends Servletpublic void doGet(ServletRequest request,ServletResponse response)throws IOException,ServletException/responsex setContentType(”text/html;charset二gb2312”);/Printwriter out = response x getWriter();try/ reques仁 setCharacterEncoding(Mgb2312M);
29、得到要添加得物品得编号String goodsid = request、getParameter(HgoodsidM);/得到执行命令:删除还就是修改String action = request、getParameter(HactionM);action=new String (action、getBytes(M8859_1M);/out、println(action);String quantity二null;inaction、equals修改J)quantity = request. getParameter(nquantity”);/创建JavaBean对彖CartManager ca
30、rtManager=new CartManager();得到session对象Session session = request、getSession(true);得到购物车对象ArrayList cart = (ArrayList)session getAttribute(ncartM);/ 用 cart 初始化 cartManager cartManager、setCart(cart);if (action equals 修改 J)cartManager、update(goodsid,Integer、parselnt(quantity);elsecartManager、delete(goo
31、dsid);/把购物车重新存到sessionsession、setAttribute(”cart”,cartManager、getCart();catch(Exception e)/out、printing、toStringO);responsex sendRedirecfcart、jsp);public void doPost(ServletRequest request,ServletResponse response)throws IOException,ServletExceptiondoGet(request,response);)2、生成订单如果用户购物完成会下订单,通常需要输入个人得送货信息等,然后把订单信息存储到 数据库中。这里这介绍如何组织信息,存储信息得过程不再介绍。需要两张表:订单表订单明细表订单表中信息:订单号:日期+流水号,通常作主键I订单得发岀者:通常从session中获取信息或者让用户输入(没有登录得情况下)I订单得日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度保健食品配送与品牌推广合作协议
- 付费验车合同范本
- 供暖管网改造合同范例
- 亲戚车辆过户合同范例
- 仪器采购制度合同范例
- 不房产赠与合同范例
- 个体酒吧转让合同范例
- 兰州新区餐饮合同范例
- 浆砌拱形护坡施工方案
- 公司聘用会计合同范例
- 马达检测报告
- 拼音疯狂背古诗(6个单元120首)
- 阅读让我们更聪明
- 牙周病科普讲座课件
- 实验室安全专项培训
- 工业地产营销推广方案
- 2024年贵州能源集团电力投资有限公司招聘笔试参考题库附带答案详解
- 电子产品设计案例教程(微课版)-基于嘉立创EDA(专业版) 课件 第3章 多谐振荡器的PCB设计
- 铁路轨道与修理
- 纺织行业清洁生产评价指标体系色纱
- 管理能力测试题大全
评论
0/150
提交评论