企业电子投票系统 【源码+文档】

目 录

[++++第++++ ++++1++++ ++++部分++++ ++++概++++ ++++述++++](#第1部分 概 述)

[++++第++++ ++++2++++ ++++部分++++ ++++分析部分++++](#第2部分 分析部分)

++++2++++ ++++.++++ ++++1++++ ++++.功能需求++++

[++++第++++ ++++3++++ ++++部分++++ ++++系统设计++++](#第3部分 系统设计)

++++3++++ ++++.++++ ++++1++++ ++++.功能模块设计++++

++++3++++ ++++.++++ ++++2++++ ++++.数据库的设计++++

[++++第++++ ++++4++++ ++++部分++++ ++++系统开发++++](#第4部分 系统开发)

++++4++++ ++++.++++ ++++1++++ ++++.数据库++++

++++4++++ ++++.++++ ++++1++++ ++++.++++ ++++1++++ ++++.创建数据库++++

++++4++++ ++++.++++ ++++1++++ ++++.++++ ++++2++++ ++++.创建表++++

++++4++++ ++++.++++ ++++1++++ ++++.++++ ++++3++++ ++++.连接数据库++++

++++4++++ ++++.++++ ++++2++++ ++++.功能的实现++++

++++4++++ ++++.++++ ++++3++++ ++++.问题及解决++++

[++++第++++ ++++5++++ ++++部分++++ ++++运行部分++++](#第5部分 运行部分)

++++5++++ ++++.++++ ++++1++++ ++++.系统的安装++++

++++5++++ ++++.++++ ++++2++++ ++++.系统的使用++++

[++++第++++ ++++6++++ ++++部分++++ ++++附++++ ++++录++++](#第6部分 附 录)

[++++附录++++ ++++1++++ ++++运行环境++++](#附录1 运行环境)

++++1.1++++ ++++硬件要求++++

++++1.2.++++ ++++软件要求++++

[++++附录++++ ++++2++++ ++++设计代码++++](#附录2 设计代码)

++++1.vote.jsp++++

++++2.result.jsp++++

++++3.add.jsp++++

++++4.del.jsp++++

++++5.display.jsp++++

++++6.modify.jsp++++

[++++7. DBConnect.java++++](#7. DBConnect.java)

摘要

J2EE已经成为开发商创建电子商务应用的事实标准。正是认识到J2EE平台作为一种可扩展的、全功能的平台,可以将关键的企业应用扩展到任何Web浏览器上并可适合多种不同的Internet数据流、可连接到几乎任何一种传统数据库和解决方案、使企业经理根据多家企业所提供的产品和技术开发和部署最佳的解决方案进而降低开发网络化应用的费用和复杂性这一巨大优势,很多厂家都表示将对J2EE给予支持,并将J2EE技术作为大型BtoB市场和海量交易处理的安全稳定的端到端平台。已经有许多家厂商取得了Sun公司的许可,如BEA System、Sybase、Oracle以及Fujitsu等等。Sun还将推出适用于Linux的J2EE。无疑,J2EE为企业勾勒了一幅具有更强的伸缩性、开放性、安全性且简单易用的未来应用的蓝图。

关键字:J2EE,J2EE平台,企业应用,Web浏览器

1 部分

J2EE是一种利用Java 2平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、到处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。

J2EE体系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技术。这些技术的出现给电子商务时代的WEB应用程序的开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。完成这个步骤可以形成一个主要里程碑基线。

J2EE架构是当前主流的架构之一,目前大多数企业采用J2EE技术的结构设计与解决方案。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

随着Internet和企业计算在90年代的腾飞,HTTP、HTML和Java平台逐渐演变成为针对客户机计算的标准,这带动了服务器上集中商业逻辑的发展以及电子商务的普及。在服务器端,CGI(Common Gateway Interface,公共网关接口)、NSAPI(Netscape Server API)和ISAPI(Internet Server API)等多种编程和连通性模型日趋流行,极大地增加了编程和维护的工作量。

5年前,Sun公司的Java软件就以其提供的跨平台应用程序开发与配置手段震撼了整个Web世界。几年来,Java技术从一个网站工具发展到了可驾驭从智能卡、小型消费类设备到大型数据中心服务器等一系列系统的端到端Java 2平台,它使软件开发商、服务提供商和设备制造商更容易抢占市场机遇。

目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。

Sun公司在企业版中增加了一整套核心企业应用程序编程界面,而所有这些界面均为标准的模块化组件。J2EE技术还为这些组件提供一整套企业服务,通过自动化的方式完成应用程序开发中的诸多耗时且费力的艰难工作,为用户提供一种可创建广泛兼容的企业解决方案而无需进行复杂编程的平台。利用这一优势可以方便地开发出高质量的、适合企业使用的应用程序,还可极大地减少产品研发上市时间、成本和风险。

企业级应用是指那些为商业组织、大型企业而创建并部署的解决方案及应用。这些大型企业级应用的结构复杂,涉及的外部资源众多、事务密集、数据量大、用户数多,有较强的安全性考虑。

当代的企业级应用决不可能是一个个的独立系统。在企业中,一般都会部署多个彼此连接的、相互通过不同集成层次进行交互的企业级应用,同时这些应用又都有可能与其它企业的相关应用连接,从而构成一个结构复杂的、跨越Intranet和Internet的分布式企业应用群集。其中,连接企业内部各种应用的技术称为EAI(Enterprise Application Integration, 企业应用集成),而连接企业间各种应用的技术称为B2BI(Business-To-Business Integration, 企业间集成),采用EAI、B2BI技术及早先的N层体系架构就是当今企业级应用的最大特征。

此外,作为企业级应用,其不但要有强大的功能,还要能够满足未来业务需求的变化,易于升级和维护。

企业电子投票系统主要用来统计网站用户对某个主题或热门话题的意见。决策者通过这些统计数据做出相应的决策。企业电子投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。他可以设计这样一个投票主题:你认为该网站如何?(A.很好

B.一般C.不好)然后提供给用户进行投票。

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

对于该设计报告还有什么不当之处请见谅,同时也希望你能多提宝贵意见。我会认真参考您的意见,修改和完善该系统。

术语列表:

JSP:(Java Server Pages),JSP是一种基于Java的技术,用来产生跨平台和跨Web服务器的动态页面。

JDBC:(Java DataBase Connectivity),Java数据库连接。它主要是一套让你访问数据库的API,程序人员可以利用JDBC API来执行SQL语句。

Servlet : Servlet可以称之为"服务器小程序",与Java application不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML页进行交互。

JavaBeans ****:****JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程序。在Java模型中,组件可以修改或与其他组件组合以生成新组件或完整的应用程序。

HTML (Hypertext Markup Language)超文本标记语言,它是组织多媒体文档的重要语言,它不仅用来编写Web网页,而且可以使用它来制作光盘上的多媒体节目。HTML可用来编排文档、创建列表、建立链接等等。

XML:(eXtensible Markup Language)可扩展标记语言,它是一种具有数据描述功能(Meta-language)、高度结构性及可验证性的语言。

SQL:(Structured Query Language),结构化查询语言。SQL语言地任务就是与各种数据库建立关系,SQL语言是关系型数据库的标准语言,大多数关系型数据库管理系统都支持SQL语言并采用了SQL的语言标准。

MySQL:MySQL是一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。按照使用又可以分为DML(Data Manipulation Language),即数据操作语言和DDL(Data Definition Language)。

2 部分 分析部分

2 1 .功能需求

该电子投票平台的设计是一个用来进行投票统计的系统软件,在投票之前需要进行身份验证。投票人经过验证后可以用浏览和查询的方式了解个候选人的介绍信息,根据候选人的介绍信息决定将选票投向哪位候选人。具体要实现以下功能:

投票人主要功能需求:

①投票人的投票方式:

输入要选举的候选人的编号,即可完成投票。

②投票人了解候选人的方式:

浏览候选人列表,输入序号查询候选人介绍。

管理人员的主要功能

①初始化候选人信息:

在系统投入使用前需要先将需要投票选举的候选人信息录入系统中,以便投票和查看。这个功能由管理员完成。管理员的初始化工作就是将候选人的序号、姓名和简介录入系统。

②浏览候选人简介:

为随时掌握候选人的信息,以便进行修改,管理员有权浏览候选人简介。浏览的顺序按照候选人序号即可。

③修改候选人简介:

当系统更新或候选人信息有所变化时,输入候选人序号,对信息进行修改。

④查询投票情况:

管理员有权查询当前各个候选人得票情况,以便得出最终被选中的候选人信息。

⑤清除投票信息:

当投票过程结束后,管理员选择清除投票信息既可清除系统中所有候选人的票数,使之归零。

⑥安全管理:

管理员可以对投票人信息进行管理,投票人只有用管理员规定的用户名和密码才能进入系统进行投票。管理员还可以更改用户名、密码和权限,并对投票人信息进行增加、删除、查询、排序和初始化等操作。通过对用户的需求调查分析,可以概括出用户的功能需求如下:单选投票、多选投票、查看投票、投票设计。

  1. 单选投票:用户只能从多个选项中选取一项进行投票。
  2. 多选投票:用户可以从多个选项中选取多项进行投票。
  3. 查看投票:提供用户查看当前投票情况,投票结果以条形图显示。
  4. 投票设计:管理员可以设计不同的投票主题,及投票主题的内容供用户进行投票。投票

设计又包括以下功能需求:增加主题、删除主题、查看主题、修改主题。

3 部分 系统设计

3 1 .功能模块设计

通过对功能需求进行分析和概括得到如图所示的系统功能模块图:

3 2 .数据库的设计

该系统的数据库采用MySQL,根据投票系统功能设计的要求,可以列出以下数据项和数据结构:

  1. 投票表:存放投票信息,数据项包括:序号、标识、选项类型、投票主题、投票选项内容、得票数。

4 部分 系统开发

4 1 .数据库

4 1 1 .创建数据库

CREATE DATABASE db70019618;

4 1 2 .创建表

创建数据库中用到的投票表:

CREATE TABLE vote

(

id INT NOT NULL AUTO_INCREMENT,

flag int,

optType int,

question CHAR(255),

optContent CHAR(255),

number INT,

PRIMARY KEY(id),

);

数据库创建后的结构图如下:

4 1 3 .连接数据库

该系统使用了MySQL的JDBC驱动程序来连接数据库。因为对数据库的访问,在整个系统中比较频繁,所以我将对数据库的操作写成一个DBConnect的类,通过该类来连接数据库和访问数据库。

//部分代码如下

public DBConnect() {

try {

//加载数据库驱动程序

Class.forName(sDBDriver);

//建立连接

conn = DriverManager.getConnection(sConnStr);

}

catch (Exception e) {

System.out.println("DBConnect():" + e.getMessage());

}

}

4 2 .功能的实现

投票流程图

该流程图已经包含了企业电子投票系统的制作的主要方法。下面的工作实际上就是按照该流程图,写出具体的代码。在附录2 设计代码中有我开发的代码,并附有注释。所以在这里我就不展开介绍每一个功能的开发过程。

4 3 .问题及解决

这部分应该写在开发中遇到了哪些问题,如何解决等。

5 部分 运行部分

5 1 .系统的安装

该系统我在j2sdk1.4.1_01+resin-2.1.9+MySQL-4.0.12-nt环境下测试通过:

安装步骤:

该系统需要JSP运行环境和MySQL数据库,如果服务器还没有搭建的话请先搭建。

1.把vote、WEB-INF(vote文件夹存放的是.jsp文件,WEB-INF存放的是该系统使用到的一些.class文件)文件夹上传到你的主机目录。

2.修改DBConnect.java里连接MySQL数据库的IP、用户名和密码为你自己的IP,user, password修改编译之后放到WEB-INF\classes\目录下面。

3.请创建数据库db70019517,然后使用mysql db70019517<vote.sql脚本创建该数据库使用到的表。(脚本存放的路径vote\vote.sql)

4.然后在浏览器输入URL:

(例如这是我的运行方法:http://127.0.0.1:8080/vote/index.jsp)。

5 2 .系统的使用

为了直观,在这里我将主要通过程序运行截图来介绍该投票系统的使用。

  1. 在浏览器地址栏里输入企业电子投票系统的URL后,将进入企业电子投票系统的首页。在首页中显示了该系统的操作。
  1. 在首页中点击你所要进行的操作,即可打开相应的页面。如点击"单选投票"链接即可打开单选投票页面。
  1. 在首页中点击"多选投票"链接,打开多选投票页面。
  1. 在首页中点击"在线投票"链接后,可以查看在线投票的结果。
  2. 在首页中点击"投票设计"链接后,即可打开投票设计中的"增加主题",同时你会看到投票设计中的其它几项功能:删除主题、查看主题、修改主题、返回首页。增加主题的方法如下图所示:
  1. 在投票设计中点击"删除主题"链接后,即可打开删除主题页面。如果你要删除某个主题以及其选项,只需在文本框中输入其ID号即可。(如果你不知道待删除主题的ID号你可以首先点击"查看主题"查看其ID号。
  1. 在投票设计中点击"查看主题"链接后,即可打开查看主题页面。
  1. 在投票设计中点击"修改主题"链接后,即可打开修改主题页面。如果你要修改某个主题以及其选项,只需在文本框中输入其主题名即可。(如果你不知道待修改主题的主题名你可以首先点击"查看主题"查看其主题名并复制主题名,然后将其粘贴到修改主题名的文本框中,点查询即可打开相应的主题及其选项。

6 部分

附录 1 运行环境

1.1 硬件要求

|---------|-----------------------|
| CPU | 使用586或更高级别的处理器 |
| 内存 | 64MB及其以上 |
| 硬盘 | 500MB以上(根据不同的服务器要求不同) |
| 其他计算机设备 | 网卡等联网设备 |

1.2. 软件要求

要使用JSP,在服务器端和客户端都必须有对应的运行环境。服务器主要是Servlet兼容的Web服务器,客户端主要是浏览器。

由于Java具有跨平台的特点,所以只要能够安装JDK,就能在此安装JSP服务器。JSP服务器能够运行在目前绝大多数的操作系统上,目前在普通用户中用到的系统绝大多数为Windows系列和UNIX系列。

参考文献

[1].《SQL Server数据库原理及应用教程》编著:张莉、王强、赵文、董莉;清华大学出版社。

[2].《JSP编程技术与应用》主编:方逵;副主编:许向阳、李建军、高明;高等教育出版社。

[3].《JSP网站编程教程》主编:屈辉立、陈可明、石武信;北京希望电子出版社

[4].《Java网络编程实例教程》主编:姜利群;清华大学出版社、北京交通大学出版社。

[5].《Tomcat与Java Web开发技术详解》主编:孙卫琴、李洪成;电子工程出版社

相关推荐
乘风破浪的咸鱼君2 小时前
java线程共享模型之管程(synchronized原理、wait-notify、park方法)
java
咖猫2 小时前
Google guava 最佳实践 学习指南之08 `BiMap`(双向映射)
java·开发语言·guava
娶个名字趴2 小时前
Redis(2)常用命令
java·数据库·redis·缓存
滿2 小时前
处理错误的两种方式:try...catch 与 then...catch
java·开发语言
Ttang233 小时前
Tomcat原理(4)——尝试手动Servlet的实现
java·开发语言·servlet·java-ee·tomcat·intellij-idea
lzz的编码时刻3 小时前
Java 8 Optional 详细使用教程-优雅解决NPE
java
计算机毕设指导63 小时前
基于Springboot林业产品推荐系统【附源码】
java·开发语言·spring boot·后端·mysql·spring·intellij-idea
CQU_JIAKE3 小时前
12.8&12.9[java exp4][debug]跨域问题原因详解
java·开发语言
南宫生4 小时前
力扣-图论-15【算法学习day.65】
java·学习·算法·leetcode·图论
洛嘚4 小时前
@FeignClient用于Nacos微服务间的接口调用
java·服务器