APP下载

基于Struts框架的软件实训系统

2012-07-18龚雄兴

湖北文理学院学报 2012年11期
关键词:管理员页面框架

龚雄兴,宁 彬,袁 磊

(湖北文理学院 数学与计算机科学学院,湖北 襄阳 441053)

随着高校软件实训实践的不断深入,以及高校信息化建设的进一步推进,开发与设计基于Web的软件实训平台显得尤为重要. 文中笔者探讨了在Web环境下,Struts框架如何应用于软件实训系统的实例开发.

1 Struts框架概述

Struts是比较成熟的MVC(Model View Controller,模型-视图-控制器)应用框架,提供了对开发MVC系统的底层支持,采用的主要技术为Servlet、JSP(Java Server Pages)和Custom tag library(客户标签库)[1]. 简单的讲,Struts是基于MVC模式的开源框架,即Controller是通过ActionServlet对象实现的,获得View(JSP)的请求后根据ActionMapping对象调度对应的Model(Action对象)处理业务逻辑,并将获得的处理结果(ActionForward对象)返回给View(JSP来响应,同时通过ActionForm对象封装数据在Model和View之间交互使用. Struts框架的组件结构如图1所示.

图1 Struts框架的组件结构

1)模型. 模型主要是表示一个系统的状态和业务逻辑. 在Struts中,Java Beans就是模型的典型代表,包括窗体Bean(Form Bean),请求Bean(Request Bean)及会话Bean(Session Bean).

2)视图. Struts应用中的视图是通过JSP技术实现的. Struts提供自定义标记库,通过自定义标记可以简化创建用户界面的过程,及其与Model中ActionForm的映射,完成对用户数据的封装、显示功能,不涉及到系统的业务逻辑.

3)控制器. 控制器主要是由ActionServlet类和Action类实现. ActionServlet类是Struts框架中的核心组件,主要负责接收HTTP(Hypertext Transport Protocol,超文本传送协议)从客户端发出的请求信息,并根据配置文件Struts-config.xml的配置信息,把请求经解释后分发给对应的Action对象. Action类负责调用模型的方法,更新模型的状态,并帮组控制应用程序的流程,从而实现核心的业务逻辑,将响应结果送回到客户端.

2 软件实训系统的构建

2.1 系统需求分析

采用基于MVC模式的Struts应用架构进行开发,适应需求的经常变更、业务逻辑的多样性. 在调研时,以信息处理为基础,充分考虑软件实训教学过程中的常规性和可变性因素,为软件实训教学过程的管理提供全方位的、多层面的应用服务.

1)软件实训管理信息化和工作流程规范化需求. 实训实践过程的所有信息,包括实训计划、案例等,均有由管理员统一管理,以更好地实现资源共享.

2)在线评阅实训报告需求. 在线提交与批阅软件实训报告,既可节约教师、学生的时间,加快交流反馈过程,也可体现网络化特色.

3)案例库的建设需求. 通过扩充案例库,并仿真演示实训项目的操作过程,以及不同难易程度的参考信息,让学生可以根据个人情况进行相应的学习进度调整.

4)互动需求. 建立在线调查和监控,收集学生的意见,调查学生的满意度等,用来指导或监督软件实训过程,用于改进其实训效果.

2.2 系统设计

结合上述的需求分析,遵循模块化的设计思想,采用基于Struts的Web应用体系结构,即三层的浏览器/服务器 B/S(Browser/Server)体系结构. Web浏览器是集成所有信息服务的最终平台,提供全动态、分布式的信息发布与处理机制,实现软件实训信息按角色或权限进行动态发布和更新. 构建的系统功能划分如图2所示.

该系统拥有三类用户角色,分别为实训管理员(实训组长)、实训指导教师、实训学生. 实训管理员角色即指软件实训教学团队的负责人(组长);实训指导教师即指参加实训授课或指导实训教学过程的教师;实训学生则指所有参加实训的学生.

图2 系统功能结构

