投票系统设计

目  录

摘要 …………………………………………………………………………… 1

前言 ……………………………………………………………………………… 2

1 Web投票调查模块的发展与现状分析比较……………………………………… 2

  1.1 Web投票调查模块的历史背景……………………………………………… 2

  1.2 Web投票调查模块发展现状………………………………………… 2

1.2.1 JSP简介与优势…………………………………………………………… 2

2 Web模块的开发工具和环境配置………………………………………………… 2

2.1 开发工具 …………………………………………………………………… 2

2.1.1 Visual J++……………………………………………………………… 2                                   2.1.2 J2SDK……………………………………………………………… 3

2.1.3 JDBC驱动器 ……………………………………………………………… 3

2.1.4 Tomcat服务器……………………………………………………… 3

2.1.5 后台数据库 ……………………………………………………………… 3

2.2 环境配置…………………………………………………………………… 3

  2.2.1建立JSP平台所需要的硬件和软件环境………………………………… 3

2.2.2 JAVA环境安装…………………………………………………………… 3

  2.2.3 JDBC驱动器的安装和配置………………………………………… 3

2.3 后台数据库B/S式………………………………………………………… 4

3 基于JSP投票调查的WEB模块的设计与实现…………………………………… 4

3.1 Web模块总体页面构架图  ………………………………………………… 4

  3.2 基于JSP投票调查Web模块总体执行过程………………………………… 5

3.3 JSP连接不同数据库的代码调试与实现  ………………………………… 5

  3.3.1 JSP连接Access数据库的代码调试与实现………………………………5

  3.3.2 JSP连接MySQL数据库的代码调试与实现  …………………………… 6

  3.3.3 JSP连接SQL Server数据库的代码调试与实现…………………………6

  3.4 Web投票调查模块页面的实现…………………………………………………… 7

3.4.1首页面的设计与实现…………………………………………………… 7

3.4.2 Web模块投票调查页面和代码调试  …………………………………… 7

3.4. 3 限制IP地址的投票页面的实现与代码调试…………………………… 8

4 本模块设计过程中所遇到的问题 ……………………………………………… 9

  4.1环境的搭建与路径的配置问题……………………………………………… 9

  4.2 Web页面出现乱码的问题………………………………………………… 9

  4.3 IP地址受限存在的问题 ………………………………………………… 9

4.4 数据库连接问题………………………………………………………… 9

5 基于JSP投票调查的WEB模块的发展前景………………………………… 9

6 结论 ……………………………………………………………………………  10

谢辞 ……………………………………………………………………………… 11

参考文献 ……………………………………………………………………………12

附录………………………………………………………………………………… 13

基于JSP投票调查的Web模块的实现

李艳梅

摘要:目前各种网站的投票调查模块,对于其后台数据库的Web操作过去较多采用的是ASP或者PHP技术结合数据库的方法。而本文提出了基于B/S模式的JSP技术并实现了支持多种数据库的方案,其中重点介绍了如何实现JSP连接各种数据库的Web功能。并对JSP技术与数据库连接方式进行介绍、分析,突出了JAVA跨平台和增强数据库安全的优势,而且也简化了构造Web应用系统的工作。

关键词:JSP;投票调查;B/S;JDBC;SQL

A Web vote and investigation mold base on JSP technology

LI Yan-mei

AbstractAt present the Web vote and investigate mold in website which the manipulation that they used to adopt ASP or PHP technology and combine the method of website database to accomplish. While the text raise the technology base on B/S instruction and use the JSP and accomplished the scheme which supposes various databases, in which lay emphasis how to combine kinds of database. Outstand the advantage of the cross-platform of JAVA and enhancing a safety database, also simplify the work of structure of Web practical system.

KeywordJSP;vote and Investigation;B/S;JDBC;SQL 

前言

随着Internet/Intranet技术和WWW技术的不断发展,目前主要针对如何提高访问模块的速度、加强访问模块的安全性,以及实现多数据库的支持和运行平台的广博性是目前网页制作的发展趋势。以JSP为开发工具的Web模块相对于其他的开发工具具有运行速度快、运行损耗较小、安全性高、支持多种运行平台和多种数据库的特点。近年来受到各大中型企业的信赖和支持。

