# 学生管理系统 (Student Management System) 基于JSP和JDBC技术开发的学生信息管理系统,提供完整的学生信息增删改查功能。 ## 功能特性 - ✅ 学生信息管理(增删改查) - ✅ 按姓名搜索学生信息 - ✅ 用户认证和权限控制 - ✅ UTF-8编码支持(解决中文乱码) - ✅ 响应式用户界面 - ✅ 数据验证和安全性 ## 技术栈 - **后端**: Java Servlet、JSP、JDBC - **前端**: HTML、CSS、JavaScript - **数据库**: MySQL - **服务器**: Apache Tomcat ## 系统架构 ``` src/ ├── controller/ # 控制器层 │ ├── StudentController.java # 学生信息控制器 │ ├── LoginController.java # 登录控制器 │ └── LogoutController.java # 退出登录控制器 ├── dao/ # 数据访问层 │ └── StudentDao.java # 学生数据访问对象 ├── model/ # 模型层 │ └── Student.java # 学生实体类 ├── util/ # 工具类 │ └── JDBCUtil.java # 数据库连接工具 └── filter/ # 过滤器 ├── AuthFilter.java # 用户认证过滤器 └── CharacterEncodingFilter.java # 编码过滤器 web/ ├── login.jsp # 登录页面 ├── studentList.jsp # 学生列表页面 ├── studentForm.jsp # 学生信息表单页面 └── WEB-INF/ ├── web.xml # 配置文件 └── lib/ # 依赖库 ``` ## 快速开始 ### 环境要求 - Java 8+ - MySQL 5.7+ - Apache Tomcat 8+ - Maven 3.6+ ### 数据库配置 1. 创建数据库: ```sql CREATE DATABASE studentManageSystem_JSP; ``` 2. 执行初始化脚本(位于 `sql/init.sql`): ```sql USE studentManageSystem_JSP; CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL COMMENT '学生姓名', student_id VARCHAR(12) UNIQUE NOT NULL COMMENT '学号,格式252612000xx', class VARCHAR(50) NOT NULL COMMENT '班级', dormitory_number VARCHAR(10) COMMENT '宿舍号', contact VARCHAR(20) COMMENT '联系方式', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表'; ``` ### 数据库连接配置 修改 `src/space/anyi/studentManageSystem_JSP/util/JDBCUtil.java` 中的数据库连接信息: ```java private static final String URL = "jdbc:mysql://localhost:3306/studentManageSystem_JSP?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; private static final String USERNAME = "root"; private static final String PASSWORD = "123456"; ``` ### 部署步骤 1. **导入项目到IDE**(如IntelliJ IDEA) 2. **配置Tomcat服务器** 3. **添加依赖库**到 `WEB-INF/lib/` 目录: - `mysql-connector-java-8.0.x.jar` - `javax.servlet-api-4.0.x.jar` 4. **构建项目** 5. **启动Tomcat服务器** 6. **访问系统**: http://localhost:8080/studentManageSystem_JSP ## 使用说明 ### 登录系统 - **默认账号**: admin - **默认密码**: admin123 - 登录后才能访问学生管理功能 ### 学生信息管理 #### 1. 查看学生列表 - 访问系统首页显示所有学生信息 - 支持按姓名搜索学生 #### 2. 添加学生 - 点击"添加学生"按钮 - 填写必填信息:姓名、学号、班级 - 学号格式:252612000xx(11位数字) #### 3. 编辑学生信息 - 在学生列表点击"编辑"按钮 - 修改学生信息后保存 #### 4. 删除学生 - 在学生列表点击"删除"按钮 - 系统会弹出确认对话框 ### 数据格式要求 - **学号**: 必须符合 252612000xx 格式 - **姓名**: 最大长度50字符 - **班级**: 最大长度50字符 - **宿舍号**: 最大长度10字符 - **联系方式**: 最大长度20字符 ## API接口 ### 学生管理接口 | 方法 | 路径 | 参数 | 描述 | |------|------|------|------| | GET | `/student?action=list` | - | 获取学生列表 | | GET | `/student?action=add` | - | 显示添加表单 | | GET | `/student?action=edit&id={id}` | id: 学生ID | 显示编辑表单 | | GET | `/student?action=delete&id={id}` | id: 学生ID | 删除学生 | | GET | `/student?action=search&name={name}` | name: 学生姓名 | 搜索学生 | | POST | `/student?action=add` | 表单数据 | 添加学生 | | POST | `/student?action=edit` | 表单数据 | 更新学生 | ### 用户认证接口 | 方法 | 路径 | 参数 | 描述 | |------|------|------|------| | GET | `/login` | - | 显示登录页面 | | POST | `/login` | username, password | 用户登录 | | GET | `/logout` | - | 用户退出 | ## 过滤器配置 系统配置了两个过滤器: 1. **CharacterEncodingFilter**: 设置请求和响应的UTF-8编码 2. **AuthFilter**: 检查用户登录状态,未登录用户重定向到登录页面 ## 常见问题 ### Q: 中文显示乱码 A: 系统已配置UTF-8编码过滤器,确保数据库连接字符串包含 `useUnicode=true&characterEncoding=UTF-8` ### Q: 无法连接数据库 A: 检查数据库服务是否启动,连接信息是否正确 ### Q: 登录失败 A: 默认账号密码为 admin/admin123,检查是否正确输入 ### Q: 学号格式验证失败 A: 学号必须符合 252612000xx 格式,其中xx为两位数字 ## 开发说明 ### 项目结构 项目采用MVC架构模式: - **Model**: 数据模型和业务逻辑 - **View**: JSP页面展示 - **Controller**: Servlet处理请求和响应 ### 扩展功能建议 - 添加分页功能 - 实现文件上传(学生照片) - 添加数据导出功能 - 实现更复杂的权限管理 ## 许可证 本项目仅供学习和演示使用。 ## 联系方式 如有问题或建议,请联系开发团队。