根据实训管理员、实训指导教师、实训学生三类用户的定位,自动生成适合不同角色访问的实训资源体系框架,有效地为用户提供资源使用引导. 当实训管理员登录后,可以设置开放的实训案例、授课安排和进度等信息发布与维护,以及在线统计实训效果等数据;实训指导教师登录后可以查询授课安排和进度等信息、以及在线批改学生报告、上传资源;实训学生登录后可以根据个人情况进行预约答辩、上传实训报告和查询批阅结果和成绩、下载实训指导书等资源. 该系统有助于实现软件实训教学资源的科学化、统一化管理,搭建和展示具有一定特色的软件实训门户平台. 对于教师和学生而言,能够有效地应用软件实训的各类在线资源实现双向互动,及时全面地掌握软件实训的实践过程和效果.

2.3 系统特色

严格地说,现有的软件实训系统是一个关于软件实训教学的内容管理系统 CMS(Content Management System),即管理员在Web服务器端整合应用于软件实训教学过程的案例,在Web客户端向学生显示案例[2-3].笔者在本文中所设计的软件实训系统,主要具有以下两个方面的特色:

1)在设计模式上,选用Struts框架具有组件模块化、灵活性和重用性的优点,可以清晰地区分控制、事务逻辑和界面,同时简化了传统的运用MVC设计模型来开发Web应用程序的过程,提高了开发效率.

2)在功能设计上,与现有的软件实训系统相比,主要体现在软件实训实践过程的交互性. 即除了实现软件实训教学过程的一般信息化管理之外,还整合了其在线业务处理,从而加强了软件实训教学的互动性和有效性,如在线评阅报告、展示学生的软件实训成果等功能.

3 软件实训系统的应用改进

在部署软件实训系统后,根据实际应用的体验和反馈,进行了相应的优化设计. 主要体现在安全性控制和中文请求响应两个方面.

3.1 安全性控制

由于软件实训管理系统作为一个公共平台,部署在校园局域网上并全天候运行,主要服务于学生、教师和管理员三类用户. 这就需要针对不同用户设置不同的权限,以提高系统的安全性. 本软件实训系统在设计与实现过种中,采用由一个类负责功能权限和网页访问的安全检查,而不是在每个JSP页面或Action类中来实现. 通过使用ProcessRales方法提供的页面和功能级别的安全检查,扩展了RequestProcess类,覆盖其方法processRoles进行安全性检查[4]. 其中使用HashMap存储角色到页面ID和功能ID的映射,在配置文件web.xml中加人安全的声明方法来实现功能权限上的访问;要实现页面级的安全控制,在Tiles文件中的设置如下:

3.2 响应中文请求的设置

如果在页面请求的数据中包含中文,将会显示乱码. 这是由ActionServlet自动从页面HtmlForm中提取请求数据到FormBean显示而导致的[5]. 采用Servlet2.3中提供的Filter特性来解决这个问题. 编写一个完成编码转换功能的类,实现Filter接口,并且在web.Xml文件中做相应的配置,即可让所有页面请求中的request数据在被接收到FormBean显示之前转换为GB2312编码.

Struts是一个基于MVC的开源框架方式,灵活地应用它,能有效提高Web应用程序的开发效率. 这在软件实训系统的设计、开发和维护阶段得到了有效地体现. 正由于Web信息系统的高效性、灵活性、可维护性,在高校软件实训实践过程中,开发和设计此类管理平台将会成为一种趋势.

[1] 李 峰. 基于Struts和Hibernate框架的内容管理系统的设计与实现[D]. 太原: 太原理工大学, 2010.

[2] 陈建昆. 浅谈网站中CMS系统的选型[J]. 中小学电教, 2010(6): 78-79.

[3] 李 焱, 党小超. 基于Web2.0 CMS的教学网站管理系统的设计与实现[J]. 电化教育研究, 2010(6): 82-84.

[4] 郑阿奇, 俞 琰. J2EE应用实践教程[M]. 北京: 电子工业出版社, 2010.

[5] 甘枥元, 柳 彬, 康 勇, 等. 基于J2EE技术Struts框架的医院科研信息管理系统的开发与应用[J]. 计算机光盘软件与应用, 2010(5): 31-34.

猜你喜欢

管理员页面框架
刷新生活的页面
我是小小午餐管理员
框架
我是图书管理员
我是图书管理员
广义框架的不相交性
可疑的管理员
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架
网站结构在SEO中的研究与应用