毕业论文 -在线问卷系统

在线问卷系统的设计与实现

摘要

科学技术日新月异的发展使社会信息化程度越来越高。传统的问卷调查一般采用书面问卷、直接采访、电话等媒体形式,其费用较高,操作不灵活,而且调查周期长,效果却只能在相对局限的区域里。鉴于此情况,传统的问卷调查已经不能满足社会发展和人们生活的需求,迫使人们寻求一种更高效的方式来捕获所需要的信息,因此网络问卷调查系统应运而生。

在线问卷系统是一个对网上问卷调查中设计问卷、问卷发布收集和问卷调查结果统计分析与存储的全部过程提供全程支持的系统。对上述三个过程的支持分别由问卷设计子系统、问卷收发子系统、问卷结果处理子系统实现。其中问卷设计子系统是其它两个子系统的基础,问卷收发子系统依赖于问卷设计子系统,而问卷结果处理子系统不仅依赖于问卷设计子系统,也依赖于问卷收发子系统。

该系统采用 Myeclipse ,Mysql ,JAVA 作为开发工具。

关键词:WEB ;网上调查;问卷系统;JAVA

摘要 ............................................................................................................................................. I Abstract ......................................................................................................... 错误!未定义书签。

1绪论 ......................................................................................................................................... 1

1.1课题背景和意义 . ............................................................................................................. 1

1.2问卷系统研究现状 .......................................................................................................... 1

1.3本文主要工作 ................................................................................................................. 2

2 系统关键技术 .......................................................................................................................... 3

2.1 JSP技术 ........................................................................................................................ 3

2.1.1 JSP简介 . ............................................................................................................. 3

2.1.2 JSPWeb开发 ........................................................................................................ 3

2.1.3 JSP的特点 .......................................................................................................... 4

2.2 JDK . ............................................................................................................................... 4

2.2.1 JDK组成 . ............................................................................................................. 5

2.2.2 JDK常用的包 . ...................................................................................................... 5

2.2.3 JDK常用工具 . ...................................................................................................... 5

2.3 Tomcat服务器 ............................................................................................................... 6

2.3.1 简介.................................................................................................................... 6

2.3.2 Tomcat的功能 ..................................................................................................... 6

2.4 MySQL数据库体系 .......................................................................................................... 7

2.5 AJAX .............................................................................................................................. 7

3 在线问卷系统的分析和设计 . ..................................................................................................... 8

3.1系统需求分析 ................................................................................................................. 9

3.2 系统功能分析 ................................................................................................................ 9

3.3 问卷系统的设计 . .......................................................................................................... 10

3.3.1 系统体系架构设计 . ............................................................................................ 11

3.3.2 系统工作流程设计 . ............................................................................................ 12

4 在线问卷系统的功能实现 ....................................................................................................... 12

4.1 Java简介 .................................................................................................................... 13

4.2 系统运行环境的配置 . ................................................................................................... 13

4.3 系统功能实现 .............................................................................................................. 16

4.3.1 数据库设计 ....................................................................................................... 16

4.3.2 功能模块设计 . ................................................................................................... 18

4.4 系统运行截图 .............................................................................................................. 23

5 总结与展望 ............................................................................................................................ 24

参考文献 ................................................................................................................................... 25

致谢 .......................................................................................................................................... 26

1绪论

1.1课题背景和意义

科学技术日新月异的发展使社会信息化程度越来越高。传统的问卷调查一般采用书面问卷、直接采访、电话等媒体形式,其费用较高,操作不灵活,而且调查周期长,效果却只能在相对局限的区域里。鉴于此情况,传统的问卷调查已经不能满足社会发展和人们生活的需求,迫使人们寻求一种更高效的方式来捕获所需要的信息,因此网络问卷调查系统应运而生。

网络问卷调查系统的产生和发展给人们带来了相当大的便捷,首先网络问卷调查基于网络来传递信息,信息传播速度快、范围广,使得问卷调查的目标群体不只局限于某一地区,可以发展到全国,甚至全世界。其次网络问卷调查系统节约成本,一方面,系统的开发不需要额外增加设备费、软件开发费、管理和维护费;另一方面,系统实现后使得问卷调查克服了纸质问卷调查的影印、人工分发、人工回收统计等缺点,节省材料资源、人力资源和时间,使得企业在竞争激烈的市场中拥有更强大的资本。问卷调查系统能快速地提取分析调查结果,且把统计信息及时公布,缩短了问卷调查的周期,使得问卷调查更具有时效性。

问卷调查是社会科学研究中的一种重要方法,随着互联网的不断发展,网上问卷调查成为一种比较常见的问卷调查形式,而且必将得到进一步的发展和推广。在线问卷调查系统主要提供了三个功能:问卷设计、问卷发放和收集、以及对问卷结果的分析统计和存储备份。这三个功能则分别可以由相应的模块来实现。

1.2问卷系统研究现状

借助Internet 这一现代化的信息沟通工具,网络问卷调查具有低成本、高速率、丰富的展现形式、跨越空间局限、智能化以及互动性等多种优点。在使用性方面,网络问卷调查在欧洲、美洲以及日韩等互联网发达国家己经相当普遍,在市场调查、民意调查、企业内部调查、网络选举以及学术研究领域得到广泛的应用。据不完全统计,欧洲、美洲以及韩等地区几乎实现了全员参与的问卷调查。在技术层面上,日本和美国网络问卷调查实现技术已经处于世界顶尖水平,其使用的.NET 技术是首屈一指的,Jesse Liberty 和Dan Hurwitz 展示如何使用Visual Studio 和ASP.NET 来构建下一代WEB 应用程序,不仅在代码编程上更简洁、更健壮,而且实现的功能上也非常之多,例如问卷信息绑定用户推送功能、强大的后台数据库支持功能;其次在欧美等发达国家网络问卷系统的易用性、保密性和人性化都有保障,用户登录网络问卷调查系统后不用担心私密信息被泄露;另外还利用软硬件相结合的方式,使用电脑触摸屏幕的硬件设备,让网络问卷调查的易用性更强,即使不会上网、不会使用电脑的人群也可实现网络问卷调查系统的填写。

然而,在网络问卷调查技术方面,中国的起步相对来说比较晚,早期都是以人工问卷调查方式出现,但是这种方法投入大、回收小,而且污染环境,逐渐被市场淘汰。近些年随着互联网的普及,网络问卷调查在中国有迅速普及的趋势。根据CNNIC 报告,截止到2010年,中国网民数量己经突破10亿,而且还在呈增长趋势,互联网在中国的普及为网络问卷的发展奠定了扎实的基础。拒不完全统计,在网络调查应用领域,2000年,国内市场研究仅有10%用于网络问卷调查,2003年这一比例大约为23.6,2006年基本为33%。中国市场信息协会调查分会报告指出,2010年,借助互联网和相应软件技术进行调查的市场公司有几千家,占了70%,这说明越来越多的国内企业开始重视和普及网络问卷调查的应用。近几年来国内对于ASP.NET 技术的研究也正在兴起,由于ASP.NET 具有简洁的设计和实施,其开发环境允许设置断点、跟踪代码段和查看调用堆栈,是一个多元化的调试环境[7],另外ASP.NET 主要应用于Windows 平台,虽然添加组件后也可以用于Linux 平台,但是很多重要的功能没法实现。针对这些情况,近几年来国内对于ASP.NET 技术的研究也逐渐成熟。

1.3本文主要工作

本文将分五章对在线问卷系统的设计进行了研究探讨,论文的组织结构如下:

第一章是绪论,阐述了本课题的研究背景及其意义,并对当前国内外网络问卷调查的研究应用概况和发展趋势进行了探讨和研究,最后介绍了论文的研究目标、工作内容和组织结构;

第二章介绍实现问卷系统所需要的相关技术;

第三章网上问卷系统的分析和设计。对本系统的用户参与者的分析以及系统的主要业务流程进行了进一步的分析,完成了系统总体方案的设计,接着分析了系统的设计原则和功能模块的划分,对各子系统的功能进行了划分,并且确定了各个子系统的功能和相互之间的关系。在设计过程中,考虑到系统的通用性和代码的重用性,应用了模块化的思想。在需求分析的基础上,逐步完成了数据库的分析和设计;

第四章是系统的详细设计,在需求分析的基础上详细地设计每个功能模块要实现的内容;

第五章是总结与展望。叙述了本系统完成的功能以及系统的不足之处。

2 系统关键技术

2.1 JSP技术

2.1.1 JSP简介

