基于jsp的失物招领系统_基于Spring Boot和JSP的作业管理系统

本文介绍了一个使用Spring Boot和JSP开发的作业管理系统,系统包含老师和学生两端,支持登录、注册、作业发布、提交、评分等功能。数据库采用MySQL,数据模型包括四张表。系统提供Docker部署方案。
摘要由CSDN通过智能技术生成

一、简介

项目地址:https://github.com/CcQun/HomeworkSystem

本文主要介绍基于Spring Boot和JSP的作业管理系统的架构和功能介绍,在该系统中前端使用JSP,后端使用Spring Boot,数据库操作使用JPA并且数据库使用MySQL。该系统分为老师端和学生端,同时支持最基本的老师布置作业与学生提交作业等基本功能以及一些拓展功能。主要包括的功能如下:

老师端:

  1. 注册账号

  2. 作为老师登录

  3. 添加作业

  4. 查看自己布置的作业

  5. 查看某一作业的提交情况

  6. 对某一同学的作业进行打分和评价

  7. 查看作业统计信息(包括该作业的平均分、最高分、提交人数等)

  8. 注销登录

学生端:

  1. 注册账号

  2. 作为学生登录

  3. 查看作业(包括进行中、未开始和已截止的作业都可查看)

  4. 提交作业

  5. 编辑已提交的作业

  6. 查看作业情况(包括自己的得分以及老师的评价)

  7. 注销登录

二、数据库设计

本系统的数据模型主要包括四张表即Student、Teacher、Homework和Submit表。其中Submit表表示学生和作业之间的多对多关系,即学生提交的作业。具体的数据模型的ER图如下所示:

1ba7702bf7cec072e41b16522719838c.png

为了方便调试,我为数据库添加了若干条初始化的数据,可以直接使用项目中的homework.sql脚本初始化一个带有数据的数据库。

三、后端架构

1. 配置文件

后端服务器使用Spring Boot,其配置如下:

# 在执行sql语句是将其打印出来
spring.jpa.show-sql=true

# 以下部分为数据库设置
spring.jpa.database=mysql
spring.datasource.url=jdbc:mysql://localhost:3306/homework?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=Cui5039795891

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

2. 添加webapp文件夹

如果没有webapp文件夹的话就要先新建一个webapp文件夹,然后在webapp文件夹下新建WEB-INF文件夹,然后在WEB-INF文件夹下新建web.xml文件,最后按下图操作即可标定好项目的View层源文件夹了:

c5aa20d686865ddc148bcd6456704f81.png

3. 项目文件结构

在下图中可以看到项目的一些文件夹结构,controller文件夹放置各个子模块的controller代码文件,core文件夹放置一些工具类,db文件夹放置数据库相关的mapper、model和service等文件夹。项目的文件结构图如下:

84e92b17c5e5dd66d73449d05717a0b8.png

四、功能介绍

1. 登录(老师、学生)

523871a92821715888858140b6e5b2b1.png

进入登录界面后可以选择作为老师或学生进行登录,如果没有账号可以去注册一个。学生登录后的主页如下:

4b2ed4e6a9259741ea5b967ab4ea6efe.png

老师登录后的主页如下:

4d33441e319c55c63b636a098148060c.png

2. 注册(老师、学生)

3f63729d9d322644cdc3a7c788b307b4.png

进入注册界面后可以选择注册学生账号或老师账号。注册学生账号成功的界面如下:

06e37bd1d144fed3a01fe174b6b8f7f1.png

注册老师账号成功的界面如下:

79deb36d5162e916f9cf1fcc462a5eec.png

3. 添加作业(老师)

4d33441e319c55c63b636a098148060c.png

老师选择添加作业后进入添加作业界面:

341df010750ebcb1b3a781ec89f18454.png

老师填写作业标题和内容并选择作业起止时间后可以提交保存作业。添加作业成功的界面如下:

dfb9a040739e105c23acd3f14b6970ff.png

如果作业设置的起止时间中开始时间迟于截止时间则会出现以下提醒:

8dbed679fb3d3106776ec2cbae3b20d7.png

4. 查看自己发布的作业(老师)

4d33441e319c55c63b636a098148060c.png

老师选择查看自己发布的作业后进入查看作业界面:

5d11270bb2950535bba5c02f8eaacc24.png

在该界面中会以表格的形式来罗列自己发布的作业的一些信息。

5. 查看作业提交情况(老师)

5d11270bb2950535bba5c02f8eaacc24.png

