Servlet学习,使用Servlet实现购物车效果

这个小项目是在慕课网学习Servelet学写的。相关视频在慕课网(http://www.imooc.com)可以找到

练习项目:使用Servlet实现购物车效果

效果截图:

1.商品展示

2.详细信息

3.添加购买

4.查看购物车

实现思路:

采用Jsp+Servlet+dao来实现:

1.dao层-----实体对象的基本操作

2.util----连接数据库工具DBHelper

3.entity实体层----分为Cart购物车类,和Items商品类

4.servlet----接收前端数据提交,业务逻辑处理及页面跳转

以下只写一些实现过程中的思路:

1.设计购物车类(Cart):由于是商品和购买数量的对应关系,所以这里应该有一个映射关系,用HashMap来实现

private HashMap<Items, Integer> goods;

然后就计算商品的总价,用到遍历HashMap的方法,可以用goods.keySet()得到键的集合Set,也可以用

goods.entrySet(),得到Map.Entry<Items,Integer>键值对的集合Set,然后对应相乘得到总价。

//统计购物车的总金额
	public double calTotalPrice(){
		double sum=0;
		Set<Items> keys=goods.keySet();
		Iterator<Items> it=keys.iterator();
		while(it.hasNext()){
			Items i=it.next();
			sum+=i.getPrice()*goods.get(i);
		}
		this.setTatalPrice(sum);
		return this.getTatalPrice();
	}
//2.添加商品到购物车的时候,因为使用的是HashMap,所以不做处理的话会加入相同的商品而不累计数量,添加商品的方法,如果是同一商品则数量要累加
	public boolean addGoodsInCart(Items item,int number){
		if(goods.containsKey(item)){				
			goods.put(item, goods.get(item)+number);
		}
		else{
			goods.put(item, number);
		}
		calTotalPrice();		//重新计算购物车总金额
		return true;
	}
containsKey(key)方法实则是比较key对象的equals()方法,为了解决不添加重复商品,则需要重写商品类Items

hashCode()方法和equals()方法,让商品只比较id和name即可。

3.使用cookie保存历史浏览时,只需保存商品的id,加上分割符号“,”,取出时方便。

              String list ="";
              //从客户端获得Cookies集合
              Cookie[] cookies = request.getCookies();
              //遍历这个Cookies集合
              if(cookies!=null&&cookies.length>0)
              {
	              for(Cookie c:cookies)
	              {
	                  if(c.getName().equals("ListViewCookie"))
	                  {
	                     list = c.getValue();
	                  }
	              }
	          }
              
              list+=request.getParameter("id")+",";
              //如果浏览记录超过1000条,清零.
              String[] arr = list.split(",");
              if(arr!=null&&arr.length>0)
              {
                  if(arr.length>=1000)
                  {
                      list="";
                  }
              }
              Cookie cookie = new Cookie("ListViewCookie",list);
              response.addCookie(cookie);//存入cookie
在dao层实现对cookie中list的处理,返回商品的集合,每次只取出前几条商品记录即可。
4.Jsp层注意与js的互用


想到再写。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页