图书销售管理系统
1. 项目简介
本项目是一个基于JavaWeb技术的图书销售管理系统。系统采用了经典的 Servlet + JSP + JDBC 架构,旨在实现一个清晰、易于理解和部署的Web应用程序。整个项目遵循了您提出的特定需求,没有使用Maven或Filter等现代自动化工具,而是回归了传统的Java EE开发模式,以便于您手动管理和学习。
2. 功能更新 (最新修改)
根据您的最新需求,系统已进行如下重要更新:
-
权限细分:
- 管理员 (admin): 拥有全部权限,包括对所有图书的增、删、改、查,以及查看所有用户订单并进行"发货"操作。
- 普通用户 (user): 只能浏览图书列表并下单购买。用户可以查看自己的订单历史和状态,但不能再添加、编辑或删除图书。
-
订单系统:
- 用户端: 用户可以从图书列表页点击"购买"按钮来创建订单。订单创建后状态默认为"待发货"。用户可以在"我的订单"页面查看自己所有的订单记录。
- 管理端: 管理员可以在"订单管理"页面查看所有用户的订单。对于状态为"待发货"的订单,管理员可以点击"发货"按钮将其状态更新为"已发货"。
3. 代码创作过程
我的创作过程严格遵循您的需求指令,分为以下几个核心阶段:
- 需求分析:我详细解读了您关于技术栈、核心功能、项目结构、页面布局、UI文案以及代码生成方式的全部要求。
- 架构设计:基于"Servlet + JSP + JDBC"的技术栈,我设计了经典的分层架构,包括:
- 表示层 (View):使用JSP、HTML、CSS和原生JavaScript构建,负责用户界面和交互。
- 控制层 (Controller):由多个Servlet组成,负责接收用户请求、调用业务逻辑并进行页面跳转。
- 数据持久层 (DAO):通过JDBC和DAO模式(Data Access Object)封装了对数据库的CRUD(增删改查)操作。
- 模型层 (Model):包含了
User和Book等实体类,用于在不同层之间传递数据。 - 工具类 (Util):如
DBUtil,用于管理数据库连接。
- 数据库设计:我设计了
users、books和orders三个核心表,并编写了完整的database.sql脚本,包含了建表语句和一个默认的管理员账户。 - 编码实现:我依次生成了项目的所有文件:
- 从数据库脚本
database.sql和部署描述符web.xml开始,奠定项目基础。 - 接着创建了通用的CSS样式
style.css和客户端验证脚本script.js。 - 然后,我编写了Java后端代码,包括工具类、模型类、DAO类和Servlet。
- 最后,我创建了所有的JSP页面,并将它们与后端逻辑连接起来,实现了完整的业务流程。
- 从数据库脚本
- 完整性检查与文档编写:在生成所有文件后,我回顾了您的需求,确保前后端逻辑的完整性和对应关系。最后,我编写了这份
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.jsp、footer.jsp和left-menu.jsp,并应用了统一的style.css,保证了界面风格的一致性和专业性。 - 角色权限管理:系统通过后端Servlet和前端JSP的JSTL标签共同实现了严格的"管理员"和"普通用户"权限控制。
- 原生JDBC操作:数据库操作完全通过原生JDBC实现,封装在DAO层中,代码直观,有助于学习底层数据库交互。
- 前后端分离(逻辑上):虽然使用JSP,但通过Servlet作为中间控制器,避免了JSP页面直接处理复杂的业务逻辑,这是一种逻辑上的前后端分离思想。
- 中文友好:所有UI文案均采用中文,符合您的要求。
- 代码注释清晰:在关键的Java方法和SQL语句旁,我添加了中文注释,以帮助您更好地理解代码功能。
5. 如何部署和运行
请按照以下步骤在Eclipse IDE中部署和运行此项目:
-
准备环境:
- 安装 Eclipse IDE for Java EE Developers。
- 安装 Apache Tomcat 服务器(推荐版本8.x或9.x)。
- 安装 MySQL 5.7 数据库。
-
导入数据库:
- 打开MySQL客户端(如Navicat, MySQL Workbench等)。
- 创建一个新的数据库,名称为
booksale。 - 执行项目根目录下的
database.sql文件,这将创建所需的表和初始数据。
-
修改数据库配置:
- 打开
src/com/booksale/util/DBUtil.java文件。 - 根据您自己的MySQL设置,修改
USER和PASSWORD常量的值。
- 打开
-
下载并添加JAR包:
- 由于本项目不使用Maven,您需要手动下载以下
.jar文件:- MySQL Connector/J: 数据库驱动。您可以从 MySQL官网 下载。请选择与您数据库版本兼容的驱动(如
mysql-connector-java-5.1.49.jar或mysql-connector-j-8.x.x.jar)。 - JSTL (必需): JSP标准标签库,新功能中已大量使用。您需要下载
jstl-1.2.jar(或javax.servlet.jsp.jstl-api-1.2.2.jar和javax.servlet.jsp.jstl-1.2.2.jar)。
- MySQL Connector/J: 数据库驱动。您可以从 MySQL官网 下载。请选择与您数据库版本兼容的驱动(如
- 在Eclipse的项目中,将下载好的
.jar文件全部复制到WebContent/WEB-INF/lib目录下。如果lib目录不存在,请手动创建它。
- 由于本项目不使用Maven,您需要手动下载以下
-
在Eclipse中创建和配置项目:
- 在Eclipse中,选择
File->New->Dynamic Web Project。 - 输入项目名称(例如
BookSaleSystem)。 - 在
Target runtime字段,选择您已配置好的Apache Tomcat服务器。 - 保持其他设置为默认,点击
Finish。 - 将我生成的所有文件和文件夹(
src,WebContent,database.sql,readme.md)复制并覆盖到您刚刚在Eclipse工作区创建的项目中。 - 右键点击项目,选择
Refresh(F5)。
- 在Eclipse中,选择
-
运行项目:
- 在
Servers视图中,右键点击Tomcat服务器并选择Add and Remove...。将您的项目添加到服务器上。 - 右键点击Tomcat服务器,选择
Start或Debug。 - 服务器启动后,在浏览器中访问
http://localhost:8080/您的项目名/(例如:http://localhost:8080/BookSaleSystem/)。 - 您应该能看到登录页面。使用默认管理员账户
admin/admin登录,或注册新用户。
- 在
6. 总结
这个项目是一个功能完整、结构清晰的JavaWeb入门级应用。它刻意避开了复杂的现代工具链,让开发者能够专注于JavaWeb本身的核心技术。希望这个项目能满足您的要求,并为您后续的学习和开发提供一个坚实的基础。