欢迎光临
我们一直在努力

【Java Web】JSP+Servlet+MySQL 网上衣橱商城系统(完整源码+数据库

【Java Web】JSP+Servlet+MySQL 网上衣橱商城系统(完整源码+数据库)

🎯 项目简介:基于 JSP + Servlet + JDBC + MySQL 实现的网上衣橱商城系统,采用 MVC 架构,包含前台用户端和后台管理端,功能完整,适合 Java Web 课程设计、毕业设计参考学习。


📥 源码下载

下载地址:https://tool.nineya.com/s/1jdlklf1s


🛠️ 技术栈

技术说明
JSP 视图层,页面展示
Servlet 控制层,处理请求
JDBC 数据访问层
MySQL 8.0 数据库
Tomcat 9.x Web 服务器
HTML/CSS/JS 前端页面

📁 项目结构

01_MUI/
├── src/com/sxt/
│ ├── controller/ # Servlet 控制器
│ │ ├── LoginServlet.java
│ │ ├── RegisterServlet.java
│ │ ├── ClothesServlet.java
│ │ ├── CartServlet.java
│ │ ├── OrderServlet.java
│ │ ├── AddressServlet.java
│ │ └── AdminServlet.java
│ ├── dao/ # 数据访问层接口
│ │ ├── UserDao.java
│ │ ├── ClothesDao.java
│ │ ├── CartDao.java
│ │ ├── OrderDao.java
│ │ └── AddressDao.java
│ ├── dao/impl/ # DAO 实现类
│ ├── service/ # 业务逻辑层接口
│ ├── service/impl/ # Service 实现类
│ ├── pojo/ # 实体类
│ │ ├── User.java
│ │ ├── Clothes.java
│ │ ├── Cart.java
│ │ ├── Order.java
│ │ ├── OrderItem.java
│ │ └── Address.java
│ └── util/
│ └── JDBCUtil.java # 数据库工具类
├── web/
│ ├── admin/ # 后台管理页面
│ │ ├── index.jsp
│ │ ├── clothes.jsp
│ │ ├── clothesEdit.jsp
│ │ ├── orders.jsp
│ │ ├── users.jsp
│ │ └── userEdit.jsp
│ ├── css/ # 样式文件
│ ├── img/ # 商品图片
│ ├── js/ # JavaScript
│ ├── login.jsp # 登录页
│ ├── register.jsp # 注册页
│ ├── index.jsp # 首页
│ ├── clothesList.jsp # 商品列表
│ ├── clothesDetail.jsp # 商品详情
│ ├── cart.jsp # 购物车
│ ├── checkout.jsp # 结算页
│ ├── orders.jsp # 订单列表
│ ├── orderDetail.jsp # 订单详情
│ └── profile.jsp # 个人中心
└── wardrobesystem.sql # 数据库脚本


🎨 功能模块

前台用户端

模块功能页面
用户模块 注册、登录、退出 login.jsp、register.jsp
商品浏览 商品列表、商品详情、分类筛选 clothesList.jsp、clothesDetail.jsp
购物车 添加商品、修改数量、删除商品 cart.jsp
订单管理 提交订单、查看订单、订单详情 checkout.jsp、orders.jsp、orderDetail.jsp
个人中心 收货地址管理、个人信息 profile.jsp

后台管理端

模块功能页面
商品管理 商品列表、添加、编辑、删除、图片上传 clothes.jsp、clothesEdit.jsp
订单管理 订单列表、发货处理 orders.jsp
用户管理 用户列表、添加、编辑、删除 users.jsp、userEdit.jsp

🗄️ 数据库设计

E-R 图关系

用户(User) 1 ──── N 购物车(Cart) N ──── 1 商品(Clothes)
│ │
│ 1 │ N
│ │
N │
订单(Orders) 1 ──── N 订单明细(OrderItem) ───┘

N

收货地址(Address)

数据表结构

1. 用户表 (user)
字段类型说明
id INT 主键,自增
username VARCHAR(50) 用户名,唯一
password VARCHAR(50) 密码
role VARCHAR(20) 角色:user/admin
phone VARCHAR(20) 手机号
create_time DATETIME 创建时间
2. 商品表 (clothes)
字段类型说明
id INT 主键,自增
name VARCHAR(100) 商品名称
category VARCHAR(50) 分类
price DECIMAL(10,2) 价格
stock INT 库存
image VARCHAR(200) 图片路径
description TEXT 商品描述
create_time DATETIME 创建时间
3. 购物车表 (cart)
字段类型说明
id INT 主键,自增
user_id INT 用户ID,外键
clothes_id INT 商品ID,外键
quantity INT 数量
selected TINYINT 是否选中
create_time DATETIME 创建时间
4. 订单表 (orders)
字段类型说明
id INT 主键,自增
order_no VARCHAR(32) 订单号,唯一
user_id INT 用户ID,外键
total_amount DECIMAL(10,2) 订单总金额
status TINYINT 状态:0待付款/1已付款/2已发货/3已完成/4已取消
receiver_name VARCHAR(50) 收货人
receiver_phone VARCHAR(20) 收货电话
receiver_address VARCHAR(300) 收货地址
create_time DATETIME 下单时间
5. 订单明细表 (order_item)
字段类型说明
id INT 主键,自增
order_id INT 订单ID,外键
clothes_id INT 商品ID,外键
clothes_name VARCHAR(100) 商品名称
clothes_price DECIMAL(10,2) 商品单价
quantity INT 购买数量
subtotal DECIMAL(10,2) 小计金额

🚀 运行环境

环境版本要求
JDK 1.8+
Tomcat 9.x
MySQL 8.0+
IDE IntelliJ IDEA / Eclipse

📦 部署步骤

1. 导入数据库

# 登录 MySQL
mysql -u root -p

# 创建数据库
CREATE DATABASE wardrobesystem DEFAULT CHARACTER SET utf8mb4;

# 使用数据库
USE wardrobesystem;

# 导入 SQL 文件
SOURCE /path/to/wardrobesystem.sql;

2. 修改数据库配置

打开 src/com/sxt/util/JDBCUtil.java,修改数据库连接信息:

public class JDBCUtil {
private static final String URL = "jdbc:mysql://localhost:3306/wardrobesystem?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8";
private static final String USER = "root"; // 修改为你的用户名
private static final String PASSWORD = "123456"; // 修改为你的密码

static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}

3. 配置 Tomcat

  • 在 IDEA 中配置 Tomcat Server
  • 部署项目到 Tomcat
  • 启动 Tomcat
  • 4. 访问系统

    前台首页:http://localhost:8080/01_MUI/login.jsp
    后台管理:http://localhost:8080/01_MUI/admin/index.jsp


    🔑 测试账号

    角色用户名密码
    管理员 admin admin123
    普通用户 user1 123456
    普通用户 user2 123456

    💻 核心代码展示

    1. 登录功能 (LoginServlet.java)

    @WebServlet("/LoginServlet")
    public class LoginServlet extends HttpServlet {
    private UserService userService = new UserServiceImpl();

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    req.setCharacterEncoding("UTF-8");
    resp.setContentType("text/html;charset=UTF-8");

    String username = req.getParameter("username");
    String password = req.getParameter("password");

    User user = userService.login(username, password);

    if (user != null) {
    req.getSession().setAttribute("user", user);
    // 根据角色跳转不同页面
    if ("admin".equals(user.getRole())) {
    resp.sendRedirect("admin/index.jsp");
    } else {
    resp.sendRedirect("ClothesServlet?action=list");
    }
    } else {
    req.setAttribute("error", "用户名或密码错误");
    req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
    }
    }

    2. 用户实体类 (User.java)

    public class User {
    private Integer id;
    private String username;
    private String password;
    private String role;
    private String phone;
    private Date createTime;

    // 构造方法
    public User() {}

    public User(String username, String password, String role, String phone) {
    this.username = username;
    this.password = password;
    this.role = role;
    this.phone = phone;
    }

    // Getter 和 Setter 方法省略…
    }

    3. 数据库工具类 (JDBCUtil.java)

    public class JDBCUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/wardrobesystem?useSSL=false&serverTimezone=Asia/Shanghai";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";

    static {
    try {
    Class.forName("com.mysql.cj.jdbc.Driver");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    }

    public static Connection getConnection() throws SQLException {
    return DriverManager.getConnection(URL, USER, PASSWORD);
    }

    public static void close(Connection conn, Statement stmt, ResultSet rs) {
    try {
    if (rs != null) rs.close();
    if (stmt != null) stmt.close();
    if (conn != null) conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }

    4. 登录页面 (login.jsp)

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>用户登录 – 网上衣橱</title>
    </head>
    <body>
    <div class="login-box">
    <h2>用户登录</h2>

    <% if(request.getAttribute("error") != null) { %>
    <div class="error-msg"><%= request.getAttribute("error") %></div>
    <% } %>

    <form action="LoginServlet" method="post">
    <div class="form-group">
    <label>用户名</label>
    <input type="text" name="username" placeholder="请输入用户名" required>
    </div>

    <div class="form-group">
    <label>密码</label>
    <input type="password" name="password" placeholder="请输入密码" required>
    </div>

    <button type="submit" class="btn-login">登录</button>
    </form>

    <div class="register-link">
    还没有账号?<a href="register.jsp">立即注册</a>
    </div>
    </div>
    </body>
    </html>


    📊 系统流程图

    用户购物流程

    ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
    │ 用户登录 │ ──▶ │ 浏览商品 │ ──▶ │ 商品详情 │
    └─────────────┘ └─────────────┘ └─────────────┘


    ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
    │ 订单完成 │ ◀── │ 提交订单 │ ◀── │ 购物车 │
    └─────────────┘ └─────────────┘ └─────────────┘

    MVC 架构流程

    ┌──────────┐ 请求 ┌──────────────┐ 调用 ┌──────────────┐
    │ 浏览器 │ ─────────▶ │ Servlet │ ────────▶ │ Service │
    │ (View) │ │ (Controller) │ │ (Model) │
    └──────────┘ └──────────────┘ └──────────────┘
    ▲ │ │
    │ │ ▼
    │ 转发/重定向 │ ┌──────────────┐
    └─────────────────────────┘ │ DAO │
    └──────────────┘


    ┌──────────────┐
    │ MySQL │
    └──────────────┘


    ⚠️ 常见问题

    1. 数据库连接失败

    解决方案:
    1. 检查 MySQL 服务是否启动
    2. 检查用户名密码是否正确
    3. 检查数据库名是否为 wardrobesystem
    4. 检查 MySQL 驱动 jar 包是否导入

    2. 中文乱码问题

    解决方案:
    1. JSP 页面添加:<%@ page contentType="text/html;charset=UTF-8" %>
    2. Servlet 中设置:request.setCharacterEncoding("UTF-8");
    3. 数据库连接 URL 添加:characterEncoding=utf8

    3. 404 页面找不到

    解决方案:
    1. 检查 Tomcat 部署路径是否正确
    2. 检查 web.xml 中 Servlet 映射配置
    3. 检查 JSP 文件路径是否正确


    📝 项目总结

    本项目是一个完整的 Java Web 商城系统,涵盖了:

    • ✅ MVC 三层架构设计
    • ✅ 用户认证与权限控制
    • ✅ 商品管理 CRUD 操作
    • ✅ 购物车功能实现
    • ✅ 订单流程处理
    • ✅ 文件上传功能
    • ✅ 前后台分离设计

    适合作为 Java Web 入门学习、课程设计、毕业设计的参考项目。


    📥 源码下载

    下载地址:https://tool.nineya.com/s/1jdlklf1s


    💡 如果觉得有帮助,欢迎点赞收藏!有问题可以在评论区留言交流~

    赞(0)
    未经允许不得转载:171主机测评 » 【Java Web】JSP+Servlet+MySQL 网上衣橱商城系统(完整源码+数据库
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址