日期:2023-01-24 阅读量:0次 所属栏目:信息管理
摘要:该文研究基于Struts2 + Spring + Hibernate的高校毕业设计管理系统的设计与实现。该系统按照毕业设计工作流程实现管理端,教师端,学生端相应的功能。重点实现了业务流程管理、用户权限管理、选题管理、文档管理、文档在线编辑、成绩评定、在线交流、数据备份等功能。该系统具有界面简洁、易用性强,交互性好、功能完善、同时又考虑到数据安全和系统功能的扩充。
关键词: Struts2;Spring;Hibernate;毕业设计;文档管理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)19-4384-03
1 课题背景
随着大学的扩招,毕业生数量的逐年递增,高校毕业设计教学活动中需要处理的数据和信息也越来越大,在毕业设计管理工作中遇到工作效率低,交互性差,工作量大等问题,这已经成为高校每年毕业设计管理过程中急需处理的问题。同时课题资源过于零散,容易重复, 进一步加大了课题资源整合的难度。综上所述,该文研究基于 Java EE的高校毕业设计管理系统,使用该系统实现快捷高效的毕业设计管理工作。
2 系统分析
通过需求分析,系统确定有三种角色:学生、教师、管理员。
2.1功能模块划分
在具体设计实现毕业设计管理系统时,主要考虑了系统的以下主要功能和模块。
1) 公用模块
(1) 登录模块:验证帐号密码是否正确。
(2) 修改个人信息模块:修改账号密码。
(3) 师生互动模块:师生交流平台。
(4) 浏览信息模块:查看信息。
2) 毕业生模块
(1) 选报课题模块:选择指导老师与课题。
(2) 上传论文模块:上传各阶段的论文。
(3) 下载文件模块:下载指导老师的资料。
3) 指导教师模块
(1) 申报课题模块:申报自己的课题。
(2) 分配课题模块:选择毕业生与其对应的课题。
(3) 上传论文模块:上传各个阶段的论文。
(4) 审批论文模块:审批上传的论文。
(5) 下载文件模块:下载毕业生上传资料。
4) 管理员模块
(1) 公告发布模块:发布信息。
(2) 课题管理模块:管理课题。
(3) 账号管理模块:管理毕业生与指导教师账号。
(4) 日常维护模块:数据库备份还原。
2.2业务流程图
2.2.1 管理员业务流程图
管理员定期对系统的信息进行更新和维护,可以对公告、课题、帐号信息进行查看、增加、修改、删除等操作,以及配置系统的参数。业务流程图如图1所示。
图1 管理员业务流程图
图2 教师业务流程图
2.2.2 教师业务流程图
教师登录系统后,可以对课题进行管理,审核选题信息。教师可以查看学生的选题情况和学生个人信息,并确定是否录用学生提交的课题。在选题完毕之后,教师可以在系统中批阅该课题的上交文件,并给出评价及评分。业务流程图如上图2所示。
2.2.3 学生业务流程图
学生登录系统后,可以查看公告,修改个人资料。学生在选题中,可以自由选择教师及其提供的课题,也可以自己选取导师并自定义课题。选题后,学生允许提交各个时期的文档文件,并将上传信息显示在教师端界面。学生的业务流程图如图3所示。
图3 学生业务流程图
3 详细设计与实现
为了系统开发以及后期的维护更方便和明确,实现对项目的分割,将项目分为DAO、Service、Action层。根据面向对象思想,建立实体类,实现实体关系,将后台的数据表映射出来到这实体类中,提供给DAO、Service、Action层使用。
在添加Struts、Spring、Hibernate的filter和listener。在WEB-INF文件夹里面编写Spring的,整合Spring和Hibernate,实现Spring的IoC和AOP功能。将spring与struts的整合在一起,使用了自动扫描技术和注解的方式为每个类自动配置映射文件,使得程序的可读性变强。
利用Hibernate编写DAO层,为每个模块建立DAO接口,在接口中实现了增删改查等方法,实现JAVA与数据库的数据交互,供Service层调用。
为每个模块建立独立的Service接口,每个接口将实现不同模块的逻辑。Service层是实现系统业务逻辑的接口。利用之前编写的DAO层的接口,编写Service层,实现业务逻辑。合理规划Service的分类,在进行系统维护时会非常便利。 Action层用于处理页面信息,根据不同的处理结果返回不同的页面到客户端。设计Action层,调用Service层方法进行逻辑处理,然后根据处理结果为客户端返回页面,最后对界面进行美化。实现过程如下:
在创建具体的Action时,应当先创建抽象类BaseAction,继承Struts2中的ActionSupport抽象类,声明一个map变量session,这样以后每当实现一个Action,只要继承BaseAction,便可使用到session进行权限控制。同时也要创建PageAction,继承Struts2中的ActionSupport抽象类,并在该类中声明一个分页技术所需要的参数,包括了记录总条目、当前页码和总的页数等参数。
客户端每向服务器提交一次请求,都会先被相应的拦截器(interceptor)拦截并进行校验,拦截器会检验session中的key为actor保存的对象是哪一个对象(Admin、Teacher、Student),若满足拦截器的通过条件,将允许继续进行操作,否则将强制跳转到登陆页。不同的Action将根据设计时规划好的权限设置不同的拦截器。
在线word文件的预览功能,使用的是PreviewAction里面的默认方法获取当前的文件内容,通过里面的execute方法将内容在pageOffice的插件上显示出来,并且如果我们修改里面的内容后直接通过插件的eFilePage()方法将数据保存起来。那么下次我们点开文件就可以看到保存后的最新内容。
数据管理功能,所要调用到的是DataManageAction里面的execute方法跳转到数据管理界面。其中每当我们点击备份时,我们将数据库名、登陆账号、密码、安装路径等参数传递给DataManageAction里面的backup方法,将数据进行备份出来并弹出备份是否成功的提醒消息,然后将数据库还原时,我们需要先选择备份的文件,最后将页面的参数传递给DataManageAction里面的restore方法,将数据还原并弹出是否还原成功消息。
日志管理功能,所调用到的是L
ogManageAction里面的execute方法跳转到日志管理界面。其中当我们点击“导出日志”时,我们将调用LogManageAction里面的export方法,将服务器上项目的日志文件以流的形式将其下载到客户端,并弹出保存的窗口让用户选择存放的路径。当我们点击“清空日志”时,那么程序将会调用LogManageAction里面的clean方法,将服务器上的日志文件里面的内容清空并弹出清空成功消息。
4 总结
设计难点:保证上传信息的导入正确的添加到后台数据库中,对导入的xls文件是通过暂存在服务器读取还是直接从客户端读取。评分功能中,如何确定角色并且实现正确评分。在进行系统详细设计时,必须从一个宏观的角度,考虑某一功能模块设计会不会对其他的功能模块造成不良影响。本系统设计中充分考虑到数据安全性和功能的可扩展性,按照软件测试流程完成了软件测试,确保系统最终满足用户需求。
参考文献:
.信息安全与技术,2013(9).