jsp+servlet做的图书销售管理系统

92 阅读6分钟

图书销售管理系统

1. 项目简介

本项目是一个基于JavaWeb技术的图书销售管理系统。系统采用了经典的 Servlet + JSP + JDBC 架构,旨在实现一个清晰、易于理解和部署的Web应用程序。整个项目遵循了您提出的特定需求,没有使用Maven或Filter等现代自动化工具,而是回归了传统的Java EE开发模式,以便于您手动管理和学习。

2. 功能更新 (最新修改)

根据您的最新需求,系统已进行如下重要更新:

  • 权限细分:

    • 管理员 (admin): 拥有全部权限,包括对所有图书的增、删、改、查,以及查看所有用户订单并进行"发货"操作。
    • 普通用户 (user): 只能浏览图书列表并下单购买。用户可以查看自己的订单历史和状态,但不能再添加、编辑或删除图书。
  • 订单系统:

    • 用户端: 用户可以从图书列表页点击"购买"按钮来创建订单。订单创建后状态默认为"待发货"。用户可以在"我的订单"页面查看自己所有的订单记录。
    • 管理端: 管理员可以在"订单管理"页面查看所有用户的订单。对于状态为"待发货"的订单,管理员可以点击"发货"按钮将其状态更新为"已发货"。

3. 代码创作过程

我的创作过程严格遵循您的需求指令,分为以下几个核心阶段:

  1. 需求分析:我详细解读了您关于技术栈、核心功能、项目结构、页面布局、UI文案以及代码生成方式的全部要求。
  2. 架构设计:基于"Servlet + JSP + JDBC"的技术栈,我设计了经典的分层架构,包括:
    • 表示层 (View):使用JSP、HTML、CSS和原生JavaScript构建,负责用户界面和交互。
    • 控制层 (Controller):由多个Servlet组成,负责接收用户请求、调用业务逻辑并进行页面跳转。
    • 数据持久层 (DAO):通过JDBC和DAO模式(Data Access Object)封装了对数据库的CRUD(增删改查)操作。
    • 模型层 (Model):包含了UserBook等实体类,用于在不同层之间传递数据。
    • 工具类 (Util):如DBUtil,用于管理数据库连接。
  3. 数据库设计:我设计了usersbooksorders三个核心表,并编写了完整的database.sql脚本,包含了建表语句和一个默认的管理员账户。
  4. 编码实现:我依次生成了项目的所有文件:
    • 从数据库脚本database.sql和部署描述符web.xml开始,奠定项目基础。
    • 接着创建了通用的CSS样式style.css和客户端验证脚本script.js
    • 然后,我编写了Java后端代码,包括工具类、模型类、DAO类和Servlet。
    • 最后,我创建了所有的JSP页面,并将它们与后端逻辑连接起来,实现了完整的业务流程。
  5. 完整性检查与文档编写:在生成所有文件后,我回顾了您的需求,确保前后端逻辑的完整性和对应关系。最后,我编写了这份README.md文件,对整个项目进行总结。

4. 代码特点

  • 传统Java EE架构:完全使用javax命名空间下的Servlet和JSP API,没有引入jakarta或Spring等现代框架,便于理解JavaWeb核心技术。
  • 无Maven依赖:项目不使用Maven进行依赖管理,您需要手动将所需的.jar文件(如数据库驱动和JSTL库)放入WebContent/WEB-INF/lib目录。
  • Servlet为核心控制器:所有的页面导航和业务逻辑处理都由Servlet驱动,JSP仅作为视图模板,实现了良好的职责分离。
  • 统一的UI/UX:所有页面共享相同的header.jspfooter.jspleft-menu.jsp,并应用了统一的style.css,保证了界面风格的一致性和专业性。
  • 角色权限管理:系统通过后端Servlet和前端JSP的JSTL标签共同实现了严格的"管理员"和"普通用户"权限控制。
  • 原生JDBC操作:数据库操作完全通过原生JDBC实现,封装在DAO层中,代码直观,有助于学习底层数据库交互。
  • 前后端分离(逻辑上):虽然使用JSP,但通过Servlet作为中间控制器,避免了JSP页面直接处理复杂的业务逻辑,这是一种逻辑上的前后端分离思想。
  • 中文友好:所有UI文案均采用中文,符合您的要求。
  • 代码注释清晰:在关键的Java方法和SQL语句旁,我添加了中文注释,以帮助您更好地理解代码功能。

5. 如何部署和运行

请按照以下步骤在Eclipse IDE中部署和运行此项目:

  1. 准备环境:

  2. 导入数据库:

    • 打开MySQL客户端(如Navicat, MySQL Workbench等)。
    • 创建一个新的数据库,名称为 booksale
    • 执行项目根目录下的 database.sql 文件,这将创建所需的表和初始数据。
  3. 修改数据库配置:

    • 打开 src/com/booksale/util/DBUtil.java 文件。
    • 根据您自己的MySQL设置,修改 USERPASSWORD 常量的值。
  4. 下载并添加JAR包:

    • 由于本项目不使用Maven,您需要手动下载以下 .jar 文件:
      • MySQL Connector/J: 数据库驱动。您可以从 MySQL官网 下载。请选择与您数据库版本兼容的驱动(如 mysql-connector-java-5.1.49.jarmysql-connector-j-8.x.x.jar)。
      • JSTL (必需): JSP标准标签库,新功能中已大量使用。您需要下载 jstl-1.2.jar (或 javax.servlet.jsp.jstl-api-1.2.2.jarjavax.servlet.jsp.jstl-1.2.2.jar)。
    • 在Eclipse的项目中,将下载好的 .jar 文件全部复制到 WebContent/WEB-INF/lib 目录下。如果lib目录不存在,请手动创建它。
  5. 在Eclipse中创建和配置项目:

    • 在Eclipse中,选择 File -> New -> Dynamic Web Project
    • 输入项目名称(例如 BookSaleSystem)。
    • Target runtime 字段,选择您已配置好的Apache Tomcat服务器。
    • 保持其他设置为默认,点击 Finish
    • 将我生成的所有文件和文件夹(src, WebContent, database.sql, readme.md)复制并覆盖到您刚刚在Eclipse工作区创建的项目中。
    • 右键点击项目,选择 Refresh (F5)。
  6. 运行项目:

    • Servers视图中,右键点击Tomcat服务器并选择Add and Remove...。将您的项目添加到服务器上。
    • 右键点击Tomcat服务器,选择 StartDebug
    • 服务器启动后,在浏览器中访问 http://localhost:8080/您的项目名/ (例如: http://localhost:8080/BookSaleSystem/)。
    • 您应该能看到登录页面。使用默认管理员账户 admin / admin 登录,或注册新用户。

6. 总结

这个项目是一个功能完整、结构清晰的JavaWeb入门级应用。它刻意避开了复杂的现代工具链,让开发者能够专注于JavaWeb本身的核心技术。希望这个项目能满足您的要求,并为您后续的学习和开发提供一个坚实的基础。

1.png

2.png

3.png

4.png

4-1.png

5.png

6.png