唐春玲 胡方霞 李惠玲 张 燕
(重庆工商职业学院,重庆 400052)
Struts技术在科研管理系统中的应用
唐春玲 胡方霞 李惠玲 张 燕
(重庆工商职业学院,重庆 400052)
分析MVC设计模式和Struts的工作原理,针对科研管理系统的特点,在系统中采用Struts技术,并通过实例介绍其在应用程序中的具体应用。
Struts;MVC;科研管理系统;B/S
Struts框架是全世界第一个发布的MVC框架,它由Apache Software Foundation组织发布。Struts1框架采用MVC模式将程序代码分为三部分,把应用软件的输入、处理和输出分成不同组件来实现,因此开发、管理相对容易。本文设计基于Struts技术的Web应用程序。
目前大多数开发系统存在系统结构复杂,耦合性高,修改、维护困难等问题,主要在于页面逻辑、业务逻辑和数据逻辑糅合在一起所导致。Struts框架采用MVC模式将程序代码分为三部分,把应用软件的输入、处理和输出分成不同组件来实现,因此开发、管理相对容易。
MVC(Model-View-Controller)是模型-视图-控制器的简称[1],它将系统分为三个模块:模型(Model)、视图(View)和控制器(Controller)(图 1)[2]。
(1)模型:模型是应用程序的主题部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据,提高了应用的可重用性。
(2)视图:视图是用户与系统交互的界面。视图向用户显示相关数据,并接受用户的输入,但视图并不进行任何实际的业务处理。对于基于请求/响应方式的Web应用,模型位于服务器端,视图位于浏览器端。
(3)控制器:控制器接受用户的输入并调用模型和视图去完成用户的请求。当Web用户向服务器发送HTML请求时,控制器接受请求并调用相应的模型组件去处理请求,然后调用相应的视图显示模型返回的数据。
图1 MVC模式
Structs1是在JSP Model2基础上实现了一个MVC框架。在Structs1框架中,MVC中的视图(View)部分由一组 JSP文件构成。MVC中的模型(Model)是由底层的业务逻辑组件充当,业务逻辑方法的实现由JavaBean组件完成。控制器(Controller)由两个部分组成:核心控制器和业务控制器。其中核心控制器是ActionServlet,由Struts1框架提供;业务逻辑控制器是用户自定义的Action,由应用开发者提供[3-4]。
Struts的工作流程为:
(1)整个应用由客户端请求驱动;
(2)当客户端向Web应用发送请求时,请求将被Struts1的核心控制器ActionServlet拦截;
(3)ActionServlet根据请求决定是否需要调用业务逻辑控制器处理用户请求(实际上,业务逻辑控制器还是控制器,它只是负责调用模型来处理用户请求);
(4)当用户请求处理完成后,其处理结果通过JSP呈现给用户,程序运行流程图如图2所示[5]。
图2 Struts程序运行流程
系统采用B/S结构即浏览器/服务器结构。系统配置如下:
WEB服务器:Tomcat6
数据库:SQL Server2005。
JAVA开发工具:MyEclipse8.6+JDK1.6其中使用到Struts技术,Herbernate等技术。
客 户 端 :Netscape Navigator或 者 Internet Explorer。
本系统以项目申报为主,总体功能结构如下:项目管理模块,科研成果管理模块,专家管理模块,相关下载和用户管理模块。
(1)项目管理模块
项目管理模块分为科研活动管理、项目申报两个子模块。科研活动管理子模块的功能是设置学校每次科研活动申报时间等信息,并可查询和修改。项目申报子模块的功能是查询每个项目的申报、审批、立项、进度等,还可以对经费进行管理。经费管理包括经费来源、经费使用计划和实际使用情况等。
(2)科研成果管理模块
该模块完成对学校每个部门科研项目的汇总。
(3)专家管理模块
该模块可设置科研活动中的评审专家,并为评审专家分组,为某个项目指定专家,收集专家意见等。
(4)相关下载模块
该模块可以对科研活动中使用的文件表格进行下载。
(5)用户管理模块
该模块下分个人管理、审批管理两个子模块。个人管理可以修改个人信息和密码。审批管理可以对当前注册用户进行审批并赋予相应的角色权限,其中角色权限分为普通用户,部门负责人和专家。
下面以项目管理模块中的项目信息填写为例,介绍应用Struts技术对系统进行开发设计的过程。
(1)视图
系统视图部分主要是由JSP技术实现,是系统的显示部分,是系统与用户的接口,由一系列HTML页面和JSP页面组成。这些jsp文件中不添加任何业务逻辑处理代码,只添加一些JSP标签。当用户在页面点击相应的控件时,表示层把用户请求传到控制层,由控制层处理,控制层根据实际情况调用业务层,完成具体操作,最后通过视图显示出来。本系统用户界面有注册界面regester.jsp,专家评分界面score.jsp等。以填写申报项目信息界面projectMessage.jsp为例,此界面需输入以下信息:项目号ProjectID(系统自动生成),项目名称ProjectName,项目负责人ProjectUser(默认的是当前用户), 项目类型ProjectType,申报时间ProjectTime。如果填写项目信息无误,则显示上传项目申报书界面project.jsp。
(2)控制器
视图发送请求后由核心控制器ActionServlet决定调用合适的业务控制器Action。以项目申请的Project.Action为例,控制器包括一个Action类ProjectMessageAction, 这个Java类一般从org.apache.struts.action.Action类继承。控制器的主要任务是接受并处理从projectMessage.jsp接收的项目申报有关信息,若信息正确,则申报成功,跳转到project.jsp页面,上传项目申报申请书;否则申报失败,则跳转到ProjectMessagefailed.jsp页面,提示出错信息。在实现控制器之前,需要先实现一个ActionForm类,这个类的作用是保存JSP页面提交的数据。ActionForm类一般从org.apache.struts.action.ActionForm类继承,而且在类中需要按着需要保存的数据表字段添加属性。ActionForm类的属性取名时要注意,必须和JSP页面中的<html>标签的property属性值一致,如果不一致,将会抛出异常。
(3)模型
模型由实现业务逻辑的JavaBean组件构成,主要用来在视图组件和控制器组件之间传递HTML表单数据,一般每个HTML表单对应一个ActionForm Bean。项目信息填写的ActionForm Bean由ProjectMessageForm构成,在ProjectMessageForm中需要操纵数据库,而项目中大量程序都要操纵数据库,因此单独编写了一个ConDatabase连接数据库的父类,项目中需要连接数据库的程序只要继承此父类就可以了。此外还在ActionForm中使用了validate()方法用于检验用户输入数据的合法性。在类中还使用了一个ProductForm类,这个类是一个ActionForm类,它的功能是保存客户端提交的数据。以下是ProjectMessageForm的实现代码。
(4)配置文件
在Struts系统中控制器ActionServlet是核心,界面中需要执行事务逻辑的表单会提交一个请求,由控制器ActionServlet调用相应的组件。用两个基于XML的配置文件来配置,分别是web.xml和struts-cofig.xml文件。web.xml文件是配置所有web应用的,而struts-config.xml文件是struts专用的配置文件,在本质上也是一个基于Servlet的Web应用,他将系统中的各组件结合在一起。在strutsconfig.xml文件中通过<action-mapping>元素中的<action>子元素指定需要访问的Action路径,以下是项目信息填写功能的<action-mapping>:
<action-mappings>
<action name=” ProjectMessageForm” type=”KYXT..action.ProjectMessageAction” validate= ”true”in put=”projectMessage.jsp” scope=”request” path=”/ProjectMessageAction”>
Struts技术可以把用户界面、业务过程、业务逻辑和业务控制进行分离,使得程序开发过程效率更高,进度更快,而且它允许一个模型组件被多个视图组件共享,这样大大提高了代码的可重用性,在可维护性、交互性上较之一般的J2EE开发也有明显的优势。将其运用到科研管理系统中不但系统运行稳定、后期维护方便、操作简便,而且提高了工作效率,科研管理流程更加规范化。
[1]王明,陆正球.基于MVC科研管理系统的研究与实现[J].微计算机应用,2009(1):11-12.
[2]孙卫琴.精通Struts:基于MVC的JavaWeb设计与开发[M].北京:电子工业出版社,2004.
[3]曾宇胸,王非.基于Struts框架技术的WEB应用系统[J].计算机应用与软件,2008(7):196-197.
[4]吴兴惠,陈明锐,赖文志.基于Struts的高校科研管理系统的设计与实现[J].海南广播电视大学学报,2008(1):91-93.
[5]李刚.Struts2权威指南—基于WebWork核心的MVC开发[M].北京:电子工业出版社,2007.
Abstract:This article firstly analyzes the MVC design pattern and the mechanism of Struts.According to the characteristics of scientific management system,Struts is used in this system and then a real Web application is taken as an example to show a detailed application of Struts.
Key words:Struts;MVC;scientific management system;B/S
Application of Struts Technique in Scientific Management System
TANG Chun-ling HU Fang-xia LI Hui-ling ZHANG Yan
(Chongqing Technology and Business Institute,Chongqing 400052)
TP311
A
1673-1980(2011)06-0183-03
2011-07-23
唐春玲(1981-),女,吉林汪清人,硕士,讲师,研究方向为数字信号处理。