本设计旨在通过采用B/S体系结构,JSP为开发工具来实现Web投票调查模块支持平台的广泛性、支持数据库的多样性、提高访问模块的速度和加强访问模块的安全性。

1 Web投票调查模块的发展与分析比较

1.1 Web投票调查模块的历史背景

最初Web投票调查模块的应用,它只是依赖于Web服务器,没有后台数据库的支持。但随着Internet技术的发展,这种Web投票调查模块已经无法适应各级企业复杂多变的各种应用的要求。因为客户不仅要求企业Web站点提供所需的各种信息,还要求访问速度更加快捷,访问的安全性更加可靠。随后支持各种后台数据库的Web模块诞生又将Internet技术的发展推向了一个新的领域,并使此Web模块得到了普遍应用,但新的问题又接踵而来。如何提高访问速度和增强模块的安全性成为了当今人们关注的热点。

1.2 Web投票调查模块发展现状

当今在各种大大小小的网站中,各种类型的Web投票调查模块基本上是基于C/S体系结构,ASP为开发工具。但精益求精的人们,为了加快浏览者的访问速度以及增强模块操作的安全性和实现模块的可移植性,后台数据库逐渐由C/S模式向B/S模式过渡,因为B/S模式相对于C/S模式具有的优点是:应用程序在部署、升级、维护以及在服务器端进行配置时,它提高了系统的安全性。脚本语言开发技术也逐渐由ASP技术、PHP技术向JSP技术发展。

1.2.1 JSP简介与优势

JSP是Java Server Pages的简称,是一种应用于服务器端的动态网络脚本语言。在传统的网页HTML (*.html,*.htm)中加入Java程序代码和JSP标记(tag),就构成了JSP网页(*.jsp)。

JSP相对于ASP、PHP技术具有如下优点:A、方便的组件开发方式。B、程序开发维护的方便性。C、具有跨平台的特点。D、将应用逻辑与页面表现分离,使得应用逻辑能够最大程度得到复用。E、良好的安全性,由于后台是完全基于JAVA的,安全性由JAVA的安全机制保障。在性能方面数据库测试:JSP、PHP、ASP分别对Oracle 8进行 1000次Insert、Update、Select和Delete:JSP需要13秒,PHP需要69秒,ASP则需要73秒。F、简化程序的流程、提高开发的效率,使网页内容的控制和操作更加灵活。

2 Web模块的开发工具和环境配置

2.1 开发工具

2.1.1 Visual J++

Microsoft Visual J++是Microsoft公司发行的Java语言开发环境,它为编程人员提供了一些快速开发Java语言软件的各种向导。向导提供了几种代码模板用来帮助Java语言程序开发者创建项目,产生框架式的Java类,提供基本的代码框架。

2.1.2 J2SDK

J2SDK(Java 2 Software Development Kit)是Java语言程序开发工具,兼作运行Java语言程序的平台(Java虚拟机)。

2.1.3 JDBC驱动器

JDBC(Java Database Connectivity)是一种可用于执行SQL语句的Java API(Application Programming Interface,应用程序设计接口)。它由一些Java类和接口组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。

JDBC是用于Java应用程序连接数据库的标准方法。简单的说,JDBC就是用来访问操作数据库的。JDBC具体可以实现三个功能:与数据库建立了连接、向数据库发送SQL语句、获得并处理结果集。

2.1.4 Tomcat服务器

Tomcat是一个免费的开源的serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目, 由Apache、Sun和其他一些公司共同开发而成。Tomcat其实是serlvet容器和WEB服务器的合成体,提供Web服务。

2.1.5 后台数据库

Access数据库、MySQL数据库、SQL Server数据库

2.2 环境配置

2.2.1 建立JSP平台所需要的硬件和软件环境

硬件环境

表2-1硬件环境

硬件名称

处 理 器

内 存

硬 盘

其 他

要   求

586以上的处理器

64MB以上

500MB以上

网卡等网络设备

软件环境

A、服务器操作系统,Windows2000Professional Windows XP。

