使用Servlet、JSP和JDBC实现作业管理系统
2020-03-13 本文已影响0人
酷酷的群
项目简介
使用技术:
- Servlet
- JSP
- JDBC
功能简介:
- 教师使用功能:添加作业、添加学生、查看作业提交情况
-
学生使用功能:提交作业
添加作业
项目代码结构:
代码结构数据库设计:
- s_homework表:包含属性id、title、content、create_time、update_time
- s_student表:包含id、name、create_time、update_time
- s_student_homework表:包含id、student_id、homework_id、homework_title、homework_content、create_time、update_time
- sql如下:
CREATE SCHEMA `school` DEFAULT CHARACTER SET utf8mb4 ;
DROP TABLE if exists `school`.`s_homework`;
CREATE TABLE `school`.`s_homework` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(20) NULL,
`content` TEXT NULL,
`create_time` TIMESTAMP NOT NULL,
`update_time` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
DROP TABLE if exists `school`.`s_student`;
CREATE TABLE `school`.`s_student` (
`id` BIGINT NOT NULL,
`name` VARCHAR(20) NOT NULL,
`create_time` TIMESTAMP NOT NULL,
`update_time` TIMESTAMP NULL,
PRIMARY KEY (`id`));
DROP TABLE if exists `school`.`s_student_homework`;
CREATE TABLE `school`.`s_student_homework` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`student_id` BIGINT NOT NULL,
`homework_id` BIGINT NOT NULL,
`homework_title` VARCHAR(45) NOT NULL,
`homework_content` TEXT NULL,
`create_time` TIMESTAMP NOT NULL,
`update_time` TIMESTAMP NULL,
PRIMARY KEY (`id`));
参考链接:
- 该项目CSDN链接:CSDN链接
- javaEE环境配置:javaEE环境配置
- 项目源码:作业管理系统源码
项目实现
项目主界面:
该界面使用一个index.jsp文件实现,四个功能分别使用四个超链接。
主界面
添加作业功能:
- 实现流程:index.jsp→addHomework.jsp→AddHomeworkServlet→operationResult.jsp
-
界面:
添加作业
成功添加
添加学生功能:
- 实现流程:index.jsp→addStudent.jsp→AddStudentServlet→operationResult.jsp
-
界面:
添加学生
已存在该学生
查看作业提交情况功能:
- 实现流程:index.jsp→DisplayHomeworkServlet→queryAllHomework.jsp→QuerySpecificHomeworkServlet→specificHomeworkSubmission.jsp
-
界面:
查看作业
作业详情
学生提交作业功能:
- 实现流程:index.jsp→DisplayAllHomeworkServlet→displayAllHomework.jsp→SubmitHomeworkServlet→submitHomework.jsp→SubmitHomeworkServlet→operationResult.jsp
-
界面:
提交作业
提交成功
提交失败
心得体会
- 需要时刻考虑学号不存在的情况,否则会导致数据库数据混乱。
- 两个jsp之间传数据可以直接传,也可以通过中间的Servlet传递。
- 数据库的TIMESTAMP类型与java的Date类型的转换关系要分清楚。
- JDBC的各个函数应放在一个工具类里。
(注:项目代码在上面的github链接里,文章里没有具体实现代码)