zoukankan      html  css  js  c++  java
  • bookstore案例分析

    bookstore案例使用原生servlet实现

    功能分析

    1. 导原型(页面)

    l  创建Web项目

    l  copy原型中的src和WebRoot,覆盖Web项目中的src和WebRoot

    1. 列出模块和功能

    前台

    l  用户模块(中等偏上)

    • 注册功能
    • 激活功能
    • 登录功能
    • 退出功能

    l  分类模块

    • 显示所有分类功能

    l  图书模块

    • 查询所有图书
    • 按分类查询
    • 加载图书(按id查询)

    l  购物车模块

    • 添加购物项
    • 我的购物车(显示购物车内所有购物项)
    • 清空购物车
    • 删除购物项

    l  订单模块(难点)

    • 生成订单
    • 我的订单(按用户查询订单)
    • 加载订单(按id查询)
    • 确认收货
    • 付款之去银行
    • 付款之银行回调

    后台

    l  管理员模块(你们的)

    • 登录

    l  分类管理

    • 查询所有分类
    • 添加分类
    • 修改分类
    • 删除分类

    l  图书管理(难点)

    • 查看所有图书
    • 加载图书(按id查)
    • 编辑图书
    • 删除图书
    • 添加图书(上传)

    l  订单管理(你们的)

    • 查询所有订单
    • 发货
    • 按状态查询订单

    搭建环境

    1. 导jar包

    l  itcast-tools-1.4.3.jar

    • commons-beanutils.jar

    ¨       commons-logging.jar

    l  mysql

    l  c3p0

    l  commons-dbutils

    l  commons-fileupload

    • commons-io

    l  main.jar

    • activation.jar
    1. 创建数据库表

    l  tbl_user

    • uid char(32):主键
    • username varchar(50):用户名
    • password varchar(50):密码
    • email varchar(50):邮箱
    • code char(64):激活码
    • state boolean:用户的状态(已激活和未激活)

    l  tbl_category

    • cid char(32):主键
    • cname varchar(100):分类名称

    l  tbl_book

    • bid char(32):主键
    • bname varchar(100):书名
    • price decimal(6,2):单价
    • author varchar(50):作者
    • image varchar(100):图片
    • cid char(32)相对tbl_category表的外键

    l  tbl_order

    • oid char(32):主键
    • ordertime timestap:下单时间
    • total decimal(7,2):总计
    • state int:订单的状态,分为四种:1未付款、2已付款但未发货、3已发货但未收货、4已收货交易成功
    • uid char(32):相对tbl_user表的外键,表示下单人!
    • address varchar(200):收货地址

    l  tbl_orderitem

    • iid char(32):主键
    • count int:数量
    • subtotal decimal(7,2):小计
    • oid char(32):相对tbl_order表的外键,所属订单
    • bid char(32):相对tbl_book表的外键,所购买图书
    1. 创建包

    l  cn.itcast.bookstore.模块.分层

    • cn.itcast.bookstore.user

    ¨       domain:User

    ¨       dao:UserDao

    ¨       service:UserService

    ¨       web.servlet:UserServlet

    • cn.itcast.bookstore.category

    ¨       domain:Category

    ¨       dao:CategoryDao

    ¨       service:CategoryService

    ¨       web.servlet:CategoryServlet

        …

    1. 页面设计

     

     

     

    用户的功能设计

    1. 包和类

    l  cn.itcast.bookstore.user

    • domain:User
    • dao:UserDao
    • service:UserService
    • web.servlet:UserServlet
    1. 注册功能

     

    1. 激活功能

      

     

    1. 登录功能

     

    1. 退出功能

    l  top.jsp(退出) à UserServlet#quit()(销毁session) à msg.jsp(显示您已下线)

    分类模块功能设计

    1. 包和类

    l  cn.itcast.bookstore.category

    • domain:Category
    • dao:CategoryDao
    • service:CategoryServlet
    • web.servlet:CategoryServlet
    1. 查询所有

    l  main.jsp不再去直接请求left.jsp,而是请求Servlet

    l  Servlet应用在request中保存List<Category>

    l  你们应用给我传递一个List<Category>,我这里循环遍历

     

    图书模块

    1. 包和类

    l  cn.itcast.bookstore.book

    • domain:Book
    • dao:BookDao
    • service:BookService
    • web.servlet:BookServlet

     

    1. 查询所有
    1. 按分类查询
    1. 查询详细

    购物车模块

    l  购物车的实现

    • session实现:把车放到session中;
    • cookie实现:把车放到cookie中;
    • 数据库实现:把车放到数据库中。

    l  我们的购物车:

    • 必须先登录才能有车!!!
    • 车保存到session中!!!
    1. 购物车的结构

    l  车中包含0~N个购物条目(购物项);

    购物条目由图书和数量组成

    1. 添加购物项

    l  /jsps/book/desc.jsp(购买按钮)

    l  CartServlet#add()

    • 获取车:从session中获取车

    ¨       在登录成功时,向session中保存一个Cart对象(空的);

    ¨       在获取车时,一定能获取到(除非你没有登录)

    • 获取购物条目

    ¨       获取bid,通过BookService查询出Book对象;

    ¨       获取count;

    ¨       使用Book和count创建CartItem对象

    • 调用车的方法把条目添加进去:Cart对象的add
    • 转发(重定向)到/jsps/cart/list.jsp,显示车中所有内容
    1. 删除指定购物项

    l  /jsps/cart/list.jsp(每个条目后都有一个“删除”链接),传bid

    l  CartServlet#delete()方法

    • 获取参数bid
    • 获取车
    • 调用车的删除方法,传递bid
    • 重定向到/jsps/cart/list.jsp
    1. 清空车

    l  /jsps/cart/list.jsp(清空购物车链接)

    l  CartServlet#clear()

    • 获取车
    • 调用清空方法
    • 重定向到/jsps/cart/list.jsp
    1. 我的购物车

    订单模块

    1. 包和类

    l  cn.itcast.bookstore.order

    • domain:

    ¨       Order

    ¨       OrderItem

    • dao:OrderDao
    • service:OrderService
    • web.servlet:OrderServlet
    1. 生成订单

     

    1. 我的订单

     

    1. 加载订单

     

    1. 确认收货

     

    1. 付款之去银行
    1. 付款之回调


    作者:Kei
    出处:http://www.cnblogs.com/ikei/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

     
  • 相关阅读:
    富可视M310刷机包 MIUIV5 红米开发版 闪光 美化 稳定
    Windowsclient SSH 远程连接Windowsserver(PowerShell Server)
    数据结构与算法02--链表基础
    rhadoop linear regression 问题
    奇怪的git代理超时问题
    怎样利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置
    IVS_原理
    NN入门
    算法体系
    CNN原理
  • 原文地址:https://www.cnblogs.com/ikei/p/7132261.html
Copyright © 2011-2022 走看看