JSP 全称为Java Server Pages ,该技术由Sun Microsystems 提出,并由许多其他公司一起参与和建立的一种动态网页技术标准。这种技术通过在传统的Web 页面的HTML 文件(*.htm,*.html)中添加JAVA 程序片段(Scriptlet)和JSP 标记(tag,并因此形成了JSP 网页(*.jsp)。1998年4月Sun 公司发布JSP 0.90规范,1999年1月Sun 公司又发布了0.92规范,同时推出了支持JSP 的JavaWebServer2.0服务器,JSP 也开始流行起来,同年11月Sun 公司发布了JSP1.1规范,同时推出JSWDK1.0.1和Servlet2.2版,2000年9月Sun 公司发布JSP 1.2规范和JavaServletAPI2.3。JSP 技术在这短短的几年中取得了突破性的发展,并在各地广为流行,可见其必有得天独厚的优势。

一个用户可以通过浏览器将一个HTTP 请求发送到一个可执行应用程序而不一个静态的HTML 文件,服务器将会立即运行这个限定的程序,对用户的输入做出反应,将处理结果返回客户端,或者对数据的记录进行更新,CGI 、ISAPI 、ASP 、PHP 等技术的出现为用户发布交互性和实时信息提供了可能,而新推出的JSP 技术是其中的佼佼者,由于其具有很高的运行效率,较短的开发周期,很强的扩展能力,而且它的技术规范公开的,任何人都可以按照规范开发出自己的产品,更重要的是它一种与平台无关的开发技术,基于这些优点,JSP 迅速流行起来。

在Internet 众多网站中,基于Web 数据库的动态网站应用相当广泛。基于Web 网络数据库的动态网站由一个Web 浏览器作为客户端界面,一个数据库服务器用做信息存储和一个连接两者的Web 应用服务器组成。原有开发动态网站的CGI 技术随着Web 应用程序客户端技术的不断发展,逐渐被JavaApplet ,、ActiveX 控件、DHTML 和JavaScript 所取代。

2.1.2 JSPWeb开发

JSP 是基于JavaServlet 以及整个Java 体系的Web 开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。在传统的HTML 文件中加入Java 程序片段和JSP 标记,就形成了JSP 网页。JSP 页面请求通过Web 服务器接收并访问,此时,Web 服务器首先执行程序段,然后以HTML 的格式把执行的结果返回给客户。这些程序块可以重定向页面、发送邮件和操作数据库等,这就需要构建的动态Web 站点的功能。在服务器端执行所有的程序,而网络传输中只将结果发送至客户端,因此对客户的浏览器要求不高。在用户连接JSP 网站时,用户请求网页,JSP 页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过JavaBean 处理请求并将

返回的数据封装成HTML 页面返回给用户。

2.1.3 JSP的特点

JSP 技术具有以下显著的特点:

1)分离内容生成和显示

由于JSP 技术的诞生,Web 页面的程序员可以使用HTML 或XML 格式标识来设计网页。可以使用JSP 或者脚本来生成具有动态内容(即内容根据要求更改) 的页面。在JSP 标识和JavaBeans/EJB组件中封装着生成内容的逻辑,这些逻辑通过一个小脚本进行捆绑,并且在服务器上运行着所有的脚本。如果在JSP 标识和JavaBeans/EJB组件中封装着核心逻辑,那么Web 管理者和页面设计者都能通过接口来编辑JSP 页面,并且同时不会影响内容的生成。JSP 标识和小脚本在服务器端通过JSP 引擎进行解释,然后生成了请求内容(比如,使用JDBC 技术访问数据库) ,并且将结以HTML 或XML 的形式返回浏览器。这样做能够确保任何基于HTM 的网页浏览器的完整性和可用性,并且能够帮助作者保护自己的代码。

2)可重用组件的生成

很多时候应用程序需要进行更为复杂的处理,因此很多可重用的、跨平台的组件(如JavaBeans 或EnterpriseJavaBeans) 都使用JSP 页面来实现。程序员能交换执行和共享普通操作组件,并且让它们用于更多用户或客户。这种基于组件的方法加快了开发速度,平衡了各种组织现有的技能和优化方式。

3)使用标识简化页面进行开发

Web 页面的程序员并不都熟悉脚本语言。JavaServer 页面技术封装了很多功能,在使用时通过与JSP 关联的XML 标识进行动态文件内容生成。程序员通过标准的JSP 标识来识别和实例化JavaBeans 的组件,下载Applet 、设置或者检索组件属性。JSP 技术可以通过开发自定义的标识库进行发展。未来第三方的程序员可以创建自己的标识库。Web 页面的程序员能够使用熟知的工具和相同的组件来执行具有特定功能的工作。

2.2 JDK

JDK (Java Development Kit) 是SunMicrosystems 针对Java 程序员开发的产品。自从Java 推出以来,JDK 已经成为使用最广泛的JavaSDK 。 JDK 是整个Java 的核心,包括了Java 运行环境,Java 工具和Java 基础的类库。JDK 是学好Java 的第一步。而专门运行在x86平台的Jrocket 在服务端运行效率也要比SunJDK 好很多。从SUN 的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。

2.2.1 JDK组成

JDK 包含以下基本组件:

1)Javac :编译器,将源程序转成字节码。

2)jar :打包工具,将相关的类文件打包成一个文件。

3)Javadoc :文档生成器,从源码注释中提取文档。

4)jdb :debugger ,查错工具。

5)Java :运行编译后的Java 程序(.class后缀的) 。

6)appletviewer :小程序浏览器,一种执行HTML 文件上的Java 小程序的Java 浏览器。

7)Javah :产生可以调用Java 过程的C 过程,或建立能被Java 程序调用的C 过程的头文件。

8)Javap : Java 反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

9)Jconsole : Java 进行系统调试和监控的工具。

其中Javac 是Javac 语言编程编译器。Javac 工具由Java 语言编写的类和接口定义,并将它们编译成字节代码的class 文件。Javac 可以隐式编译一些没有在命令行中提及的源文件。用verbose 选项可跟踪自动编译。

2.2.2 JDK常用的包

1)Java.lang :这个是系统的基础类,比如String 等都是这里面的,这个包是唯一一个可以不用引入(import )就可以使用的包。

2)Java.io :这里面是所有输入输出有关的类,比如文件操作等。

3)Java.nio :为了完善io 包中的功能,提高io 包中性能而写的一个新包,例如NIO 非堵塞应用。

4)Java.net :这里面是网络有关的类,比如URL , URLConnection 等。

5)Java.sql :这个是数据库操作的类,Connection , Statement , ResultSet 等。

6)Javax.servlet :这个是JSP , Servlet 等使用到的类。

2.2.3 JDK常用工具

1)Javac : Java 源程序编译器,将Java 源代码转换成字节码。

2)Java : Java 解释器,直接从字节码文件执行Java 应用程序的字节代码。

3)appletviewer.exe : Java applet浏览器。appletviewer 命令可在脱离万维网浏览器环境的情况下运行applet 。

4)jar : Java 应用程序打包工具,可将多个类文件合并为单个JAR 归档文件。

5)Javadoc : Java API 文档生成器,从Java 源程序代码注释中提取文档,生成

API 文档HTML 页。

6)jdb : Java 调试器(debugger),可以逐行执行程序,设置断点和检查变量。

2.3 Tomcat服务器

2.3.1 简介

Tomcat 服务器作为一个免费开源的Web 应用服务器,其技术先进、性能稳定且免费,所以得到了很多软件开发商的认可和JAVA 爱好者的拥护,从而成为了目前比较流行的Web 应用服务器之一。

直到现在,Tomcat 一直被认为是Servlet/JSPAPI的执行器,也就Servlet 容器。然而,Tomcat 并不仅仅如此,它还提供了JNDI 和JMXAPI 的实现机制。尽管如此,Tomcat 仍然还不能算是应用服务器,因为它不提供大多数J2EEAPI 的支持。

Tomcat 中的应用程序与传统的桌面应用程序不同,它是一个WAR(WebArchive文件。WAR 与JAR 类似,是Sun 公司提出的类似文件压缩包的Web 应用程序格式。通常根目录下包括Html 和Jsp 文件,另外还有一个WEB-NIF 目录,在该目录下有一个classes 目录和一个web.xml 文件,classes 目录下包括了已经编译成形的Servlet 类和Servlet 所依赖的其他类或者Jsp ,而web.xml 则是该应用的外部配置文件。通常在WEB-INF 中的lib 目录下可以找到这些依赖类打包形成的JAR 文件,也可以配置到CLASSPATH 中。

2.3.2 Tomcat的功能

使用Tomcat 能够使应用程序的部署变得非常简单,只需在Tomcat 的webapps 目录下放入WAR ,之后Tomcat 就会自行检查到该文件,并对其进行解压。一般情况而言,第一次在浏览器中访问这个应用时会非常慢,这是因为Tomcat 要把Jsp 变换为Servlet 文件,之后才会进行编译。当编译结束以后,访问速度会加快。另外Tomcat 也提供了一个名叫manager 的应用方式。该方式需要用户名和密码来访问这个应用,而在xml 文件中通常储存着用户名和密码。用户可以通过这个应用远程进行Web 部署和撤销应用。

Tomcat 不单是一个Servlet ,它也拥有传统Web 服务器的特点,如处理Html 页面。但它处理静态Html 效果不如Apache 。除此以外,Tomcat 给出了Realm 支持。Realm 可以看作Unix 中的group 。在Unix 里,系统里的一定资源对应着一个group ,而一个group 不能访问不归属于它的资源。Tomcat 用Realm 来对不同的应用(可以看作系统资源) 赋予给不同的用户(可以看作group ),如果用户没有权限则不能访问这个应用。Tomcat 一共给出了三种Realm :

1) JNDIRealm,基于LDAP 的服务器里储存着用户信息,通过JNDI 获取。

2 ) JDBCRealm,数据库里存储着用户信息,通过JDBC 来进行验证。

3 ) MemoryRealm , xml 文件里储存用户信息,通过Realm 方便地验证访问某个应用的客户。

事实上,Jsp 和Servlet 的开发已经基本上涵盖了Tomcat 的主要开发,而这两种技术的开发也非常简单,只需要通过普通的文本编辑器进行编写,然后在打包成WAR 。

2.4 MySQL数据库体系

因为MySQL 采用的是客户机/服务器体系结构,所以在使用MySQL 进行存取数据操作时,必须使用至少两个或者是两类程序:

1)一个是位于存放数据的主机上的程序-数据库服务器。数据库服务器在网络上监听来自客户机的请求,然后根据客户机的这些请求访问数据库数据,访问之后再向客户机提供它们想得到的信息。

2)连接到数据库服务器的程序-客户机,这些程序是作为用户和服务器之间交互信息的工具,并且告诉服务器需要查询信息的内容。

