基于Jsp和MySQL实现的作业管理系统

Dreamlover

发布日期: 2021-03-05 09:00:05 浏览量: 228
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、系统功能说明

1.1 系统简介

该系统是在学习了spring的基础上进行开发的,在需求上,充分考虑了具体用户的实际情况。

本产品将主要适用于学校教师对班级作业的管理,方便教师在线批改作业、查看学生完成作业情况,方便学生向老师提交作业、以及查看老师批改情况。本系统为人们提供了一个方便学校中老师对学生日常作业的管理的系统,方便了老师和学生之间的互动,相对传统的学生代表收发作业、再提交给老师这种浪费人力物力的不便捷来说,该系统大大提高了老师对学生作业管理的效率,在学校中,该平台对老师和学生很实用。

1.2 系统主要功能

  • 管理员可添加、删除、修改、查询——学生和教师

  • 教师可布置多次作业,设置作业的提交时间;(还可以修改作业)

  • 学生完成作业后,将作业文件打包上传,可重新提交

  • 教师可批改学生提交的作业,进行打分,并设置批阅意见

  • 学生可查看作业的批阅情况

  • 教师可统计学生作业的提交情况,班级作业的提交情况等

  • 教师、学生可以修改密码,重置密码

  • 系统有三种角色登录:管理员、教师、学生

1.3 系统开发环境

  • Windows 8操作系统

  • eclipse for J2EE ( IDE )

  • JDK 7

  • MySQL数据库

  • Tomcat 8.0

  • Chrome浏览器

二、系统设计

2.1 系统总体设计

2.1.1 系统总体功能需求

该系统主要适用于学校教师对班级作业的管理,其中主要包括教师在线批改作业、查看学生完成作业情况,方便学生向老师提交作业、下载作业以及查看老师批改情况等功能。

2.1.2 功能模块的具体内容和需求明细

根据系统要求可以将作业管理系统分为管理员模块、教师模块、学生模块三大模块。如下结构图:

  • 管理员

    • 添加、删除、查看、修改——学生、教师、课程的基本信息
    • 管理平台的管理
    • 修改个人信息
  • 教师

    • 布置作业并设置提交时间
    • 批改学生提交的作业,进行打分和设置批阅意见
    • 统计学生作业的提交情况
    • 统计班级作业的提交情况
    • 查看班级作业的批阅情况和提交情况
    • 修改个人信息(修改或重置密码)
  • 学生

    • 上传作业,可以重新提交
    • 查看自己作业的批阅情况
    • 查看老师发布的作业
    • 修改个人信息(修改或重置密码)

2.2 界面设计

2.2.1 主页界面

2.2.2 管理员界面

管理员——教师总览页面

2.2.3 教师界面

教师——统计提交作业页面

2.2.4 学生界面

学生——主页面

2.4 主要功能模块

2.4.1 管理员模块

管理员模块:包括登录、修改教师信息、添加教师信息、删除教师信息、修改学生信息、添加学生信息、删除学生信息、修改个人信息、退出等功能。

  • 登录:管理员通过输入用户名密码登录系统

  • 修改教师信息:管理员可修改教师的信息,可以修改姓名、性别、密码和所在学院,由于账号是用来标注用户唯一性信息,所以不可以修改

  • 添加教师信息:管理员可以添加教师信息,通过输入账号、姓名、性别、密码和所在学院,点击添加按钮即可成功添加一条教师信息

  • 删除教师信息:管理员可以删除教师信息,直接在教师信息表中选取要删除的一条教师记录最后,点击删除按钮即可

  • 修改学生信息:管理员可修改学生的信息,可以修改姓名、性别、密码和所在学院,由于学号是用来标注学生唯一性信息,所以不可以修改

  • 添加学生信息:管理员可以添加学生信息,通过输入学号、姓名、性别、密码和所在学院,点击添加按钮即可成功添加一条学生信息

  • 删除学生信息:管理员可以删除学生信息,直接在学生信息表中选取要删除的一条学生记录,然后,点击删除按钮即可

  • 修改个人信息:管理员同时可以修改个人信息,包括姓名、密码等

  • 退出:即管理员退出作业管理系统

