西蒙购物网(1)

一、功能需求
1、只有注册用户成功登录之后才可查看商品类别,查看商品,选购商品,生成订单、查看订单。

2、只有管理员才有权限进入购物网后台管理,进行用户管理、类别管理、商品管理与订单管理。

二、设计思路
1、采用MVC设计模式
在这里插入图片描述

分层架构:展现层(JSP)<——>控制层(Servlet)<——>业务层(Service)<——>模型层(Dao)<——>数据库(DB)

2、前台

(1)登录——显示商品类别——显示某类商品信息——查看购物车——生成订单——支付

(2)注册<——>登录

3、后台

(1)用户管理:用户的增删改查

(2)类别管理:商品类别的增删改查

(3)商品管理:商品的增删改查

(4)订单管理:订单的查看与删除

说明:只完成了用户管理中的查看用户功能。其他功能,有兴趣的不妨拿来操练一下。

4、西蒙购物网业务流程图

在这里插入图片描述

三、实现步骤

在这里插入图片描述
(一)创建数据库

创建MySQL数据库simonshop,包含四张表:用户表(t_user)、类别表(t_category)、商品表(t_product)和订单表(t_order)。
在这里插入图片描述
系统实现
(一)实体类(net.hw.bean)

1、用户实体(User)

2、类别实体(Category)

3、商品实体(Product)

4、订单实体(Order)

(二)数据库工具类(net.lh.dbutil)

(三)数据访问层接口(XXXDao)

1、用户数据访问接口(UserDao)

2、类别数据访问接口(CategoryDao)

3、商品数据访问接口(ProductDao)

4、订单数据访问接口(OrderDao)

(四)数据访问层实现类(XXXDaoImpl)

1、用户数据访问接口实现类(UserDaoImpl)

2、类别数据访问接口实现类(CategoryDaoImpl)

3、商品数据访问接口实现类(ProductDaoImpl)

4、订单数据访问接口实现类(OrderDaoImpl)

(五)数据服务层接口(XXXService)

1、用户服务接口(UserService)

2、类别服务接口(CategoryService)

3、商品服务接口(ProductService)

4、订单服务接口(OrderService)

(六)数据服务实现类(XXXServiceImpl)

1、用户服务实现类(UserServiceImpl)

2、类别服务实现类(CategoryServiceImpl)

3、商品服务实现类(ProductServiceImpl)

4、订单服务实现类(OrderServiceImpl)

(七)控制层(Servlet)

1、登录处理类(LoginServlet)

2、注销处理类(LogoutServlet)

3、注册处理类(RegisterServlet)

4、显示类别处理类(ShowCategoryServlet)

5、显示商品处理类(ShowProductServlet)

6、显示购物车处理类(ShowCartServlet)

7、操作购物车处理类(OperateCartServlet)

8、生成订单处理类(MakeOrderServlet)

9、支付处理类(PayServlet)

10、显示用户处理类(ShowUserServlet)

(八)部署描述文件web.xml

(九)图片资源(/images/XXX.jpg或XXX.png)

(十)CSS文件(/css/main.css)

(十一)JavaScript文件(/scripts/check.js)

(十二)展现层页面(JSP)

1、登录页面(/login.jsp)

2、前台页面(/frontend/XXX.jsp)

3、后台页面(/backend/XXX.jsp)
在这里插入图片描述

(二)创建实体类

在src里创建net.hw.shop.bean包,创建四个实体类:User、Category、Product与Order,与四张表t_user、t_category、t_product与t_order一一对应。
1、用户实体类User
2、类别实体类Category
3、商品实体类Product
4、订单实体类Order
在这里插入图片描述

package net.lh.shop.bean;
 
/**
 * 功能:用户实体类
 * 作者:李荟
 * 日期:2019年12月2日
 */
import java.util.Date;
 
public class User {
    /**
     * 用户标识符
     */
    private int id;
    /**
     * 用户名
     */
    private String username;
    /**
     * 密码
     */
    private String password;
    /**
     * 电话号码
     */
    private String telephone;
    /**
     * 注册时间
     */
    private Date registerTime;
    /**
     * 权限(0:管理员;1:普通用户)
     */
    private int popedom;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getUsername() {
        return username;
    }
 
    public void setUsername(String username) {
        this.username = username;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String getTelephone() {
        return telephone;
    }
 
    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }
 
    public Date getRegisterTime() {
        return registerTime;
    }
 
    public void setRegisterTime(Date registerTime) {
        this.registerTime = registerTime;
    }
 
    public int getPopedom() {
        return popedom;
    }
 
    public void setPopedom(int popedom) {
        this.popedom = popedom;
    }
 
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", telephone='" + telephone + '\'' +
                ", registerTime=" + registerTime +
                ", popedom=" + popedom +
                '}';
    }
}

package net.lh.shop.bean;
 
/**
 * 功能:商品类别实体类
 * 作者:李荟
 * 日期:2019年12月2日
 */
public class Category {
    /**
     * 类别标识符
     */
    private int id;
    /**
     * 类别名称
     */
    private String name;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "Category{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

package net.lh.shop.bean;
 
/**
 * 功能:商品实体类
 * 作者:李荟
 * 日期:2019年12月2日
 */
import java.util.Date;
 
public class Product {
    /**
     * 商品标识符
     */
    private int id;
    /**
     * 商品名称
     */
    private String name;
    /**
     * 商品单价
     */
    private double price;
    /**
     * 商品上架时间
     */
    private Date addTime;
    /**
     * 商品所属类别标识符
     */
    private int categoryId;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public double getPrice() {
        return price;
    }
 
    public void setPrice(double price) {
        this.price = price;
    }
 
    public Date getAddTime() {
        return addTime;
    }
 
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }
 
    public int getCategoryId() {
        return categoryId;
    }
 
    public void setCategoryId(int categoryId) {
        this.categoryId = categoryId;
    }
 
    @Override
    public String toString() {
        return "Product{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", addTime=" + addTime +
                ", categoryId=" + categoryId +
                '}';
    }
}


package net.lh.shop.bean;
 
/**
 * 功能:订单实体类
 * 作者:李荟
 * 日期:2019年12月2日
 */
import java.util.Date;
 
public class Order {
    /**
     * 订单标识符
     */
    private int id;
    /**
     * 用户名
     */
    private String username;
    /**
     * 联系电话
     */
    private String telephone;
    /**
     * 订单总金额
     */
    private double totalPrice;
    /**
     * 送货地址
     */
    private String deliveryAddress;
    /**
     * 下单时间
     */
    private Date orderTime;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getUsername() {
        return username;
    }
 
    public void setUsername(String username) {
        this.username = username;
    }
 
    public String getTelephone() {
        return telephone;
    }
 
    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }
 
    public double getTotalPrice() {
        return totalPrice;
    }
 
    public void setTotalPrice(double totalPrice) {
        this.totalPrice = totalPrice;
    }
 
    public String getDeliveryAddress() {
        return deliveryAddress;
    }
 
    public void setDeliveryAddress(String deliveryAddress) {
        this.deliveryAddress = deliveryAddress;
    }
 
    public Date getOrderTime() {
        return orderTime;
    }
 
    public void setOrderTime(Date orderTime) {
        this.orderTime = orderTime;
    }
 
    @Override
    public String toString() {
        return "Order{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", telephone='" + telephone + '\'' +
                ", totalPrice=" + totalPrice +
                ", deliveryAddress='" + deliveryAddress + '\'' +
                ", orderTime=" + orderTime +
                '}';
    }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值