4272559_基于JavaEE平台的网上调查问卷系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

收稿日期:2015-12-07;修订日期:2016-01-13
作者简介:王羡欠(1975-),男,本科,高级工程师,研究方向:医学信息、数据库。

第34卷 第1期2016年2月
江 西 科 学
JIANGXI SCIENCE
Vol.34No.1Feb.2016
doi :10.13990/j.issn1001-3679.2016.01.028
基于Java EE 平台的
网上调查问卷系统的设计与实现
王 羡 欠
(江西省人民医院,330003,南昌)
摘要:介绍了一种基于Java EE 技术的网上调查问卷系统的设计和开发,它具有Java 技术的面向服务器、跨平台、瘦客户端的特点,利于开发和维护。

所有用户问卷均采用JSP 技术动态生成,实现了页面的可重用性,具有内容管理系统的特点。

使用JFreeChart 显示图形化的统计结果。

关键词:调查问卷;JEE ;内容管理
中图分类号:TP393 文献标识码:A 文章编号:1001-3679(2016)01-129-04
Design and Implementation of Web Investigation Questionnaire System Based on Java EE Platform
WANG Xianqian
(Jiangxi Provincial Peoples Hospital,330003,Nanchang,PRC)
Abstract :This article introduced design and development of web investigation questionnaire system based on Java EE technology.It has features of Java technology:server⁃orient,cross platform and thin⁃client.It is very convenient for developing and maintenance.All users′questionnaires are gener⁃
ated dynamically using JSP technology.It realized reusability of pages.It has features of content man⁃agement system.We use JFreeChart to display graphic statistics result.Key words :investigation questionnaire;JEE;content management
0 引言
随着经济社会的发展,各政府机关需要进行
大量民意调查,以改进工作方式,更好地为百姓服务;各企业也需要调查不同用户的需求,开发出更适应市场销路的产品;各单位内部管理也需要收集全体职工的意见和要求,帮助领导进行科学民主决策。

这些都需要进行大量问卷调查。

传统的调查方式是通过主办单位发放纸质调查问卷给被调查者,被调查者填写完毕,主办单位收回问卷,组织人员统计调查结果,分析其中蕴藏的信息,上
报领导供决策之用。

这种传统方式具有耗费人力、统计分析时间较长、浪费纸张等缺点。

随着电子政务和企业办公自动化的推广,各单位开始采用网上问卷调查的方式。

它具有节省人力成本、无纸环保、快速得出调查结果等优点,能提高各单位的工作效率。

本文介绍一种基于Java EE 技术开发的网上调查问卷系统,它采用B /S 架构,被调查者只需一台能上网的电脑,即可接受调查,无需安装和维护客户端软件。

调查发起单位只需开发并维护服务器端软件,节约了调查成本,提高了管理效率。

1 系统需求
本系统用户分为系统管理员、管理员、被调查者3种类型。

系统管理员进行用户管理;管理员进行调查问卷管理,可以发起调查,查看调查结果。

被调查者可以参加调查,回答网上问卷。

管理员可发起新的问卷调查,输入调查的名称、各个问题的序号、题面、问题类型,问题分为单选、多选、判断、被调查者自填4种类型。

管理员输入所有问题后,点击“生成调查”,该次调查即生效,被调查者可以开始在网上回答问题。

用户进入问卷调查系统后,如果是新用户,则需要注册,输入帐号、密码以及其他用户信息。

如果是老用户,直接输入帐号、密码登录。

用户登录后,回答调查的问题:单选题和判断题使用单选按钮(Radio Button),多选题使用检查框(Check Box),被调查者自填问题使用文本输入框(Text Box),用户回答完所有问题后,点击“提交调查结果”将调查结果传回后台服务器。

调查问卷完成后,管理员可查看统计结果,可以列出每个问题的回答情况,可查看被调查者的分布情况:对于选择题(单选和多选),可查看选择各选项的人数百分比;对于判断题,可查看选择正反2种情况的人数百分比;对于被调查者自填问题,则可查看所有用户的回答结果。

统计结果在页面上以图形方式显示,更加直观。

2 系统设计
2.1 系统功能模块
本系统功能模块结构如图1所示。

所有用户都需要注册并登录系统方可使用。

被调查的普通用户可以做调查问卷,也可以查看自己以前做过的调查问卷。

管理员可以发起新的调查问卷,并查看已经结束的调查问卷的统计分析结果,系统管理员可以创建、修改、删除普通的管理员用户,还可以对系统字典信息进行维护,如问题类型等信息。