MySQL 的架构可以描述为层次性子系统组合。MySQL 的源代码不是按照单组件或者模块的方式编写的,但是各个层次的源代码还是能够被分离出来,大部分的子系统依赖于一些通用的底层库。MySQL 包含以下子系统:网络连接和网络通信协议子系统;线程、进程和内存分配子系统;查询解析和查询优化子系统;存储引擎接口子系统;各类存储引擎子系统;安全管理子系统;日志子系统;mysys 核心库文件等。 当一个客户端通过网络连接MySQL 数据库服务时,网络连接子系统执行一系列的与网络协议有关的底层任务。然后网络连接子系统将控制权交给线程子系统,线程子系统提供一个线程来处理这个连接,这个连接称之为连接线程。随后连接线程得到控制权,它首先调用安全管理子系统来验证用户访问的合法性。

连接线程将获得的数据传给控制系统,其中一些请求在内核代码中被称作命令。这些命令中的一部分可以由这个控制系统直接完成,对于不可以直接由系统分发来完成查询的,分发系统将调用解析子系统对SQL 语句进行解析。同时,如果在配置MySQL 系统时采用了日志功能,那么分发系统还会调用日志系统去记录此次的信息。随后解析子系统将解析结果传给调用优化子系统以优化SQL 语句。接着进行表操作,并将一系列请求发往存储引擎接口子系统。存储引擎接口子系统将上述调用自动转化为某个具体的存储子系统方法。上述过程完成后,相应的模块将SQL 执行结果发往客户端,最后再由服务器将控制权交给连接线程,连接线程完成某些清理工作,并在此等待客户端的连接或者其他查询,直到客户端输入Quit 命令为止,到此本次通话才会结束。

2.5 AJAX

Ajax 全称为“Asynchronous JavaScript and XML" ,中文意思是异步JavaScript 和XML ,是指一种创建交互式网页应用的网页开发技术。它并不是一项新的技术,而是一系列己有技术的组合。下面是Ajax 用到的基本技术:

1)HTML 用于建立Web 表单并确定应用程序其他部分使用的字段。

2)JavaScript 代码是运行Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。

3)DHTML 或 Dynamic HTML,用于动态更新表单。我们将使用DTV , SPAN 和其他动态HTML 元素来标一记HTML 。

4)文档对象模型DOM 用于(通过JavaScript 代码) 处理HTML 结构和(某些情况下) 服务器返回的XML 。

在使用Ajax 之前,站点总是强制用户提交后等待重新加载页面,用户的动作总是与服务器加载同步。而Ajax 模式提供与服务器异步通信的能力,使用户从请求、响应的循环中解脱出来。

Ajax 的核心是JavaScript 对象XmlHttpRequest 。它是一种支持异步请求的技术,XmlHttpRequest 可以使用JavaScript 向服务器提出请求并处理响应,而不阻塞用户。 Ajax 的优点是在不更新整个页面的前提下更新数据,这样在每次提交时,只有用户的请求发送到服务器端处理。简言之就是局部刷新。避免了占用过多的带宽。Ajax 的缺点是破坏浏览器的后退按钮功能。

3 在线问卷系统的分析和设计

3.1系统需求分析

在线问卷系统是一个基于因特网的数据采集系统,这个系统的主要目的就是通过网络问卷调查的方式,收集我校不同部门对在校学生进行的问卷调查的相关资料。然后这些资料经过处理及时的存储起来,进行一定的统计分析,分析的结果对调查实施者来说是非常重要的数据。这些数据可以帮助他们调整最新培养方案中的课程结构,更好地培养以就业为导向的合格毕业生。

3.2 系统功能分析

本系统应能方便问卷设计者完成对问卷的设计和修改;其次,系统应能方便答卷人在系统提示下很顺利地完成回答再次;系统应能方便地发放调查问卷;第四,当答卷人回答完毕后,系统能够对该份问卷进行采集;最后,系统将数据及分析结果及时的存储起来,以确保信息安全可靠。因此本系统必须实现用户管理、问卷创建、问卷发布、问卷收集、数据分析和系统管理等功能。系统功能划分如图3-1所示。

图3-1 系统功能示意图

1)用户管理

对用户权限的管理。对用户的管理包括新增用户、删除用户以及为用户赋权限。

用户有两类,分别是答卷人和系统管理员,系统管理员可以设计问卷。用户权限包括对问卷的操作权限和对其他用户的控制权限,这个通过身份验证来区分。

2)问卷管理

可以提供的服务有新建问卷,编辑和修改已存在的问卷,保存问卷等功能。该部分的功能由用户自行操作。对问卷的操作权限指的是对问卷的增加、删除、修改、查询等权限。

3)问卷发布

可以提供发布问卷的服务,用户可以通过问卷发布器发布问卷。问卷可以通过两种途径发布出去,即可以通过因特网发布成网上调查问卷,也可以打印成纸质问卷发布以进行当面访问。

4)问卷收集

网上问卷调查的结果是系统自动收集的,当面访问的纸质问卷的调查结果分两种情况:问卷数量较少的时候,手工整理后把资料录入问卷系统;数量比较多的时候,通过扫描仪收集,然后由识别软件进一步处理后再输入系统。问卷调查结果收集是后台操作,因此不必在界面上反应出来。

5)数据分析和处理

此模块集资料编辑、数据管理、统计分析、报表制作、图形绘制为一体。数据分析模块根据不同的过滤条件对问卷调查的结果进行分析,最终针对不同的过滤条件输出分析结果并存储到数据库中。

3.3 问卷系统的设计

要得到一个可用的系统需要一个非常重要的环节,那就是系统构架。系统构架为我们提供了整个系统清晰的视角,这对控制系统的开发是必需的。系统构架不同于软件系统的单一,软件构架从不同的视角展示了整个软件系统,而系统的模型视图则从不同角度全面的集合展示了整个系统的各个层面网上问卷系统设计中还应该遵循的目标如下:

1)代码可重用

代码重用是提高软件开发生产率和目标系统质量的重要途径。 2)伸缩性

系统架构灵活,全部采用模块化设计,可以轻松进行各个模块之间的组合,系统可以方便地多次扩充。

3)合理的功能划分

设计中的各个类在应用中的作用应该尽可能清晰。设计清晰会有利于维护,也有利于分析,而且对于开发中的新成员来说则更容易上手。

4)易用性

系统采用人性化设计,充分考虑操作者的特点,即使不是专业人员也能轻易掌握。

5)扩展性

从网络协议到操作系统,从系统软件到应用软件,均遵循通用的国际或行业标准,可以很轻松地和其它系统接口。

6)安全性

提高系统安全性能最大限度地防止非法操作和入侵保证数据安全。

3.3.1 系统体系架构设计

软件体系结构通常被称为架构,指可预制和可重构的软件框架结构一软件体系结构是软件设计过程中的一个层次,它从不同方面对系统进行描述。软件体系结构的开发是大型软件系统开发的关键环节,在软件生产线的开发中具有至关重要的作用。软件体系结构贯穿于软件研发的整个生命周期内,具有重要的影响。这主要从以下几个方一面来进行考察:

1)利益相关人员之间的交流:软件体系结构是一种常见的对系统的抽象,代码级别的系统抽象仅仅可以成为程序员的交流工具,而包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础。

2)系统设计的前期决策:软件体系结构是软件系统最早期设计决策的体现,而这些早期决策对软件系统的后续开发、部署和维护具有相当重要的影响。这也是能够对所开发系统进行分析的最早时间点。

3)可传递的系统级抽象:软件体系结构是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。

开发基于Web 的问卷调查系统,首先应确定系统网络模式,由于不同的网络计算模式的工作特点和所提供的服务是不同的,因此用户应当根据所运行的应用程序的需要选择自己适宜的网络类型。目前使用较多的两种系统计算模式分别是:C/S模式与B/S模式。由于B/S模式作为系统结构还具有以下优势:

1)无须开发客户端软件,维护和升级方便;

2)可跨平台操作,任何一台机器只要装有WWW 浏览器软件,均可访问系统; 3)具有良好的开放性和可扩充性;

4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对信息系统的新需求。

基于以上优点,B/S结构在信息系统开发领域中获得飞速发展,成为应川软件开

发的一种流行体系结构。本系统选择后者。基于B/S的网络问卷调查系统以三层体系结构为主,包括数据库系统、应用服务器、客户浏览器三部分。其中,客户端接受用户的一请求,向应用服务器提出请求,应用服务从数据库中获得数据,将数据进行计算并将结果提交给客户端,客户端浏览器将结果呈现给用户。

3.3.2 系统工作流程设计

问卷设计是问卷调查前应做的准备工作,问卷结果分析和存储属于问卷调查后的信息挖掘。首先是调查前的准备工作,它主要是由老师根据我们的调查需求目标,讨论和设计一套调查问卷,然后运用系统的问卷设计功能,生成相应的网上问卷,并将问卷链接放到学院的校园网上供学生们接受问卷调查。问卷调查收集的样本越多,随机误差就越少。由于访问站点并参与问卷调查的用户人数有限,因此收集足够量的样本需要较长的时间。然后系统收集问卷,并进行一定的统计分析,用比较直观和形象的图形的方式将本次调查的结果显示出来或是打印输出。并对数据进行相应的存储备份。整个网上问卷系统的工作流程如图3-2所示。

图3-2 在线问卷系统的工作流程图

4 在线问卷系统的功能实现

4.1 Java简介

Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems 公司于1995年5月推出的Java 程序设计语言和Java 平台(即JavaEE , JavaME , JavaSE )的总称。Java 自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC 、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景[28]。

