栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP---用eclipe建立一个购物车添加遍历功能

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP---用eclipe建立一个购物车添加遍历功能

**实现购物车案例
   1.创建Book封装图书信息:Book book=new Book();
   2.创建BookDB,模拟数据库,在里面保存图书
   3.提供图书的购买页面:ListBookServlet
   4.添加购物车:PurcharseServlet
   5.回显购物车图书信息:CartServlet
   如果浏览器禁用了cookie,咱们的购物车功能就不能实现了,因为session是基于cookie实现的。**

1、首先需要一个Book类 封装书籍

public class Book {
	String id;
	String name;
	
	public Book() {
	}

	public Book(String id, String name) {
		super();
		this.id = id;
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

2、模拟数据库BookDB
补充:Map是一个接口,即Interface Map,其中key必须是唯一的且不能重复,当key相同时,后面的value值会覆盖之前的value值。
2.1 Map定义的一些通用的方法:
>>>1. 得到指定key的值:map.get(Object key);
>>>2. 判断此key是否含有value:isEmpty();
>>>3. 返回key中包含的键的视图:map.keySet();
>>>4. 将指定的key和值放进去:map.put(K key,V value);
Map接口有很多实现类:TreeMap,Hashtable,SortedMap,HashMap

     2.2 HashMap是基于哈希表的Map接口实现
	    1它是通过数组和指针结合实现的一个“链表散列”的数据结构,数组中的每一项又是一个链表。
	    2当再底层将key-value当成一个整体进行处理,这个整体就是一个entry对象。
public class BookDB {
	private static Map map = new linkedHashMap();
	//往里面添加待售的书籍
	static {
		map.put("1", new Book("1", "c语言程序设计"));
		map.put("2", new Book("2", "数据结构"));
		map.put("3", new Book("3", "高等数学"));
		map.put("4", new Book("4", "线性代数"));
		map.put("5", new Book("5", "大数据"));
	}
	//得到所有图书
	public static Collection getAll() {
		return map.values();
	}
	//利用map的key,也就是图书的id得到某本书
	public static Book getBook(String id) {
		return map.get(id);
	}
}

3、后台搭建好了,则需要一个购买界面ListBookServlet

public class ListBookServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//处理相应的中文乱码
		response.setContentType("text/html;charset=utf-8");
		//1得到所有书籍信息
		Collection books = BookDB.getAll();
		//2回显到页面
		PrintWriter out = response.getWriter();
		out.print("以下是本网站所售的所有书籍:" + "

"); //3遍历集合,把图书回显到页面 for (Book b : books) { String name = b.getName(); String id = b.getId(); //4提供一个购买书籍的链接 String url = " + id + "'>点击购买"; out.print("图书名称:" + name + " " + url + "

"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

4、实现添加到购物车的功能

public class PurcharseServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//处理相应的中文乱码问题
		response.setContentType("text/html;charset=utf-8");
		//2获取图书信息
		String id = request.getParameter("id");
		//3判断id是否存在
		if (id == null) {
			response.sendRedirect("/chapter05/list");
			return;
		}
		//3当图书已经购买时
		Book book = BookDB.getBook(id);
		//4把图书添加到购物车
		HttpSession session = request.getSession();
		List list = (List) session.getAttribute("cart");
		//5判断购物车是否存在,是不是首次购买
		if (list == null) {
			list = new ArrayList();
			session.setAttribute("cart", list);
		}
		//6把图书添加到购物车
		list.add(book);
		//7请求跳转到CartServlet
		//session基于自己创建的cookie完成效果;再浏览器关闭后,cookie对象还在,就能找到session
		cookie cookie = new cookie("JESSIONID", session.getId());
		cookie.setMaxAge(60 * 60 * 24);
		cookie.setPath("/chapter05");
		response.addcookie(cookie);
		//8跳转到cartServlet里面
		response.sendRedirect("/chapter05/cart");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

}

5、回显购物车功能

public class CartServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//处理相应中文的乱码
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		//1得到购物车
		List cart = null;
		//2得到用户自己的session
		HttpSession session = request.getSession(false);
		//3自己定义一个flag,判断购物车里面是否有图书
		boolean cartFlag = true;
		if (session == null) {
			cartFlag = false;
		} else {
			cart = (List) session.getAttribute("cart");
			if (cart == null) {
				cartFlag = false;
			}
		}
		//4购物车里面有商品了
		if (!cartFlag) {
			out.print("抱歉,您的购物车没有图书,请购买:");
		} else {
		//5购物车遍历
			out.print("您所购买的书籍如下:" + "
"); for (Book b : cart) { out.print(b.getId() + " " + b.getName() + "
"); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号