2.2 数据库设计
本系统采用MySQL关系数据库,2张表之间的关联是通过1张表的主键与另一张表的外键实现的。

在设计调查信息表时,需要考虑数据的粒度,如果每张问卷一条数据记录、每个问题一个数据字段的话,一张问卷中有数10个问题,会造成数据表中字段过多,不利于编程和维护。

因此采
图1 网上问卷调查系统功能模块结构图
用以每个问题为一条数据记录。

每个问题都存储着它所属的问卷编号,也具有它在问卷中的序号。

通过查询出具有同一问卷编号的所有问题可以把一张问卷重建起来。

这样问卷表中的字段不会太多。

系统主要数据表和字段信息如下。

2.2.1 用户表Investigation_Users 表示系统用户信息,主要字段:用户编号(主键)、帐号、密码、姓名、身份证号、手机、工作单位、住址、用户类型(被调查者、管理员、系统管理员)。

2.2.2 调查信息表Investigations 表示每次调查问卷的信息,主要字段:问卷编号(主键)、问卷名称、发起单位、起始日期。

2.2.3 问题信息表Investigation_Questions 表示每个问题的信息,主要字段:问题编号(主键)、问卷编号(外键)、序号、题面、问题类型(单选、多选、判断、自填)。

2.2.4 回答信息表Investigation_Answers 表示被调查者回答一道问题的信息,主要字段:回答编号(主键)、问题编号(外键)、选择编码、自填回答。

2.2.5 参加调查表Investigation_Attend 表示被调查者参加一场调查问卷的信息。

参加调查编号(主键)、问卷编号(外键)、被调查者编号(外键)、调查时间、被调查者IP地址。

本系统数据库E-R图如图2所示[3]。

图2 网上调查问卷系统E⁃R图
3 系统实现
本系统基于Java EE平台开发,即Java Enter⁃
·031·江 西 科 学2016年第34卷
prise Edition(Java企业版)。

Web应用服务器采用Tomcat7.0,数据库采用MySQL5.6.24,使用Eclipse集成开发环境,Java虚拟机采用JDK8。

Java EE主要针对服务器端软件开发。

它使用Java程序处理客户端计算机浏览器发出的访问请求,生成结果页面呈现给客户端。

客户端只需安装网页浏览器软件(例如Internet Explorer、Firefox、Safari等)。

本系统的数据处理重点有以下几个。

1)管理员发起调查,输入每道问题和类型,系统将其转换为数据库中的记录。

2)用户参与调查,访问调查问卷页面,系统将数据库问题表中的记录转化为问卷页面,根据不同的问题类型生成不同的页面输入。

3)用户回答完所有问题之后,提交问卷,系统将用户的所有回答转换为数据库回答表中的记录。

4)问卷调查结束后,管理员查看统计分析结果,系统将数据库中的相关数据查询、计算后得出统计分析结果。

3.1 问卷信息的呈现
由于每次调查问卷的问题数量和类型都不同,因此不可能使用HTML静态页面来呈现每次调查问卷的内容,而必须使用JSP动态页面。

JSP 页面是一种生成HTML页面的模板,它指定页面上的静态和动态内容。

对于静态内容,直接发送给客户端显示;对于动态内容,则必须在服务器后台运行Java程序,例如:查询数据库,得到查询结果。

然后将这些动态内容添加到页面上,返回客户端。

从而实现客户端每次都能根据用户的请求看到不同的结果页面,而无需在服务器上保存不同的静态页面。

例如,在JSP上指定问卷内容如下:
<%RowSet rs=DBUtil.queryInvestigation(in⁃vestigationID)
for(i=0;i<rs.count;i++)
{
 switch(rs.questionType)
 {
QuestionType.SINGLE_CHOICE:%> <input type="radio"name="choice1" value="1"><%rs.firstChoice%><br>
<input type="radio"name="choice2" value="2"><%rs.firstChoice%><br>

 }
 rs.next();
}%>
3.2 用户回答信息的回传
被调查者做完问卷后,提交至服务器,则必须把问卷的有关信息和被调查者所做的回答传回服务器。

客户端向服务器端传送数据有2种方式: GET和POST方式。

GET方式是将参数名称和值直接依次添加到请求的URL之后,例如: /answer questi⁃on1=2&question2=4
这样就将参数名称和值直接暴露于浏览器的地址栏中,安全性差。

另外,GET方式传送的数据大小不能超过2kb,对于有自填回答的问卷,可能会超过这个限制[2]。

而POST方式则不同,它将数据封装在HTTP数据包中传回服务器,用户无法直接查看到回答数据。

