学生信息管理系统;JDBC+JSP.
v:xz-Vir-

yang yi c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu
sql c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu
src c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu
web c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu
.gitignore c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu
README.md c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu
conclusion.md c0119631f5 feat:完成学生信息管理系统;JDBC+JSP. 10 miesięcy temu

README.md

学生管理系统 (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. 创建数据库:

    CREATE DATABASE studentManageSystem_JSP;
    
  2. 执行初始化脚本(位于 sql/init.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 中的数据库连接信息:

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处理请求和响应

扩展功能建议

  • 添加分页功能
  • 实现文件上传(学生照片)
  • 添加数据导出功能
  • 实现更复杂的权限管理

许可证

本项目仅供学习和演示使用。

联系方式

如有问题或建议,请联系开发团队。