JSP在线投票系统实习报告文档.docx
- 文档编号:11265012
- 上传时间:2023-05-30
- 格式:DOCX
- 页数:26
- 大小:448.17KB
JSP在线投票系统实习报告文档.docx
《JSP在线投票系统实习报告文档.docx》由会员分享,可在线阅读,更多相关《JSP在线投票系统实习报告文档.docx(26页珍藏版)》请在冰点文库上搜索。
JSP在线投票系统实习报告文档
中南林业科技大学
实训报告
设计名称:
基于JSP的网上投票系统的研究以及实现
专业班级:
计科一班
系(院):
计算机信息与工程学院
设计时间:
2012年5—6月
设计地点:
电子信息楼
指导教师评语:
签名:
年月日
姓名
学号
成绩
摘要
信息时代的今天,人们对信息的需求越来越多,各类调查也越来越普遍。
传统的问卷调查,编写、打印、分发、填写、收集再统计,手续繁琐耗费人力,还受到地域的限制。
随着互联网的发展,网络投票应势而生,它不受地域限制,不管你在哪里,什么时间,只要有一台连网电脑,你就可以参与投票。
不仅用户可以方便的投票,管理者也可以方便的收集投票并通过数据库迅速的看到投票统计结果。
本系统采用JSP语言开发,用Access做为后台数据库,它集投票、统计和管理功能于一体,记录用户所投选项,更新数据库,能够显示投票结果,并即时更新。
投票的票数以数字和图形两种形式显示。
管理员模块能够增加、修改和删除投票主题、投票标题和投票各选项,是否禁止重复投票,可以方便地实现网络投票管理。
网络投票系统大大节省了人力物力,使投票调查更高效、更快捷。
关键词:
数据库,JSP,Javascript
1绪论
1.1应用背景
如今很多的服务行业都要进行服务的反馈,以便更好的提高产品的质量和作出更好的服务,投票系统就是一个反馈信息的软件,通过它可以更好更快捷方便的反馈信息共服务商参考。
因此开发一个能够供客户反馈信息的平台是很有必要的。
(1)方便的操作。
原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。
(2)友好的界面。
友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。
在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。
决策者通过这些统计数据做出相应的决策。
在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。
1.2JSP相关技术简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
本实例主要采用javabean模式开发
JSP内置对象:
(1)request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
(2)response对象:
对客户的请求做出动态的响应,向客户端发送数据。
(3)session对象
session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
session对象的ID:
当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。
当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。
当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。
同时编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。
1.3概述
在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。
决策者通过这些统计数据做出相应的决策。
在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。
他可以设计这样一个投票主题:
你最喜爱的电影?
(A.世界末日B.杀死比尔C.功夫)然后提供给用户进行投票。
我的投票系统具有极大的灵活性,投票类型分为单选投票和多选投票。
管理员可以在线设计不同的投票主题供用户进行投票。
2系统可行性分析
2.1技术可行性研究
网上投票系统能很方便的统计我们所关心的问题。
能较好的收集群众的意见。
能支持多问题(不限问题个数),能支持调查选项的单选及多选(选项在10个之内),支持调查者的其它意见,支持后台管理,支持各种界面的设定等。
该系统属于实用型网站,需要对数据的处理,比如对投票票数的统计并把结果反馈给投票者,故对数据的及时更新要求较高,保证数据的真实性。
该系统在任何操作系统下都可以运行,但必须装有数据库。
2.2应用可行性研究
线投票功能是网站应用程序最常用的功能之一,也是网站应用程序开发常用的功能模块。
当网站的管理员或用户提出一些新的想法与建议或者出现一种新产品时,他们可能需要通过用户或者客户的投票方式来确定这些新的想法、建议或者新的产品是否满足用户或者客户的需求,另外,网站还可以通过网站在线投票功能做一些实际性的调查工作。
对于整个系统而言,在系统未运行之前初期投资比较大,花费相对而言比较多,各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,因为现在计算机已经普及了,减少了数据的流通环节,不必要花费那么多时间,也就是说嘴重要的是提高了效率,而由保证了各项数据的准确性,也避免了工作人员的流动造成的数据丢失等问题,适应了当前的发展形势。
2.3系统的搭建
在确定技术之后要作的就是搭建平台了,由于我们选用了JSP技术,所以我们需要安装java开发工具集(JDK)和Tomcat(网站服务器)。
它们之间的关系见图:
图2-1JSP相关环境架
3需求分析
3.1功能概述
(1)前台模块
主要显示主欢迎界面,比如进入投票题目,选项以及显示当前系统配置等信息。
(4)后台管理模块:
管理员模块是指管理员对项目进行的管理模块,包括项目的管理,选项的管理以及系统设置的管理。
可以对项目的删除和编辑,选项的删除,更新和添加,删除和更新。
(5)注册登陆模块
登陆注册主要为管理员和客户进入相应权限的桥梁。
(6)投票模块
设定每次为单个/多个选手投票;投票结果统计,直观的柱状图显示投票结果。
3.2权限分配
权限分为:
游客投票和后台管理
前台管理:
具有注册登录,投票,查看投票等内容。
后台管理:
从后台很方便的添加新问题,修改及删除现有的问题以及用户的管理都很好的实现。
3.3开发、运行环境
开发环境MyEclipse简介
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
在结构上,MyEclipse的特征可以被分为6类:
(1)J2EE模型
(2)WEB开发工具
(3)应用程序服务器的连接器
(4)J2EE项目部署服务
(5)数据库服务
(6)MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
MyEclipse配置开发:
保证access和tomcat服务能够正常启动,myeclipse能够正常打开在配置中添加tomcat。
下面就要开始真正的开始部署一个web结构的工程了。
(7)dreamwave的使用其方便的可视化设计方便网页整体布局或单一元素属性设置实现。
在dreamwave中配置jsp站点也相对较容易。
本程序在tomcat6.0/tomcat7.0+jdk1.6+IE浏览器/火狐浏览器环境下完美运行.
4系统软件总体设计
4.1系统组成模块
该系统主要由以下六个模块组成:
登陆注册模块,管理员模块,客户模块,留言簿模块,新闻模块,投票模块。
整体结构采用框架,以便网站整体设计一致。
模块结构如下图:
图4-1系统结构图
4.2前台组成模块
前台模块主要是欢迎界面显示,投票选项信息显示,用户投票,用户登录、注册入口。
前台总体显示效果图:
图4-2网站主页
4.3后台管理模块
后台管理模块是指管理员对项目进行的管理模块,包括项目的管理,选项的管理以及系统设置的管理。
可以对项目的删除和编辑,选项的删除,更新和添加。
系统用户的删除和修改。
4.4注册登录模块
登陆注册主要为管理员和客户进入相应权限的桥梁。
注册登陆模块需要添相关的信息,然后进行注册,如果注册过的可以直接输入用户名和密码进行登陆。
用户登录需要完成的功能是用户身份验证、用户资料修改、用户管理。
4.5投票模块
投票模块显示投票的主题和选项的信息,提供所有主题的连接,用户可以选择对不同的主题进行相应投票。
然后用户选择投票选项,提交表单。
投票表单包括主题、选项。
每次只可以投一次票。
再次投票需要有用户登录或者注册权限。
图4-3投票模块结构图
后台管理
进入投票
登陆界面
管理中心
是否为第一次投票
限制用户在
已投过票
用户登录界面
第一次投票
开始投票
不限制
管理投票项目
删除
编辑
重新登录
删除
图4-4投票系统流程图
系统分为前台和后台登陆,前台有欢迎主页有用户注册模块,投票模块,后台管理模三大块,其中后台可以对选项主题添加,查看和修改。
对用户账户的修改及删除管理。
5系统详细设计
5.1系统功能结构图
系统总体结构如图5-1所示:
图5-1网上投票系统总体功能结构图
5.2注册登陆模块详细设计
(1)登录注册模块功能设计
管理员登陆界面;根据身份从而跳入相应的页面,实现注册登陆功能。
输入处理输出
图5-2登陆页面管理员流程图
(2)登录模块页面效果
图5-3登录页面
(3)注册模块设计
管理员注册页面,主要收集用户输入的用户名和密码,并提交数据库
图5-4注册页面会员注册流程图
(2)注册登录页面数据流
数据库
用户信息
后台管理中心
登陆模块
图5-5注册登陆页面数据流图
(3)注册界面设计效果如图5-6
图5-6注册界面
(4)用户登录与注册说明
注册和登录几乎是所以网站和应用通有的功能涉及到是否拥有权限对后台的直接管理也是整个系统比较重要的部分。
其实现主要是通过对用户密码的初级验证比如是否为空注册则判断两次密码是否相同用户命名是否符合要求等这些客服端验证主要通过javascript验证通过本地验证后再然后是传数据到数据库进行相应操作来验证帐号密码是否存在依此判断用户是否拥有管理权限。
注册则是添加用户输入的用户和密码到数据库。
5.3投票模块详细设计
(1)投票模块功能设计
投票模块为游客选择投票项目,并根据项目模式跳转到相应投票页面进行投票,对系统配置进行检测,并可以查询结果。
图5-7投票页面数据流图
(2)投票模块界面设计效果图
图5-8投票模块界面图
(3)投票模块设计说明
1)显示投票选项:
步骤一:
创建数据表用来保存投票选项,在该数据表应包含投票标题、选项1至选项n的标题和投票数量,可以根据实际情况填写一定数量的投票选项数据。
步骤二:
查询在步骤
(1)中创建的数据表,从而创建记录集。
步骤三:
通过“while(rs_title.next())”循环语句将多个投票选项的主题依次输出到客户端浏览器
在显示投票选项页面query_front.jsp中,首先查询主题数据表voteTheme中的主题记录路,然后使用“while(rs_theme.next())”循环语句逐个显示记录中对应的“投票选项标题”字段数据,每个选项对应一个勾选按钮。
在该页面中,单击“投票结果”按钮可以提交投票结果页面。
2)投票判断
步骤一:
如果用户是首次投票则可以直接投票不符合投票要求的,则不跳转到投票页面。
需要有用户登录权限或者注册用户登录安全后才可再次投票。
步骤二:
在处理投票业务时(dealwith.jsp)将已投票的客户端机器保存在session中,session.setAttribute("vote","voted");设置为以投票状态。
在显示投票选项页面vote_front.jsp中,选择投票选项然后单击“投票”按钮,程序开始判断<%
Stringvote=(String)session.getAttribute("vote");
if(vote!
=null){
response.sendRedirect("login.jsp");
}//判断是否已经投票如果已经投票则跳到登录页面阻止再次投票%>
如果符合投票条件就转到投票页面否则需要提供账户密码用户登录后将状态更改session.setAttribute("vote",null)。
此时可以再次投票。
有效比免重复刷屏。
恶意投票
3)显示投票结果
步骤一:
查询数据表,显示各选项的标题以及投票数量,并计算各选项的投票之和。
步骤二:
实现以图片来表示投票结果,最关键的是根据票数来计算图片的显示长度。
在显示投票选项页面vote_front.jsp中,单击“投票结果”按钮将打开投票结果页面query_front.jsp。
在该页面中,首先查询数据表获取记录数据并计算投票的总票数,然后使用“whie…next”循环语句依次计算各选项的投票数量所占的百分比以及显示的柱形图的宽度,再将选项标题、对应的投票数量、投票百分比以及柱形图输出到浏览器。
5.4后台管理模块详细设计
(1)后台管理中心模块
后台管理中心为客户提供主题查询修改。
以及其他相关选项增删改查功能入口,成为后台各功能主要入口。
输入处理输出
图5-9后台管理中心模块流程图
(2)后台管理中心页面设计图
图5-10后台管理中心页面
(3)后台管理中心设计说明
本模块设计主要考虑为整个后台管理首页为其他功能提供主入口。
该页面也实现了常用的主题修改和查询删除。
其中下面提供相应的链接菜单。
out.println(" times="+time+"&names="+name+"'>修改");本模块使用通链连接模式调用处理逻辑业务修改主题的jsp页面out.println(" method=1&delid="+name+"'>删除");而删除则是可以直接调用数据库处理文件deleteTheme.jsp传过去要删除的主体名称既可以实现实时删除主题。 (4)主题管理模块 主题管理模块主要对数据库内存在的主题做增删改处理。 (5)主题管理页面效果图 图5-11主题管理页面 (6)主题管理设计说明 本模块设计主要是针对系统的主题修改添加功能实现。 采用的设计思路是通过表单提交action="addTheme.jsp"通过在addTheme.jsp中使用request对象addzhuti=request.getParameter("addtheme");获得参数对应的值然后对数据库操作更新数据库完成用户所选功能。 (7)选项管理模块 选项管理主要是对本系统对应主题的选项添加删除管理功能的实现。 通过下拉菜单获得用户需要添加对应的主题选项然后进行相应选项的增加。 增加的选项在下面的列表中循环显示。 用户也可以选择删除完成删除功能。 图5-12选项管理模块流程图 (8)选项管理页设计效果面: 图5-13主题选项管理页面 (9)选项管理模块设计说明 选项管理页面中通过 <% try{ ResultSetrs1=db.executeQuery("select*fromvoteTheme"); inti=0; while(rs1.next()){ Stringname1=rs1.getString("ThemeName"); i++; %> <%}%> <%}catch(Exceptione){}%> 该关键代码实现了从数据库读出已有主题并赋值到下拉菜单列表供用户选择。 (10)用户管理模块 本模块主要对系统中的用户名和用户密码实行删除修改管理操作。 图5-14用户管理页面设计效果图 5.5系统数据库设计 客户模块就是对投票进行添加,删除和查看,客户管理员可以从后台登陆对投票进行管理。 (1)创建表 创建数据库中用到的投票表: 表5-1用户表admin 字段名 数据类型 长度 约束 说明 id 数字 长整型 notnull 自动增长 name 文本 50 notnull 用户名 password 文本 50 notnull 密码 表5-2投票表vote表 字段名 数据类型 长度 约束 说明 id 数字 长整型 notnull 自动增长 item 文本 50 notnull 投票选项 count 数字 长整型 票数统计 title 文本 50 notnull 所属投票主题 表5-3投票主题表voteTheme表 字段名 数据类型 长度 约束 说明 ThemeName 文本 50 notnull 主题名称 creattime 文本 50 notnull 主题创建时间 (2)数据表vote与voteTeme的关系图 图5-15数据库关系图 建立votetitle字段与voteTheme字段ThemeName多对一关系(便于在对相应主题操作时可以自动关联影响对应的选项表中的数据) (3)连接数据库 该系统使用了access的jdbc-odbc来连接数据库。 需要在系统中先建议一个数据源。 因为对数据库的访问,在整个系统中比较频繁,所以我将对数据库的操作写成一个DBConnect的类,通过javabean模式来应用于整个系统。 //关键代码如下 publicclassDBBean { privateStringdriverStr="sun.jdbc.odbc.JdbcOdbcDriver";//定义数据驱动 privateStringconnStr="jdbc: odbc: mydbsource";//数据源 privateConnectionconn=null;//连接对象 privateStatementstmt=null;//Statement对象 publicDBBean() { try{ Class.forName(driverStr);//加载驱动 }} publicResultSetexecuteQuery(Stringsql)//sql执行语句 {ResultSetrs=null; try{ conn=DriverManager.getConnection(connStr); stmt=conn.createStatement(); rs=stmt.executeQuery(sql);} returnrs; } publicbooleanexecuteUpdate(Stringsql)//数据更新操作 { try{ conn=DriverManager.getConnection(connStr); stmt=conn.createStatement(); stmt.executeUpdate(sql); returntrue;}}} 6运行与测试 6.1系统的安装运行 该系统我在jdk1.6+myeclipse6.5+access2003环境下测试通过: 安装步骤: 该系统需要JSP运行环境和access数据库,如果服务器还没有搭建的话请先搭建。 (1)把整个项目文件vote(WEB-INF存放的是该系统使用到的一些.class文件)上传到你的主机网页服务器目录。 即tomcat的webapps下,iis的webroot目录下。 (2)请创建数据源vote。 用户名密码为测试本机系统帐号密码 (3)开启web服务器 (4)然后在浏览器输入URL: 进入前台主页: http: //localhost: 8080/web/vote/index.jsp 然后进入后台页面http: //localhost: 8080/web/vote/login.jsp 6.2系统的测试 (1)测试指南 1)准备: 草拟一个计划。 2)准备: 设定期望值。 3)准备: 精确定义被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 在线 投票 系统 实习 报告 文档