而且POST传送的数据最大能达到200kb[1]。

因此本系统采用POST 方式将回答数据传回服务器。

对于用户的回答,系统的编码方案如下。

1)单选题,编码为选项序号,如:用户选择第一项则为1,用户选择第二项则为2,等等。

2)多选题,编码为64为长整数,每个字节代表一个选项序号,依次排列,如用户选择了1、2、4、5等几项,则第1个字节为1,第2个字节为2,第3个字节为4,第4个字节为5,其余各字节为0。

3)判断题,用户选择负面则为0,选择正面则为1。

4)被调查者自填题,则直接存储用户填写的回答文本。

系统把每个问题的序号作为参数名称,用户回答编码作为参数值,使用POST方式传回服务器。

3.3 问卷调查结果的统计分析
调查问卷完成后,需要进行统计分析。

采用SQL语句对数据库中的数据进行统计。

对于每个调查问题,例如选择题,先在回答表中根据问题编号查找回答此问题的记录总数: SELECT COUNT(∗)FROM Investigation_An⁃swers WHERE QuestionID=?
然后查询选择该问题某一选项的记录总数: SELECT COUNT(∗)FROM Investigation_
·131·
第1期 王羡欠:基于Java EE平台的网上调查问卷系统的设计与实现
Answers WHERE QuestionID=AND
Ans_Choice=?
将2个查询结果相除,即可得出选择某一答案的百分比。

对该问卷的每道题都依次求出选择某一答案的百分比,即可得到这个问卷的统计信息。

求出统计结果数据后,在页面上以图形方式显示。

使用JFreeChart显示统计结果。

JFreeChart 是一种开源免费的Java绘图API[4]。

例如,要将选择题各选项人数显示为饼图,首先要获得饼图类:
PiePlot pieplot=(PiePlot)jfreechart.getPlot();
然后创建饼图数据集类,存储饼图中的各项数据: DefaultPieDataset dataset=new DefaultPieDat⁃aset();
dataset.setValue("本科",dBachelor); dataset.setValue("硕士",dMaster); dataset.setValue("博士",dDoctor);
最后将饼图显示在页面上:
String filename=ServletUtilities.saveChartAsPNG (chart,500,300,null,session);
String graphURL=request.getContextPath() +"/DisplayChart?filename="+filename; %>
<img src="<%=graphURL%>"width= 500height=300border=0usemap="#<%= filename%>">
4 结束语
基于Java EE平台的网上调查问卷系统能提高机关企事业单位工作的效率。

在调查问卷数据积累到较大的量之后将采用数据挖掘和大数据分析技术进行处理,以提高数据的利用率,为经济社会发展做出贡献。

参考文献院
[1] 百度知道.POST和GET的区别[EB/OL].http://
/link url=bNwaECc6sKa,2009-02-26.
[2]博客园.浅谈HTTP中GET与POST的区别[EB/
OL]./hyddd/archive/2009/
03/31/1426026.html,2014-2-24.
[3]百度百科.E⁃R图[EB/OL]/link url=bQ
3qC2mEbZz3,2013-7-29.
[4]ITPUB技术论坛.用JFreeChart增强JSP报表的用
户体验[EB/OL]./j/2007-09
-29/200709291132796.shtml,2007-09-30. [5]Eric Jendrock.Java EE7权威指南[M].苏金国,江
健,译.北京:机械工业出版社,2015.
[6]Arun Gupta.Java EE7精粹[M].韩陆,译.北京:人
民邮电出版社,2015.
[7]高洪岩.Java EE核心框架实战[M].北京:人民邮
电出版社,2014.
[8]赫利剑.通用网络调查问卷系统技术研究与实现
[D].北京:北京邮电大学,2006.
[9]李冬.基于SSI框架的可重用型问卷系统的设计与
实现[D].北京:北京工业大学,2012. [10]张凯昀.基于本体的网络调查问卷生成系统[D].
北京:北京师范大学,2005.
[11]余青松,郑骏,张宇容.基于Intranet/Internet的调查
问卷系统的研究与开发[J].微型电脑应用,2000
(12):15-17.
[12]刘秀莲.基于C/S架构的学生调查问卷系统的实现
[J].微型机与应用,2014(17):8-9. [13]唐燕,韩爱庆,翟兴.基于VBA技术实现调查问卷
数据自动读取[J].计算机与现代化,2014(2):226
-228.
[14]隋永波.基于WEB站点的在线调查问卷的设计与
实现[J].赤峰学院学报:自然科学版,2013(12):52
-53.
·231·江 西 科 学2016年第34卷。

相关文档
最新文档