基于S2SH 框架和Ajax 的调查宝在线投票系统的开发
1 概述
对于各企事业单位,推出符合民众需求的产品和业务至关重要,是各个单位业务的最终实现目标。如何推出符合民众需求的产品和业务,调查问卷必不可少。通过调查问卷,我们可以了解用户的需求,以及根据用户的需求进一步完善。因此,建立完善的调查问卷系统是各企事业工作推进的保证。
目前,各企事业单位的调查问卷大都是采用传统的人工方式,但是采用人工方式容易出问题。一是用户填写调查问卷的时候,容易书写错误,造成纸张浪费,同时导致有效调查数据减少;二是每年的调查问卷会浪费大量的空间存放;三是人工方式无法精确进行调查,数据不够准确。
因此,开发在线的调查问卷系统刻不容缓。调查宝是一个简单易用的在线问卷调查系统,通过这个系统用户可以轻松地进行在线调查问卷的设计、调查数据的收集,并进行调查结果分析、生成调研报告。
调查宝界面友好、使用简捷,每个人都可以轻易地开展各种调查活动。与传统调查方式和其它调查网站或调查系统相比,调查宝具有快捷、易用、低成本等明显优势。调查宝是一个web系统,利用互联网的优势, 利用网络的便捷对目标群体进行调查,搜集有用数据后进行统计分析,挖掘数据的潜在价值。
2 相关技术介绍
2.1 Web应用系统架构
目前Web应用系统广泛采用MVC的设计模式,该模式是目前广泛流行的软件设计模式。MVC设计模式采用三层结构,即表示层、业务层和数据存取层。表示层提供与用户交互的界面、收集和显示数据;业务层提供系统的业务和功能代码;数据存取层负责完成数据库操作。这种系统架构极大地提高了软件系统的可扩展性和可复用性,同时优化了模块之间的耦合,改善了系统的安全性。
2.2 Struts2框架
struts1和webwork的技术两者进行合并产生了全新的Struts2框架,Struts2框架主要用于开发Web应用程序的表现层,核心就是struts2控制器Filter Dispatcher和action。在开发大型可扩展的Web系统时,为了减轻软件开发过程中的组件间的控制和调用工作,以及加快开发进度,我们常常使用Struts框架。该文采用Struts2作为表现层框架,其结构如下图所示。
2.3 Spring框架
Spring是以控制反转(IOC)和面向切面(AOP)为基础的,一种轻量级的框架。其中,IOC机制实现了由Spring框架完成创建被调用者,然后将被调用者注入到调用者,这就是“依赖注入”;AOP机制使用切面技术将非业务工作织入到主要业务过程中,实现了多线程。以控制反转和面向切面为核心的Spring框架可以有效地缓解企业级应用程序开发的复杂性。该文采用Spring作为业务逻辑层框架,其结构如下图所示。
2.4 Hibernate框架
之前,我们需要访问数据库时需要写大量的代码,那么Hibernate框架是一个ORM层的框架,封装了JDBC,通过编写映射文件完成对象关系映射,在业务层以面向对象的方式进行编程,不需要考虑数据保存形式,可以很好的实现数据的持久化。Hibernate是一个开放源代码的、轻量级框架。
该文采用Hibernate作为业务逻辑层框架,其结构如下图所示。
2.5 Ajax
随着web2.0的出现和发展,Ajax越来越受到关注。Ajax采用异步机制,促使页面局部刷新,提高了用户操作页面的体验,Ajax减少了过多的web页面刷新,提高了用户的可用性。网上投票系统中使用Ajax实现了拦截用户的重复登录。
3 网上投票系统系统需求分析
通过与用户的沟通和交流后,明确了系统的所需功能。该文综合分析网上投票系统的业务领域知识,从而详细描述软件功能需求,构建软件需求可行方案,为软件设计工作提供指南和依据。
1)用户登录和注册。管理员使用用户名和密码登录,投票用户投票前需要注册普通用户,登录系统后方可进行投票操作,和查看投票结果。管理员登录后可以发布新投票,维护投票,查询投票结果等。
2)发布新投票。管理员根据实际需求可以发起投票,创建投票问题和选项。注意投票选项至少有两项。
3)投票。系统用户注册后可以对已经发布完成的投票问题进行有选择的投票,即用户选择适合的选项提交,投票完成后系统会记录投票的结果。
4)查看投票结果。用户投票完成后,管理员可以查看每个投票主题的得票数。
5)维护投票。管理员登录系统后可以对投票问题及其选项进行修改。
调查宝在线投票系统主要包括管理员模块和普通用户模块,其具体功能模块图如下图所示:
4 网上投票系统设计
4.1 架构设计
系统采用S2SH框架技术和Ajax技术实现,使得各个模块之间实现了松耦合,完美地衔接起来。该架构使用Strut2作为表现层和控制层主要框架,数据持久层使用Hibernate框架,而Spring框架主要负责业务逻辑层。
S2SH框架如下图所示:
4.1.1 视图层
Struts2框架用于管理视图层,维护用户交互、JSP页面跳转、表单以及数据验证。本系统采用Struts2框架后,当用户请求访问的时候,ActionServlet会负责接收用户请求,然后查询配置文件找到相应的Action控制处理请求;Action控制器将领域对象提交给业务逻辑层服务组件进行处理,处理完毕后,再将处理结果返回给Action控制器并将结果显示在相应的视图上或者跳转到另一个JSP页面。同时使用Ajax异步处理机制实现网页的局部刷新,本系统没有采用传统的拦截器实现提示用户的重复登录,而是采用Ajax实现了提示用户的重复登录,同时使用Ajax的AoP技术实现在主要投票业务过程中织入日志。
4.1.2 业务逻辑层
网上投票系统的业务逻辑层主要由Spring框架完成,业务逻辑层围绕用户的具体业务,比如管理员发起投票主题、管理员进行查询投票结果、普通用户参与投票等,将具体业务封装在service中,由service调用Dao中的方法,这里就用到了Spring框架的IoC,即在调用者service中注入被调用者Dao。Spring框架实现了层间的松耦合,利于日后的维护和扩展。
4.1.3 数据持久化层
网上投票系统的数据持久化层由Hibernate框架完成,实现了数据关系表和对象之间的映射。本系统中的Dao中具体的对数据的操作均采用HQL语句完成。
网上投票系统将S2SH框架技术运用到系统架构建设中,保证了系统总体框架的稳定性,降低了各层间的耦合度,提高了系统业
务处理效率。
4.2 构建系统领域模型
软件开发中的领域模型对应现实世界中的对象,是对现实生活中具体对象的抽象。只有将具体对象抽象成领域模型,并理清其关系,才可顺利地进行系统开发,所以,构建系统领域模型至关重要。根据调查宝在线投票系统的需求以及功能,我们抽象出了该系统的领域模型,如下图所示:
5 总结与展望
文章详细阐述了基于S2SH框架的“网上投票系统”的设计原则与实现的方法。通过与客户的交流和沟通,形成了详细的需求文档,进一步分析了系统的功能模块,构建系统领域模型。系统采用当下最为流行的web开发框架S2SH,并结合Ajax有效地提高了用户的体验。
通过总结本系统的开发与研究工作,网上投票系统还需进一步研究:Hibernate框架关联数据的完全更新。
参考文献:
.计算机技术与发展, 2009(8).
[2] 缪勇.基于S2SH框架的Ajax框架的研究[J].电脑知识与技术, 2009(26).
[3] 郭广军.基于S2SH架构的企业管理设计与实现[J].湖南人文科技学院学报, 2011(5).
[4] 李路路,等.基于Ajax和J2EE的进销存管理系统的设计与实现[J].计算机与现代化, 2013(4).