项目需求
- 使用前端、数据库、JavaWeb 等技术并采用 MVC 设计模式实现 学生信息管理系统 ,要求使用管理员账号密码登录后进行学员信息增加、学员信息修改、学员信息删除、学员信息查找、学员信息显示功能。
- 其中学生信息有:学号、姓名、性别、出生日期、邮箱、备注。
- 要求使用数据库连接池、分页显示等技术,并且还需要保证程序的可扩展性和可维护性。
项目运行
- 运行 student_data.sql 的创建数据库 renda01 语句,以及创建数据表 user 和 student 的 sql 语句。
- 使用 Intellij Idea 打开 java_web_project 项目,修改 resources/druid.properties 文件下与数据库相关的配置,增加项目依赖库文件夹为 backend-system/web/WEB-INF/lib,配置 Tomcat 8.5.55 服务器。运行 Tomcat,并在浏览器输入对应的 URL。
项目结构
该项目使用了 MVC 和三层架构的开发理念,以 Java Web 相关知识为开发工具。
三层架构
数据访问层
src/ com .renda.backend/dao:管理员用户表访问接口类 UserDao 和学员表访问接口类 StudentDao,以及对应的 impl 目录下的实现类 UserDaoImpl、StudentDaoImpl
业务逻辑层
src/com.renda.backend/service:管理员用户服务类 UserService 和学生信息服务类 StudentService
表现层 – MVC
- Model 模型
src/com.renda.backend/bean:分页对象泛型类 PageBean<T>,学员表对象类 Student,用户对象类 User
- View 视图
web:存放前端代码的文件夹,以下为除去“前端框架 Bootstrap 相关依赖”和“项目依赖库配置文件”后的文件介绍
css – 自定义层叠样式表 custom .css
js – 自定义脚本代码 custom.js
登录页面 login. jsp
主页 main.jsp
- Controller 控制器
src/com.renda.backend/servlet
MainServlet – 检查是否登录,已经登录则重定向到分页查询控制器,没有登录则转到登录页面。 相对路径 :/main 和 /index.jsp
LoginServlet – 验证登录信息,登录成功重定向到主页,失败则跳转到登录页。相对路径:/login
LogoutServlet – 删除登录信息跳转到登录页面。相对路径:/logout
FindUserByPageServlet – 根据请求参数获取对应页面的数据。相对路径:/findUserByPage
CheckStudentIdServlet – 检查学号是否重复,并响应相关的结果。相对路径:/checkStudentId
AddStudentServlet – 增加学生信息,然后跳转到最后一页。相对路径:/addStudent
RemoveStudentServlet – 移除学生信息,并响应移除是否成功的结果。相对路径:/removeStudent
UpdateStudentServlet – 更新学生信息,并响应是否更新成功的结果。相对路径:/updateStudent
其它
工厂类
src/com.renda.backend/factory:学员表 数据访问对象 的工厂类 StudentDaoFactory 和管理员用户表数据访问对象的工厂类 UserDaoFactory
工具类
src/com.renda.backend/util:数据库连接池 Druid 工具类 DruidUtils,日期格式工具类 DateUtils
测试类
src/com.renda.backend/util:学员表数据库访问层测试类 StudentDaoTest,管理员用户数据表访问层的测试类 UserDaoTest,学生信息服务层的测试类 StudentServiceTest,管理员用户服务层的测试类 UserServiceTest