基于SSH2框架的高校教务管理系统开发
2016-10-10兰伟
兰 伟
(重庆科创职业学院信息工程系, 重庆 永川 402160)
基于SSH2框架的高校教务管理系统开发
兰伟
(重庆科创职业学院信息工程系, 重庆永川402160)
为了适应不断变化的高校教务管理需求,采用SSH2框架技术开发具有高可靠性、易扩展、易移植的企业级Web应用软件.基于SSH2的高校教务管理系统可以实现学生选课、查看成绩、教师录入成绩、教务人员实现课程管理等基本功能,满足了高校教务管理的基本要求,有效地提高了高校教务管理效率.
Sturst2;Hibernate;Spring;Web应用
教务管理在高校管理中占据着重要的地位,教务管理的质量是判断高校办学质量的重要指标.随着信息与网络技术的快速发展,以及高校办学模式、规模和形式的不断变化,高校的教务管理工作表现出工作量大、流程复杂等特点.广大教师、学生和教务人员对高校教务管理信息平台提出了更高的需求.现有的教务管理系统已经不能完全满足高校发展的需求.
为了适应高校发展对教务管理信息平台的变化需求,方便教务人员、教师和学生通过互联网访问、管理教务信息,本文以MyEclipse为开发平台,采用SSH2框架技术开发一个基于JavaEE的高校教务管理系统.
1 关键技术
1.1SSH2框架技术
框架(Framework)是整个或部分系统的可重用性设计,它规定了应用体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程[1].在软件系统已经极其复杂的今天,框架可以很好地解决软件的事物处理、安全、数据流控制等复杂问题,程序员可以集中精力完成系统的业务逻辑设计.
SSH2是当今最流行的JavaEE整合框架技术,即Sruts2+Spring+Hibernate[2-5].其中,Struts2实现MVC开发模式,Spring主要实现轻量级的控制反转(IoC)和面向切面(AOP)开发,Hibernate采用ORM技术对JDBC进行轻量级的对象封装,完成数据持久化开发.
1.2JavaEE多层架构
通常Web应用开发被划分为多个层次,每个层次各自管理各自的业务流程.这样可以各层并行开发,也可以通过分层降低各个层次之间的耦合度,减少各层之间的关联.本系统借鉴Java EE架构的分布式体系结构思维模式,采用Struts2+Hibernate+Spring框架将Web应用程序分为4层,分别是:Web表现层、应用服务层、数据持久层、数据库层[6].其中,Struts2负责MVC的分离,Hibernate框架对持久层提供支持,Spring采用控制反转(IoC)技术通过注入的方式管理struts2和Hibernate对象.流程图如图1所示.
图1 基于SSH2的轻量级JavaEE分层处理流程图
2 系统总体设计
2.1功能设计
高校教务管理系统是高校教师、教务人员和学生之间的桥梁[7-9].本系统设计的总体目标是提高高校教务管理的工作效率,将以前大量由人工完成的繁琐工作交给教务管理系统完成.软件功能主要包括:教务人员管理教师、学生、课程等教学资源信息;任课教师给所任课班级学生打课程成绩;学生可以查看成绩等.因此,本系统可以分为系统管理、学生信息管理、教师信息管理、教学资源管理4个模块.其中系统管理模块为系统管理员提供用户管理、角色管理、机构管理等功能;学生管理模板主要为学生提供录入本人基本信息、选课、成绩查询、任课教师信息查询、奖罚查询等功能;教师管理模块为任课教师提供录入本人基本信息、任课查询、班级信息浏览、学生成绩管理等功能;教务管理模块为教务人员提供教室查询、课程管理和学生奖罚管理等功能.系统功能图如图2所示.
2.2包的结构设计
本系统会创建大量的类文件.为了对类文件进行有效管理,可以通过设计目录树的包结构进行分类管理.包的结构如下:
(1)cn.lanwei.jwgl.domain包,该包用于存放需要进行ORM转换的实体类;
(2)cn.lanwei.jwgl.dao包,该包用于存放DAO(数据访问对象)接口;
(3)cn.lanwei.jwgl.dao.impl包,该包用于存放DAO接口的实现类;
(4)cn.lanwei.jwgl.service包,该包用于存放Service接口;
(5)cn.lanwei.jwgl.service.impl包,该包用于存放Service接口的实现类;
(6)cn.lanwei.jwgl.struts2.action包,该包用于存放Struts的Action类;
(7)cn.lanwei.jwgl.util包,该包用于存放所有的工具类;
(8)cn.lanwei.jwgl.cfg包,该包用于存入所有的配置文件;
(9)cn.lanwei.jwgl.filter包,该包用于存入所有的过滤器类.
图2 基于SSH的高校教务管理系统功能图
2.3数据库层设计
在系统设计过程中,首先完成该系统的底层数据库设计.数据库设计主要包括表的设计及表与表的关联设计两类.本系统主要数据表包括学生表、教师表、部门表、班级表、课程表、教师任课表、成绩表、教务人员表、角色表、学生奖罚表等.
2.4数据持久层设计
数据持久层设计主要包括两个方面:POJO设计和DAO设计.采用Hibernate实现关系对象映射(ORM)技术,将数据库中的表与面向对象中的类进行转换,并利用JDBC技术实现本系统持久层的设计.所对应的持久化类(POJO)分别是学生类(Student)、教师类(Teacher)、部门类(Depart)、班级类(Class)、课程类(Course)、成绩类(Score)、教务人员类(AcademicStaff)、角色类(Role)、学生奖罚类(StuRewardPunish).编写持久化类的Hibernatge配置文件.
由于各持久化类的DAO接口操作相似,可以利用JAVA反射机制为其设计一个公共DAO接口(BaseDAO).各持久化类接口只需要继承该公共DAO接口就可以完成相应的增删改查(CRUD)操作.
2.5Web表现层设计
Struts2的action类用来处理用户请求,再通过HTML标签、JSP标签或Struts2自带的标签将处理后的结果表现给用户,最终实现MVC模式编程.由于Struts2的各种Action类有许多相似的代码,因此可提出公共的BaseAction类.
2.6业务逻辑层设计
业务逻辑层(Business Logic Layer)设计主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计.Spring是一个轻量级的面向切面(AOP) 和控制反转(IoC)的容器框架[10-12].
本项目主要使用Spring核心容器和Spring AOP模块.Spring核心容器的主要组件是 BeanFactory,项目中需要通过编写相关配置文件,利用控制反转(IOC)技术,采用工厂模式完成数据源(dataSource)和Struts2、Server层、Hibernate的管理,达到应用程序的配置和依赖性规范与实际的应用程序代码分开,从而降低各层之间的耦合性.由于本项目中各层bean的定义大量采用注解方式,因此,Spring能自动扫描与装配bean.其配置文件applicationContext.xml核心配置如下:
……
3 核心模块设计
3.1登录设计
本系统有3种不同类型的用户:教务人员、教师和学生.教务人员拥有最高权限,可以完成所有的操作,也是本系统的系统管理员.教师可以查看、修改自己的基本信息,可以管理学生成绩.学生只能查看成绩和奖罚信息.教务人员、教师和学生共用一个登录界面(login.jsp),通过选择登录界面的登录类型,完成不同类型用户的登录.
用户在login.jsp网页中选择登录类型,输入用户名和密码,利用JavaScript技术完成表单验证.用户单击提交按钮后,向WEB服务器发出userAction_login.action请求.WEB服务器根据配置文件web.xml的设置,所有的WEB请求都交给Struts2的主过滤器StrutsPrepareAndExecuteFilter处理.Strruts2再根据自身的配置文件struts.xml的配置可知,
用户请求应交给类为userAction的login()方法处理.由于本系统采用Spring框架管理所有的对象生成,根据Spring的配置文件applicationContext.xml自动扫描与装配bean配置,Spring会自动调用UserAction类的login()方法.login()方法调用业务层的UserService类的getByLoginNameAndPassword(String loginName, String password)方法,业务层再调用DAO层的返回User对象.login()根据User是否为空判断用户是否是合法用户.如果是非法用户,返回到登录界面;如果是合法用户,再根据用户的类型跳到指定的网页.
3.2角色管理设计
角色管理由教务人员进行.角色管理包括增加角色、为角色添加可操作的菜单、查询角色、修改角色和删除角色等.教务人员首先需要登录,登录成功后进入角色管理roleList.jsp网页.该网页列出所有角色名称及分配的菜单.教务人员可以在该网页发出添加角色、修改角色、查询角色和删除角色的Action请求,Struts2根据struts.xml配置文件自动调用RoleAction类处所有roleAction请求、RoleAction类的add()、update()、list()、delete()、edit()方法,分别处理用户的添加角色、修改角色、查询角色和删除角色请求.这些方法又会调用业务逻辑层RoleService类的save(Role role)、delete(Long id)、update(Role role)、 getById(Long id)、findAll()方法分别完成保存角色、删除角色、修改角色、根据ID值查询角色和查询所有角色操作.
3.3学生信息管理设计
学生信息管理由学生或教务人员完成学生基本信息录入,完成选课、查询成绩和查询奖罚等操作.学生首先登录进入student.jsp网页.StudentAction类调用show()方法查看学生基本信息请求.show()方法又调用业务逻辑层StudentService类中的getById(Long id)方法,返回一个student对象给show()方法,show()方法将student对象保存在session中,再跳转到studentShow.jsp网页.该网页从session中取出student对象并显示在网页表单中,学生也可以通过表单修改基本信息.StudentAction类调用addCourse()方法处理学生选课请求.selectCourse()方法首先从表单中获取学生选课的ID值,然后调用方法业务逻辑层StudentService类中的getById(Long id)方法返回一个课程对象,再调用StudentService类中save(Student student,Course cours)方法为该学生添加一门所选课程.StudentAction类调用checkResults()方法处理学生查询所有课程成绩请求.checkResults()方法调用StudentService类中checkResults (Long studentID)方法,返回指定ID的学生所有课程成绩对象. StudentAction类再指定checkResults.jsp显示学生所有课程成绩.
3.4教师信息管理设计
教师信息管理由任课教师或教务人员完成教师基本信息录入,完成查询任课、查询班级基本信息和录入学生成绩等操作.teacherAction类调用show()方法处理查看教师基本信息请求,update()方法处理修改教师基本信息请求,queryCourse()方法处理教师任课查询,queryClasses()方法处理教师任课班级查询,addResults()方法处理教师录入学生成绩管理.show()方法调用业务逻辑层TeacherService类中的getById(Long id)方法,返回一个teacher对象,在teacher.jsp网页中用表单的形式显示出教师基本信息.教师可通过表单修改基本信息.queryCourse()方法调用TeacherService类中的queryCourse(Long teacherID)方法查询指定教师所上的所有课程,返回一个任课课程数组.queryClasses()方法调用TeacherService类中的queryClasses (Long teacherID)方法查询指定教师所上课程班级信息,返回一个任课班级数组.addResults()方法首先从表单中获取课程ID、学生ID和该课程成绩,调用TeacherService类中的save(Long courseID,Long studentID,int result)方法保存学生的指定课程成绩.
3.5教务管理设计
教务管理由教务人员完成教室管理、课程管理和学生奖罚管理等操作.teachingManagerAction类调用classroom()方法处理教室管理请求,courseManager()方法处理课程管理请求,praisePunishManager()方法处理学生奖罚管理请求.classroom()方法调用业务逻辑层TeachingManagerService类中的findClassroomes()方法,返回所有教室对象;classroom()方法将该对象保存在session中,指定classroom.jsp网页显示所有教室的使用情况,也可以指定查询某一间、一层或一栋教学楼的教室使用情况.courseManager()方法首先从表单中获取课程ID、教师ID和班级ID,然后调用TeachingManagerService类中的addTeachingCourse(Long courseID,Long teacherID,Long classesID)方法,将教师任课信息保存到教师任课表中.praisePunishManager()方法首先从表单中获取奖罚学生的ID和奖罚信息,调用业务逻辑层TeachingManagerService类中的addPraisePunish(Long studentID,String praisePunish)方法将指定学生的奖罚信息保存在学生奖罚表中.
4 使用Spring Security进行安全控制
本项目的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分.本项目用户认证包括HTTP 基本认证、HTTP 表单验证等.在用户授权包括角色的访问控制等.Spring Security 基于 Spring 框架提供了一套 Web 应用安全性的完整解决方案.本项目使用Spring Security框架技术完成安全控制.Spring Security 框架支持主流的认证方式和基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制.
5 结语
本文应用Struts2+Spring+Hibernte框架技术完成了高校教务管理系统开发.本系统可以满足教务管理人员、任课教师和学生三者对高校教务工作的需求.采用SSH2框架技术可以实现轻量级的JavaEE快速开发,具有开发周期短、成本低、易扩展、易移植等特点.该系统能使教务管理和服务更加科学和高效,可实现教务管理的网络化、数字化、自动化,并具有跨平台、易操作、高可靠性等特点.
[1]李秀芳,张福增,贾世祥.软件复用与Framework框架技术[J].科学技术与工程,2006,6(1):80-83.
[2]兰伟.基于SSH框架的精品课程网站设计与实现[J]. 软件导刊,2015,14(9):199-201.
[3]于湛麟,李仲秋,任永昌. SSH 框架实现 MVC 架构的电子商务软件平台[J]. 计算机技术与发展,2012,21(10):169-172.
[4]付更丽,曹宝香.SOA-SSH 分层架构的设计与应用[J].计算机技术与发展,2010,20(1):74-77.
[5]LI J M.Research on web application of struts framework based on MVC pattern[J].Lecture Notes in Computer Science,2006,3842(1):1029-1032.
[6]张国平,郑均辉,张琳.基于SSH2和Ajax的物联网社区信息化管理系统[J].现代电子技术,2015,38(14):71-73.
[7]高贤强.基于SSH框架的教务管理系统的设计与实现[J].信息通信, 2014,28(5):128-129.
[8]王劲松.基于3G技术的高校教务管理信息系统的研究与设计[J].中国石油大学胜利学院学报, 2013,27(3):21-24.
[9]杨文,廖宇.基于SSH2的高校网络考试平台的研究与设计[J].信息技术,2013,37(4):43-46.
[10]胡启敏,薛锦云,钟林辉.基于Spring框架的轻量级J2EE架构与应用[J].计算机工程与应用, 2008,44(5):115-118.
[11]薛峰,梁锋,徐书勋,等.基于Spring MVC框架的Web研究与应用[J]. 合肥工业大学学报(自然科学版), 2012,35(3):337-340.
[12]HUANG H F,CHANG C C.A novel efficient(t,n)threshold proxy signature scheme[J].Information Science,2006,176(1):1338-1349.
(责任编辑穆刚)
The development of college educational administration system based on the framework of SSH2
LAN Wei
(Department of Information Engineering, Chongqing Creation Vocational College, Yongchuan Chongqing 402160, China)
To satisfy the varying needs of college educational administration system, it is available to develop enterprise web applied software with high-reliability, easy-extension and easy-portability based on the current populous SSH2 framework. This system can be used to select courses, view reports for students as well as input grades for teachers and manage the teaching schedules for the educational administrators. This system hopes to live up to the basic expectation of college educational administration and further the administrative efficiency to a considerable degree.
Sturst2; Hibernate; Spring; Web application
2016-04-28
重庆市教育科学“十二五”规划2015年度职业教育教学改革专项课题(2015-ZJ-006);重庆市深化教育领域综合改革试点项目.
兰伟(1974—),男,重庆荣昌人,副教授,硕士,主要从事计算机应用技术与图像处理方面的研究.
TP31
A
1673-8004(2016)05-0108-05