简单的购物车

用到的相干知识

(1)Java基础集合 ArrayList HashMap LinkedHashmap(有序)

(2)session技术

(3)servlet

(4)单态

(5)如何选择不同的集合

List集合都是有序的,map是无序的

list和map集合都可以存放null

list可以存放相同的对象,map也可以存放相同的对象,但是key不能重复

定义一个Book类:

package com.hsp;

public class Book implements java.io.Serializable{
    private String id;
    private String name;
    private String price;
    private int num;

    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    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;
    }
    public String getPrice() {
        return price;
    }
    public void setPrice(String price) {
        this.price = price;
    }

}

Db相当于是个数据库

 package com.hsp;

import java.util.ArrayList;

public class Db {
  private static ArrayList al=null;

  private Db(){

  }

  static{

      al=new ArrayList<Book>();
      Book book1=new Book();
      book1.setId("1");
      book1.setName("JAVA");
      book1.setPrice("50");

      Book book2=new Book();
      book2.setId("2");
      book2.setName("oracle");
      book2.setPrice("60");

      Book book3=new Book();
      book3.setId("3");
      book3.setName("linux");
      book1.setPrice("66");
      al.add(book1);
      al.add(book2);
      al.add(book3);
  }

  public static ArrayList getDb(){
      return al;
  }

  public static Book getBookById(String id){

      Book book=null;
      boolean b=false;
      for(int i=0;i<al.size();i++){
          book=(Book)al.get(i);
          if(book.getId().equals(id)){
              b=true;
              break;
          }
      }
      if(b){
         return book;
      }else{
         return null;
      }

  }
}

页面显示ShowBook

//先死后活
        out.println("<h1>欢迎购买</h1>");

        out.println("oracle书<a href=‘/myCart/BuyBookCl?id=3&name=oracle‘ >点击购买</a></br>");

        //取出Db
        ArrayList<Book> mydb=Db.getDb();

        for(Book book:mydb){

            out.println(book.getName()+"----"+book.getPrice()+"<a href=‘/myCart/BuyBookCl?id="+book.getId()+"‘ >点击购买</a></br>");
        }

提交处理servlet(BuyBookCl)

response.setContentType("text/html;charset=utf-8");
        @SuppressWarnings("unused")
        PrintWriter out = response.getWriter();
        //request.getAttribute(name)接受的servlet与本身(request里面放置的属性)

        //浏览器发过来的(http协议相关的)

        String id=request.getParameter("id");
        Book bookinfo=Db.getBookById(id);
        HttpSession session=request.getSession();

        HashMap<String,Book> hm=(HashMap<String,Book>)session.getAttribute("myBooks");
        //如果第一次购物al=null
        if(hm==null){
            hm=new LinkedHashMap<String,Book>();
            Book book=new Book();
            book.setId(id);
            book.setName(bookinfo.getName());
            book.setNum(1);
             hm.put(id,book);
             //al放到session中
             session.setAttribute("myBooks", hm);
        }else{
            //判断hm中是否有该书
            if(hm.containsKey(id)){
                //表示购买过一次
                //取出
                Book book=hm.get(id);
                int bookNum=book.getNum();
                book.setNum(bookNum+1);
            }else{
                Book book=new Book();
                book.setId(id);
                book.setName(bookinfo.getName());
                book.setNum(1);
                 hm.put(id,book);
            }
            //更新
            session.setAttribute("myBooks", hm);
        }
        //跳转到购物车
        request.getRequestDispatcher("/ShowMyCart").forward(request, response);     

购物车结果页面servlet(ShowMyCart)

response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();

        HashMap<String,Book> myBooks=(HashMap<String,Book>)request.getSession().getAttribute("myBooks"); 

        out.println("你的购物车有以下书籍:</br>");
        //out.println(myBooks);

        //遍历hashMap
        Iterator iterator=myBooks.keySet().iterator();

        while(iterator.hasNext()){

            String key=(String)iterator.next();

            Book book=myBooks.get(key);
            out.println(book.getName()+"----"+book.getNum()+"</br>");
        }

        out.println("购物车的总价是");
        out.println("<a href=‘/myCart/ShowBook‘>返回购物大厅</a>");
