已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目标 l 掌握购物车的信息如何存储 l 掌握购物车常用功能的实现 主要内容 l 首先分析用户上网购物的一般过程 l 介绍采用什么样的数据结构存储购物信息 l 编写购物界面 l 完成向购物车添加物品的功能 1 用户上网购物的一般过程 在浏览物品的过程中如果对某件物品感兴趣 会添加到购物车 购物篮 中 随时可 以查看购物车中的信息 如果不想要某件物品的话 可以删除 或者修改某种物品的数量 或者整个清空购物车 可以继续选择物品向购物车中添加 最后用户可以购物这些物品 经过输入个人的送货地址信息和设定交易方式之后 可以生成订单 网站的管理员可以 对订单进行管理 本实例模拟这个过程 但是进行了简化 只能在物品列表中选择物品向购物车中添加 确定购买后 不需要设置交易方式以及付款等 实际处理过程 可以使用我们前面介绍 的功能完成 2 购物车信息组织 因为在用户访问网站的整个过程中都可以访问购物车信息 所以购物车对象应该存放 在 session 中 因为用户购买的物品的种类和数量都不确定 所以需要使用一个合适的数据结构存储 我们选择 ArrayList 每一种物品都涉及数量 需要进行封装 把物品和数量封装成购物项 使用 Item 每 个 Item 对应一种物品以及该种物品的数量 需要编写物品类表示物品的基本信息 参考代码如下 2 1 物品类 该类中包含两个与分页显示相关的方法 其中用到的 DBBean 是前面介绍的 package javabean import java util ArrayList import java sql public class Goods private String goodsid private String goodsname private float price 物品编号 public void setGoodsid String goodsid this goodsid goodsid public String getGoodsid return goodsid 2 物品名称 public void setGoodsname String goodsname this goodsname goodsname public String getGoodsname return goodsname 物品价格 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 1 DBBean db new DBBean 要返回的结果对象 ArrayList goods new ArrayList String sql select from goods ResultSet rs try rs db executeQuery sql null while rs next 在 begin 之前的记录是不显示的 if index end break index 3 String goodsid rs getString 1 String goodsname rs getString 2 float price rs getFloat 3 Goods g new Goods g setGoodsid goodsid g setGoodsname goodsname g setPrice price goods add g catch Exception e e printStackTrace finally db close return goods public Goods findGoodsById String goodsid try 编写查询数据库信息的 SQL 语句 String sql select from goods where goodsid DBBean db new DBBean ArrayList params new ArrayList params add goodsid ResultSet rs db executeQuery sql params if rs next String goodsid rs getString 1 String goodsname rs getString 2 float price rs getFloat 3 Goods temp new Goods temp setGoodsid goodsid temp setGoodsname goodsname temp setPrice price db close return temp else return null catch Exception e 4 System out println e toString return null public int getPageCount try 编写查询数据库信息的 SQL 语句 String sql select count from goods DBBean db new DBBean ResultSet rs db executeQuery sql null int number 0 if rs next number rs getInt 1 db close return number 1 10 1 catch Exception e return 0 2 2 Item 类 package javabean 购物项 public class Item private Goods goods private int quantity public Item Goods d int quantity this goods d this quantity quantity public void setGoods Goods goods this goods goods public Goods getGoods return goods public void setQuantity int quantity this quantity quantity 5 public int getQuantity return quantity 3 物品信息显示功能 采用 MVC 模式 考虑视图部分 不需要输入界面 只需要显示信息的界面 模型部分 在前面的代码中已经实现 控制器部分 需要编写 GetAllGoods java 参考代码分别如下 3 1 界面代码 文件名 goodslist jsp 第一页 上一页 下一页 最后一页 物品编号 物品名称 物品价格 g goodsid g goodsname 6 g price 添加到购物车 3 2 控制器代 package servlet import java io import javax servlet import javax servlet http import javabean import java util public class GetAllGoods extends HttpServlet public void doGet HttpServletRequest request HttpServletResponse response throws IOException ServletException response setContentType text html charset gb2312 PrintWriter out response getWriter 第一步 获取用户的输入信息 String pageNo request getParameter pageNo int iPageNo 1 if pageNo null iPageNo Integer parseInt pageNo 第二步 调用 JavaBean Goods g new Goods ArrayList goods null goods g getGoodsByPage iPageNo int pageCount g getPageCount out println 记录数 users size out println 当前页码 iPageNo out println 总页码 pageCount 第三步 传值 7 request setAttribute goods goods request setAttribute pageNo new Integer iPageNo request setAttribute pageCounter new Integer pageCount 第四步 选择一个界面对用户进行响应 String forward goodslist jsp RequestDispatcher rd request getRequestDispatcher forward rd forward request response public void doPost HttpServletRequest request HttpServletResponse response throws IOException ServletException doGet request response 4 显示购物车中信息 该功能直接从 session 中获取购物车信息 所以不需要控制器和模型部分 只需要编 写显示购物车信息的 JSP 文件即可 文件名为 cart jsp 参考代码如下 购物车中的信息 物品编号 物品名称 价格 数量 item goods goodsid item goods goodsname item goods price item quantity 5 向购物车中添加物品 采用 MVC 模式 首先考虑输入和输出 添加物品的输入就是物品信息列表界面 输出应该是添加后的 购物车信息界面 也可以重新回到物品信息界面 这两个界面都不需要编写 考虑模型部分 需要编写购物车管理 JavaBean 完成处理 考虑控制器部分 需要获取用户选择的物品 然后添加到调用购物车管理 Bean 完 成添加 下面是参考代码 5 1 模型部分 8 文件名 CartManager java package javabean import java util ArrayList public class CartManager 表示购物车 private ArrayList cart public void setCart ArrayList cart this cart cart public ArrayList getCart return cart 添加的物品 数量 public ArrayList addToCart Goods g int quantity if cart null 实例化购物车对象 cart new ArrayList 添加到购物车 Item item new Item g quantity cart add item else 转换成数组 Object items cart toArray boolean find false 表示是否查找到 for int i 0 i items length i Item temp Item items i 判断购物车中是否存在要添加的物品 if temp getGoods getGoodsid equals g getGoodsid temp setQuantity temp getQuantity quantity find true break if find 9 添加到购物车 Item item new Item g quantity cart add item return cart 5 2 控制器部分 文件名 AddToCart java package servlet import java io import javax servlet import javax servlet http import javabean import java util public class AddToCart extends HttpServlet public void doGet HttpServletRequest request HttpServletResponse response throws IOException ServletException response setContentType text html charset gb2312 PrintWriter out response getWriter try 得到要添加的物品的编号 String goodsid request getParameter goodsid 创建 JavaBean 对象 CartManager cartManager new CartManager 得到 session 对象 HttpSession session request getSession true 得到购物车对象 ArrayList cart ArrayList session getAttribute cart 用 cart 初始化 cartManager cartManager setCart cart 构造物品对象 Goods g new Goods g g findGoodsById goodsid out println g getGoodsid cartManager addToCart g 1 先把购物车重新存到 session session setAttribute cart cartManager getCart catch Exception e out println e toString 10 response sendRedirect cart jsp public void doPost HttpServletRequest request HttpServletResponse response throws IOException ServletException doGet request response 6 Servlet 的配置 web xml 文件内容如下 getAllGoods servlet GetAllGoods getAllGoods getAllGoods addToCart servlet AddToCart addToCart addToCart 7 运行 编译所有文件 然后先访问 getAllGoods Servlet 然后在物品信息界面上选择物品添 加到购物车 之后就可以看到购物车中的信息了 主要内容 l 完成购物车的其他基本功能 l 生成订单 l 小结 1 购物车的其它功能 对购物车的物品数量修改和物品删除功能是两外两个基本功能 实现过程与添加工程 比较类似 这里只给出参考代码 1 1 模型部分 11 文件名 CartManager java 在上一讲的基础上修改 红色部分为添加的内容 package javabean import java util ArrayList import java util Iterator public class CartManager 表示购物车 private ArrayList cart public void setCart ArrayList cart this cart cart public ArrayList getCart return cart 添加的物品 数量 public ArrayList addToCart Goods g int quantity if cart null 实例化购物车对象 cart new ArrayList 添加到购物车 Item item new Item g quantity cart add item else 转换成数组 Object items cart toArray boolean find false 表示是否查找到 for int i 0 i items length i Item temp Item items i 判断购物车中是否存在要添加的物品 if temp getGoods getGoodsid equals g getGoodsid temp setQuantity temp getQuantity quantity find true break 12 if find 添加到购物车 Item item new Item g quantity cart add item return cart public void delete String goodsid 转换成 Iterator 对象 Iterator i cart iterator while i hasNext 得到一个购物项 Item temp Item i next if temp getGoods getGoodsid equals goodsid cart remove temp break public void update String goodsid int quantity Iterator i cart iterator while i hasNext 得到一个购物项 Item temp Item i next if temp getGoods getGoodsid equals goodsid temp setQuantity quantity break 1 2 修改视图部分 文件名 cart jsp 在上一讲的基础上修改 红色部分为添加的内容 购物车中的信息 13 物品编号 物品名称 价格 数量 item goods goodsid item goods goodsname item goods price 1 3 控制器 删除和修改功能使用相同的控制器 会根据提交按钮的值确定要完成的功能 参考代 码如下 文件名 ProcessCart java package servlet import java io import javax servlet import javax servlet http import javabean import java util public class ProcessCart extends HttpServlet public void doGet HttpServletRequest request HttpServletResponse response throws IOException ServletException response setContentType text html charset gb2312 PrintWriter out response getWriter try request setCharacterEncoding gb2312 得到要添加的物品的编号 String goodsid request getParameter goodsid 得到执行命令 删除还是修改 String action request getParameter action 14 action new String action getBytes 8859 1 out println action String quantity null if action equals 修改 quantity request getParameter quantity 创建 JavaBean 对象 CartManager cartManager new CartManager 得到 session 对象 HttpSession session request getSession true 得到购物车对象 ArrayList cart ArrayList session getAttribute cart 用 cart 初始化 cartManager cartManager setCart cart if action equals 修改 cartManager update goodsid Integer parseInt quantity else cartManager delete goodsid 把购物车重新存到 session session setAttribute cart cartManager getCart catch Exception e out println e toString response sendRedirect cart jsp public void doPost HttpServletRequest request HttpServletResponse response throws IOException ServletException doGet request response 2 生成订单 如果用户购物完成会下订单 通常需要输入个人的送货信息等 然后把订单信息存储 到数据库中 这里这介绍如何组织信息 存储信息的过程不再介绍 需要两张表 l 订单表 l 订单明细表 订单表中信息 l 订单号 日期 流水号 通常作主键 15 l 订单的发出者 通常从 session 中获取信息 或者 让用户输入 没有登录的情况下 l 订单的日期 l 订单的状态 l 付款方式 l 送货地址 l 联系电话 l 接收人 订单明细表 订单号和物品编号作为联合主键 l 订单号 l 物品的编号 l 该物品的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程监理合同变更申请书(3篇)
- 文献检索报告的评价与建议
- 2005年湖南省中考语文现代文之议论文阅读8
- 2025年中文系论文提纲写法及范例
- 华润万家连锁零售型超市经营战略分析市场营销专业开题报告
- 【VIP专享】数学专业毕业论文题目
- 东北地区民营经济现状及对策分析
- 开题报告(市场经济分析)
- 指导老师对论文评语文档6
- 2025年文山州辅警招聘考试真题及答案详解1套
- 氢能系列报告认识氢能
- GB/T 120.2-2000内螺纹圆柱销淬硬钢和马氏体不锈钢
- 支气管哮喘诊疗指南
- 社区心理学课件
- 2022年石家庄市工会系统招聘考试笔试试题及答案解析
- 彤程化学装置水联运方案(草稿)
- 注塑模具验收标准
- 2009-2022历年上海市公务员考试《专业科目-政法》真题含答案2022-2023上岸必备汇编4
- 布袋除尘器技术协议
- 跨临界CO2制冷热泵系统简介
- GB∕T 33375-2016 胶粘带静电性能的试验方法
评论
0/150
提交评论