Java 服务器页面是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似ASP 技术,它是在传统的网页HTML (标准通用标记语言的子集)文件(*.htm,*.html)中插入Java 程序段(Scriptlet)和JSP 标记(tag),从而形成JSP 文件,后缀名为(*.jsp)。用JSP 开发的Web 应用是跨平台的,既能在Linux 下运行,也能在其他操作系统上运行。

4.2 系统运行环境的配置

本系统在Myeclipse 平台上运行。运行Myeclipse 之前需要安装JDK 和Mysql 数据库,将安装路径均设置在D 盘下。如图4-1、图4-2。

图4-1 安装Mysql 到D 盘

图4-2 安装JDK 到D 盘

安装好Mysql 与JDK 后运行Myeclipse ,打开windows ,Java 查看是否成功加载JDK 。如图4-3。

图4-3 查看JDK 加载页

加载成功后导入设预先编好的项目,如图4-4、4-5。

图4-4 导入项目

图4-5 导入项目成功

4-6 配置Tomcat 服务器

配置好Tomcat 服务器后,即可在浏览器访问本项目。

4.3 系统功能实现

4.3.1 数据库设计

由于涉及到问卷的设计以及数据搜集,所以需要进行数据库的设计。本系统共设计了五张表。分别是存储用户信息的usertable ,单选题目表danxuan ,多选题目表duoxuan ,问答题目表wenda 以及答案信息表answer 。数据库表见表4-1、4-2、4-3、4-4、4-5所示。

表4-1 用户信息表usertable

表4-3 多选题目表duoxuan

表4-4 问答题目表wenda

4.3.2 功能模块设计

在线问卷系统是一个对网上问卷调查中设计问卷、问卷发布收集和问卷调查结果统计分析与存储的全部过程提供全程支持的系统。对上述三个过程的支持分别由问卷设计子系统、问卷收发子系统、问卷结果处理子系统实现。

1)登陆界面

主要是用户的注册与登录。普通用户注册登陆后方可进行问卷答题。实现该部分功能的部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");

String number=request.getParameter("number"); String password=request.getParameter("password");

String insert="insert into usertable(usernumber,userpassword,manage) values('"+number+"','"+password+"','0')"; int n=tool.insert(insert); if (n==1) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("注册失败"); } }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String usernumber=request.getParameter("usernumber"); String userpassword=request.getParameter("userpassword"); HttpSession hs= request.getSession(); hs.setAttribute("usernumber",usernumber); //String a=(String) hs.getAttribute("usernumber"); String selectSQL="select * from usertable where usernumber='"+usernumber+"' and userpassword='"+userpassword+"';"; ResultSet rs=tool.select(selectSQL); try { if (rs.next()) { if (rs.getString("manage").equals("0")) { response.sendRedirect("main.jsp"); }

else { response.sendRedirect("manage.jsp"); } } else { response.sendRedirect("error.jsp"); }

} catch (SQLException e) {

// TODO Auto-generated catch block e.printStackTrace(); }

2)管理员功能

管理员可以进行用户管理,问卷设计以及问卷发布统计等功能。实现该部分功能部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); request.setCharacterEncoding("UTF-8");

String number=request.getParameter("usernumber"); String password=request.getParameter("userpassword");

String insert="insert into usertable(usernumber,userpassword,manage) values('"+number+"','"+password+"','1')"; int n=tool.insert(insert); response.sendRedirect("manage.jsp"); }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from usertable where manage='1'"; ResultSet rs=tool.select(selectSQL); out.write("管理员用户名密码信息:

"); out.write(""); try { while (rs.next()) { out.write(""); out.write(""); out.write(""); out.write("");

out.write("

"); out.write(""); }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String number=request.getParameter("number"); String password=request.getParameter("password"); String SQLinsert="insert into usertable(usernumber,userpassword) values('"+number+"','"+password+"')"; tool.insert(SQLinsert);

}

3)问卷调查题目的设计

该部分主要是管理员对问卷调查内容的设计,包含单选、多选以及问答题等。实现该部分功能的部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from danxuan"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); while (rs.next()) { out.write("

"); if (rs.getString("display").endsWith("1")) { out.write(""); } else { out.write(""); } out.write(rs.getString("text")+"?
"); int j=4; while ((j
");

} } catch (Exception e){ throw new RuntimeException(e.getMessage(),e); } }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from wenda"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); while (rs.next()) { out.write("

"); if (rs.getString("display").equals("1")) { out.write(""); } else { out.write(""); } out.write(rs.getString("text")+"?
"); out.write("

"); } } catch (Exception e){ throw new RuntimeException(e.getMessage(),e); } }

4)问卷作答

该部分主要是问卷发布后普通用户接受问卷调查时对相应题目进行作答。实现该部分功能部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();

String selectSQL="select * from danxuan where display=1"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); int i=1; while (rs.next()) { out.write("

"); out.write(i+"、"+rs.getString("text")+"?
"); int j=4; while ((j"+rsm.getColumnName(j)+"、"+rs.getString(j)+" "); j++; } i++; out.write("

"); } } catch (Exception e){ throw new RuntimeException(e.getMessage(),e); } }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from duoxuan where display=1"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); int i=1; while (rs.next()) { out.write("

"); out.write(i+"、"+rs.getString("text")+"?
"); int j=4; while ((j"+rsm.getColumnName(j)+"、"+rs.getString(j)+" ");

}

j++; }