在老师查看自己发布的作业时如果选择查看某一作业的提交情况则会进入对应作业的提交情况页面,在该页面可以看到某些同学提交的作业内容以及自己对其作业的评分和评价:

3ff2696b35e882bbec49ab8b308129e8.png

6. 为学生作业打分和评价(老师)

3ff2696b35e882bbec49ab8b308129e8.png

在查看作业时可以通过填写成绩栏和评价栏然后点击保存成绩按钮来为某一同学的作业进行评分和评价,其中成绩一栏的输入框被限制只能够输入数字。

defbf91eff0aa0bc1ed4cf1a9f3775a7.png

7. 查看某一作业的统计信息(老师)

5d11270bb2950535bba5c02f8eaacc24.png

在老师查看自己发布的作业时如果选择查看某一作业的统计信息则会进入对应作业的统计信息页面:

7e562fe70a24ea9f29b5760ba6c963ab.png

在该页面可以看到一些具体的作业统计信息。

8. 查看作业(学生)

4b2ed4e6a9259741ea5b967ab4ea6efe.png

如果学生选择查看作业则会进入查看作业页面:

2bc7bfdef645b619e3822e37aa9fd8ac.png

在查看作业时可以看到作业的当前状态(未开始、进行中、已结束)也可以看到自己是否已经提交作业,在提交了作业以后如果作业仍处于进行中的状态则可以编辑修改作业,同时也可以查看自己提交的作业。

9. 提交作业(学生)

2bc7bfdef645b619e3822e37aa9fd8ac.png

选择提交作业后会进入提交作业页面:

a1c35a3ac1bb14fb1ff0a1a03fe276b4.png

可以填写作业的标题和内容来提交作业,提交成功会收到以下提示:

3c26a61af73c77e59c73a6f91d4bd19c.png

再次查看作业可以看到作业的提交状态已经改变:

f634e3467cd651d92440f29b5e46683c.png

10. 编辑作业(学生)

2bc7bfdef645b619e3822e37aa9fd8ac.png

在查看作业页面上如果某一作业已经提交则可以选择编辑作业来修改已经提交的作业,点击编辑作业按钮以后会进入编辑作业页面:

399611611bb6e172c94cba5d26f67880.png

在该页面上可以看到以往提交的作业的内容,修改以后可以点击提交来保存修改的作业,然后会收到以下提示:

7da7ca7d59ea926cf5efaa246c0a86de.png

11. 查看我的提交(学生)

2bc7bfdef645b619e3822e37aa9fd8ac.png

在查看作业页面上如果某一作业已经提交则可以选择查看我的作业来查看自己的作业情况,如果老师已经打分和评价则也可以同时看到:

4334252252c6261eea6c84833c2e2233.png

12. 注销登录(老师、学生)

4b2ed4e6a9259741ea5b967ab4ea6efe.png

4d33441e319c55c63b636a098148060c.png

在老师和学生的主页均有注销登录按钮,点击后会返回登录界面:

7ddc73e09a04a0b6117cd94dfccbfa13.png

五、部署Docker镜像

  1. 首先在Maven工具栏中选择执行clean:

32cbd0c2d1b483f4df68daf53aa57636.png

5f05891c28098f7dc79f29c5d787bef0.png

clean执行完以后target目录会被删除。

  1. 然后在Maven工具栏中选择执行package:

94532a223c4737e3923185eb5f89bca2.png

cb9741c35e8dbfd3a5a9acd6994c0153.png

执行完package以后会生成target目录:

e48c8bfcb952cd85aebb9ca45fdd636c.png

  1. 将target目录下的homework-0.0.1-SNAPSHOT.jar以及编写的Dockerfile文件夹上传Linux云服务器:

ff2a6c299d19b25b9b743fbf094357f6.png

Dockerfile文件内容如下:

FROM java:8
ADD homework-0.0.1-SNAPSHOT.jar test.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]
  1. 在服务器上将jar包制作成镜像:

5065d44f9000f25e10c814a45d89fa91.png

使用docker images命令可以看到镜像已经存在:

3324759d9ef089191514c6ebf4b5269b.png

  1. 提交镜像至阿里云:

5ee5cc29bd27572416ffe83560596e34.png

dee209a88b757ded67893f90a2acdff8.png

ec5eaceefb301a6aac17211922e98abb.png

开始push以后会看到以下过程,之后需要等待一段时间即可成功提交:

0249d79e639da559026ac7fcbe2feef5.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值