web网上书店总结(jsp+servlet)

web网上书店总结

前端的首页。效果如下:
其实挺基本上按照页面有的内容对其实现功能。按照用户划分功能模块,有后台管理员和普通用户,登录的时候会判断账户的类别,例如0权限代表普通用户登录,1权限代表管理员登录,然后转发到相对的页面。普通用户登录成功后返回首页,我的账户:xxx,显示用户名,这时就可以加入购物车;如果没有登陆就点击了购买就会跳转到登录页面,注册的时候需要验证码,注册成功返回登录页面。主要还是聊聊购物车和订单模块;因为用户对购物车里面的操作较为频繁,所以数据库并没有单独创建一个表,使用一个map集合book对象作为键,Integer对象作为值,如果这本图书是第一次加入,那就新创建一个hashmap,值设置为1,如果map集合中已经有这个键,那就让数值加一

@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String id = request.getParameter("id");
        BookService bookService = new BookService();
        Book book = bookService.findBook(id);

        //1.先从session中获取购物车的数据
        Map<Book,Integer> map = (Map<Book, Integer>) request.getSession().getAttribute("cart");

        if(map==null){//如果购物车没有数据,就新创建一个购物车
            map= new HashMap<Book,Integer>();
            map.put(book,1);//把这本书装进购物车,数量设置成1
        }else {
            if (map.containsKey(book)){//如果购物车已经有这本书,那就让数量加一
                // (这个containKey默认比较的是hashCode,所以要重写equals,hashCode方法)
               map.put(book,map.get(book)+1);
            }else {
                //如果是第一次添加就是1
                map.put(book,1);
            }

        }

       /* for (Map.Entry<Book, Integer> map1 : map.entrySet()) {
            System.out.println(map1.getKey()+": 数量:"+map1.getValue());
        }*/

        request.getSession().setAttribute("cart",map);

        //重定向到购物车页面
        response.sendRedirect(request.getContextPath()+"/cart.jsp");

    }

因为使用了map.containsKey();方法,这个就需要重写book类的hashCode(),和equals()方法。
book的主键是id所以生成方法的时候按照ID进行比较就好了。
在这里插入图片描述
当删除购物车的商品时,只需要将map集合中的键移除掉就好。map.remove(book);
订单模块中创建了两个表,order表和orderItem订单项表,订单表中是用户确认定单后,向表中插入了用户的一些信息,例如收货地址和用户ID,手机号等等。订单项表中是具体的商品信息,bookID和买的数量,订单项的订单id即是主键还是订单表的外键,商品id也是根据商品表所创建的外键。
在这里插入图片描述
确认订单后可以在我的账户中查看订单详情,这时的支付状态当然是未支付了,如果不想要的话就删除订单,
在这里插入图片描述
点击查看,确认个人信息正确后,可以进行支付。
在这里插入图片描述
结账的页面比较low,就是几个单选框。确认支付,跳转到支付成功页面。大概就是这个逻辑。
在这里插入图片描述
支付成功后会自动返回首页。
后台管理员目前仅能对书本进行增删改查。
查询的时候可以进行多条件查询。
在这里插入图片描述
目前就这些。具体代码实现在这里
博主比较菜,以上逻辑有不对的欢迎指正,共同进步!
代码人生!

原文地址:https://www.cnblogs.com/itjiangpo/p/14181443.html