微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于网格的电子投票系统的应用设计

基于网格的电子投票系统的应用设计

时间:12-09 来源:互联网 点击:
3.3 系统实现特色

(1)JDBC连接数据库技术

在网格中实现该系统,如何操作数据库是不可避免要遇到的问题,目前有多种数据库连接技术,如CGI技术、WebAPI技术、RAD技术和JDBC技术等。通过分析,JDBC为所有数据库管理系统提供一种标准接口,可以为多种关系数据库提供统一访问,简单容易掌握,速度快。所以,选择了通过JDBC连接数据库和访问数据库,执行查询和提取数据等操作,部分代码如下:

public JDBCConnect ( ) {
try {Class.forName(url); //加载数据库驱动程序
conn=DriverManager.getConnection(url);} //建立连接
catch (Exception e) {
System.out.println (“JDBCConnect():”+e.getMessage());}}

(2)禁止重复投票

系统主要应用JSP的内置对象Application,与Session对象相比,Application对象的含义更加广泛。在使用Session对象时,各个客户端共享一个Session对象;而使用Application对象时,在同一个服务器中的JSP文件共享一个Application对象,除此之外,可以使用Application对象的getServerInfo()方法来获取JSP的版本信息和名称。

应用Cookie技术实现一个IP地址每周只能投一次票的功能。通过request.getRemoteHost()方法取得客户端的IP地址后,将其存放在Cookie对象中,并且通过cookie.setMaxAge(60*60*24*7)的方法设置存储时间。通过Cookie技术,可以防止在某一段时间内某个投票者重复使用同一IP地址重复投票。这种投票技术的特点是对重复投票得到了有效控制,而且可以记录投票者的IP地址,并可间接确定用户身份,因此该技术在网上被广泛使用。

注意,此系统禁止重复投票,一个IP地址每周只能投一次票,投票时,系统自动记录该主机IP地址,当学生代表在本周第二次投票时,系统给出相关提示信息。

实现投票的关键代码如下:

(1)使用JSP的内置对象Application
<% String id=request.getParameter(“id”);
if (id==null) {response.sendRedirect(“index.jsp”);}else {
String sql=“update tb_voteOneTime set number=number+
1 where id=′”+id+“′”;
connection.executeUpdate(sql);
connection.closeConnection();
application.setAttribute(“id”,id);
response.sendRedirect(“show.jsp”);}%>
(2)应用Cookie实现一个IP地址每周只能投一次票的功能
<jsp:useBean id=“connection” scope=“request” class=
“com.dao.JDBConnection”/>
<%@page import=“java.util.Date”%>
<%String IP=request.getRemoteHost();
Cookie [] cookies=request.getCookies();
boolean flag=true;
for (int i=0;i<cookies.length;i++) {
if (IP.equals(cookies[ i].getValue())) {flag=false;}}
if (flag){String id=request.getParameter(“id”);
String sqlVote=“update tb_VoteIP set number=number
  +1 where id=′”+id+“′”;
connection.executeUpdate(sqlVote);
connection.closeConnection();
Cookie cookie=new Cookie(“IP”,IP);
cookie.setMaxAge(60*60*24*7);
response.addCookie(cookie);
response.sendRedirect(“show.jsp”);
} else{out.print(“<script language=′JavaScript′>
alert(′一个IP地址每周只能投一次票′);
window.location.href=′index.jsp′;</script>”);}%>

3.4 安全性解决方案

一个安全实用的电子投票系统应该满足如下标准:

(1)民主性。只有合法的投票者才能投票,且只能在规定的时间段内投票。

(2)准确性。投票不能被中间机构或他人篡改、复制或删除时不被发现;无效的选票可以被及时发现从而不会被计入最终的统计结果。

(3)秘密性。选票的投出是匿名的,任何机构或个人不能确定投票者的投票内容,也不能确定选票的投票者。

(4)可证实性。投票者可以确定其投票被正确计算在最终结果中。任何参与者或其他观察监督者都可以核实最终结果的正确性。

(5)公平性。最终统计结果公布前,任何参与者都无法得知中间的选票统计信息,因为中间的选票统计信息可能会影响投票者的投票意向。

(6)简单性。投票者无需特别的设备和技术就可简单快速地完成投票;投票者无需到特别的地点进行投票;投票活动的组织进行应该简单且效率高。

本系统采用CA认证技术有效解决了投票过程的安全性问题。CA(Certificate Authority)认证中心是指用于证明某一主体的身份以及合法性的权威认证机构,由社会公认的具有法律效力的权威机构组成,或由某单位的权威部门组成。由CA中心给用户签发认证证书,证书中包含用户身份名称和验证密码等信息。投票中心存放投票数据,记录投票结果。

如果双方主体都有证书,而且都信任彼此的认证中心CA,则双方可相互明确彼此的身份,其采用的认证协议是SSL协议。在相互认证可以进行之前,双方首先要相信彼此的认证中心。实现过程中,要求双方都有彼此认证中心自身的证书,认证中心自身的证书中包含认证中心的公钥。这样才能确保双方由认证中心签署的证书具有合法性。

本文在网格环境中,设计开发出了安全有效的电子投票系统,给出了系统流程图,实现了实时性的跨Web服务器动态网页的创建。以JSP实现页面显示,JavaBean编写数据库连接,Servlet控制整个系统的流程,从而实现用户界面和数据库之间良好的交互,有效提高了系统的效率和性能。基于CA认证技术较好地解决了安全性问题,保证了投票者的合法性、公正性、真实性和有效性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top