基于JAVA的网上投票系统毕业论文.docx

上传人:b****4 文档编号:24527544 上传时间:2023-05-28 格式:DOCX 页数:39 大小:336.39KB
下载 相关 举报
基于JAVA的网上投票系统毕业论文.docx_第1页
第1页 / 共39页
基于JAVA的网上投票系统毕业论文.docx_第2页
第2页 / 共39页
基于JAVA的网上投票系统毕业论文.docx_第3页
第3页 / 共39页
基于JAVA的网上投票系统毕业论文.docx_第4页
第4页 / 共39页
基于JAVA的网上投票系统毕业论文.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

基于JAVA的网上投票系统毕业论文.docx

《基于JAVA的网上投票系统毕业论文.docx》由会员分享,可在线阅读,更多相关《基于JAVA的网上投票系统毕业论文.docx(39页珍藏版)》请在冰豆网上搜索。

基于JAVA的网上投票系统毕业论文.docx

基于JAVA的网上投票系统毕业论文

在线投票系统

摘要:

如今,越来越多的网站开始重视网页的互动性。

而在线投票就是一个非常重要的互动形式。

本文以JSP、SQLServer2000为编程工具开发了一种通用网上投票系统,并介绍了系统的调试、运行环境、系统功能、系统设计以及系统实现。

关键词:

在线投票;JSP;SQLServer2000

Abstract:

Nowadays,moreandmoresitesstartingtofocusoninteractivewebpages.Theonlinevotingisaveryimportantformsofinteraction.Inthispaper,JSP,SQLServer2000asprogramdevelopmentofacommononlinevotingsystem,andintroducedthesystemofcommissioning,operatingenvironment,systemfunction,systemdesignandimplementation.

Keywords:

onlinevoting;JSP;SQLServer2000

 

 

第一章概述

如今,许许多多的网站设计者们开始意识到,网站的主要作用,除了给广大网友们提供单项的信息资讯服务外,还应该成为网友们互相交流的场所。

于是,他们把越来越多的注意力,集中到网站互动性的设计规划上。

互动的形式,除了我们经常见到的留言板、讨论组和聊天室之外,还有一项非常重要的、正在被日益广泛地采用的互动形式一一在线投票。

在线投票和留言板、聊天室相比,其优点在于简洁、规范、直观。

它不仅能够给网友们提供互相交流看法、兴趣的场所,还可以方便网站设计者们作广泛的社会调查,进行社会研究或是制定商业策略。

我的投票系统具有极大的灵活性,管理员可以在线设计不同的投票主题供用户进行投票。

对于该设计报告还有什么不当之处请见谅,同时也希望您能多提宝贵意见。

我会认真参考您的意见,修改和完善该系统。

第二章相关知识介绍

该在线投票系统主要采用Java、JSP、SQLServer2000进行设计与开发,下面主要介绍与之相关的知识。

2.1Java简介

2.1.1什么是Java

Java是由Sun公司开发的编程语言,使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。

不论用户使用的是哪一种WWW测览嚣、哪一种计算机、哪一种操作系统,只要www浏览器上面注明了”支持Java”,就可以看到生动的页面。

Java正在逐步成为Intemet应用的扛要开发语言。

它彻底改变了应用软件的开发模式,带来了自个人计算机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。

2.1.2Java主要特性

1、Java语言是简单的。

Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。

另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。

特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2、Java语言是一个面向对象的。

Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。

Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。

总之,Java语言是一个纯的面向对象程序设计语言。

3、Java语言是分布式的。

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。

Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

4、Java语言是健壮的。

Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。

对指针的丢弃是Java的明智选择。

Java的安全检查机制使得Java更具健壮性。

5、Java语言是安全的。

Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。

除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

6、Java语言是体系结构中立的。

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

这种途径适合于异构的网络环境和软件的分发。

7、Java语言是可移植的。

这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。

Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。

8、Java语言是解释型的。

如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。

在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

9、Java是高性能的。

与那些解释型的高级脚本语言相比,Java的确是高性能的。

事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

10、Java语言是多线程的。

在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

通常有两种方法来创建线程:

其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。

线程的活动由一组方法来控制。

Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

11、Java语言是动态的。

Java语言的设计目标之一是适应于动态变化的环境。

Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。

这也有利于软件的升级。

另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。

Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。

Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。

特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

2.2JSP简介

2.2.1什么是JSP

JSP(JavaServerPages)是由SunMicrosystems公司倡导,许多公司参与建立的一种动态网页技术标准。

在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(^jsp)。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。

程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。

所有程序操作都在服务器端执行,网络上传送给客户端的仅仅是结果,对客户浏览器的要求最低。

在Java的基础上开发出的JSP实现了动态贞面与静态页而的分离,脱离了硬件平台的束缚以及编译后运行等方式,大大提高了其执行效率f酊逐渐成为Internet上的主流开发工具。