out.write("

"); i++; } }

catch (Exception e){

throw new RuntimeException(e.getMessage(),e); }

4.4 系统运行截图

程序部分运行截图如图4-7、4-8、4-9、4-10、4-11、4-12所示。

5 总结与展望

随着网络技术的迅猛发展和信息、化的逐步深入,各类信息系统在高校中的应用日趋广泛。与之相辅相成的调查方法也发生了重大变革。网络问卷具有以下优点:及时性、高效性、可靠性、便捷性、低成本性和可存储性。

在线问卷系统主要提供了三个功能:问卷设计、问卷发放和收集、以及对问卷结果的分析统计和存储。这三个功能则分别可以由相应的模块来实现。本文对基于Web 的网上问卷系统做了一个较为全面的讨论。

本文在对国内外的网络问卷调查的应用现状进行了一定的分析和讨论的基础上,结合本人以往的开发经验和实际科研能力,给出了一套基于Web 的在线问卷系统的设计方案,给出了部分具体的实施方法,并通过部分实现验证了方案的可能性。

通过对C/S和B/S两种模式的比较,选择了基于B/S的三层设计架构作为在线问卷系统的体系结构。从应用角度来看,系统具有好的可扩展性和可维护性,同时也增加了数据库和后台应用系统的安全性。而且三层架构可以更好的支持分布式计算机环境。再根据系统的总体设计目标,确定了各个子系统的功能和相互之间的关系。

本课题的研究内容是目前研究领域的热点之一,但由于本人的开发经验和时间等原因,真正实现的功能还比较简单,在将来的使用过程中肯定会发现很多不足之处,我希望随着以后的研究能够不断的升级和更新。同时我们也希望能为本课题的后续研究提供一定新的思路,能起到抛砖引玉的功效。当前系统设计中的不足之处和今后的努力目标如下:

在系统的设计实现中,一些功能还尚未实现。比如问题的类型比较单一,只有封闭性的一些题目。这些功能留待以后进一步完善。对调查结果进行统计分析,很可能会涉及专家系统和一些比较专业的统计软件的使用,但限于本人的知识和能力有限,目前还没法实现。

参考文献

致谢

账号 密码
"+rs.getString("usernumber")+"

在线问卷系统的设计与实现

摘要

科学技术日新月异的发展使社会信息化程度越来越高。传统的问卷调查一般采用书面问卷、直接采访、电话等媒体形式,其费用较高,操作不灵活,而且调查周期长,效果却只能在相对局限的区域里。鉴于此情况,传统的问卷调查已经不能满足社会发展和人们生活的需求,迫使人们寻求一种更高效的方式来捕获所需要的信息,因此网络问卷调查系统应运而生。

在线问卷系统是一个对网上问卷调查中设计问卷、问卷发布收集和问卷调查结果统计分析与存储的全部过程提供全程支持的系统。对上述三个过程的支持分别由问卷设计子系统、问卷收发子系统、问卷结果处理子系统实现。其中问卷设计子系统是其它两个子系统的基础,问卷收发子系统依赖于问卷设计子系统,而问卷结果处理子系统不仅依赖于问卷设计子系统,也依赖于问卷收发子系统。

该系统采用 Myeclipse ,Mysql ,JAVA 作为开发工具。

关键词:WEB ;网上调查;问卷系统;JAVA

摘要 ............................................................................................................................................. I Abstract ......................................................................................................... 错误!未定义书签。

1绪论 ......................................................................................................................................... 1

1.1课题背景和意义 . ............................................................................................................. 1

1.2问卷系统研究现状 .......................................................................................................... 1

1.3本文主要工作 ................................................................................................................. 2

2 系统关键技术 .......................................................................................................................... 3

2.1 JSP技术 ........................................................................................................................ 3

2.1.1 JSP简介 . ............................................................................................................. 3

2.1.2 JSPWeb开发 ........................................................................................................ 3

2.1.3 JSP的特点 .......................................................................................................... 4

2.2 JDK . ............................................................................................................................... 4

2.2.1 JDK组成 . ............................................................................................................. 5

2.2.2 JDK常用的包 . ...................................................................................................... 5

2.2.3 JDK常用工具 . ...................................................................................................... 5

2.3 Tomcat服务器 ............................................................................................................... 6

2.3.1 简介.................................................................................................................... 6

2.3.2 Tomcat的功能 ..................................................................................................... 6

2.4 MySQL数据库体系 .......................................................................................................... 7

2.5 AJAX .............................................................................................................................. 7

3 在线问卷系统的分析和设计 . ..................................................................................................... 8

3.1系统需求分析 ................................................................................................................. 9

3.2 系统功能分析 ................................................................................................................ 9

3.3 问卷系统的设计 . .......................................................................................................... 10

3.3.1 系统体系架构设计 . ............................................................................................ 11

3.3.2 系统工作流程设计 . ............................................................................................ 12

4 在线问卷系统的功能实现 ....................................................................................................... 12

4.1 Java简介 .................................................................................................................... 13

4.2 系统运行环境的配置 . ................................................................................................... 13

4.3 系统功能实现 .............................................................................................................. 16

4.3.1 数据库设计 ....................................................................................................... 16

4.3.2 功能模块设计 . ................................................................................................... 18

4.4 系统运行截图 .............................................................................................................. 23

5 总结与展望 ............................................................................................................................ 24

参考文献 ................................................................................................................................... 25

致谢 .......................................................................................................................................... 26

1绪论

1.1课题背景和意义

科学技术日新月异的发展使社会信息化程度越来越高。传统的问卷调查一般采用书面问卷、直接采访、电话等媒体形式,其费用较高,操作不灵活,而且调查周期长,效果却只能在相对局限的区域里。鉴于此情况,传统的问卷调查已经不能满足社会发展和人们生活的需求,迫使人们寻求一种更高效的方式来捕获所需要的信息,因此网络问卷调查系统应运而生。

网络问卷调查系统的产生和发展给人们带来了相当大的便捷,首先网络问卷调查基于网络来传递信息,信息传播速度快、范围广,使得问卷调查的目标群体不只局限于某一地区,可以发展到全国,甚至全世界。其次网络问卷调查系统节约成本,一方面,系统的开发不需要额外增加设备费、软件开发费、管理和维护费;另一方面,系统实现后使得问卷调查克服了纸质问卷调查的影印、人工分发、人工回收统计等缺点,节省材料资源、人力资源和时间,使得企业在竞争激烈的市场中拥有更强大的资本。问卷调查系统能快速地提取分析调查结果,且把统计信息及时公布,缩短了问卷调查的周期,使得问卷调查更具有时效性。

问卷调查是社会科学研究中的一种重要方法,随着互联网的不断发展,网上问卷调查成为一种比较常见的问卷调查形式,而且必将得到进一步的发展和推广。在线问卷调查系统主要提供了三个功能:问卷设计、问卷发放和收集、以及对问卷结果的分析统计和存储备份。这三个功能则分别可以由相应的模块来实现。

1.2问卷系统研究现状

借助Internet 这一现代化的信息沟通工具,网络问卷调查具有低成本、高速率、丰富的展现形式、跨越空间局限、智能化以及互动性等多种优点。在使用性方面,网络问卷调查在欧洲、美洲以及日韩等互联网发达国家己经相当普遍,在市场调查、民意调查、企业内部调查、网络选举以及学术研究领域得到广泛的应用。据不完全统计,欧洲、美洲以及韩等地区几乎实现了全员参与的问卷调查。在技术层面上,日本和美国网络问卷调查实现技术已经处于世界顶尖水平,其使用的.NET 技术是首屈一指的,Jesse Liberty 和Dan Hurwitz 展示如何使用Visual Studio 和ASP.NET 来构建下一代WEB 应用程序,不仅在代码编程上更简洁、更健壮,而且实现的功能上也非常之多,例如问卷信息绑定用户推送功能、强大的后台数据库支持功能;其次在欧美等发达国家网络问卷系统的易用性、保密性和人性化都有保障,用户登录网络问卷调查系统后不用担心私密信息被泄露;另外还利用软硬件相结合的方式,使用电脑触摸屏幕的硬件设备,让网络问卷调查的易用性更强,即使不会上网、不会使用电脑的人群也可实现网络问卷调查系统的填写。

然而,在网络问卷调查技术方面,中国的起步相对来说比较晚,早期都是以人工问卷调查方式出现,但是这种方法投入大、回收小,而且污染环境,逐渐被市场淘汰。近些年随着互联网的普及,网络问卷调查在中国有迅速普及的趋势。根据CNNIC 报告,截止到2010年,中国网民数量己经突破10亿,而且还在呈增长趋势,互联网在中国的普及为网络问卷的发展奠定了扎实的基础。拒不完全统计,在网络调查应用领域,2000年,国内市场研究仅有10%用于网络问卷调查,2003年这一比例大约为23.6,2006年基本为33%。中国市场信息协会调查分会报告指出,2010年,借助互联网和相应软件技术进行调查的市场公司有几千家,占了70%,这说明越来越多的国内企业开始重视和普及网络问卷调查的应用。近几年来国内对于ASP.NET 技术的研究也正在兴起,由于ASP.NET 具有简洁的设计和实施,其开发环境允许设置断点、跟踪代码段和查看调用堆栈,是一个多元化的调试环境[7],另外ASP.NET 主要应用于Windows 平台,虽然添加组件后也可以用于Linux 平台,但是很多重要的功能没法实现。针对这些情况,近几年来国内对于ASP.NET 技术的研究也逐渐成熟。

1.3本文主要工作

本文将分五章对在线问卷系统的设计进行了研究探讨,论文的组织结构如下:

第一章是绪论,阐述了本课题的研究背景及其意义,并对当前国内外网络问卷调查的研究应用概况和发展趋势进行了探讨和研究,最后介绍了论文的研究目标、工作内容和组织结构;

第二章介绍实现问卷系统所需要的相关技术;

第三章网上问卷系统的分析和设计。对本系统的用户参与者的分析以及系统的主要业务流程进行了进一步的分析,完成了系统总体方案的设计,接着分析了系统的设计原则和功能模块的划分,对各子系统的功能进行了划分,并且确定了各个子系统的功能和相互之间的关系。在设计过程中,考虑到系统的通用性和代码的重用性,应用了模块化的思想。在需求分析的基础上,逐步完成了数据库的分析和设计;

第四章是系统的详细设计,在需求分析的基础上详细地设计每个功能模块要实现的内容;

第五章是总结与展望。叙述了本系统完成的功能以及系统的不足之处。

2 系统关键技术

2.1 JSP技术

2.1.1 JSP简介

JSP 全称为Java Server Pages ,该技术由Sun Microsystems 提出,并由许多其他公司一起参与和建立的一种动态网页技术标准。这种技术通过在传统的Web 页面的HTML 文件(*.htm,*.html)中添加JAVA 程序片段(Scriptlet)和JSP 标记(tag,并因此形成了JSP 网页(*.jsp)。1998年4月Sun 公司发布JSP 0.90规范,1999年1月Sun 公司又发布了0.92规范,同时推出了支持JSP 的JavaWebServer2.0服务器,JSP 也开始流行起来,同年11月Sun 公司发布了JSP1.1规范,同时推出JSWDK1.0.1和Servlet2.2版,2000年9月Sun 公司发布JSP 1.2规范和JavaServletAPI2.3。JSP 技术在这短短的几年中取得了突破性的发展,并在各地广为流行,可见其必有得天独厚的优势。

一个用户可以通过浏览器将一个HTTP 请求发送到一个可执行应用程序而不一个静态的HTML 文件,服务器将会立即运行这个限定的程序,对用户的输入做出反应,将处理结果返回客户端,或者对数据的记录进行更新,CGI 、ISAPI 、ASP 、PHP 等技术的出现为用户发布交互性和实时信息提供了可能,而新推出的JSP 技术是其中的佼佼者,由于其具有很高的运行效率,较短的开发周期,很强的扩展能力,而且它的技术规范公开的,任何人都可以按照规范开发出自己的产品,更重要的是它一种与平台无关的开发技术,基于这些优点,JSP 迅速流行起来。

在Internet 众多网站中,基于Web 数据库的动态网站应用相当广泛。基于Web 网络数据库的动态网站由一个Web 浏览器作为客户端界面,一个数据库服务器用做信息存储和一个连接两者的Web 应用服务器组成。原有开发动态网站的CGI 技术随着Web 应用程序客户端技术的不断发展,逐渐被JavaApplet ,、ActiveX 控件、DHTML 和JavaScript 所取代。

2.1.2 JSPWeb开发

JSP 是基于JavaServlet 以及整个Java 体系的Web 开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。在传统的HTML 文件中加入Java 程序片段和JSP 标记,就形成了JSP 网页。JSP 页面请求通过Web 服务器接收并访问,此时,Web 服务器首先执行程序段,然后以HTML 的格式把执行的结果返回给客户。这些程序块可以重定向页面、发送邮件和操作数据库等,这就需要构建的动态Web 站点的功能。在服务器端执行所有的程序,而网络传输中只将结果发送至客户端,因此对客户的浏览器要求不高。在用户连接JSP 网站时,用户请求网页,JSP 页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过JavaBean 处理请求并将

返回的数据封装成HTML 页面返回给用户。

2.1.3 JSP的特点

JSP 技术具有以下显著的特点:

1)分离内容生成和显示

由于JSP 技术的诞生,Web 页面的程序员可以使用HTML 或XML 格式标识来设计网页。可以使用JSP 或者脚本来生成具有动态内容(即内容根据要求更改) 的页面。在JSP 标识和JavaBeans/EJB组件中封装着生成内容的逻辑,这些逻辑通过一个小脚本进行捆绑,并且在服务器上运行着所有的脚本。如果在JSP 标识和JavaBeans/EJB组件中封装着核心逻辑,那么Web 管理者和页面设计者都能通过接口来编辑JSP 页面,并且同时不会影响内容的生成。JSP 标识和小脚本在服务器端通过JSP 引擎进行解释,然后生成了请求内容(比如,使用JDBC 技术访问数据库) ,并且将结以HTML 或XML 的形式返回浏览器。这样做能够确保任何基于HTM 的网页浏览器的完整性和可用性,并且能够帮助作者保护自己的代码。

2)可重用组件的生成

