700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JAVAEE大项目(作业提交/管理系统)

JAVAEE大项目(作业提交/管理系统)

时间:2020-01-03 12:01:07

相关推荐

JAVAEE大项目(作业提交/管理系统)

简易作业管理系统

1. 所使用技术及其简要介绍

Spring BootSpring Boot是一个基于Spring Framework构建的J2EE框架,可以方便我们快速的构建Spring应用。

在IDEA中,我们在创建中选择Spring Inatializr即可创建一个Spring Boot项目,比较直观的是可以根据你的要求在创建时,添加所需的依赖,而且目录结构比较清晰。MyBatisMyBatis是支持灵活的使用SQL语句,存储过程以及高级映射的持久层框架。避免了JDBC冗长的代码,SQL语句写在xml文件中,便于统一管理。同时,xml文件与Mapper层也有映射关系,复合面向对象的要求。ThymeleafThymeleaf是SpringBoot官方所推荐使用的页面模板技术,之前常用的是JSP,但是JSP与SpringBoot的集成做的不够好,而Thymeleaf则在自动化配置中做得很好,编写时只需要关注其语法即可。RESTful APIRestful是一种接口风格,而不是一种强制标准,在Springboot中,常见的注解有@RestController,@RequestMapping等。lomboklombok是一个JAVA库,提供了一组很有效且简洁的注释,可以消除POJO层的类的大量重复代码, 提高代码简洁性。DockerDocker是一个开源的应用容器引擎,可以让我们打包我们的应用到一个可移植的容器中,发布在任何Liunx机器上。

2. 系统功能分析

本次大项目是在之间的基础上完成了进一步的细化与调整。加入了登录/注册,批改作业等功能。学生端: 登录/注册查看我的作业 修改作业查看作业状态查看已经批改作业信息 提交作业查看作业列表 教师端: 登录/注册查询学生作业 查询所有学生作业根据条件查询学生作业 根据学号查询学生作业根据作业号查询学生作业根据二者复合查询学生作业 布置作业添加学生批改作业

3. 系统设计与架构

在设计系统中,我首先考虑将展示List的界面提出来,作为公用的界面,这样可以多次使用,减少重复代码的量,不论是筛选,还是查看全部,都可以将结果List作为参数传递给ShowAllHome.jsp界面,界面中获取这个参数,即可显示。同时,我引入了Index界面,需要用户表明自己的身份,选择后,即进入相应的登录/注册界面,不同身份有不同的功能,采用了Cookies记住登陆状态,所以在学生操作界面介入了查看我的作业这个功能。具体的界面介绍,我会在第四部分详细介绍,下面附上我的代码逻辑图。

4. 界面截图以及功能逻辑梳理

1.启动页

这个页面主要就是为了提供一个初始界面,可以在这个页面上表明自己的身份,就像常见的网站的登录页中选择身份一样的作用,可以针对不同用户,提供不同的功能,选择不同用户后,会进入到对应的登录/注册界面。

2.登录/注册功能

下面4张图是对应的登录/注册界面,实现逻辑是一样的,用户可以选择直接登录,输入对应的学(工)号和密码,正确即可进入到相应的操作界面,错误会清空刚才的信息,要求重新登陆。用户也可以选择注册,注册成功后,会跳转到登陆界面。

3.老师操作

老师可以在这个界面选择自己的操作。

3.1添加作业

老师可以选择在这个界面布置作业,输入需要布置的作业信息后,点击提交。即可显示所有当前已经布置的作业信息。

3.2添加学生

老师可以选择在这个界面添加学生,输入需要添加的学生信息后,点击提交。即可显示所有当前所有学生信息。注意,老师添加的学生是设置了一个默认密码。

3.3查询所有学生作业

在选择查询所有学生作业信息后,会显示出所有已经提交作业的信息,最后包括作业状态,显示当前作业已经批改或者尚未批改。

3.4 老师在选择根据条件查询学生作业后,即可进入到下图界面,这里需要注意的是在筛选界面,我加入了Check功能,要求必须至少填一个筛选条件。筛选可以只填写学生学号,可以只填写作业序号,也可以二者都填写,联合查询,提供了三种查询方式。查询结束即可显示带有作业状态的作业信息。