时间: 2024-12-30 00:02:43

简单的购物车的相关文章

利用JSP编程技术实现一个简单的购物车程序

实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP中数据库编程方法: 二.实验要求 : 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来处理用户提交的登录信息,如果用户名为本小组成员的名字且密码为对应的学号时,采用J

jQuery使用cookie与json简单实现购物车功能

本文实例讲述了jQuery使用cookie与json简单实现购物车的方法.分享给大家供大家参考,具体如下: 1.生成一个cookie 用来存储商品的id  String类型 2.添加商品id的时候 把cookie转化成数组,并检查是否已经包含了.没有包含用js push重新生成新的数组. 3.把数组转化成String 用cookie存储. 以下是jquery对cookie和JSON的操作方法 $.cookie("cart","ids",{expires:-7,pat

简单的购物车小程序

1 # -*- coding:utf-8 -*- #简单的购物车小程序 author:李学松 2 shopping_cart =[] 3 product_list_tatol = "---product list----" 4 welcome = "-----------welcome to shopping marketi----------" 5 product_list = [ 6 ('iphone',5800), 7 ('lenovo',900), 8 ('

HTML5自学笔记[ 10 ]简单的购物车拖拽

用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>购物车拖拽</title> 6 7 <style> 8 *{ margin:0; padding:0;} 9 #proList{ overflow:hidden;} 10 #pro

使用 FineUI 制作简单的购物车页面(源代码免费下载,另附 24 张专业版截图)

起因 最初是一位 FineUI 网友对购物车功能的需求,需要根据产品单价和数量来计算所有选中商品的总价. 这个逻辑最好在前台使用JavaScript实现,如果把这个逻辑移动到后台C#实现,则会导致过多的AJAX请求而影响用户体验. 最终效果 准备数据 在生成页面之前,我们需要准备购物车的数据,这里只是简单的用表格来模拟数据: 1 protected DataTable GetCartDataTable() 2 { 3 DataTable table = new DataTable(); 4 ta

jQuery实现一个简单的购物车功能

最近由于工作需要的原因,开始系统学习jQuery的知识,然后跟着一个视频教程做了一个购物车的功能,现总结如下. 第一步:准备HTML页面,代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.

使用MongoDB和JSP实现一个简单的购物车系统

1 问题描述 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来获取用户提交的登录信息并查询数据库,如果用户名为本小组成员的名字且密码为对应的学号时,采用JSP内置对象的方法跳转到订购页面(显示店中商品的种类和单价等目录信息):否则采用JSP动作提示用户重新登录(注:此页面上要包含前面的登录界面). (3)当顾客填好所需商品的数量并点击提交按钮时,将前面订购的商品放

【python】简单的购物车

#!/usr/bin/env python #-*- coding:utf-8 -*- #简单的购物车 #知识点: #1:优雅的enumerate函数,返回一个生成器对象:(index,item)的元组 #2:print('product list :'.center(50,'-')) 可以居中打印,真好玩,哈哈 goods = [     ("IPhone",5800),     ("watch",2000),     ("mac",12000

react做的简单的购物车

###第一步 :首先电脑上已经安装react的脚手架 cnpm  install    create-react-app   -g ###第二步 :创建项目 creact-react-app   项目名(shopping) ###第三步:进入项目,看看项目是否可以正常运行 cd   shopping    ======> npm  start  或   cnpm   install   yarn   --save  后   yarn   start  ###第四步:创建两个文件夹App和shop

Python简单的购物车程序

#Author:xuhan# -*- coding:utf-8 -*-shopping_car = []while True:    salary = input('[q=quit]请输入您的购物预算:')    if salary.isdigit():        break    else:        continueprint(' 欢 迎 光 临 家 乐 福 购 物 中 心 '.center(60,'-'))product_list = [('Iphone7',5999),('Mac