本项目为Java Web课程设计的期末作品,包含详尽的设计文档和全部源代码。所有功能均已实现并经过测试,适用于学习参考与实践应用。
### 项目概述
本次项目的开发基于本学期所学内容,采用Servlet、JSP及JDBC技术,并结合MVC模式进行设计与实现。该项目旨在构建一个具备CRUD核心功能的教务管理系统,涵盖学生端和教师端两大部分。前端界面使用jQuery处理数据传输及相关验证操作,并利用Bootstrap框架美化界面。
### 技术架构
**运行环境**
- Tomcat 9
- MySQL 5
- Maven 3.8
- JDK 8
**技术栈**
- **前端**: jQuery用于数据交互和页面验证,如生成验证码;Bootstrap负责网页布局与样式设计。
- **后端**: Servlet及JSP进行业务逻辑处理,并通过Maven管理jar包和第三方库的依赖。此外,利用jspsmart工具来操作文件系统。
- **数据库**: MySQL 5
- 应用架构采用基于MVC模式分层思想设计的应用程序,主要开发语言为Java与JSP。
### 功能介绍
该管理系统旨在提供用户友好的界面,并具备高效的操作性能、优秀的扩展性和灵活性。同时确保系统的操作流程简洁明了。
#### 学生模块
- **注册**: 用户点击注册按钮后输入相关信息;系统进行数据校验,包括用户名唯一性及密码格式正确性等检查。
- **登录**: 若用户未登录则自动跳转至登陆页面;支持找回密码功能。提交的账号信息需通过后台验证确认无误后方可成功登录。
- **查看成绩**: 用户可以查询个人的成绩单,并将其导出为PDF文件形式保存或打印。
- **个人信息管理**: 支持上传头像及修改其他个人信息,所有更改均覆盖原有记录。
- **退出登录**: 点击按钮即完成注销操作并清除本地缓存。
#### 教师模块
功能设计与学生端类似,包括但不限于教师的账户注册、密码找回机制以及个人资料管理等。此外还提供了对学生信息(如增删改查)及成绩数据进行维护的功能。
- **个人信息管理**: 上传头像和修改其他相关信息;
- **学生成绩管理**: 添加或删除学生的记录;更新特定学生的信息,包括但不限于学术表现。
### 页面设计
项目中的静态页面采用JSP技术实现,并结合jQuery与Bootstrap框架来优化用户体验及界面美观度。
### 数据库设计
**角色权限表**
```
字段名称: uid 类型:整数 长度:11 是否主键:是 描述:用户ID
字段名称: utype 类型:字符 长度:255 是否允许为空值:否 描述:角色类型
```
**成绩表**
```
字段名称: id 类型:整数 长度:200 是否主键:是 描述:学生ID
字段名称: dat 类型:字符 长度:255 是否允许为空值:否 描述:课程一成绩
字段名称: Android 类型:字符 长度:255 是否允许为空值:否 描述:课程二成绩
字段名称: Jsp 类型:字符 长度:255 是否允许为空值:是 描述:课程三成绩(可选)
```
**学生表**
```
字段名称: id 类型:整数 长度:59 是否主键:是 描述:学号
字段名称: password 类型:字符 长度:255 是否允许为空值:否 描述:密码
字段名称: name 类型:字符 长度:255 是否允许为空值:否 描述:姓名
字段名称: sex 类型:字符 长度:255 是否允许为空值:是 描述:性别(可选)
字段名称: school_date类型:字符 长度:255 是否允许为空值:是 描述:入学时间(可选)
字段名称: major 类型:字符 长度:255 是否允许为空值:是 描述:专业
字段名称: email 类型:字符 长度:255 是否允许为空值:是 描述:邮箱(可选)
```
**教师表**
结构与学生表类似,包括工号、密码、姓名等基本信息。