第十讲基于Servlet的会话跟踪2

上传人:pu****.1 文档编号:570548255 上传时间:2024-08-05 格式:PPT 页数:23 大小:1.96MB
返回 下载 相关 举报
第十讲基于Servlet的会话跟踪2_第1页
第1页 / 共23页
第十讲基于Servlet的会话跟踪2_第2页
第2页 / 共23页
第十讲基于Servlet的会话跟踪2_第3页
第3页 / 共23页
第十讲基于Servlet的会话跟踪2_第4页
第4页 / 共23页
第十讲基于Servlet的会话跟踪2_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《第十讲基于Servlet的会话跟踪2》由会员分享,可在线阅读,更多相关《第十讲基于Servlet的会话跟踪2(23页珍藏版)》请在金锄头文库上搜索。

1、第十讲 基于Servlet的会话跟踪2本讲任务升级升级 E-BookE-Book电子书店实现购物车功能电子书店实现购物车功能将书籍添加到购物车之中查看购物车2学会使用学会使用MapMap集合实现购物车集合实现购物车掌握如何操纵掌握如何操纵sessionsession中对象中对象会使用会使用sessionsession的相关属性和方法的相关属性和方法本讲目标3购物车的设计分析设计分析设计分析购物车中对象的设计使用Servlet实现添加书籍到购物车使用JSP实现查看购物车的书籍列表选择商品选择商品放入购物车放入购物车继继续购物续购物结账结账满载而归满载而归本章要完成内容本章要完成内容购物车如何设计

2、呢?购物车如何设计呢?4购物车中对象的设计 对象的设计对象的设计书籍本身信息书籍本身信息书籍购买数量书籍购买数量书籍名称书籍名称书籍编号书籍编号书籍价格书籍价格书籍版本号书籍版本号BookBean购买书籍的数量购买书籍的数量publicclassCartItemBeanimplementsSerializableprivateBookBeanbook;/当前书籍当前书籍privateintquantity;/购物车中的数量购物车中的数量publicCartItemBean(BookBeanbookToAdd,intnumber)book=bookToAdd;quantity=number;pu

3、blicvoidsetQuantity(intnumber)quantity=number;publicintgetQuantity()returnquantity;/其他的其他的setter、getter方法方法对象属性对象属性构造方法构造方法属性的属性的getter、setter方法方法演示示例演示示例1:购物车商品信息类购物车商品信息类CartItemBean.java5购物车的实现使用购物车存放商品使用购物车存放商品装入购物车装入购物车方便存取商品方便存取商品6购物车的实现使用使用MapMap实现购物车实现购物车BookBeanHashMapsessionkeyvalue存放到存放到存

4、放到存放到书籍数量书籍数量CartItemBeanisbncart7集合接口和类(补充) 集合接口、类关系图集合接口、类关系图Collection接口接口List接口接口Set接口接口ArrayList类类LinkedList类类HashSet类类TreeSet类类继承继承 继承继承 实现实现 实现实现 List及实现类是可变及实现类是可变大小的列表大小的列表,适用于,适用于按数值索引访问元素按数值索引访问元素Set集合中不允许集合中不允许有重复的数据有重复的数据8Set介绍(补充)Set接口继承关系和常用方法接口继承关系和常用方法Collection接口接口Set接口接口HashSet类类T

5、reeSet类类intsize()booleanisEmpty()ObjecttoArray()booleanadd(Objecto)继承继承实现实现实现实现返回返回Set集合元素数集合元素数返回一个包含返回一个包含Set中所有元素的数组中所有元素的数组向向Set中添加元素中添加元素判断判断Set中是否包含元素,不包含返回中是否包含元素,不包含返回true9Map接口(补充)MapMap接口实现类关系图接口实现类关系图Map接口接口HashMap类类Properties类类Map中以键中以键-值对值对形式存储数据形式存储数据实现实现 10使用Servlet实现添加定义一个定义一个Servlet

6、Servlet实现购买的书籍添加到购物车中实现购买的书籍添加到购物车中ServletServlet类:类:AddBookToCart.javaAddBookToCart.java11实现添加书籍到购物车添加书籍到购物车添加书籍到购物车 获得session对象从session中取出BookBean对象创建HashMap对象,并添加一个条目到Map中publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionHttpSessionsession=re