很多时候应用程序需要进行更为复杂的处理,因此很多可重用的、跨平台的组件(如JavaBeans 或EnterpriseJavaBeans) 都使用JSP 页面来实现。程序员能交换执行和共享普通操作组件,并且让它们用于更多用户或客户。这种基于组件的方法加快了开发速度,平衡了各种组织现有的技能和优化方式。

3)使用标识简化页面进行开发

Web 页面的程序员并不都熟悉脚本语言。JavaServer 页面技术封装了很多功能,在使用时通过与JSP 关联的XML 标识进行动态文件内容生成。程序员通过标准的JSP 标识来识别和实例化JavaBeans 的组件,下载Applet 、设置或者检索组件属性。JSP 技术可以通过开发自定义的标识库进行发展。未来第三方的程序员可以创建自己的标识库。Web 页面的程序员能够使用熟知的工具和相同的组件来执行具有特定功能的工作。

2.2 JDK

JDK (Java Development Kit) 是SunMicrosystems 针对Java 程序员开发的产品。自从Java 推出以来,JDK 已经成为使用最广泛的JavaSDK 。 JDK 是整个Java 的核心,包括了Java 运行环境,Java 工具和Java 基础的类库。JDK 是学好Java 的第一步。而专门运行在x86平台的Jrocket 在服务端运行效率也要比SunJDK 好很多。从SUN 的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。

2.2.1 JDK组成

JDK 包含以下基本组件:

1)Javac :编译器,将源程序转成字节码。

2)jar :打包工具,将相关的类文件打包成一个文件。

3)Javadoc :文档生成器,从源码注释中提取文档。

4)jdb :debugger ,查错工具。

5)Java :运行编译后的Java 程序(.class后缀的) 。

6)appletviewer :小程序浏览器,一种执行HTML 文件上的Java 小程序的Java 浏览器。

7)Javah :产生可以调用Java 过程的C 过程,或建立能被Java 程序调用的C 过程的头文件。

8)Javap : Java 反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

9)Jconsole : Java 进行系统调试和监控的工具。

其中Javac 是Javac 语言编程编译器。Javac 工具由Java 语言编写的类和接口定义,并将它们编译成字节代码的class 文件。Javac 可以隐式编译一些没有在命令行中提及的源文件。用verbose 选项可跟踪自动编译。

2.2.2 JDK常用的包

1)Java.lang :这个是系统的基础类,比如String 等都是这里面的,这个包是唯一一个可以不用引入(import )就可以使用的包。

2)Java.io :这里面是所有输入输出有关的类,比如文件操作等。

3)Java.nio :为了完善io 包中的功能,提高io 包中性能而写的一个新包,例如NIO 非堵塞应用。

4)Java.net :这里面是网络有关的类,比如URL , URLConnection 等。

5)Java.sql :这个是数据库操作的类,Connection , Statement , ResultSet 等。

6)Javax.servlet :这个是JSP , Servlet 等使用到的类。

2.2.3 JDK常用工具

1)Javac : Java 源程序编译器,将Java 源代码转换成字节码。

2)Java : Java 解释器,直接从字节码文件执行Java 应用程序的字节代码。

3)appletviewer.exe : Java applet浏览器。appletviewer 命令可在脱离万维网浏览器环境的情况下运行applet 。

4)jar : Java 应用程序打包工具,可将多个类文件合并为单个JAR 归档文件。

5)Javadoc : Java API 文档生成器,从Java 源程序代码注释中提取文档,生成

API 文档HTML 页。

6)jdb : Java 调试器(debugger),可以逐行执行程序,设置断点和检查变量。

2.3 Tomcat服务器

2.3.1 简介

Tomcat 服务器作为一个免费开源的Web 应用服务器,其技术先进、性能稳定且免费,所以得到了很多软件开发商的认可和JAVA 爱好者的拥护,从而成为了目前比较流行的Web 应用服务器之一。

直到现在,Tomcat 一直被认为是Servlet/JSPAPI的执行器,也就Servlet 容器。然而,Tomcat 并不仅仅如此,它还提供了JNDI 和JMXAPI 的实现机制。尽管如此,Tomcat 仍然还不能算是应用服务器,因为它不提供大多数J2EEAPI 的支持。

Tomcat 中的应用程序与传统的桌面应用程序不同,它是一个WAR(WebArchive文件。WAR 与JAR 类似,是Sun 公司提出的类似文件压缩包的Web 应用程序格式。通常根目录下包括Html 和Jsp 文件,另外还有一个WEB-NIF 目录,在该目录下有一个classes 目录和一个web.xml 文件,classes 目录下包括了已经编译成形的Servlet 类和Servlet 所依赖的其他类或者Jsp ,而web.xml 则是该应用的外部配置文件。通常在WEB-INF 中的lib 目录下可以找到这些依赖类打包形成的JAR 文件,也可以配置到CLASSPATH 中。

2.3.2 Tomcat的功能

使用Tomcat 能够使应用程序的部署变得非常简单,只需在Tomcat 的webapps 目录下放入WAR ,之后Tomcat 就会自行检查到该文件,并对其进行解压。一般情况而言,第一次在浏览器中访问这个应用时会非常慢,这是因为Tomcat 要把Jsp 变换为Servlet 文件,之后才会进行编译。当编译结束以后,访问速度会加快。另外Tomcat 也提供了一个名叫manager 的应用方式。该方式需要用户名和密码来访问这个应用,而在xml 文件中通常储存着用户名和密码。用户可以通过这个应用远程进行Web 部署和撤销应用。

Tomcat 不单是一个Servlet ,它也拥有传统Web 服务器的特点,如处理Html 页面。但它处理静态Html 效果不如Apache 。除此以外,Tomcat 给出了Realm 支持。Realm 可以看作Unix 中的group 。在Unix 里,系统里的一定资源对应着一个group ,而一个group 不能访问不归属于它的资源。Tomcat 用Realm 来对不同的应用(可以看作系统资源) 赋予给不同的用户(可以看作group ),如果用户没有权限则不能访问这个应用。Tomcat 一共给出了三种Realm :

1) JNDIRealm,基于LDAP 的服务器里储存着用户信息,通过JNDI 获取。

2 ) JDBCRealm,数据库里存储着用户信息,通过JDBC 来进行验证。

3 ) MemoryRealm , xml 文件里储存用户信息,通过Realm 方便地验证访问某个应用的客户。

事实上,Jsp 和Servlet 的开发已经基本上涵盖了Tomcat 的主要开发,而这两种技术的开发也非常简单,只需要通过普通的文本编辑器进行编写,然后在打包成WAR 。

2.4 MySQL数据库体系

因为MySQL 采用的是客户机/服务器体系结构,所以在使用MySQL 进行存取数据操作时,必须使用至少两个或者是两类程序:

1)一个是位于存放数据的主机上的程序-数据库服务器。数据库服务器在网络上监听来自客户机的请求,然后根据客户机的这些请求访问数据库数据,访问之后再向客户机提供它们想得到的信息。

2)连接到数据库服务器的程序-客户机,这些程序是作为用户和服务器之间交互信息的工具,并且告诉服务器需要查询信息的内容。

MySQL 的架构可以描述为层次性子系统组合。MySQL 的源代码不是按照单组件或者模块的方式编写的,但是各个层次的源代码还是能够被分离出来,大部分的子系统依赖于一些通用的底层库。MySQL 包含以下子系统:网络连接和网络通信协议子系统;线程、进程和内存分配子系统;查询解析和查询优化子系统;存储引擎接口子系统;各类存储引擎子系统;安全管理子系统;日志子系统;mysys 核心库文件等。 当一个客户端通过网络连接MySQL 数据库服务时,网络连接子系统执行一系列的与网络协议有关的底层任务。然后网络连接子系统将控制权交给线程子系统,线程子系统提供一个线程来处理这个连接,这个连接称之为连接线程。随后连接线程得到控制权,它首先调用安全管理子系统来验证用户访问的合法性。

连接线程将获得的数据传给控制系统,其中一些请求在内核代码中被称作命令。这些命令中的一部分可以由这个控制系统直接完成,对于不可以直接由系统分发来完成查询的,分发系统将调用解析子系统对SQL 语句进行解析。同时,如果在配置MySQL 系统时采用了日志功能,那么分发系统还会调用日志系统去记录此次的信息。随后解析子系统将解析结果传给调用优化子系统以优化SQL 语句。接着进行表操作,并将一系列请求发往存储引擎接口子系统。存储引擎接口子系统将上述调用自动转化为某个具体的存储子系统方法。上述过程完成后,相应的模块将SQL 执行结果发往客户端,最后再由服务器将控制权交给连接线程,连接线程完成某些清理工作,并在此等待客户端的连接或者其他查询,直到客户端输入Quit 命令为止,到此本次通话才会结束。

2.5 AJAX

Ajax 全称为“Asynchronous JavaScript and XML" ,中文意思是异步JavaScript 和XML ,是指一种创建交互式网页应用的网页开发技术。它并不是一项新的技术,而是一系列己有技术的组合。下面是Ajax 用到的基本技术:

1)HTML 用于建立Web 表单并确定应用程序其他部分使用的字段。