在美国,EJB+Servlet+JSP几乎成了电子商务的开发标准.而在我国也正逐渐兴起,不少网站部采用了JSP技术。

2.2.2JSP的运行原理及优点

在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet。

而这个引擎本身也是一个Servlet。

JSP的运行过程如下所示:

(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。

(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。

(3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。

(4)jspService()方法被调用来处理客户端的请求。

对每一个请求,JSP引擎创建一个新的线程来处理该请求。

如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。

每个客户端请求对应一个线程。

以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。

但不过也应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。

(5)如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。

(6)虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。

此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将Servlet从内存中移去。

当这种情况发生时jspDestroy()方法首先被调用。

(7)然后Servlet实例便被标记加入“垃圾收集”处理。

可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。

基于Java语言的JSP技术具有很多其他动态网页技术所没有的特点,具体表现在如下方面:

1.简便性和有效性

JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。

只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。

这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。

而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。

这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。

而这在其他的动态网页开发中是不可实现的。

2.程序的独立性

JSP是JavaAPI家族的一部分,它拥有一般的Java程序的跨平台的特性。

换句话说,就是拥有程序的对平台的独立性,即Writeonce,Runanywhere!

3.程序的兼容性

JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。

4.程序的可重用性

在JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。

这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。

现在,大量的标准JavaBeans程序库就是一个很好的例证。

2.2.3JSP运行环境介绍

从最开始的JSWDK到现在的Tomcat、WebLogic等,JSP的运行环境也有了很大的变化,出现了很多优秀的JSP容器,如Tomcat、WebLogic、IBMWebSphere等。

本文介绍Tomcat6.0。

Tomcat是ApacheJakarta软件组织的一个子项目,它是一个JSP/Servlet的容器,是在Sun公司的JSWDK(JavaServerWebDevelopmentKit)基础上发展起来的一个JSP和Servlet规范的标准实现。

使用Tomcat可以体验JSP和Servlet的最新规范。

经过多年的发展,使得Tomcat不仅是JSP和Servlet规范的标准实现,而且具备了很多商业JavaServlet容器的特性,使得它被一些企业用于商业用途。

2.3SQLServer2000简介

2.3.1SQLServer概述

SQLServer是一个关系数据库管理系统,它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。

在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了。

Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本;Sybase则较专注于SQLServer在UNIX操作系统上的应用。

SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本。

该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。

2.3.2SQLServer2000特性

1.Internet集成。

SQLServer2000数据库引擎提供完整的XML支持。

它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。

SQLServer2000程序设计模型与WindowsDNA构架集成,用以开发Web应用程序,并且SQLServer2000支持EnglishQuery和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。

2.可伸缩性和可用性。

同一个数据库引擎可以在不同的平台上使用,从运行MicrosoftWindows®98的便携式电脑,到运行MicrosoftWindows2000数据中心版的大型多处理器服务器。

SQLServer2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。

3.企业级数据库功能。

SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。

数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。

SQLServer2000分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是SQLServer2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。

复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。

可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。

4.易于安装、部署和使用。

SQLServer2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQLServer的过程。

SQLServer2000还支持基于标准的、与WindowsDNA集成的程序设计模型,使SQLServer数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。

这些功能使您得以快速交付SQLServer应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。

5.数据仓库。

SQLServer2000中包括析取和分析汇总数据以进行联机分析处理(OLAP)的工具。

SQLServer中还包括一些工具,可用来直观地设计数据库并通过EnglishQuery来分析数据。

SQLServer2000共有4个版本,分别是个人版,标准版,企业版和开发版,本系统采用个人版。

2.4JSP与SQLServer2000数据库的连接

testsqlserver.jsp如下:

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.sql.*"%>

<%Class.forName

("com.microsoft.jdbc.sqlserver.SQLServerDriver").

newInstance();

String

url="jdbc:

microsoft:

sqlserver:

//localhost:

1433;Da

tabaseName=pubs";

//pubs为你的数据库的

Stringuser="sa";

Stringpassword="";

Connectionconn=DriverManager.getConnection

(url,user,password);

Statementstmt=conn.createStatement

(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

Stringsql="select*fromtest";

ResultSetrs=stmt.executeQuery(sql);

while(rs.next()){%>

您的第一个字段内容为:

<%=rs.getString

(1)%>

您的第二个字段内容为:

<%=rs.getString

(2)%>

<%}%>

<%out.print("数据库操作成功,恭喜你/");%>

<%rs.close();

stmt.close();

conn.close();

%>

 

第三章系统分析

3.1需求分析

需求分析是软件工程中一个重要的过程,在很长的一-段时间内,人们一直认为需求分析是软件开发过程中最简单的一部分,但需求分析的草率行事往往会使最终的软件产品不符合用户的要求,从而导致软件产品开发的失败。

下面就介绍在线投票系统的需求分析。

对于普通用户,在线投票系统在网页中显示需要调查的问题、接受用户的投票,并以统计图示的方式显示当前调查结果。

如下图:

进入投票页

投票

查看结果

退出

 

对于管理员用户,在线投票系统提供管理接口,管理员可以任意增加、修改、删除投票,如下图:

管理员登录

判断

进入管理页

投票系统管理

退出

密码错误

密码正确

第四章系统设计

4.1总体设计

为了更好地表述在线投票系统,这里将部分地使用UML的建模图形。

用例图(UseCaseDiagram)提供一个系统环境的建模办式,它能够帮助系统分析师确定系统内部利外部元素以及系统范围。

简单来说,列例图由用例和参与者构成,其中用例是外部可见的一个系统功能单元;参与者是与系统发生交互作用的外部用户、进程或其他系统的理想化概念。

在线投票系统的用例图下图所示,可以识别出两个参与者,即系统管理员(Admin)和系统使用者(user)。

系统管理员除了可以参加投票外还能对整个系统实施完全的管理。

系统使用者只能参与投票升查看投票结果。

在线投票用例图

顺序图(SequenceDiagram)描述对象之问动态交互关系,着重体现对象间消息传递的时间顺序。

顺序图是一个二维图,纵向是时问轴,时间延竖线向下延伸;横向表示对象之间的消息传递。

对象之间的消息从一个对象的生命线(时问轴上的双道线>用箭头指向另一个对象的生命线。

用户参与投票的流程顺序图如下所示,用户参与在线投票系统从进入投票模块开始,投票模块以网页的形式显示所有开放的问题,用户在选取符合他要求的投票项后单击“提交”按钮,他的投票数据将提交给数据模块,由数据模块保存到SQLServer2000数据库中,从而完成投票提交的过程。

用户还可以查看某问题的投票统计结果,用户进入显示模块,显示模块从数据模块读取开放问题的投票数据,并以柱状统计图的形式显示。

用户参与投票的流程顺序图

管理员增加新投票的过程从登录管理模块开始,管理员先把用户名和密码提交给登录模块,登求模块根据用户名到数据库中搜索其对应的密码,然后对比用户名是否存在以及管理员输入的密码是否币确。

如果用户名和密码正确,登录模块把用户信息提交到管理模块并提示用户登录成功,管理员在管理模块提交新投票数据,管理模块把新投票数据提交到数据模块并保存到数据库中,管理模块提示管理员操作成功,从而完成添加新投票的整个过程。

管理员添加新投票的流程顺序图如下:

管理员添加新投票的流程图

4.2模块设计

在线投票系统大致可以分为客户投票模块、管理员模块以及数据处理模块3部分。

4.2.1客户投票模块

用户投票模块包括showquestion.jsp、showresult.jsp、thanks.jsp、convert.jsp4个程序页面,具体的系统结构如下图。

其中,showquestion.jsp是用户投票的首页,用户登录在线投票系统后就自动跳转到该页面,该页面通过数据处理模块读取数据库中所有开放的问题并显示,用户可以选取一项或多项回答项并提交。

thanks.jsp是数据接收页。

用户在showquestion.jsp中选择投票的回答项并提交,用户所选择的数据项被提交到thanks.jsp,该页把这些数据项储存到数据库中,并提示用户投票数据提交成功。

showresult.jsp是数据的显示页。

当用广在参加投票后可以查看该项投票的统计结果,该页就用柱状图的显示给出统计图和所有选择的百分比。

convert.jsp足字符转换页,主要用于解决中文字符无法正确显示的问题。

在这里用清晰易懂的顺序图来描述用户投票的过裎中上述页面间的互相协作以及消息交互。

客户投票模块各页面间的顺序图如图所示。

4.2.2管理员模块

管理员模块由用户登录页面、新增投票页面、编辑投票页面组成,具体的系统结构图如下图所示。

其中login,jsp是管理员的登录页,管理员要对在线投票系统进行管理必须先进行登录,通过用户名和密码的验证。

Checkadmin.jsp是管理员登录的验证页。

管理员在login,jsp填入用户名和密码后,这些数据将被提交到该页,然后与数据库中的数据进行对比。

如果验证通过将跳转到管理主页面。

Mainform.jsp是在线投票系统的管理主页面,在管理员通过用户名和密码的验证后,login.jsp将跳转到该页面。

Mainform.jsp包含所有投票的链接,管理员单击问题就能查看投票的结果,管理员还可以选择编辑该投票或者删除该投票。

Result.jsp是查看投票结果的页面。

管理员在登录刽管理主页面Mainform,jsp后,单击某投票的问题,系统会跳转到该页面。

Result.jsp会以柱状图的形式在网页上给出该投票每个选项所占的百分比。

Addpoll.jsp和Savedata.jsp是新增投票的页。

管理员在登录到管理主页面Ma

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1