7、quest.getSession(false);BookBeanbook=(BookBean)session.getAttribute(bookToAdd);Mapcart=newHashMap();cart.put(book.getISBN(),newCartItemBean(book,1);session.setAttribute(cart,cart);获得获得session对象对象从从session中取出书籍信息中取出书籍信息把数据存入到把数据存入到session中中12实现添加书籍到购物车判断购物车中是否存在该书籍判断购物车中是否存在该书籍存在:数量加一不存在:添加条目到Map中Htt

8、pSessionsession=request.getSession(false);Mapcart=(Map)session.getAttribute(cart);if(cart=null)cart=newHashMap();session.setAttribute(cart,cart);BookBeanbook=(BookBean)session.getAttribute(bookToAdd);CartItemBeancartItem=(CartItemBean)cart.get(book.getISBN();if(cartItem!=null)cartItem.setQuantity(ca

9、rtItem.getQuantity()+1);elsecart.put(book.getISBN(),newCartItemBean(book,1);如果如果session中存在该书籍,数量加中存在该书籍,数量加1如果如果session中不存在该书籍,添加条目数量为中不存在该书籍,添加条目数量为1判断判断session中是否存在中是否存在cart对象对象演示示例演示示例2:向购物车中添加商品向购物车中添加商品AddBookToCart.java13查看购物车中书籍列表 购物车的设计购物车的设计-书籍清单书籍清单书籍名称购买数量书籍价格小计总计14查看购物车的书籍列表转向转向viewCart.

10、jspviewCart.jsp从session中取出Map从Map中取出CartItemBean数据Mapcart=(Map)session.getAttribute(cart);SetcartItems=cart.keySet();Objectisbn=cartItems.toArray();BookBeanbook;CartItemBeancartItem;inti=0;while(iisbn.length)cartItem=(CartItemBean)cart.get(String)isbni);book=cartItem.getBook();/在页面上显示在页面上显示book数据,如数

11、据,如:book.getTitle();i+;从从session中取出中取出Map得到得到Map中中key值的值的Set集合,再转换成数组,集合,再转换成数组,以便使用循环进行遍历以便使用循环进行遍历通过通过key值取值取value演示示例演示示例3:显示购物车内商品显示购物车内商品viewCart.jsp15完整代码HttpSessionsession=request.getSession(false);RequestDispatcherdispatcher;/如果如果session不存在,转向不存在,转向books.jspif(session=null)dispatcher=request

12、.getRequestDispatcher(books.jsp);dispatcher.forward(request,response);/取出购物车和添加的书籍取出购物车和添加的书籍Mapcart=(Map)session.getAttribute(cart);BookBeanbook=(BookBean)session.getAttribute(bookToAdd);/如果购物车不存在,创建购物车如果购物车不存在,创建购物车if(cart=null)cart=newHashMap();/将购物车存入将购物车存入session之中之中session.setAttribute(cart,ca

13、rt);/判断书籍是否在购物车中判断书籍是否在购物车中CartItemBeancartItem=(CartItemBean)cart.get(book.getISBN();/如果书籍在购物车中,更新其数量如果书籍在购物车中,更新其数量./否则,创建一个条目到否则,创建一个条目到Map中中.if(cartItem!=null)cartItem.setQuantity(cartItem.getQuantity()+1);elsecart.put(book.getISBN(),newCartItemBean(book,1);/转向转向viewCart.jsp显示购物车显示购物车dispatcher=

14、request.getRequestDispatcher(viewCart.jsp);dispatcher.forward(request,response);16常见错误错误大致出现在哪里?错误大致出现在哪里?404404错误错误没有找到页面没有找到页面if(cartItem!=null)cartItem.setQuantity(cartItem.getQuantity()+1);elsecart.put(book.getISBN(),newCartItemBean(book,1);dispatcher=request.getRequestDispatcher(/viewCart.jsp);

15、dispatcher.forward(request,response);路径错误,应该是路径错误,应该是/j20/viewCart.jsp17常见错误 查看购物车内书籍查看购物车内书籍已经购买商品,为什么没有显示?已经购买商品,为什么没有显示?问题可能出现在哪里?问题可能出现在哪里?18常见错误添加商品到购物车添加商品到购物车-ServletServlet AddBookToCart.javaAddBookToCart.java显示购物车内商品显示购物车内商品-viewCart.jspviewCart.jspif(cart=null)cart=newHashMap();session.set

16、Attribute(cart,cart);保存数据到保存数据到session中中从从session中取出数据中取出数据名称要一致名称要一致19显示购物车数据如何显示购物车内如何显示购物车内MapMap中所有数据中所有数据可不可以使用Map的size()进行循环获得key、value值Map Map 不具有整数索引,不能利用不具有整数索引,不能利用sizesize()()进行循环进行循环使用Set接口SetSet接口继承了接口继承了CollectionCollection接口,但是它不允许集合接口,但是它不允许集合中存在重复项中存在重复项 SetSet接口在接口在MapMap中的使用中的使用Ma

17、pcart=(Map)session.getAttribute(cart);for(inti=0;icart.size();i+)CartItemBeancartItem=(CartItemBean)cart.get(i);Map没有整数索引,参数应该是没有整数索引,参数应该是key值值Mapcart=(Map)session.getAttribute(cart);SetcartItems=cart.keySet();Objectisbn=cartItems.toArray();inti=0;while(iisbn.length)cartItem=(CartItemBean)cart.get(

18、String)isbni);使用使用keySet()得到得到key的的Set集合集合使用使用Set的的toArray()转换成数组转换成数组对数组遍历对数组遍历取出所有值取出所有值代码错误代码错误20常见错误%Mapcart=(Map)session.getAttribute(cart);SetcartItems=cart.keySet();Objectisbn=cartItems.toArray();inti=0;while(i指出哪里有错误指出哪里有错误?显示购物车内商品显示购物车内商品-viewCart.jspviewCart.jsp正确写法:正确写法:cart.get(String)isbni)21常见错误格式不正确格式不正确应该显示为:0.00格式使用java.text.DecimalFormat类的format()进行格式化DecimalFormat类是格式化十进制数值的类格式样式格式样式欲格式的数据欲格式的数据指出哪里有错误指出哪里有错误?22总结如何理解如何理解session在购物系统中的作用?在购物系统中的作用?如何从如何从session中取值和存值?中取值和存值?常用的集合类有哪些?它们之间有什么差别?常用的集合类有哪些?它们之间有什么差别?23

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号