参考论文7-在线投票系统的设计和实现_第1页
参考论文7-在线投票系统的设计和实现_第2页
参考论文7-在线投票系统的设计和实现_第3页
参考论文7-在线投票系统的设计和实现_第4页
参考论文7-在线投票系统的设计和实现_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEII川师范大学本科毕业论文在线投票系统的设计与实现——管理子系统PAGEIIPAGEII四川师范大学本科毕业设计在线投票系统的设计和实现——系统管理子系统作者杨富淋院系电子信息工程学院专业通信工程年级2002级学号200239016001指导教师黄进答辩日期四川师范大学电子信息工程学院教务处制在线投票系统的设计和实现——系统管理子系统学生:杨富淋指导教师:黄进内容摘要:在线投票系统是典型的信息管理系统(MIS),它克服了以往的通过实地调查并手工填表的调查方式时所带来的人力、物力以及时间上的浪费,同时也保证了调查评估过程的科学化、高效化,使调查评估得出的结论更准确、更快捷、更具说服力。本文全面介绍了利用JSP和SQLServer2000技术实现在线投票系统——系统管理子系统。该系统是一个基于B/S模式,Html和JSP与Tomcat服务器交互来实现信息收集和处理、网上评估、结果查询为一体的在线投票系统,其设计和实现方法可以应用于其他子系统。关键词:Tomcat、Html、SQL语言,MSSQLServer,JSP,数据库,在线投票系统Thedesignandtherealizationoftheon-linevotesystem——Thesystemmanagementsub-systemAbstract:Theon-linevotesystemisthetypicalinformationmanagementsystem(MIS),itovercametopasstheon-siteinspectiontocombinethehouroftheinquisitionmethodthathandicraftfillintheformbeforethemanpower,materialresourcesandthewasteontimesbrings,alsoguaranteeingtoinvestigatetoevaluatetheprocessscientificandturningefficiently,makeinvestigatethevaluationtheconclusionofismoreaccurate,fasterandevenhastheconviction.ThistextintroducestomakeuseoftheJSPandthetechniqueofSQLServer2000tocarryouttheon-linevotesystem-systemmanagementsub-systemcompletely.ThatsystemisanaccordingtothemodeofB/S,theHtmlandJSPsandserverofTomcatshandovertocarryouttheinformationcollectionsandprocessing,on-linevaluations,resultssearchastheon-linevotesystemoftheintegralwholewitheachother,itdesignandcarryoutthemethodandcanbeapplyinothersub-systems.Keyword:Tomcat,Html,languageofSQL,theMSSQLServer,JSP,database,on-linevotesystem目录TOC\o"1-4"\h\z\u绪论 1一、JSP技术概述 2(一)常见动态网页技术 21、CGI、ASP、PHP、JSP介绍 22.JSP技术特点及其优势 3(二)发展趋势与前景分析 4二、MSSQLServer概述 4(一)MSSQLServer介绍 4(二)SQL语句介绍 5(三)SQL的优点 5三、在线投票系统的整体设计原理及思路 6(一)基于B/S的三层结构 6(二)在线投票系统的组成 6(三)在线投票系统的页面功能分析及设计 6四、在线投票系统的详细设计 8(一)搭建开发环境 81、该系统运行环境 82、安装和配置JDK 83、安装和配置Tomcat 94、测试是否安装配置成功 105、安装和设置SQLServer2000 11(二)数据库的设计与实现 112、设计数据库表 113、数据库的连接 13(三)系统模块设计 131、用户注册模块 132、用户信息查询模块 143、用户信息修改模块 154、用户注册删除模块 16五、在线投票系统使用说明 16六、各个系统文件简单介绍 17结束语 19致谢 20附录 21参考文献 32-PAGE32-绪论该系统是一个主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性、数据安全性好的库,而对于后者则要求应用程序功能完备,易使用等特点。本系统采用MSSQLServer2000数据库管理系统与JSP应用程序,主要完成对在线投票系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的在线投票系统可以满足投票者、发表话题的用户和维护系统的高级管理员三方面的需要。该系统具体划分了三类用户的操作权限,设计了了三个操作界面。实现了数据库表的浏览,记录的添加、删除和修改,报表的生成,实现了多数据库表的连接操作,实现了多条件查询和模糊查询,并灵活实现了对不可更新查询结果集的更新操作,实现了主从表操作,实现了密码维护功能,最后,系统还可以导入数据库以对任意同结构的数据库进行操作该系统应用程序包含两部分内容,即前台开发工具和后台数据库。服务器端的最关键的开发技术在于与数据库服务器的交互,我们采用DreamweaverMX来开发后台活动服务器页JSP文件;后台数据库选用了SQLServer2000,系统库体系结构采用的是较之于传统C/S模式优点更多的B/S模式三层结构。在下面的各章节中,我们将对该系统的设计与实现进行详细说明。由于这是我初次进行JSP网页设计与数据库系统的开发,本系统在许多方面都还存在着不足,希望今后能进一步完善本系统。在线投票系统的设计和实现——系统管理子系统一、JSP技术概述(一)常见动态网页技术1、CGI、ASP、PHP、JSP介绍(1)CGICGI(CommomGatewayInterface,即通用网关接口)是早期用来建立动态网页的技术。当客户端向Web服务器上指定的CGI程序发出请求时,Web服务器会启动一个新的进程(pro-cess)执行GGI程序,程序执行后将结果以网页的形式发送给客户端。CGI的优点是它可以用很多的语言编写,比如C、C++、VB和Perl语言,在选择上有很大的灵活性。目前大多使用Perl编写CGI。CGI主要缺点是维护复杂,运行效率底下,主要表现在以下几个方面:CGI程序是以独立的进程方式运行的,这样,当用户访问数量增大时,会严重地损耗系统资源,大幅度的降低系统性能。CGI程序不是常驻内存的,因此,当用户频率访问CGI程序时,会导致大量的磁盘操作,从而造成系统性能的下降。访问数据库的程序不容易编写。(2)ASPASP(ActiveServerPages)是微软平台下的动态网页技术。是一个WEB服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序。它采用了三层计算结构,将WEB服务器(逻辑层)、客户端浏览器(表示层)以及数据库服务器(数据层)分开,具有良好的扩充性。ASP采用脚本语言VBScript(Javascript)作为自己的开发语言。ASP有以下优点:简单易学,降低WEB应用程序的编写难度。实现了动态访问数据库的技术。安全性好。通过COM来扩充复杂的功能,使得如文件上传、e_mail发送以复杂的业务处理分离成为可重复使用的模块。(3)PHPPHP(PersonalHomePage)是一种服务器端的嵌入HTML的脚本语言。它大量地借用C、Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面,它支持目前绝大多数数据库。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。但是PHP没有象JSP、ASP那样对数据组件的支持,扩展性较差,顾只能适应小流量的网站。(4)JSPJSP(JavaServerPage)它是SUN公司推出的新一代站点开发语言,他完全解决了目前ASP、PHP的一个通病--脚本级执行(据说PHP4也已经在Zend的支持下,实现编译运行).Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和JavaApplet之外,又有新的硕果,就是Jsp--JavaServerPage。Jsp可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。2.JSP技术特点及其优势(1)JSP技术特点=1\*GB3①JSP将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览的完全可用性。=2\*GB3②强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。=3\*GB3③采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。(2)JSP技术优势通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器工具,更改工具或服务器并不影响当前的应用。应用范围ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统——只能运行于微软的服务器产品,IIS(InternetInformationServer)(windowsNT)和PWS(PersonalWebServer)(windows98)上。Unix下也有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。PHP3可在Windows,Unix,Linux的Web服务器上正常运行,还支持IIS,Apache等通用Web服务器,用户更换平台时,无需变换PHP3代码,可即拿即用.JSP同PHP3类似,几乎可以运行于所有平台。如WinNT,Linux,Unix.NT下IIS通过一个插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不些从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。性能比较有人做过试验,对这三种语言分别做循环性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的循环。而ASP、PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)据库测试中,三者分别对Oracle8进行1000次Update,Select,和Delete:Php需要69秒,ASP则需要73秒,Jsp仅需要13秒,(二)发展趋势与前景分析目前在国内JSP、PHP与ASP应用最为广泛。而ASP.NET由于是一种较新的技术,国内采用的较少。在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过MicrosoftWindows的COM/DCOM获得ActiveX规模支持,通过DCOM和TranscationServer获得结构支持;JSP可以通过SUNJava的JavaClass和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。四者中,JSP、ASP。NET应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere。二、MSSQLServer概述(一)MSSQLServer介绍SQLServer是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与SQLServer的接口。SQLServer是一个关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。于1988年推出了第一个OS/2版本,在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本,该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。MSSQLServer不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQLServer数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQLServer的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQLServer的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。SQLServer企业管理器是SQLServer的主要管理工具,它提供了一个遵从MMC标准的用户界面,使用户得以:定义SQLServer实例组。将个别服务器注册到组中。为每个已注册的服务器配置所有SQLServer选项。在每个已注册的服务器中创建并管理所有SQLServer数据库、对象、登录、用户和权限。在每个已注册的服务器上定义并执行所有SQLServer管理任务。通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本。唤醒调用为SQLServer定义的各种向导。(二)SQL语句介绍SQL全称是“结构化查询语言(StructuredQueryLanguage)”,功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,包含4个部分:1、数据查询语言(DQL-DataQueryLanguage)SELECT:用于检索数据;2、据操纵语言(DQL-DataManipulationLanguage):用于增加、修改或删除数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据。3、数据定义语言(DQL-DataDefinitionLanguage)用于定义数据的结构,比如创建修改或者删除数据库对象;CREATE,ALTER,DROP4、数据控制语言(DQL-DataControlLanguage):用于定义数据库用户的权限。COMMITWORK,ROLLBACKWORK(三)SQL的优点SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。1.非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。2.统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:查询数据在表中插入、修改和删除记录建立、修改和删除数据对象控制对数据和数据对象的存取保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。3.是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。三、在线投票系统的整体设计原理及思路要做一个门户网站系统,首先应该进行功能分析,这样才能做出的网站满足用户需要的各项功能。该系统主要采用JSP、HTML、SQL数据库。整体设计遵循软件工程的方法,经过总体分析、总体设计、文档和代码的编制、测试和系统实现几个阶段。下面就对在线投票系统的设计进行功能分析。(一)基于B/S的三层结构本次设计采用基于B/S模式的三层体系结构,如图1所示。逻辑层由所有的JSP脚本程序组成,用来提供基本的信息传递,并将从客户端获得的用户输入与的数据库中的数据按应用需求规则进行相应处理,生成客户机所要的结果,并将结果返回给客户端。表示层表示层客户机Windows98/2000逻辑层Web服务器Windows2000Server数据库服务器SQLSever2000数据层浏览器JSP教本程序数据库图1B/S模式三层结构图(二)在线投票系统的组成本系统主要采用数据库及网络技术实现在线投票和后台管理功能,本系统主要包括用户注册模块,用户查询模块,用户信息修改模块,用户注册删除模块。用户可以在注册模块中通过注册进入该系统发表话题,由系统管理员对用户信息,用户权限等各种资料进行处理。所有数据均放在数据库中。系统功能模块分布如图2所示:(三)在线投票系统的页面功能分析及设计本系统充分利用了以用户权限限定对系统的操作,以便管理员能比较轻松的管理系统。用户当在登陆页面用户输入用户名及密码后,经系统判断进入一般用户模式或者管理员模式。进入系统后,用户在不同的权限和模式下进行注册,用户查询,用户信息修改,用户注册删除以及投票等相应的操作。其功能关系如图3所示:在线投票系统在线投票系统投票模块用户系统后台管理系统用户注册模块用户注册删除模块用户信息查询模块用户话题管理模块用户信息修改模块用户权限设置图2系统功能模块的分布图一般用户一般用户管理员用户发表话题(mainform.jsp)用户信息查询(member.jsp)话题修改(edit.jsp)参与投票(showquestion.jsp)增加管理员(adduser.jsp)查看投票结果(showresult2.jsp)删除用户帐户(deluser.jsp)用户权限设置(qxsz.jsp)用户注册(zhuce.jsp)话题管理(isvisable.jsp)公布投票结果(isopen.jsp)密码验证出错密码验证通过用户详细信息(chakan.jsp)判断注册成败(adduser2.jsp)注册成功注册失败登陆页面(login.jsp)判断用户密码及权限(chkadmin.jsp)用户信息修改(edituser.jsp)图3在线投票系统各模块关系及功能四、在线投票系统的详细设计在进行了整体设计以后,就开始进行详细的设计及编码工作。也就是设计文件和把他们有机地组织在一起实现所有功能。由于投票系统详细设计是整个设计过程中最重要的步骤之一。下面就分如下几个部分对系统进行详细设计:(1)搭建开发环境(2)数据库中表的设计与实现(3)系统中各模块设计(4)后台功能设计(一)搭建开发环境本节主要介绍JSP开发环境的搭建。首先介绍该投票系统对运行环境的要求,接着讲述JSP开发和运行的安装配置以及数据库安装和配置。1、该系统运行环境为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:(1)软件环境客户端:Windows95/98,Windows2000/xp,InternetExplorer(IE)等服务器端:Windows2000Server(IIS)4.0及其以上版本,IE等数据库:采用SQL,运行于服务器端。(2)硬件环境服务器CPU:PIII500以上,内存:256M以上客户机CPU:P200MMX以上,内存:32M以上2、安装和配置JDK(1)JDK的安装=1\*GB3①可先到/j2se/downloads.html下载j2sdk-1_4_1-win.exe。=2\*GB3②自动解压后出现出现确认安装界面,在此界面中单击【NEXT】按钮。=3\*GB3③出现版权协议说明界面,单击【YES】按钮,接受版权协议后,选择安装路径,如C:\j2sdk1.4.2_05,然后单击【OK】按扭。=4\*GB3④出现安装组件的界面,直接单击【NEXT】按钮继续安装。=5\*GB3⑤选择一种浏览器,能在此浏览器中运行Applet,然后单击【NEXT】。=6\*GB3⑥对JDK进行按装,安装完毕,单击【Finish】结束安装。(2)JDK的配置安装好JDK后,还需要在环境变量中进行相应的配置。如下:=1\*GB3①在桌面上单击“我的电脑”属性,依次选择【属性】/【高级】/【环境变量】选项。=2\*GB3②新建一个环境变量,名为JAVA_HOME,值为C:\j2sdk1.4.2_05,如图4所示:图4JDK配置=3\*GB3③单击【确定】按钮。=4\*GB3④用同样的方法设置其他环境变量:“Path=C:\j2sdk1.4.2_05\bin”。3、安装和配置TomcatTomcat服务器是当今使用广泛的Servlet/JSP服务器,它运行稳定,性能可靠,本节介绍Tomcat的安装、配置与使用,并做对应的测试。(1)安装Tomcat=1\*GB3①可以从/tomcat下载Tomcat5.0Servlet服务器,下载后单击安装。=2\*GB3②在弹出的窗口中单击【NEXT】按钮。=3\*GB3③出现授权界面,单击【IAgree】按钮。=4\*GB3④在弹出的界面中选择安装组件,可以选择“full“,然后单击【NEXT】按钮。=5\*GB3⑤选择安装目录然后单击【NEXT】按钮。=6\*GB3⑥配置Tomcat,默认断口8080,输入一个密码,本系统设置为“admin”。注意:必须记住这个密码。然后单击【NEXT】按钮,如图5所示:图5Tomcat密码设置=7\*GB3⑦选择JDK的安装位置,如C:\j2sdk1.4.2_05,然后单击【NEXT】按钮。=8\*GB3⑧单击【Install】按钮。=9\*GB3⑨安装完成后单击【Finish】按钮。(2)Tomcat的配置安装好Tomcat后,还需要在环境变量中进行相应的配置。如下:=1\*GB3①在桌面上单击“我的电脑”属性,依次选择【属性】/【高级】/【环境变量】选。=2\*GB3②新建一个环境变量,名为CATALINA_HOME,值为C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat5.0,如图6所示:图6Tomcat环境变量配置=3\*GB3③单击【确定】按钮。=4\*GB3④用同样的方法设置其他环境变量:“CLASSPATH=.;”。4、测试是否安装配置成功执行C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat5.0\bin目录下的startup.bat,如果出现如图7所示,表示环境变量配置成功;图7Tomcat启动成功这时候可以打开浏览器,在地址栏输入http://localhost:8080,便可以见到一网页样式页面。如不能启动Tomcat服务器或在浏览器不能获得相应的结果,请检查JDK的设置是否正确,请参看本节的内容。5、安装和设置SQLServer2000该系统数据库采用的是MicrosoftSQLServer2000。运用MicrosoftSQLServer2000安装光盘,选择“安装简体中文企业版”/“安装组建”/“安装数据库服务器”,下一步后选择安装路径,需注意的是在选择服务帐户的时候选择”使用本地系统帐户”如图8;身份验证模式选择混合模式,并设置密码如图9。本系统的密码为”sa”,以便成功连接数据库。图8安装设置SQLServer2000使用“本地帐户”图9为SQLServer2000设置密码(二)数据库的设计与实现2、设计数据库表本系统需设计的数据库中包含3个表,具体如下:=1\*GB3①点击【刷新服务器】后【开始继续】使之成功运行。=2\*GB3②单击运行【开始】/【程序】/【MicrosoftSQLServer】/【企业管理器】打开SQLServer控制根目录。=3\*GB3③打开本机服务器中的“数据库”,右键数据库并点击“新建数据库”,建一个名为“yfl”的数据库。=4\*GB3④设计数据库表,右键数据库并点击“新建表”,本系统需设计的数据库中包含3个表,具体如表一:表一数据库表数据库表名说明所属系统Admins用来存放用户名和密码及权限管理登陆Items用来存放投票结果用户投票系统Questions用来存放管理投票后台管理系统Admin用户信息基本表Admin表存放的是后台管理员的用户名和密码,并且密码存放的是已经经过MD5型加密算法进行加密,详细设计如图10所示:图10Admin用户信息基本表AdminName用户名AdminPwd用户密码T用户权限e_mail电子邮箱phone联系电话birthd出生日期www个人主页Items主题内容基本表Items表是用来存放所发话题的内容以及投票记数结果,详细设计如图11所示:图11Items主题内容基本表ItemID索引投票选项QuestionID关联投票主题Item存储投票选项内容ItemCount投票记数Questions主题管理基本表Questions表是用来存放用户所发表话题的主题与发表时间,详细设计如表四所示:图12Questions主题管理基本表QuestionID索引投票主题Questions存储投票主题内容Isvisable标识投票是否在前台显示Date记录投票发布时间IsOpen用户公开Admname用户名3、数据库的连接本系统采用了以下方法与数据库连接:建立一个能进入数据库的文件opendata.jsp,具体如下:<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=yfl";//连接到sql中名为“yfl”的数据库Connectioncon=DriverManager.getConnection(url,"sa","sa");//对sql输入用户名和密码“sa”,“sa”,以便成功连接“yfl”数据库Statementsmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSetrs;Stringsql;%>因为在很多模块中都有连接数据库的操作,所以将其保存在该文件中。其它文件中引用此文件作为文件头就可以访问数据库,代码如下:<%@includefile="opendata.jsp"%>(三)系统模块设计1、用户注册模块在本部分中,用户进入系统主页面(login.jsp)后,若希望在系统中发表话题进行调查,则须注册成为用户。用户在注册页面(zhuce.jsp如图)所示需正确填写注册用户名、密码、E_mail,其他项目可以根据自己情况确定是否填写。用户填写完注册项目,提交注册后系统由(adduser2.jsp)判断用户名称和E_mail格式是否正确、两次输入的密码要一致,若判断出有误则不能通过注册,并返回页面(adduser2.jsp),同时指出出错位置;若通过注册则返回欢迎信息(cgzc.jsp),同时系统自动把注册信息写入数据库。重新重新注册用户名不正确密码为空e_mail不正确两次密码不一致登陆页面注册(zhuce.jsp)判断注册adduser2.jsp注册成功图13用户注册流程