2.4.2 教师模块

教师模块:教师模块包括发布公告、发布作业、批改作业、统计提交情况等。

  • 发布公告:通过该功能,教师可以对某个班课程或作业变更的情况进行公告说明,学生在自己的系统中会看到针对自己班的公告内容,发布教师与学生之间进行信息交流

  • 发布作业:教师可以通过该功能进行作业的发布,发布作业时需要输入作业的主题、截止时间、课程、班级以及作业的内容

  • 批改作业:批改作业是教师的主要功能,教师通过该功能给学生的作业进行打分和写评语,并将结果存入数据库中以便学生通过查看批阅功能查看自己作业的批改情况

  • 统计提交情况:教师通过该功能总览各班的各个作业的提交情况,也可以通过点击批阅链接对已提交的作业进行批阅

2.4.3 学生模块

学生模块:学生模块包括查看发布作业、上传下载作业、查看批阅情况等。

  • 查看发布作业:主要是让学生用户查看由教师对该学生发布的所有的作业,学生可以查看作业内容以及要求,还可以查看作业的完成情况

  • 上传下载作业:为学生用户提供了上传提交作业和下载作业文件的途径,学生可以根据需求选择下载相应的作业文件,并且在完成作业后可以上传提交作业

  • 查看批阅情况:方便学生用户对作业批改结果的查看,学生可查看到教师对学生用户已完成或未完成作业的批改情况

三、关键技术与应用

3.1 HTML 5

整个页面的采用了div+css的布局方式,结构清晰,功能明确,此外整体框架还通过iframe标签进行管理,导航栏为一个页面,其他页面均通过iframe标签显示,这样减少了代码的重复量,减轻了开发任务量,提高了效率。

3.2 Query

该系统根据jQuery实现了动态的页面效果,包括输入校验、动态显示和页面跳转,具体的实现代码如下:

通过jQuery显示导航栏的页面跳转

  1. //教师添加
  2. $("a.addT").click(function(){
  3. $("iframe").attr("src","/WorkManageSystem/manager/m_addteacher");
  4. });
  5. //学生总览,删除,修改
  6. $("a.allS").click(function(){
  7. $("iframe").attr("src","/WorkManageSystem/manager/m_studentmanage");
  8. });

3.3 Spring DAO

该系统通过Spring Dao 进行数据库访问,具体的数据库方法都封装在各个实体类对应的Dao中,创建Dao时采用了接口编程,提高了系统的可维护性。

3.4 Spring MVC

该系统的整体框架为Spring MVC+Hibernate,Spring MVC 负责视图层和控制层的逻辑,Hibernate负责数据库的数据库关系对象映射,项目的Spring MVC结构如下图所示:

Spring 的各种配置目录如下图所示:

3.5 Hibernate

该系统的数据库操作采用了Hibernate+JDBC,Hibernate的使用简化了对数据库的操作。