2)JavaScript 代码是运行Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。

3)DHTML 或 Dynamic HTML,用于动态更新表单。我们将使用DTV , SPAN 和其他动态HTML 元素来标一记HTML 。

4)文档对象模型DOM 用于(通过JavaScript 代码) 处理HTML 结构和(某些情况下) 服务器返回的XML 。

在使用Ajax 之前,站点总是强制用户提交后等待重新加载页面,用户的动作总是与服务器加载同步。而Ajax 模式提供与服务器异步通信的能力,使用户从请求、响应的循环中解脱出来。

Ajax 的核心是JavaScript 对象XmlHttpRequest 。它是一种支持异步请求的技术,XmlHttpRequest 可以使用JavaScript 向服务器提出请求并处理响应,而不阻塞用户。 Ajax 的优点是在不更新整个页面的前提下更新数据,这样在每次提交时,只有用户的请求发送到服务器端处理。简言之就是局部刷新。避免了占用过多的带宽。Ajax 的缺点是破坏浏览器的后退按钮功能。

3 在线问卷系统的分析和设计

3.1系统需求分析

在线问卷系统是一个基于因特网的数据采集系统,这个系统的主要目的就是通过网络问卷调查的方式,收集我校不同部门对在校学生进行的问卷调查的相关资料。然后这些资料经过处理及时的存储起来,进行一定的统计分析,分析的结果对调查实施者来说是非常重要的数据。这些数据可以帮助他们调整最新培养方案中的课程结构,更好地培养以就业为导向的合格毕业生。

3.2 系统功能分析

本系统应能方便问卷设计者完成对问卷的设计和修改;其次,系统应能方便答卷人在系统提示下很顺利地完成回答再次;系统应能方便地发放调查问卷;第四,当答卷人回答完毕后,系统能够对该份问卷进行采集;最后,系统将数据及分析结果及时的存储起来,以确保信息安全可靠。因此本系统必须实现用户管理、问卷创建、问卷发布、问卷收集、数据分析和系统管理等功能。系统功能划分如图3-1所示。

图3-1 系统功能示意图

1)用户管理

对用户权限的管理。对用户的管理包括新增用户、删除用户以及为用户赋权限。

用户有两类,分别是答卷人和系统管理员,系统管理员可以设计问卷。用户权限包括对问卷的操作权限和对其他用户的控制权限,这个通过身份验证来区分。

2)问卷管理

可以提供的服务有新建问卷,编辑和修改已存在的问卷,保存问卷等功能。该部分的功能由用户自行操作。对问卷的操作权限指的是对问卷的增加、删除、修改、查询等权限。

3)问卷发布

可以提供发布问卷的服务,用户可以通过问卷发布器发布问卷。问卷可以通过两种途径发布出去,即可以通过因特网发布成网上调查问卷,也可以打印成纸质问卷发布以进行当面访问。

4)问卷收集

网上问卷调查的结果是系统自动收集的,当面访问的纸质问卷的调查结果分两种情况:问卷数量较少的时候,手工整理后把资料录入问卷系统;数量比较多的时候,通过扫描仪收集,然后由识别软件进一步处理后再输入系统。问卷调查结果收集是后台操作,因此不必在界面上反应出来。

5)数据分析和处理

此模块集资料编辑、数据管理、统计分析、报表制作、图形绘制为一体。数据分析模块根据不同的过滤条件对问卷调查的结果进行分析,最终针对不同的过滤条件输出分析结果并存储到数据库中。

3.3 问卷系统的设计

要得到一个可用的系统需要一个非常重要的环节,那就是系统构架。系统构架为我们提供了整个系统清晰的视角,这对控制系统的开发是必需的。系统构架不同于软件系统的单一,软件构架从不同的视角展示了整个软件系统,而系统的模型视图则从不同角度全面的集合展示了整个系统的各个层面网上问卷系统设计中还应该遵循的目标如下:

1)代码可重用

代码重用是提高软件开发生产率和目标系统质量的重要途径。 2)伸缩性

系统架构灵活,全部采用模块化设计,可以轻松进行各个模块之间的组合,系统可以方便地多次扩充。

3)合理的功能划分

设计中的各个类在应用中的作用应该尽可能清晰。设计清晰会有利于维护,也有利于分析,而且对于开发中的新成员来说则更容易上手。

4)易用性

系统采用人性化设计,充分考虑操作者的特点,即使不是专业人员也能轻易掌握。

5)扩展性

从网络协议到操作系统,从系统软件到应用软件,均遵循通用的国际或行业标准,可以很轻松地和其它系统接口。

6)安全性

提高系统安全性能最大限度地防止非法操作和入侵保证数据安全。

3.3.1 系统体系架构设计

软件体系结构通常被称为架构,指可预制和可重构的软件框架结构一软件体系结构是软件设计过程中的一个层次,它从不同方面对系统进行描述。软件体系结构的开发是大型软件系统开发的关键环节,在软件生产线的开发中具有至关重要的作用。软件体系结构贯穿于软件研发的整个生命周期内,具有重要的影响。这主要从以下几个方一面来进行考察:

1)利益相关人员之间的交流:软件体系结构是一种常见的对系统的抽象,代码级别的系统抽象仅仅可以成为程序员的交流工具,而包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础。

2)系统设计的前期决策:软件体系结构是软件系统最早期设计决策的体现,而这些早期决策对软件系统的后续开发、部署和维护具有相当重要的影响。这也是能够对所开发系统进行分析的最早时间点。

3)可传递的系统级抽象:软件体系结构是关于系统构造以及系统各个元素工作机制的相对较小、却又能够突出反映问题的模型。由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。

开发基于Web 的问卷调查系统,首先应确定系统网络模式,由于不同的网络计算模式的工作特点和所提供的服务是不同的,因此用户应当根据所运行的应用程序的需要选择自己适宜的网络类型。目前使用较多的两种系统计算模式分别是:C/S模式与B/S模式。由于B/S模式作为系统结构还具有以下优势:

1)无须开发客户端软件,维护和升级方便;

2)可跨平台操作,任何一台机器只要装有WWW 浏览器软件,均可访问系统; 3)具有良好的开放性和可扩充性;

4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对信息系统的新需求。

基于以上优点,B/S结构在信息系统开发领域中获得飞速发展,成为应川软件开

发的一种流行体系结构。本系统选择后者。基于B/S的网络问卷调查系统以三层体系结构为主,包括数据库系统、应用服务器、客户浏览器三部分。其中,客户端接受用户的一请求,向应用服务器提出请求,应用服务从数据库中获得数据,将数据进行计算并将结果提交给客户端,客户端浏览器将结果呈现给用户。

3.3.2 系统工作流程设计

问卷设计是问卷调查前应做的准备工作,问卷结果分析和存储属于问卷调查后的信息挖掘。首先是调查前的准备工作,它主要是由老师根据我们的调查需求目标,讨论和设计一套调查问卷,然后运用系统的问卷设计功能,生成相应的网上问卷,并将问卷链接放到学院的校园网上供学生们接受问卷调查。问卷调查收集的样本越多,随机误差就越少。由于访问站点并参与问卷调查的用户人数有限,因此收集足够量的样本需要较长的时间。然后系统收集问卷,并进行一定的统计分析,用比较直观和形象的图形的方式将本次调查的结果显示出来或是打印输出。并对数据进行相应的存储备份。整个网上问卷系统的工作流程如图3-2所示。

图3-2 在线问卷系统的工作流程图

4 在线问卷系统的功能实现

4.1 Java简介

Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems 公司于1995年5月推出的Java 程序设计语言和Java 平台(即JavaEE , JavaME , JavaSE )的总称。Java 自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC 、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景[28]。

Java 服务器页面是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似ASP 技术,它是在传统的网页HTML (标准通用标记语言的子集)文件(*.htm,*.html)中插入Java 程序段(Scriptlet)和JSP 标记(tag),从而形成JSP 文件,后缀名为(*.jsp)。用JSP 开发的Web 应用是跨平台的,既能在Linux 下运行,也能在其他操作系统上运行。

4.2 系统运行环境的配置

本系统在Myeclipse 平台上运行。运行Myeclipse 之前需要安装JDK 和Mysql 数据库,将安装路径均设置在D 盘下。如图4-1、图4-2。

图4-1 安装Mysql 到D 盘

图4-2 安装JDK 到D 盘

安装好Mysql 与JDK 后运行Myeclipse ,打开windows ,Java 查看是否成功加载JDK 。如图4-3。

图4-3 查看JDK 加载页

加载成功后导入设预先编好的项目,如图4-4、4-5。

图4-4 导入项目

图4-5 导入项目成功

4-6 配置Tomcat 服务器

配置好Tomcat 服务器后,即可在浏览器访问本项目。

4.3 系统功能实现

4.3.1 数据库设计

由于涉及到问卷的设计以及数据搜集,所以需要进行数据库的设计。本系统共设计了五张表。分别是存储用户信息的usertable ,单选题目表danxuan ,多选题目表duoxuan ,问答题目表wenda 以及答案信息表answer 。数据库表见表4-1、4-2、4-3、4-4、4-5所示。

表4-1 用户信息表usertable

表4-3 多选题目表duoxuan

表4-4 问答题目表wenda

4.3.2 功能模块设计

在线问卷系统是一个对网上问卷调查中设计问卷、问卷发布收集和问卷调查结果统计分析与存储的全部过程提供全程支持的系统。对上述三个过程的支持分别由问卷设计子系统、问卷收发子系统、问卷结果处理子系统实现。

1)登陆界面

主要是用户的注册与登录。普通用户注册登陆后方可进行问卷答题。实现该部分功能的部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");