B、j2sdk-1_4_2-windows-i586.exe,这个软件用于执行java程序。

C、jakarta-tomcat-4.1.27-LE-jdk14.exe,这个软件用于发布Web。

2.2.2 JAVA环境安装  

(1) J2SDK的下载地址是http://java.sun.com/j2se/1.4.2/download.html

(2)j2sdk-1_4_2-windows-i586.exe下载后,然后进行安装,安装目录可自行设置,本人将此安装在了C:\ j2sdk1.4.2下。

(3)安装完后,进行环境变量配置,首先要新建系统变量,建第一个系统变量:JAVA_HOME 值:C:\j2sdk_nb\j2sdk1.4.2然后建第二个系统变量:CLASSPATH 值:%JAVA_HOME%\lib,最后在PATH 的原有值的前面加上%JAVA_HOME%\bin;

2.2.3 JDBC驱动器的安装和配置

(1) 从http://dev.mysql.com/downloads/connector/j/3.1.12html中下载JDBC驱动程序,然后解压缩。

(2)将驱动程序中的mysql-connector-java-3.1.10-bin-g.jarmysql-connector-java-3.1.12-bin.jar安装到C:\j2sdk1.4.2\lib下。配置这个的目的是让你的java应用程序找到连接MySQL的驱动

(3)为JSP连接数据库配置驱动,将mysql-connector-java-3.1.12-bin.jar放到C:\tomcat\Tomcat 5.0\common\lib中和C:\tomcat\Tomcat 5.0\shared\lib中。

2.3 后台数据库B/S模式

本系统采用 B/S 三层架构。B/S架构实际上是由两层结构的C/S(Client/Server)计算模型发展而来,原来的Client由浏览器代替,服务器端由WEB服务器、数据库服务器及中间构件组成。

这种模式的特点是应用系统的程序代码、数据及支撑软件全部集中在服务器端。客户端不必加载更多的系统支撑软件及应用程序,仅通过浏览器就可以访问到数据库中的信息。因而B/S 结构对客户端没有特殊要求,不仅使用方便,而且使系统的维护和管理变得容易。其结构模式如下图: 

图2-2 系统 B/S 体系结构

3 基于JSP投票调查的Web模块的设计与实现

3.1 Web模块总体页面构架图

为了使本Web投票调查模块实现支持多种数据库的功能和在对投票者进行投票的过程中,为了防止出现一人无限制投票的现象,因此考虑到采用限IP地址的方法尽量做到公平公正,具体设计的框架图,如下图所示:

图3-1 模块总体框架图

3.2 基于JSP投票调查Web模块总体执行过程

基于B/S体系结构,以JSP为开发工具的Web投票调查模块的总体执行过程,如图所示:

图3-2 基于JSP投票调查的执行过程

3.3 JSP连接不同数据库的代码调试与实现

3.3.1 JSP连接Access数据库的代码调试与实现

(1) 创建表

配置一个ODBC数据源,数据源名称为vote1,创建lym表和IP表, IP表用来记录投票人的IP地址,目的是防止一个人无限制投票的现象。

表3-1 lym表

字段名称

数据类型

字段说明

name

文本 [主键]

被投票人姓名

count

数字

投票数

表3-2 IP表

投票数

数据类型

字段说明

IP

文本 [主键]

记录投票人IP地址

(2) 驱动器连接Access数据库代码

//架载桥接器

Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");

//与数据库建立连接

Connection con= DriverManager.getConnection (“jdbc:odbc: 数据源名,””,””);

//创建Statement类对象,连接到数据库并操作数据库数据

Statement sql=con.createStatement ();

//向数据库发送SQL语句

ResultSet rs=sql.executeQuery ("SELECT * FROM 表名");

3.3.2 JSP连接MySQL数据库的代码调试与实现

(1) 创建表

在MySQL数据库中创建vote数据库和lym、IP两个表,表的内容与Access数据库表中的内容一致。

(2) 驱动器连接MySQL代码

//架载桥接器

Class.forName ("com.mysql.jdbc.Driver");

//与数据库建立连接

Connection con= DriverManager.getConnection

("jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd);

//创建Statement类对象,连接到数据库并操作数据库数据

Statement sql=con.createStatement ();

//向数据库发送SQL语句

ResultSet rs=sql.executeQuery("SELECT * FROM 表名");

3.3.3 JSP连接SQL Server数据库的代码调试与实现

(1) 创建表

配置一个ODBC数据源,数据源名称为vote2,创建lym表和IP表, 表的内容也与Access数据库表中的内容一致。

(2)JSP连接SQL Server数据库代码

//架载桥接器

Class.forName ("com.Microsoft.jdbc.sqlserver.SQLServerdriver ");

//与数据库建立连接

Connection con= DriverManager.getConnection

(“jdbc: Microsoft: sqlserver://dbserverIP: 1433;databaseName=数据库名”, user, password);

//创建Statement类对象,连接到数据库并操作数据库数据

Statement sql=con.createStatement (); 

3.4 Web投票调查模块页面的实现

3.4.1 首页面的设计与实现

如图所示,此页面的制作、设计、美化是通过Macromedia Dreamweaver MX 2004来实现的。左边的框中分别添加了三个连接不同数据库的FLASH按钮,其设计的目的是为了实现基于JSP投票调查的WEB模块支持多种数据库,而给人一种直接明了的感觉。当点击左边相映的数据库,就会连接到投票调查页面。

图3-3 首页

3.4.2 Web模块投票调查页面和代码调试

    如图所示,此页面是当你点击首页中任意一个数据库按钮,而连接到的投票页面。这个页面中显示的记录是通过对后台数据库的操作来实现的。本人在后台数据库设计中,设计了相应的权限,因此只有权限的人才能对后台数据库的添加、修改和删除。

图3-4 投票调查页面

投票调查页面的核心代码调试如下:

//向数据库发送SQL语句

ResultSet =Statement.executeQuery ("SELECT * FROM 表名");

//从第一条记录开始检索,只到检索到匹配值为止

While (ResultSet.next ()) {String 字段名= ResultSet.getString (1);

Out. print ("<TD>"+字段名+"</TD>");

String s="<Input type=radio字段名=字段名value="+字段名+">";

3.4.3 限制IP地址的投票页面的实现与代码调试

如图所示,此页面的设计就是为了尽量得到投票数据的真实性,防止投票者在一台机子上特别是一个人出现重复投票的现象。当投票者在一台机子上投过票后,当他再次投票时,就没有了投票权限,因为此系统已经将投票者的IP地址记录到了数据库中。

图3-5 投票查看页面

限制IP地址的投票页面的核心代码调试如下:

<% Boolean vote=true;//决定用户是否具有投票权

String字段名="";字段名=request.getParameter ("字段名");

//得到投票人的IP地址

String IP=(String) request.getRemoteAddr ();

//首先查询IP表,判断该用户的IP地址是否已投过票

//如果IP表中存在与相匹配的IP地址,就不允许执行下列操作

ResultSet = Statement.executeQuery ("SELECT * FROM IP WHERE IP= "+"'"+IP+"'");

//将自己的IP地址写入数据库

ResultSet =Statement.executeQuery ("SELECT * FROM 表名 where字段名="+"'"+字段名+"'");

//将IP地址写入IP表

String to="insert into IP values "+"("+"'"+IP+"'"+")";

4 本模块设计过程中所遇到的问题

4.1环境的搭建与路径的配置问题

起初以为只要将数据库、TOMCAT安装上,再将JDBC驱动器安装到相应文件夹下面就行了。可问题就出现了,找了半天的原因,原来是环境配置时,路径太复杂;JDBC驱动器安装时选错了文件夹,因为lib文件夹比较多。后面又重安装了一遍,结果还是连不到数据库,就索性在C:\j2sdk1.4.2\libC:\tomcat\Tomcat 5.0\common\lib中和C:\tomcat\Tomcat 5.0\shared\lib

都安装上了。这样就总算将数据库连接上了。

4.2 Web页面出现乱码问题

向数据库中插入中文时,通过执行语句将数据库中的内容在Web页面显现出来时,通常会出现乱码问题。于是查了一些相关书籍,才总算解决了这个问题。

问题解决的方案是在<html>上面一行加入<%request.setCharacterEncoding(gd3212)%> 语句就可以了。

4.3 IP地址受限存在的问题

我们通过IP地址来防止一人通过一台计算机进行反复的投票,但不能有效的限制拨号上网的用户,因为拨号上网的用户的IP地址是动态分配的,用户可以重新拨号上网获得一个新的IP地址和同一个人在不同的机子上反复进行投票的现象。因此在这一方面还有待研究和完善。

4.4 连接数据库的问题

在连接数据库时出现的问题最多,因为问题的出现都是发生在与不同的数据库建立连接,而采用不同的架桥接器代码和驱动器,因此在连接一个数据库之前要对这个数据库做一个详细的了解。本人在连接MySQL数据库时,页面反馈的信心,出现连接的对象无可用资源,然后通过查找关于连接MySQL数据库的书籍,才发现桥接器代码写错了。

5 基于JSP投票调查的Web模块的发展前景   

基于JSP投票调查的WEB模块的实现是构建目前网站投票调查的一个重要资源,它基于JSP脚本语言技术具有广阔的发展前景。本文所提到的技术和实现方法是当前开发后台B/S的实用技术及方法。目前,对于基于JSP投票调查WEB模块还有很多值得研究,我们期望在实践中进一步地完善它。

6 结论

本模块的设计采用JSP开发工具,以三种常用数据库为例,简单的实现了Web投票调查模块支持多种数据库和提高访问速度的功能。由于JSP具有平台无关性,因此也实现了跨平台、可移植的功能。但金无足赤,基于JSP的开发技术不易上手,需要对其开发语言的学习和研究。另外在第一次访问*.jsp页面时,速度相对比较慢,但随后再次访问时,速度就相对比较快。

谢  辞

在我做毕业设计的过程中,感谢王亮亮老师,是他在百忙之中给予我耐心指导,使我的毕业设计得以顺利完成以及他认真负责的工作态度、严谨的治学作风使我受益非浅。感谢我同学们,在我设计制作过程中,给予了大量支持和帮助。感谢班主任魏星老师对我的关心以及新疆农业大学计算机与信息工程学院的领导、全体教师及全体工作人员。

参考文献:

[1] 刘剑.JSP网站开发与设计[J].电脑知识与技术,2005,(19).

[2] 丘凯伦.基于JSP技术的数据库应用[J].现代计算机,2005,(35).

[3] 赵宏胜.如何在Windows2000server下发布JSP页面[J].科技论坛,2005,(4).

[4] 王舜燕,彭利军.JSP应用系统中的数据绑定方法[N].武汉理工大学学报,2005,(4).

[5] 李媛,刘涤尘.一个使用Java Beans连接数据库的JSP应用[J].控制工程,2005,(1).

[6] 钟熙.基于JSP的空间元数据发布系统的设计与实现[N].测绘通报,2005,(5).

[7] 李兵元,薛超.JSP编程中用JAVABEAN连接ORACLE和SQLSERVER2000[J].新疆石油科技,2004,(4).

[8] 王永生.JSP、ASP与PHP的比较[J].软件开发,2004,(5).

[9] 左烨,黄上麝.JSP应用的安全问题研究[J].计算机工程,2004,(12).

[10] 陈欣,缪天鹏.基于JSP动态网站的建设[J].计算机与数学工程,2003,(4).

[11] 李湘江,邹筱梅.JSP技术的应用开发[J].情报科学,2002,(3).

[12] 王伍伶,靳丽敏,闫玉根.JSP与Web数据库的连接技术[J].河北工业科技,2002,(3).

[13] 齐鲲鹏,顾宏,唐达.JSP数据库连接技术在构建信息网站中的研究[J].控制工程,2002,(9).

[14] 柳永坡,刘雪梅,赵长海.JSP应用开发[J].软件工程,2005,(3)

[15] ZhuQiaoming ,ZhaoLei .A Simplified Database-Oriented Web[J].WuHan University Journal of Natural Sciences,2004,(9).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值