Spring中对Hibernate的配置如下:

  1. <beans>
  2. <!-- 配置hibernate相关数据库的操作 -->
  3. <bean id="dataSource"
  4. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  5. <!-- 数据库的驱动 -->
  6. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  7. <!-- 数据库的Id,用户名与密码 -->
  8. <property name="url" value="jdbc:mysql://localhost:3306/wms" />
  9. <property name="username" value="root" />
  10. <property name="password" value="smile" />
  11. </bean>
  12. <bean id="sessionFactory"
  13. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  14. <property name="dataSource" ref="dataSource" />
  15. <property name="hibernateProperties">
  16. <props>
  17. <!-- 配置不同数据库的方言 -->
  18. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  19. <!-- 其实这个参数的作用主要用于:自动创建|更新|验证数据库表结构。
  20. 如果不是此方面的需求建议set value="none". 其它几个参数的意思,我解释一下:
  21. validate 加载hibernate时,验证创建数据库表结构 create 每次加载hibernate,
  22. 重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
  23. create-drop 加载hibernate时创建,退出是删除表结构 update 加载hibernate自动更新数据库结构 -->
  24. <prop key="hibernate.hbm2ddl.auto">update</prop>
  25. <!-- 是否显示sql语句 -->
  26. <prop key="hibernate.show_sql">true</prop>
  27. <prop key="hiberante.format_sql">true</prop>
  28. </props>
  29. </property>
  30. <property name="configLocations">
  31. <list>
  32. <value>
  33. <!-- 读取和实体相关的xml -->
  34. classpath*:wms/hibernate/hibernate.cfg.test.xml
  35. </value>
  36. </list>
  37. </property>
  38. </bean>
  39. <!-- 定义事务管理器(声明式的事务) -->
  40. <bean id="transactionManager"
  41. class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  42. <property name="sessionFactory" ref="sessionFactory"></property>
  43. </bean>
  44. <bean id="transactionBase"
  45. class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  46. lazy-init="true" abstract="true">
  47. <!-- 配置事务管理器 -->
  48. <property name="transactionManager" ref="transactionManager"></property>
  49. <!-- 配置事务管理器 -->
  50. <property name="transactionAttributes">
  51. <props>
  52. <!-- 下面就开始配置各个模块所必须的部分,
  53. 在各自的applicationContext-XXX-beans.xml配置的对于事务管理的详细信息。
  54. 首先就是配置事务的传播特性,如下: -->
  55. <!-- 配置事务传播特性 -->
  56. <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
  57. <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
  58. <prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
  59. <prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
  60. <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
  61. <prop key="get*">PROPAGATION_NEVER</prop>
  62. </props>
  63. </property>
  64. </bean>
  65. </beans>

Hibernate中对事务的配置如下:

  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  4. <!-- (通常是 hibernate.cfg.xml)中声明持久性类: -->
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- List of XML mapping files -->
  8. <mapping resource="wms/entity/Manager.hbm.xml"/>
  9. <mapping resource="wms/entity/Teacher.hbm.xml"/>
  10. <mapping resource="wms/entity/Student.hbm.xml"/>
  11. <mapping resource="wms/entity/Course.hbm.xml"/>
  12. <mapping resource="wms/entity/Clazz.hbm.xml"/>
  13. <mapping resource="wms/entity/Work.hbm.xml"/>
  14. <mapping resource="wms/entity/CheckWork.hbm.xml"/>
  15. <mapping resource="wms/entity/Notice.hbm.xml"/>
  16. <!-- <mapping class="wms.entity.Teacher"/> -->
  17. </session-factory>
  18. </hibernate-configuration>

3.6 BootStrap

该系统页面采用了BootStrap开源框架,使得系统具备了移动设备优先的特性,通过BootStrap框架的使用,让页面的布局更加清晰、结构更加合理、效果更加多样。

四、总结与体会

通过这个项目,学会了用SpringMVC+hibernate+MySql数据库开发web系统的架构,通过Hibernate的文件配置,极大地方便了对数据库的操作,自动生成数据库数据,这是非常方便的,使得我们开发人员对数据库操作更加容易。把实体类与数据库表进行匹配,简化了读取过程中产生的代码书写,使编程人员从复杂的代码中解放出来。

SpringMVC的这种架构,层次分明,使得代码清晰,各项模块功能划分简单,更加有利于我们进行开发。在JSP页面使用的JSTL语言,也是非常容易的,简化了操作,个人感觉非常的方便。同时做界面时,运用了一些Bootstrap的框架效果,如导航栏,面包屑导航等,使得我们的页面更加具体简洁和美观。

上传的附件 cloud_download 基于Jsp和MySQL实现的作业管理系统.7z ( 16.69mb, 9次下载 )
error_outline 下载需要11点积分

发送私信

花有重开日,人无再少年

20
文章数
27
评论数
最近文章
eject