图14主页面用户注册图15填写注册信息出错的显示页面图16注册成功的显示页面该模块对数据库的主要操作是写入注册资料,实现方式如下:sql="insertintoadmins(Admname,Admpwd,T,e_mail,sex,phone,birthd,www)values('"+name+"','"+password+"','"+0+"','"+e_mail+"','"+sex+"','"+phone+"','"+birthd+"','"+www+"')";2、用户信息查询模块此模块是方便管理员查看系统用户信息,主要显示如图,在此页面管理员可选择对用户相应的操作,如用户权限设置、删除用户,并可以点击对应的用户名称查看其详细信息,包括该用户的主页及其在该系统中所发表的话题。图17用户信息查询模块首页图18用户详细信息查询结果设置权限的实现方式是对数据库中表Admin中字段T的操作,“1”代表管理员,“0”代表一般用户,其实现方式见附录10(qxsz.jsp文件)。用户信息查询是对指定用户对应数据库信息通过WEB页面显示出来,其实现方式见附录7(chakan.jsp文件)。3、用户信息修改模块该模块是用户在登陆后进行个人基本信息修改的操作模块,它的设计原理与用户注册模块相似,不同的是对数据库的操作,用户注册模块是写入数据,而用户修改模块是修改数据库。图19用户信息修改页面图20用户信息修改成功显示页面该系统的实现方式:sql="updateadminssetAdmpwd='"+password+"',e_mail='"+e_mail+"',T='"+T+"',sex='"+sex+"',phone='"+phone+"',birthd='"+birthd+"',www='"+www+"'whereadmname='"+name+"'";smt.executeUpdate(sql);4、用户注册删除模块该模块是在进入数据库通过以下一段程序直接对数据库操作进行删除。<%Stringdeluser=request.getParameter("user");sql="deletefromAdminswhereAdmname='"+deluser+"'";smt.executeUpdate(sql);response.sendRedirect("member.jsp");%>五、在线投票系统使用说明1、将所有文件放到同一目录文件中,如:”yfl”,再把文件夹”yfl”放到C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat5.0\webapps目录下。2、启动Tomcat和SQL服务管理器。3、套入数据库(yfl\DataBase\questionnaire.sql),库名“yfl”。4、权限及其他说明打开IE浏览器,在地址栏中输入http://localhost:8080/yfl/login.jsp,即可进入投票系统主界面,如图21所示:此页面分别连接到了3个不同权限的用户模块。你可以到投票模块进行投票及查看投票结果,也可以登陆到该系统的一般用户模块进行发表、修改和维护话题,若你还不是该系统的用户可以到用户注册模块注册成为会员。同时,此页面也是该系统管理员进入系统后台维护的直接通道。系统默认系统管理员(该系统的主要维护操作人员)帐号:admin密码:admin进入后马上更改否则后果不堪设想!!相对路径:yfl/login.asp绝对路径(IE浏览器):http://localhost:8080/yfl/login.jsp图21用户登陆页面图六、各个系统文件简单介绍\DataBase\questionnaire.sqlSQLServer数据库生成脚本\guest\shpowquestion.jsp显示投票\guest\thanks.jsp投票结果确认\guest\convert.jsp处理中文字符串及换行的自定义函数文件\guest\showresult2.jsp用户查看投票结果\guest\opendata.jsp打开数据库\admin\showresult.jsp用户查看投票结果(受管理员限制)\admin\convert.jsp处理中文字符串及换行的自定义函数文件\admin\check.jsp检查用户是否已经登陆,嵌入各管理功能页面中\admin\opendata.jsp打开数据库\admin\convert.jsp处理中文字符串及换行的自定义函数文件\admin\login.jsp管理员登陆\admin\chkadmin.jsp验证密码\admin\mainform.jsp管理主界面\admin\result.jsp管理员查看投票结果\admin\adpoll.jsp添加问题\admin\savedata.jsp储存数据\admin\delete.jsp删除投票\admin\edit1.jsp方式B编辑投票\admin\modify.jsp方式B保存重新编辑结果\admin\resetcount.jsp将投票结果清零\admin\isvisable.jsp设置投票主题是否在前台显示\admin\zhuce.jsp用户注册界面\Admin\adduser2.jsp用户注册确认\Admin\qxsz.jsp用户权限设置\Admin\chankan.jsp用户信息显示\admin\member.jsp用户管理界面\admin\adduser.jsp添加用户\admin\deluser.jsp删除用户\admin\edituser.jsp修改用户信息\admin\moduser.jsp用户信息修改确认\admin\edit.jsp方式B编辑投票\admin\editquestion.jsp方式B编辑标题\admin\modquestion.jsp方式B保存编辑标题结果\admin\edititem.jsp方式B编辑选项\admin\moditem.jsp方式B保存编辑选项结果\admin\additem.jsp方式B保存增加选项结果\admin\delitem.jsp方式B删除选项结束语本文所介绍的是一种在线投票系统——管理子系统,该系统采用了JSP进行Web数据库的编程和开发。对于该系统中的后台数据库的管理开发选用了SQLServer2000。本文着重介绍了对动态数据库实行结果管理、更新和查询的方法。经过一段时间的设计和开发,本系统的基本功能已经得以实现。但要投入实用,尚有诸多不完善之处。比如在网络安全方面未做过多的考虑。另外对在线投票情况中存在的某些问题可能考虑不周。在这个Internet已经普及的时代,本系统的实现有着重要的意义。在未来的工作中,我将不断完善本系统的功能,使其在实际生活中所起的作用得以真正体现。致谢本论文在导师黄进老师的严格要求和精心指导下完成的,它凝聚着几个月来黄老师对我的悉心培养和教导所付出的大量心血;尤其是黄老师在设计方案与设计思想上的指导会对我在今后的学习中起到重要的作用。在此,向黄老师表示忠心的感谢!另外,当我在遇到困难的时候,同班上的同学积极讨论给了我很大的支持和帮助,使我才能如期的完成论文,在此感谢你们!由于本人掌握的水平有限,在论文中或许尚有很多不足之处,期待您的指正,同时本人也会不断的修改,使其更加完善。附录1、SQLServer数据库生成脚本文件questionnaire.sql,该文件是为方便建立数据库之用/*==============================================================*//*Databasename:PhysicalDataModel_1*//*DBMSname:MicrosoftSQLServer2000*//*Createdon:2003-4-168:59:11*//*==============================================================*/altertabledbo.ItemsdropconstraintFK_ITEMS_QUESTIONI_QUESTIONgoifexists(select1fromsysobjectswhereid=object_id('dbo.Admins')andtype='U')droptabledbo.Adminsgoifexists(select1fromsysobjectswhereid=object_id('dbo.Items')andtype='U')droptabledbo.Itemsgoifexists(select1fromsysobjectswhereid=object_id('dbo.Questions')andtype='U')droptabledbo.Questionsgo/*==============================================================*//*Table:Admins*//*==============================================================*/createtabledbo.Admins(Admnamevarchar(50)notnull,Admpwdvarchar(50)notnull,Tintnotnull,e_mailvarchar(50)null,sexvarchar(50)null,phonevarchar(50)null,birthdvarchar(50)null,wwwvarchar(50)null,constraintPK_ADMINprimarykeyclustered(Admname))go/*==============================================================*//*Table:Items*//*==============================================================*/createtabledbo.Items(ItemIDintidentity,QuestionIDintnotnull,Itemvarchar(500)notnull,ItemCountbigintnotnulldefault0,constraintPK_ITEMSprimarykeyclustered(ItemID))go/*==============================================================*//*Table:Questions*//*==============================================================*/createtabledbo.Questions(QuestionIDintidentity,Questionvarchar(500)notnull,IsVisableintnotnulldefault0,Datevarchar(50)null,IsOpenintnulldefault1,Admnamevarchar(50)null,constraintPK_QUESTIONSprimarykeyclustered(QuestionID))goaltertabledbo.ItemsaddconstraintFK_ITEMS_QUESTIONI_QUESTIONforeignkey(QuestionID)referencesdbo.Questions(QuestionID)goinsertintoAdminsvalues('admin','admin','1','6409476@163.com','boy',,'1984/5/1','http://localhost:8080/toupiao/login.jsp')go2、打开数据库文件opendata.jsp,该文件嵌入各管理功能页面中。<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=yfl";Connectioncon=DriverManager.getConnection(url,"sa","sa");Statementsmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSetrs;Stringsql;%>3、验证密码文件chkadmin.jsp,该文件嵌入各管理功能页面中。<%@pageimport="java.sql.*"%><%@pagecontentType="text/html;charset=GB2312"%><%@includefile="opendata.jsp"%><%@pageimport="java.sql.*"%><%@pageimport="java.util.*"%><%Stringname=request.getParameter("name");Stringpassword=request.getParameter("password");intt;sql="select*fromadminswhereadmname='"+name+"'andadmpwd='"+password+"'";rs=smt.executeQuery(sql);if(rs.next()){t=rs.getInt(3);if(t==0){request.getSession(true);Stringchk="true";session.putValue("Enter",chk);response.sendRedirect("mainform.jsp?user="+name+"");}elseif(t==1){request.getSession(true);Stringchk="true";session.putValue("Enter",chk);response.sendRedirect("member.jsp?user="+name+"");}}else{Stringerrmsg="error1";response.sendRedirect("../login.jsp?errmsg="+errmsg);}%>4、检查管理员是否已经登陆文件check.jsp,该文件嵌入各管理功能页面中。<%if((String)session.getValue("Enter")!="true"){Stringerrmsg="error2";response.sendRedirect("../login.jsp?errmsg="+errmsg);}%>5、处理中文字符串及换行的自定义函数文件convert.jsp<%!Stringconvert(Stringstr){bytenewstr[]=newbyte[str.length()];for(inti=0;i<str.length();i++)newstr[i]=(byte)str.charAt(i);returnnewString(newstr);}StringReplace(Stringstr){intindex=0;while((index=str.indexOf("\n"))!=-1)str=str.substring(0,index)+"<br>"+str.substring(index+1);return(str);}%>6、注册信息存储文件adduser2.jsp<%Stringname=request.getParameter("name");Stringsex=request.getParameter("sex");Stringe_mail=request.getParameter("e_mail");Stringpassword=request.getParameter("password");Stringconfirm=request.getParameter("confirm");Stringbirthd=request.getParameter("birthd");Stringphone=request.getParameter("phone");Stringwww=request.getParameter("www");sql="select*fromAdminswhereAdmname='"+name+"'";rs=smt.executeQuery(sql);out.print("<center>");Stringid=null;while(rs.next())id=rs.getString(1);{sql="insertintoadmins(Admname,Admpwd,T,e_mail,sex,phone,birthd,www)values('"+name+"','"+password+"','"+0+"','"+e_mail+"','"+sex+"','"+phone+"','"+birthd+"','"+www+"')";smt.executeUpdate(sql);out.print("<fontcolor=greensize=5>注册成功</font><hr>");out.print("<palign=center>用户名称:"+name+"</p>");out.print("<palign=center>用户密码:"+password+"</p>");out.print("<palign=center>E_mail:"+e_mail+"</p>");out.print("<palign=center>欢迎你的使用!请牢记你的用户名称和密码!!</p>");out.print("<hr><fontcolor=redsize=5><ahref=../login.jsp>返回登陆</font>");}%>7、用户信息查询文件chakan.jsp<%Stringadminname=request.getParameter("user2");sql="select*fromadminswhereAdmname='"+adminname+"'";rs=smt.executeQuery(sql);Stringadmine_mail="";StringadminAdmpwd="";Stringadminsex="";StringadminT="";Stringadminphone="";Stringadminbirthd="";Stringadminwww="";while(rs.next()){adminAdmpwd=rs.getString("Admpwd");adminphone=rs.getString("phone");adminsex=rs.getString("sex");adminT=rs.getString("T");adminbirthd=rs.getString("birthd");adminwww=rs.getString("www");admine_mail=rs.getString("e_mail");out.print("<fontalign=centercolor=greensize=5>"+adminname+"的基本资料</font><hr>");out.print("<palign=center>用户名:"+adminname+"</p>");out.print("<palign=center>用户密码:"+adminAdmpwd+"</p>");out.print("<palign=center>性别:"+adminsex+"</p>");if(adminT.equals("1"))out.print("<palign=center>用户权限:管理员</p>");elseout.print("<palign=center>用户权限:普通用户</p>");out.print("<palign=center>E_mail:"+admine_mail+"</p>");out.print("<palign=center>出生日期:"+adminbirthd+"</p>");out.print("<palign=center>联系电话:"+adminphone+"</p>");out.print("<palign=center>个人主页:"+adminwww+"</p>");}%><%sql="select*fromQuestionswhereAdmname='"+adminname+"'";rs=smt.executeQuery(sql);StringQuestion="";if(rs.next()){Question=rs.getString(2);out.print("<pal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论