使用Servlet、JSP和JDBC實現(xiàn)作業(yè)管理系統(tǒng)

項目簡介

使用技術:

  • Servlet
  • JSP
  • JDBC

功能簡介:

  • 教師使用功能:添加作業(yè)、添加學生、查看作業(yè)提交情況
  • 學生使用功能:提交作業(yè)


    添加作業(yè)

項目代碼結構:

代碼結構

數(shù)據(jù)庫設計:

  • 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`));

參考鏈接:

項目實現(xiàn)

項目主界面:

該界面使用一個index.jsp文件實現(xiàn),四個功能分別使用四個超鏈接。


主界面

添加作業(yè)功能:

  • 實現(xiàn)流程:index.jsp→addHomework.jsp→AddHomeworkServlet→operationResult.jsp
  • 界面:


    添加作業(yè)

    成功添加

添加學生功能:

  • 實現(xiàn)流程:index.jsp→addStudent.jsp→AddStudentServlet→operationResult.jsp
  • 界面:


    添加學生

    image.png
    image.png

    已存在該學生

查看作業(yè)提交情況功能:

  • 實現(xiàn)流程:index.jsp→DisplayHomeworkServlet→queryAllHomework.jsp→QuerySpecificHomeworkServlet→specificHomeworkSubmission.jsp
  • 界面:


    查看作業(yè)

    作業(yè)詳情

學生提交作業(yè)功能:

  • 實現(xiàn)流程:index.jsp→DisplayAllHomeworkServlet→displayAllHomework.jsp→SubmitHomeworkServlet→submitHomework.jsp→SubmitHomeworkServlet→operationResult.jsp
  • 界面:


    提交作業(yè)

    提交成功

    提交失敗

心得體會

  1. 需要時刻考慮學號不存在的情況,否則會導致數(shù)據(jù)庫數(shù)據(jù)混亂。
  2. 兩個jsp之間傳數(shù)據(jù)可以直接傳,也可以通過中間的Servlet傳遞。
  3. 數(shù)據(jù)庫的TIMESTAMP類型與java的Date類型的轉換關系要分清楚。
  4. JDBC的各個函數(shù)應放在一個工具類里。

(注:項目代碼在上面的github鏈接里,文章里沒有具體實現(xiàn)代碼)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容