有关科技项目申报系统的开发与设计
2014-05-30王冰邢国光肖林
王冰 邢国光 肖林
[摘要]项目申报是指政府机关针对企业或其他研究单位作出的一系列优惠政策,企业或相关研究单位再根据政府的政策进行编写申报文件然后根据相关申报要求和流程进行申报。本文首先对项目申报系统的功能需求进行了分析,然后,对MVC设计模式及Struts框架进行了研究,最后基于Struts框架提出项目申报系统的设计方案,并对方案进行了实现。
[关键词]科研项目;项目申报;审批
随着我国财政支持资金渠道的增多,企业申报的财政支持项目越来越多。项目申报是一项繁琐的工作,通过人工申报容易出错。本文实现基于Web的项目申报系统,旨在为广大科技工作者提供一个进行项目申报的网络平台。为系统管理员提供一种方便的项目申报管理手段,实现申报管理以及申报流程的系统化、规范化和自动化。项目审批者通过系统来实现项目受理、公文传递、项目审批、结果反馈等,为用户提供一站式的服务。用户进入申报系统后,可提交申请,查询审批结果等。因此开展基于web的项目申报系统的研究和开发,具有十分重要的意义。
1.MVC设计模式
MVC通过把一个应用的实现划分为三个层,即模型层、视图层和控制层,使商业逻辑和用户界面有效地进行分离。模型层、视图层和控制层三者的功能及相互协作关系。模型层(Model):负责制定相应的业务规则,根据视图层发来的请求数据。对业务逻辑进行处理,并返回最终的处理结果。业务模型的设计是MVC的核心内容。视图层(View):负责实现与用户的交互,可以是HTML页面,也可以是JSP页面等。一个Web应用可能对应很多不同的视图,视图可以对数据进行采集和显示,但不能处理业务逻辑,数据的采集和显示都要依赖于模型层。控制层(controller):是一个请求分发器,负责接收视图层的请求,可以将模型层与视图层绑定在一起,通过选择相应的模型和视图完成相应的用户请求。一个模型可能對应多个视图,一个视图可能对应多个模型。如果视图层通过控制层改变了模型的数据,所有依赖于这些模型的视图都能及时体现出这些变化。
2.Struts框架
Struts框架对MVC设计模式中的模型层、视图层和控制层都提供了相应的组件类。其中,模型层由Action Form类和Java Bean组件等组成,Action Form类用于将视图层提交的请求参数封装到相应的Action Form对象中,该对象被控制层的Aetion Servlet类转发给Action类,Action类根据Action Form对象封装的请求参数来处理用户的请求,具体的业务逻辑可通过Java Bean组件来实现。视图层主要包括JSP页面,在JSP页面中可通过Struts框架提供的标签库实现与模型层交互。控制层由系统核心控制器和业务逻辑控制器组成。系统核心控制器是Actionser let类,该类继承自http Servlet类,可以按标准的Serv let类进行配置,它负责拦截所有的请求,然后根据用户请求决定要转给哪个业务逻辑控制器。业务逻辑控制器,可以是Action类的子类,负责接收来自Acdon Servlet类的请求,并根据该请求调用模型层的业务逻辑方法处理请求,请求处理结束后,将结果提交到Action Servlet类,由Aetion Servlet类将处理结果返回给相应的JSP页面进行显示。Struts框架中各组件的协作关系。
3.系统设计与实现
3.1系统设计
通过对项目申报系统进行需求分析,可以为系统设计以下几种基本功能,即申报、审批、核准、系统管理等。系统的用户角色可分为管理员、申报者、审批者和核准者等,用户登录系统后,根据角色分别进入相应的工作页面。申报者登录系统后,能够查看系统发布的项目信息,能够输入并提交相应的项目申报信息,可以随时查看审批结果。当审批没有通过时,可以对申请信息进行修改后再次提交。审批者登录系统后,可以查看分配给自己的审批任务,分别选择相应的任务进行审批。如果审批通过,则可以提交给相应的领导进行核准,如果审批没有通过,则填写意见后返回到申报者要求重新提交申请信息。核准者登录系统后,可以查看审批者提交给自己的已通过的审批任务,分别选择相应的任务进行核准。如果核准通过,则该审批任务被设为“成功”状态,如果核准没有通过,则填写意见后转送到审批者要求重新审批。系统管理员登录系统后,能发布、修改和删除相应的项目信息,能够对系统用户进行管理,对用户访问权限进行设置,通过系统日志对审批流程进行监控,对审批结果数据进行管理。
3.2系统实现
系统基于Struts框架进行设计,JSP页面作为系统的视图层,ActionServlet类和Aetion类作为系统的控制层,ActionForm类和JavaBean作为系统的模型层。视图层组件包括:login,jsp页面,用来实现用户登录。apply,jsp页面,用来实现申报申请信息的输入。Showresuh,jsp页面,用来输出显示用户的审批结果信息。Approve,jsp页面,用来对审批任务进行审批。Check,jsp页面,用来对审批任务进行核准。ApplyActionForm类是Struts框架中AetionForm类的子类,用来封装用户提交的项目申报申请信息。proapplyBean类是用于处理业务逻辑的JavaBean,其封装了对数据库的操作,其业务逻辑的实现是通过调用相应方法来完成的。loginCheck()方法用来实现用户登录验证,saveData()方法用来实现保存用户提交的项目申报申请信息,queryDataO方法用来查询指定的审批任务结果信息。approve()方法用来保存审批结果信息,check0方法用来保存核准结果信息。控制层组件包括ActionServlet类和Action类,ActionServlet类来自Struts框架,是整个应用的控制中心,通常不需要扩展。使用Struts框架提供的Action类扩展生成相应的子类(如pmapplyAction,java等),其作用是接收ActionServlet类请求,取得ApplyActionForm对象中封装的数据,调用proapplyBean组件的业务方法,进行相应的业务处理。
4.结束语
Struts是一种非常优秀的MVC实现框架,本文针对项目申报业务的需求,基于Struts框架进行了项目申报系统的设计与实现,将传统的三层架构的页面显示、业务处理、系统控制三者分开,使系统具有灵活、可扩展、易维护的特点。系统遵循J2EE规范和MVC设计模式,具有跨平台、低成本、开发高效快捷、可裁剪、可重用等优点,解决了目前项目申报系统推广普及的一些瓶颈问题,适用于项目申报系统建设项目的需求,具有一定的应用价值。
参考文献
[1]孙卫琴.基于MVC的Java Web设计与开发[M].电子工业出版社,2010
[2]李跃.基于Web的高校项目评审系统的设计与实现[J].电子设计工程,2012