基于JavaWeb的传统药店管理系统 源码+sql文件+运行截图
# 基于Java Web的传统药店管理系统开发实践指南## 引言在当今数字化浪潮中,医药行业也在逐步实现信息化管理。本文将介绍一个基于传统Java Web技术栈开发的药店管理系统,该项目采用JSP+Servlet+JavaBean架构,不依赖Maven构建工具,适合学习Java Web基础开发的初学者参考。## 项目概述这个药店管理系统是一个典型的CRUD应用,实现了药品流通中的核心管理功能,包含四大模块:- 客户信息管理- 药品类别管理- 药品库存管理- 系统用户管理系统采用B/S架构,前端使用Bootstrap+jQuery实现响应式布局,后端使用Servlet处理业务逻辑,JDBC操作MySQL数据库。## 开发环境准备### 技术栈- 核心框架:JSP+Servlet+JavaBean- 前端技术:Bootstrap 3 + jQuery 1.12- 数据库:MySQL 5.7- 服务器:Tomcat 8- 开发工具:Eclipse IDE for Java EE Developers- JDK版本:1.8### 环境搭建步骤1. **安装JDK 8**:配置JAVA_HOME环境变量2. **安装MySQL 5.7**:创建数据库用户并授权3. **安装Tomcat 8**:配置CATALINA_HOME环境变量4. **配置Eclipse EE环境**:安装Web开发插件(如WTP)## 项目部署指南### 1. 导入项目到Eclipse1. 打开Eclipse → File → Import → General → Existing Projects into Workspace2. 选择项目根目录,确保勾选"Copy projects into workspace"3. 检查项目属性中的Target Runtime是否配置了正确的Tomcat版本### 2. 数据库准备1. 创建数据库:```sqlCREATE DATABASE servlet DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;```2. 执行提供的SQL脚本导入初始数据(包含表结构和测试数据)### 3. 数据库配置修改修改`Servlet/src/com/util/DBUtil.java`中的数据库连接信息:```java// 原代码示例(需修改11-13行)private static final String DRIVER = "com.mysql.jdbc.Driver";private static final String URL = "jdbc:mysql://localhost:3306/servlet?useUnicode=true&characterEncoding=utf8";private static final String USERNAME = "root";private static final String PASSWORD = "yourpassword";```### 4. 部署与启动1. 右键项目 → Run As → Run on Server2. 选择已配置的Tomcat 8服务器3. 访问测试地址:`http://localhost:8080/Servlet`4. 使用默认账号登录:admin/123456## 系统架构解析### 分层架构设计```/Servlet├── src/│ ├── com/│ │ ├── controller/ # Servlet控制层│ │ ├── dao/ # 数据访问层│ │ ├── model/ # JavaBean实体类│ │ └── util/ # 工具类(DBUtil等)├── WebContent/│ ├── css/ # Bootstrap样式│ ├── js/ # jQuery脚本│ ├── WEB-INF/│ │ ├── lib/ # 依赖的JAR包│ │ └── web.xml # 部署描述符│ └── jsp/ # 视图页面```### 核心实现技术1. **MVC模式实现**:- Model:JavaBean实体类- View:JSP页面- Controller:Servlet处理请求2. **数据库操作**:- 使用JDBC原生连接池- 封装了基本的CRUD操作3. **前端交互**:- Bootstrap实现响应式布局- jQuery处理AJAX请求和DOM操作## 典型功能实现示例### 药品查询功能实现1. **Servlet处理层**:```java// MedicineServlet.javaprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String keyword = request.getParameter("keyword");List medicines = medicineDao.search(keyword);request.setAttribute("medicines", medicines);request.getRequestDispatcher("/jsp/medicine_list.jsp").forward(request, response);}```2. **JSP视图层**:```jsp| 药品ID | 药品名称 | 类别 | 价格 |
|---|
| ${medicine.id} | ${medicine.name} | ${medicine.categoryName} | ${medicine.price} |
```## 开发经验总结### 传统Java Web项目的优缺点**优点**:- 技术栈简单直接,适合学习基础- 无需学习构建工具,减少学习成本- 部署配置过程清晰可见**缺点**:- 项目结构需要手动维护- 依赖管理繁琐- 现代化特性支持不足### 常见问题解决方案1. **中文乱码问题**:- 数据库连接URL添加`useUnicode=true&characterEncoding=utf8`- JSP页面设置`<%@ page contentType="text/html;charset=UTF-8" %>`- 过滤器统一处理请求编码2. **Session管理**:- 实现登录拦截器检查session- 设置合理的session超时时间3. **分页实现**:- 数据库层面使用LIMIT分页- 前端显示分页导航栏## 扩展建议对于想进一步提升该系统的开发者,可以考虑:1. 添加药品库存预警功能2. 实现销售记录和统计报表3. 集成条形码扫描功能4. 添加权限管理系统(RBAC模型)5. 使用连接池(如Druid)替代原生JDBC## 结语这个传统Java Web项目虽然技术栈略显陈旧,但其中蕴含的MVC设计思想、分层架构原则等基础知识,对于初学者理解Web应用开发本质具有重要价值。在掌握基础后,可以进一步学习Spring Boot等现代框架,实现更高效、更优雅的开发体验。