String number=request.getParameter("number"); String password=request.getParameter("password");

String insert="insert into usertable(usernumber,userpassword,manage) values('"+number+"','"+password+"','0')"; int n=tool.insert(insert); if (n==1) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("注册失败"); } }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String usernumber=request.getParameter("usernumber"); String userpassword=request.getParameter("userpassword"); HttpSession hs= request.getSession(); hs.setAttribute("usernumber",usernumber); //String a=(String) hs.getAttribute("usernumber"); String selectSQL="select * from usertable where usernumber='"+usernumber+"' and userpassword='"+userpassword+"';"; ResultSet rs=tool.select(selectSQL); try { if (rs.next()) { if (rs.getString("manage").equals("0")) { response.sendRedirect("main.jsp"); }

else { response.sendRedirect("manage.jsp"); } } else { response.sendRedirect("error.jsp"); }

} catch (SQLException e) {

// TODO Auto-generated catch block e.printStackTrace(); }

2)管理员功能

管理员可以进行用户管理,问卷设计以及问卷发布统计等功能。实现该部分功能部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); request.setCharacterEncoding("UTF-8");

String number=request.getParameter("usernumber"); String password=request.getParameter("userpassword");

String insert="insert into usertable(usernumber,userpassword,manage) values('"+number+"','"+password+"','1')"; int n=tool.insert(insert); response.sendRedirect("manage.jsp"); }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from usertable where manage='1'"; ResultSet rs=tool.select(selectSQL); out.write("管理员用户名密码信息:

"); out.write(""); try { while (rs.next()) { out.write(""); out.write(""); out.write(""); out.write("");

out.write("

"); out.write(""); }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String number=request.getParameter("number"); String password=request.getParameter("password"); String SQLinsert="insert into usertable(usernumber,userpassword) values('"+number+"','"+password+"')"; tool.insert(SQLinsert);

}

3)问卷调查题目的设计

该部分主要是管理员对问卷调查内容的设计,包含单选、多选以及问答题等。实现该部分功能的部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from danxuan"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); while (rs.next()) { out.write("

"); if (rs.getString("display").endsWith("1")) { out.write(""); } else { out.write(""); } out.write(rs.getString("text")+"?
"); int j=4; while ((j
");

} } catch (Exception e){ throw new RuntimeException(e.getMessage(),e); } }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from wenda"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); while (rs.next()) { out.write("

"); if (rs.getString("display").equals("1")) { out.write(""); } else { out.write(""); } out.write(rs.getString("text")+"?
"); out.write("

"); } } catch (Exception e){ throw new RuntimeException(e.getMessage(),e); } }

4)问卷作答

该部分主要是问卷发布后普通用户接受问卷调查时对相应题目进行作答。实现该部分功能部分代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();

String selectSQL="select * from danxuan where display=1"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); int i=1; while (rs.next()) { out.write("

"); out.write(i+"、"+rs.getString("text")+"?
"); int j=4; while ((j"+rsm.getColumnName(j)+"、"+rs.getString(j)+" "); j++; } i++; out.write("

"); } } catch (Exception e){ throw new RuntimeException(e.getMessage(),e); } }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String selectSQL="select * from duoxuan where display=1"; ResultSet rs=tool.select(selectSQL); ResultSetMetaData rsm; try { rsm = rs.getMetaData(); int i=1; while (rs.next()) { out.write("

"); out.write(i+"、"+rs.getString("text")+"?
"); int j=4; while ((j"+rsm.getColumnName(j)+"、"+rs.getString(j)+" ");

}

j++; }

out.write("

"); i++; } }

catch (Exception e){

throw new RuntimeException(e.getMessage(),e); }

4.4 系统运行截图

程序部分运行截图如图4-7、4-8、4-9、4-10、4-11、4-12所示。

5 总结与展望

随着网络技术的迅猛发展和信息、化的逐步深入,各类信息系统在高校中的应用日趋广泛。与之相辅相成的调查方法也发生了重大变革。网络问卷具有以下优点:及时性、高效性、可靠性、便捷性、低成本性和可存储性。

在线问卷系统主要提供了三个功能:问卷设计、问卷发放和收集、以及对问卷结果的分析统计和存储。这三个功能则分别可以由相应的模块来实现。本文对基于Web 的网上问卷系统做了一个较为全面的讨论。

本文在对国内外的网络问卷调查的应用现状进行了一定的分析和讨论的基础上,结合本人以往的开发经验和实际科研能力,给出了一套基于Web 的在线问卷系统的设计方案,给出了部分具体的实施方法,并通过部分实现验证了方案的可能性。

通过对C/S和B/S两种模式的比较,选择了基于B/S的三层设计架构作为在线问卷系统的体系结构。从应用角度来看,系统具有好的可扩展性和可维护性,同时也增加了数据库和后台应用系统的安全性。而且三层架构可以更好的支持分布式计算机环境。再根据系统的总体设计目标,确定了各个子系统的功能和相互之间的关系。

本课题的研究内容是目前研究领域的热点之一,但由于本人的开发经验和时间等原因,真正实现的功能还比较简单,在将来的使用过程中肯定会发现很多不足之处,我希望随着以后的研究能够不断的升级和更新。同时我们也希望能为本课题的后续研究提供一定新的思路,能起到抛砖引玉的功效。当前系统设计中的不足之处和今后的努力目标如下:

在系统的设计实现中,一些功能还尚未实现。比如问题的类型比较单一,只有封闭性的一些题目。这些功能留待以后进一步完善。对调查结果进行统计分析,很可能会涉及专家系统和一些比较专业的统计软件的使用,但限于本人的知识和能力有限,目前还没法实现。

参考文献

致谢

账号 密码
"+rs.getString("usernumber")+"

相关内容

  • 中小学心理健康教育通识培训方案
  • 中小学心理健康教育通识培训方案 为贯彻落实<福建省中长期教育改革和发展规划纲要(2010-2020)>.教育部<中小学心理健康教育指导纲要>和<关于大力加强中小学教师培训工作的意见>(教师[2011]1号)精神,提高全体教师的心理素质和心理健康教育能力,适应素质教 ...

  • 大学通讯社理论部个人工作总结
  • 投身于校通讯社理论部已经过了一个学期。从突破重重关卡进入理论部;到刚入部门感到十分陌生,对交代工作不知所措;再到经过一系列的培训对理论部的学习以及工作逐渐上手;最后到完成了老师交代的“思想教育在线进网络”的课题研究。在本学期的理论部学习、工作等等的活动中,我成长了不少,学习到了许多专业的知识,当然也 ...

  • 餐饮业O2O的营销模式探讨--以饿了么入驻高校市场为个案
  • 北京师范大学珠海分校 本科生毕业论文 论文题目: 餐饮业O2O的营销模式探讨--以饿了么 入驻高校市场为个案 学 院 国际商学部 专 业 电子商务 学 号 1220070047 学 生 姓 名 王胜兴 指导教师姓名 赵鹤芹 指导教师单位 北师大珠海分校国际商学部 2016 年 4 月 15 日 北京 ...

  • 福师[幼儿教育科学研究法]在线作业一
  • 福师<幼儿教育科学研究法>在线作业一 试卷总分:100 测试时间:-- 试卷得分:100 一.单选题(共6道试题,共12分.)得分:12 1.一篇文章大约选____个词作为关键词. A. 3-8 B. 2-5 C. 3-6 D. 2-8 答案:A 满分:2分得分:2 2.()是按照研究者 ...

  • 学生工作通讯社理论部工作总结
  • 2010年9月至12月,学生工作通讯社理论部进行了招新、部门成员培训等部门内部建设,自主完成了为期一个月、以华农在校学生为调查人群的“思想政治进网络”问卷调查,参与了校庆的现场资料收集(派遣小记者)等工作。经过理论部的培训和工作实践,我学习到了许多,也了解到了自身的不足,现总结如下: 一、 培训学习 ...

  • 流动人口卫生计生动态监测调查
  • 2015年全国流动人口卫生计生动态监测调查 问卷录入系统操作手册 2015年4月 说 明 本操作手册中详细介绍"2015年全国流动人口卫生计生动态监测调查问卷录入系统操作说明(以下简称„系统‟)"功能和操作步骤.内容分为五部分. 一. 基本功能介绍 介绍系统所使用的浏览器.登录地 ...

  • 08070629贾毅-----论文京东商城营销策略研究
  • 北京邮电大学世纪学院 毕业设计(论文) 题 目 京东商城营销策略研究 学 号 08070629 学生姓名 贾毅 专业名称 市场营销 所在系(院) 经济管理系 指导教师 兰君 2012年 6月 10 日 北京邮电大学世纪学院毕业设计(论文)任务书 北京邮电大学世纪学院 毕业设计(论文)诚信声明 本人声 ...

  • "互联网+"法学课堂教学改革初探--利用"问卷星"在线考试功能
  • 2016・9 (下) "互联网+"法学课堂教学改革初探 --利用"问卷星"在线考试功能 袁 摘 要 青 为了转变学生被动学习为主动学习的思维习惯,进一步鞭策.驱动学生提高学习积极性,形成"以学生为中心"的 教学模式,因此,本文将课堂教学与& ...

  • 网络市场调研的步骤与方法
  • 一.网络市场调研的一般步骤 网络市场调研 与传统的市场调研一样,应遵循一定的方法与步骤,以保证调研过程的质量.网络 市场调研 一般包括以下几个步骤: (一)明确问题与确定调研目标 明确问题和确定调研目标对使用网上搜索的手段来说尤为重要.因特网是一个永无休止的信息流.当你开始搜索时,你可能无法精确地找 ...