




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸JSP在线投票系统 摘 要现在我们生活的时代与网络息息相关,internet应用在社会的方方面面,大大提高了我们办事的效率。生活工作中,我们常常需要对某件事情或当下的时事热点进行投票,来统计大家对某一事态的看法或得到统一的结论。在线投票系统应运而生,越来越发挥出自己强大而快捷的优点。本系统采用JSP语言开发,以操作系统Windows 7作为开发平台,并且使用MyEclipse10.0、SQL Server 2008等工具设计开发;在线投票系统包括前台注册、登录、投票、结果查看和后台管理等部分,管理员可以增删和修改投票项目,可管理投票用户账号,以及设定隐藏、公布投票结果等功能。能满足广大用户对在线投票的各个要求,该系统功能完善,运行快捷,操作简单,方便维护,将会在当代发挥出匠心独特的作用。也可以在此基础上继续扩展功能,应对将来用户越老越高的要求及跟随网络时代高速发展的道路。关键词:JSP;MyEclipse10.0;SQL server 2008;投票全套设计加扣 3012250582iiJSP online voting system Abstract Now we are living in the era of the network that is closely related to our life, and internet applications in all aspects of society, greatly improving the efficiency of our work. Life and work, we often need to present a current affairs or something hot to vote, to count everyones views on the situation or get a unified conclusion. Online voting system came into being, more powerful and quick to play their advantages. The system uses JSP language development, operating system Windows 7 as a development platform, and use MyEclipse10.0, SQL Server 2008 and other design and development tools; online voting system, including the front desk registration, login, vote, view and back office management and other components, management Members can add or delete and modify the voting, the voting can manage user accounts and settings to hide, announced the voting results and other functions. Able to meet the various requirements of customers online voting, the system fully functional, running fast, simple operation, easy maintenance, will play a unique contemporary ingenuity effect. You can also continue to expand functionality on this basis, the older road users cope with future requirements and follow the higher the rapid development of the Internet age. Keywords: JSP ; MyEclipse10.0; SQL Server 2008 ; Voteii目录摘 要iAbstractii1 绪论1 1.1 项目简介11.2 项目目标11.3 项目特色12 概要设计32.1 开发工具及开发语言32.1.1 JSP简介32.1.2 SQL Server 2008简介32.1.3 MyEclipse 10.0简介32.1.4 JSP结构体系42.2 总体功能模块设计42.2.1 普通用户模块42.2.2 管理员模块53 详细设计33.1 数据库设计73.1.1 数据库连接73.1.2 用户表83.1.3 投票选项表83.1.4 投票主题表83.1.5 管理员表9 3.1.6 其他数据库操作93.2 程序模块设计103.2.1 普通用户模块103.2.2 管理员模块204 测试264.1 测试简介264.2 测试原则264.3 测试目标274.4 测试结果274.4.1 登录测试274.4.2 注册测试274.4.3 投票测试274.4.4 用户管理测试274.5 评价28结 论30致 谢31参考文献32英文文献33中文翻译471 绪论1.1 项目简介随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。在计算机应用中很重要的一部分就是编程语言,编程语言的出现打开了计算机应用的新篇章。在这些编程语言中JSP占有着重要的地位,JSP拥有Java编程语言“一次编写,各处运行”的特点1。在当今的网络应用中JSP无处不在,在线投票系统就是JSP功能强大的一个最好的例证。在线投票系统有很多传统投票方式不可比拟的优势:首先,它可以在很短的时间内,通过互联网将不同时间不同地域的用户投票组合到一起,并进行结果反馈,这是传统的投票方法完全做不到的;其次,在线投票系统的效率要比以往的传统投票方法高很多,在这个寸时如寸金的年代,在线投票系统不但省去了投票与计票环节的人力成本,还可以节省很多时间以用作处理其他更重要的事情;综上所述,在线投票系统有着快捷、经济、方便、省时省力等诸多优点都注定它将是未来投票方式的主流。在线投票系统可以用来统计网站用户对某个主题或热门话题的意见。网站管理员也可以通过投票的方式了解用户的看法,或者通过在线投票系统这个媒介去了解用户的思想、意见,并通在线投票系统的结果反馈改进自己的网站设计。政府决策者也可以通过在线投票系统来调查民众对某一项新政策的意见,进而统计数据做出更恰当的决策。在线投票系统是当今各大网站必备的程序之一,一个网站不断发展的前提就是众多用户的支持,一个好的网站一定要注意与用户之间信息的交流。能够有效得到用户反馈的信息,并及时对网站内容进行改进,这也是一个网站持续发展的基础。也正是由于以上原因,网络上各式各样的投票系统层出不穷。本次课程设计的目的,就是来制作一个在线投票系统,该系统可以实现对投票数量进行累加、查询、统计票数等操作。1.2 项目目标因在线投票系统有着经济、快捷等诸多优点,所以在实际项目实践中如何很好的实现这些优点便成了整个开发过程中的重中之重。在整个项目实践中,首先对课题的实际要求与需求分析进行详细的考究,查阅大量的相关资料,并且借鉴一些其他投票系统的项目经验,最后提出设计方案。系统分为前台和后台两部分,前台主要是对普通用户开放。普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。1.3 项目特色本在线投票系统具有的主要特色: 其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。 其二,友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。 其三,强大的功能,能够满足各种统计需要,实现快速简单统计。 2 概要设计2.1 开发工具及开发语言 在在线投票系统的设计开发过程中主要用的是基于JSP语言的相关开发技术及工具,其中用到的工具有:JDK1.6.0、MyEclipse10.0、SQL server 2008、Apache Tomcat等。2.1.1 JSP简介JSP技术是在传统的网页HTML文件中插入Java程序段和JSP,从而形成JSP文件2。JSP技术使用Java编程语言编写类XML的tags和script lets,来封装产生动态网页的处理逻辑。在线投票系统用JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于Web的应用程序的开发变得迅速和容易。一次编写,到处运行。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 多样化和功能强大的开发工具支持。2.1.2 SQL Server 2008简介 SQL Server 2008 是Microsoft 公司推出的SQL Server 数据库管理系统,SQL Server 2008 数据库系统使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理3。它具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用;SQL Server 2008 不但结合了分析、报表、集成和通知功能,而且它具有的图形化用户界面,可以使系统管理和数据库管理更加直观、简单;SQL Server2008与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等4。SQL Server2008也可以很好地与Microsoft Back Office产品集成。SQL Server2008因为其速度、可靠性和适应性而备受关注。针对以上种种情况,SQL Server 2008 数据库是在线投票系统最好的选择。2.1.3 MyEclipse 10.0简介MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。在结构上,MyEclipse的特征可以被分为7类: JavaEE模型 WEB开发工具 EJB开发工具 应用程序服务器的连接器 JavaEE项目部署服务 数据库服务 MyEclipse整合帮助MyEclipse 10的发布:该版本使用最高级的桌面和Web开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0.MyEclipse 10对检索功能以及错误查询功能更加强大,包括对js文件的错误查询。就目前本人的体验来说,最大的变化莫过于软件安装界面,推荐使用link方法进行插件安装,方便快捷。2.1.4 JSP结构体系 在JSP中,SERVLET作为服务器与客户端的接口,接受来自用户的参数,并响应用户的请求。JAVABEAN用于逻辑功能的实现。JSP编程技术对于数据进行显示。JDBC作为JSP与数据库的接口。XML为扩展的标记语言,可以定义自己的标记语言。SQL分类: 数据定义语言(DDL): CREATE, ALTER, DROP, DECLARE 数据操作语言(DML): SELECT, DELETE, UPDATE, INSERT 数据控制语言(DCL): GRANT, REVOKE, COMMIT, ROLLBACK2.2 总体功能模块设计在线投票系统总体功能模块包括普通用户登录模块和管理员登录模块,其具体描述如下:2.2.1 普通用户模块(1)用户注册和登录:普通投票用户须通过账号注册,注册成功后,可输入用户名和密码登录系统,登录成功方可以进行投票。(2)提交投票:用户登录成功后对感兴趣的主题进行投票。(3)重选:用户可以进行重新投票。从以上介绍中我们能看到,普通用户模块包含着以下几个不同的功能,其各部分功能关系如图2-1所示。图2-1 普通用户模块图 2.2.2 管理员模块 (1)发布新问题。(2)用户管理,管理员可以增加和删除普通用户(超级用户不能删除),或者更改普通用户密码。(3)查看所有投票。从功能描述的内容中可以看到,管理员模块可以实现发布新投票、重新编辑投票、查看所有投票、删除投票、公布结果和撤销投票等多个完整的功能,并且不同功能之间也存在着一些直接或间接联系,如图2-2所示。图2-2 管理员模块图在线投票系统的流程图包含了该系统的投票原理与主要制作方法。从流程图上我们可以看到在线投票系统需要经过登录、显示投票表单、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其流程图,如图2-3所示。开 始登 录显示投票选项取得投票参数结 束是否取得参数累加投票数将结果写入数据库显示投票结果否 是 图2-3投票流程图3 详细设计3.1 数据库设计与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面:数据结构化:在文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。而数据库系统则实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库与文件系统的本质区别。数据的共享性高、冗余度低、易于扩充。数据库系统从整体角度看待和描述数据,数据不再面向某个特定的应用程序,而是面向整个系统;因此,数据可以被多个用户、多个应用程序共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。数据独立性高:数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。也就是说,数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样一来当数据的物理存储结构改变时,用户的程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不改变。数据由DBMS统一管理和控制:数据库的共享是并发的(concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。DBMS必须提供以下几方面的数据控制功能:数据的安全性保护(security)数据的完整性检查(integrity)数据库的并发访问控制(concurrency)数据库的故障恢复(recovery)数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。数据库设计的好坏直接关系到整个项目设计的效率的高低,关系到设计的稳定性。根据在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了四个不同的数据表,它们分别是用户表、投票选项表和投票主题表、管理员表。3.1.1 数据库连接 数据库连接主要jsp 代码: 3.1.2 用户表用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表3-1所示。表3-1用户表(dbo.user)字段名数据类型长度是否主键描述AdmnameVarchar50是用户名AdmpwdVarchar50否密码 在SQL中建表语句: create table dbo.Users ( Admname varchar(50) not null, Admpwd varchar(50) not null, )3.1.3 投票选项表投票选项表包括每个投票选项的基本信息,如投票编码、问题ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数据说明如表3-2所示。表3-2 投票选项表(dbo.items)字段名数据类型长度是否主键描述ItemIDint11是选项IDQuestionIDint255否主题IDItemvarchar500否投票选项ItemCountbigint20否票数 在SQL中建表语句: create table dbo.Items ( ItemID int identity, QuestionID int not null, Item varchar(500) not null, ItemCount bigint not null default 0, constraint PK_ITEMS primary key clustered (ItemID) )3.1.4 投票主题表投票主题表包括投票主题、问题ID、是否对外投票、投票日期以及是否对外公布投票结果等信息,详细数据类型和字段长度如表3-3所示。表3-3 投票主题表(dbo.Question)字段名数据类型长度是否主键描述QuestionIDint11是主题IDQuestionvarchar500否投票主题IsVisableint10否是否对外投票Datevarchar50否日期值IsOpenvarcharint否是否对外公布结果 在SQL中建表语句: create table dbo.Questions ( QuestionID int identity, Question varchar(500) not null, IsVisable int not null default 0, Date varchar(50) null, IsOpen int null default 1, constraint PK_QUESTIONS primary key clustered (QuestionID) )3.1.5 管理员表用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表3-4所示。表3-4管理员表(dbo.Admins)字段名数据类型长度是否主键描述AdmnameVarchar50是管理员用户名AdmpwdVarchar50否密码Flagint2否信号 在SQL中建表语句: create table dbo.Admins ( Admname varchar(50) not null, Admpwd varchar(50) not null, flag int not null, constraint PK_ADMIN primary key clustered (Admname) )3.1.6 其他数据库操作/*=*/* Database name: Marry */* DBMS name: Microsoft SQL Server 2008 */* Created on: 2014-3-26 8:59:11 */*=*/ alter table dbo.Items add constraint FK_ITEMS_QUESTIONI_QUESTION foreign key (QuestionID) references dbo.Questions (QuestionID) insert into Admins values(admin,admin,0)/插入管理员用户 select * from Admins /查看管理员用户3.2 程序模块设计本系统分为普通用户和管理员两部分模块。普通用户模块具有注册、登录、投票等功能;管理员模块则具有登录、发布新投票、编辑投票、撤消投票、删除投票、用户管理与公布结果等功能。3.2.1 普通用户模块 (1)注册模块普通用户登录在线投票系统需要先进行账号注册,注册成功后方可以其他操作,注册模块的界面如图3-1所示。图3-1用户注册 当用户输入合法用户名和密码后就可以完成用户注册,提示页面如图3-2所示。图3-2注册成功提示 当用户输入注册过的用户名时,会出现重复注册页面。如图3-3所示。图3-3注册重复提示 注册页面主要代码:用户名只能为数字和字母用户注册用户名称 用户密码 确认密码 添加用户的主要代码:% String name = request.getParameter(name); String password = request.getParameter(password); String confirm = request.getParameter(confirm); sql = select * from Users where Admname=+name+; rs = smt.executeQuery(sql); out.print(); String id = null; while (rs.next() id = rs.getString(1); if(name.length() = 0) String errmsg = ID字段不可为空白!; out.print(错误信息+errmsg+); else if(id != null) String errmsg=这个帐号已经有人在使用了,请换新的ID!; out.print(错误信息+errmsg+); else if(password.length() = 0) String errmsg=密码不可为空!; out.print(错误信息+errmsg+); else if(!password.equals(confirm) String errmsg=请重新确认密码!; out.print(错误信息+errmsg+); else sql=insert into Users(Admname,Admpwd) values (+name+,+password+); smt.executeUpdate(sql); String errmsg=恭喜注册成功!; out.println(注册信息+errmsg+); out.println(请重新登录); out.print(); %(2)登录模块普通用户在完成注册后方可以登录在线投票系统,注册完毕后单击“请重新登录”便可以重新返回登录页面。如图3-4所示。图3-4用户登录登录模块主要代码: 用户名: 密 码: 注册 管理员登录 (3)投票模块输入正确的用户名和密码后,单击“登录”按钮,就可以直接进入在线投票系统的投票页面,如图3-5所示。图3-5用户投票 当所有的选项都投票完毕后,用户单击“提交”按钮,便完成了投票的流程,如果用户想要查看这些问题的投票结果,投票完毕后点击“查看投票结果”便可以查看当前投票结了。如图3-6所示。图3-6查看结果 投票主页面的相关代码: % sql = SELECT Question,QuestionID from questions where IsVisable = 1 ; rs = smt.executeQuery(sql); ResultSet _rs; String question = null,item = null,_sql; Statement_smt=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); int questionid = 0,itemid = 0; int i=0,j; /题目及选项标号 while(rs.next() i+; question = rs.getString(1); questionid= rs.getInt(2); out.print(+i+.+ +question+); _sql = SELECT Item,ItemID From Items Where QuestionID =+questionid; _rs = _smt.executeQuery(_sql); j = 0; while(_rs.next() j+;item = _rs.getString(1); itemid = _rs.getInt(2); % input type=radio value= name= % if(j 退出登录 查看投票结果界面的主要代码: % String question = null; String date = null; int questionid = 0; sql = SELECT Question, Date, QuestionID from questions where IsVisable = 1 and IsOpen= 0; rs = smt.executeQuery(sql); Statement_smt=con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet _rs; while(rs.next() % question = rs.getString(1); date = rs.getString(2); questionid = rs.getInt(3); out.print(+date+发布); out.print(+question+); % 选项 记数 图示 % sql = SELECT ItemCount From Items Where QuestionID =+questionid; _rs = _smt.executeQuery
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2 Home Sweet Home 语法专项练习(含答案)2025-2026学年人教版(2024)英语八年级上册
- 肾内科护理新进展
- 2025年事业单位工勤技能-湖北-湖北家禽饲养员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北医技工三级(高级工)历年参考题库典型考点含答案解析
- 2025年水上乐园设备技术创新趋势研究报告
- 2025年事业单位工勤技能-海南-海南经济岗位工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-浙江-浙江计算机信息处理员四级中级历年参考题库含答案解析(5套)
- 金融租赁公司业务创新与法律风险防范报告
- 2024版租房协议模板租房合同协议
- 2025年事业单位工勤技能-河北-河北兽医防治员一级(高级技师)历年参考题库含答案解析(5套)
- 工作交接表模板
- 佛吉亚卓越体系知识手册
- 3.2 歌曲《牧童之歌》课件(9张)
- 可穿戴设备可靠性优化技术
- 小升初分班考必刷题(试题)-2023-2024学年六年级下册数学人教版
- 数据治理与数据中台建设方案
- NBT 33018-2015 电动汽车充换电设施供电系统技术规范
- 《科技英语翻译方法》课件
- DL-T5455-2012火力发电厂热工电源及气源系统设计技术规程
- 公司自行车管理制度
- TSG-T7001-2023电梯监督检验和定期检验规则宣贯解读
评论
0/150
提交评论