3.5 教师在选择批改作业后,会显示作业的信息以及最后带有操作批改,选择批改后,会有相对应的作业记录的信息,里面的ID,学号,序号,标题,内容都是已经填写好的,作业批改内容如果为空,会显示null,不为空,则是批改信息,提交后,会跳转到带有作业状态的作业信息界面。

4 学生操作

学生可以在这个界面选择自己进行的操作。

4.1 学生在选择查看我的作业后,会根据学生的登录状态,记录学生的学号,查看该学生的所有作业,会包括修改操作以及作业状态。

4.2 修改作业

选择修改作业后,会跳转到修改作业界面,修改内容后,回跳转回到我的作业界面。

4.3 查看作业的批改信息

用户可以选择查看作业的批改信息,里面就是在基本的作业展示界面的基础上加了批改意见的相关信息。

4.4 提交作业

学生选择提交作业后,会进入到作业提交界面,学生可以输入作业信息进行提交。

4.5 查看作业列表

学生选择查看作业列表后,可以查看所有已经布置的作业信息。

5. 代码逻辑说明

1.代码结构一览

代码整体上还是采用MVC的架构,分为三层,只不过引入了Mybatis的相关内容,所以会有mapper层与右面的xml文件对应。

代码基本是分为两个模块,main下面是JAVA代码,首先是controller层,在这我是分为了学生,老师,以及公共的Controller,主要是做一些Map的映射,调用的一般是Service的方法,返回一个界面。在这个部分,我引入了restful界面跳转风格,如下图3所示,可以减少一些接口的书写,例如index就没有书写相对应的接口。接着是mapper层,是Mybatis的需要,和之后的xml文件形成映射。接着是pojo层,主要是对应数据库中的每个表,表中的字段对应类中的属性,在这使用了lombok简化代码。service层我进行了接口和实现的分离,以此来进一步解耦,这一层主要是调用mapper层的函数实现一些操作。

resources下面首先是mybatis.mapper,里面是Mapper层对应的xml文件,里面就是sql语句,比起JPA可以更加灵活的直接使用sql语句。然后是static里面放了css文件。最后是templates文件,里面就放了html界面,分为Student,Teacher和二者公用的页面。

2.部分代码截图以及说明 (1)这里是学生作业的筛选所对应的不同的函数,包括根据学号查询,作业号查询,联合查询,查询我的作业,查询全部作业。

(2)我将注册与登录单独抽取出来,写了对应的service层和mapper层,这样写的原因主要是考虑到代码的可读性较好,而且便于修改注册/登录时的一些信息,可以方便的添加更多的字段。

(3)Controller层的接口设计思路是主要分为相应操作和操作完成之后两个接口,即xxx和afterxxx两个接口,分别对应操作的界面以及操作完之后的跳转界面。

6. 项目总结

本次大作业,让我进一步理解了Springboot的使用,Springboot是现在JAVA工程师很常用的框架,Spring全家桶也是很全面,Springboot可以大大简化我们的pom配置,而且项目整体架构也比较清晰。

在之前的练习中,我们使用过Spring cloud做了demo的练习,本次由于时间问题,没有加入到本次项目中,之后想尝试用分布式的架构重构整个系统。

对于Mybatis和JPA,我也有了进一步的理解和对比,我个人是比较倾向于使用Mybatis,我觉得它的结构看起来更加清晰,而且在xml文件中,我们可以自由地使用sql语句,相对比较灵活,甚至可以考虑使用存储过程等。

Thymeleaf是一个新的模板框架,它基于的还是HTML,只不过加入了一些特定的语法,其中例如有th:each="studenthomework,memberStat:${list}"语法就很好用,可以方便的进行便利,比起jsp利用JAVA代码来进行遍历,显得更加简洁清晰。

lombok是一个新发现的可以大大简化pojo层代码的库,个人很喜欢用。

通过本次大作业的练习,让我对于JAVAEE的开发有了大概的流程与认识,包括一些现在比较常用的工具以及技术,之后,打算利用假期的时间,对于这个项目进行重构,融入更多的JAVAEE技术,开发出一个可以部署运行的完整系统。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。