日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于網(wǎng)格的電子投票系統(tǒng)

出處:zhofly 發(fā)布于:2010-09-25 09:21:33

     摘  要: 利用網(wǎng)格、JSP技術(shù)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)禁止重復(fù)投票的電子投票系統(tǒng)。在網(wǎng)格環(huán)境中,針對(duì)該系統(tǒng)重點(diǎn)討論了JDBC連接MySql數(shù)據(jù)庫(kù)技術(shù)、Servlet技術(shù)和Cookie技術(shù)等,解決了基于MVC模式開發(fā)應(yīng)用系統(tǒng)的一些難題。同時(shí),利用CA技術(shù)解決了基于網(wǎng)格的電子投票系統(tǒng)的安全性問題。

  網(wǎng)格是利用互聯(lián)網(wǎng)把地理上廣泛分布的各種資源(計(jì)算資源、存儲(chǔ)資源、軟件資源、數(shù)據(jù)資源、信息資源等)連成一個(gè)邏輯整體,就像一臺(tái)超級(jí)計(jì)算機(jī)一樣,為用戶提供一體化信息和應(yīng)用服務(wù),虛擬組織終實(shí)現(xiàn)在這個(gè)虛擬環(huán)境下的資源共享和協(xié)同工作,徹底消除資源“孤島”,充分地實(shí)現(xiàn)信息共享。

  本文借助成熟的JSP、網(wǎng)格和CA等技術(shù),實(shí)現(xiàn)了網(wǎng)格環(huán)境中的學(xué)生電子投票系統(tǒng)。該系統(tǒng)通過學(xué)生對(duì)教師授課效果的投票來*價(jià)教師的教學(xué)質(zhì)量,以及教師受學(xué)生歡迎的程度。系統(tǒng)在設(shè)計(jì)中遇到了如何實(shí)現(xiàn)禁止重復(fù)投票、怎樣處理投票結(jié)果、如何解決安全性等問題。通過解決這些問題,總結(jié)出使用Cookies可以解決禁止重復(fù)投票,在同一個(gè)服務(wù)器中的JSP文件要共享一個(gè)Application對(duì)象等經(jīng)驗(yàn),這對(duì)網(wǎng)格環(huán)境中JSP開發(fā)有較高的參考價(jià)值。該系統(tǒng)將用戶在線填寫的投票數(shù)據(jù)存儲(chǔ)在后臺(tái)MySql投票庫(kù)中,通過實(shí)時(shí)地讀取數(shù)據(jù),以可視化的結(jié)果實(shí)時(shí)展示給用戶。它與傳統(tǒng)投票方式相比,具有高效率和低成本的優(yōu)點(diǎn),能夠快速準(zhǔn)確地統(tǒng)計(jì)出投票結(jié)果。但是大部分網(wǎng)上投票系統(tǒng)一直都沒有解決投票的有效性和安全性問題。因此,本文給出了網(wǎng)格中該系統(tǒng)的安全性解決方案。

  1 網(wǎng)格技術(shù)

  網(wǎng)格技術(shù)利用互聯(lián)網(wǎng),把分散在不同地理位置的計(jì)算機(jī)組織成一個(gè)虛擬的超級(jí)計(jì)算機(jī),其中每一臺(tái)參與計(jì)算的計(jì)算機(jī)就是一個(gè)節(jié)點(diǎn),而整個(gè)計(jì)算是由成千上萬個(gè)節(jié)點(diǎn)組成的一張網(wǎng)格,從而實(shí)現(xiàn)即插即用的效果。簡(jiǎn)單地講,它是把整個(gè)網(wǎng)絡(luò)整合成一臺(tái)巨大的超級(jí)計(jì)算機(jī),實(shí)現(xiàn)各種資源的全面共享。網(wǎng)格具有如下特點(diǎn):

  (1)異構(gòu)性。網(wǎng)格環(huán)境由分布在廣域網(wǎng)上不同管理域的各種不同類型的計(jì)算資源組成,并且每類資源有各自不同的屬性。

  (2)分布與共享。分布是網(wǎng)格硬件在物理上的特征,而共享是在網(wǎng)格軟件支持下實(shí)現(xiàn)的邏輯特征。

  (3)自相似性。網(wǎng)格的局部和整體之間存在著一定的相似性。局部在許多方面具有全局的某些特征,而全局的特征在局部中也有一定的體現(xiàn)。

  (4)動(dòng)態(tài)多樣性。不僅網(wǎng)格環(huán)境下的一些資源本身具有動(dòng)態(tài)性,而在整個(gè)網(wǎng)格環(huán)境下,隨著計(jì)算資源、數(shù)據(jù)資源不斷加入和撤銷、故障等原因,網(wǎng)格系統(tǒng)下的局部環(huán)境也在動(dòng)態(tài)地改變著。在網(wǎng)格的設(shè)計(jì)與實(shí)現(xiàn)時(shí),必須考慮到新資源能夠很自然地加入到網(wǎng)格中,與原來的資源融合在一起,共同發(fā)揮作用。

  (5)自治性與管理的多重性。網(wǎng)格環(huán)境下的局部資源既屬于個(gè)人或機(jī)構(gòu),由個(gè)人對(duì)資源作相應(yīng)的管理和維護(hù),又要在網(wǎng)格系統(tǒng)作整體部署時(shí),由網(wǎng)格管理員根據(jù)系統(tǒng)任務(wù)情況統(tǒng)一調(diào)度網(wǎng)格環(huán)境下的資源。

  2 數(shù)據(jù)庫(kù)連接技術(shù)JDBC

  Java中連接數(shù)據(jù)庫(kù)的技術(shù)之一是JDBC,它是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠用純Java API編寫數(shù)據(jù)庫(kù)應(yīng)用程序。

  通常在使用基于數(shù)據(jù)庫(kù)的Web應(yīng)用時(shí),JDBC工作步驟為:(1)與數(shù)據(jù)庫(kù)建立連接;(2)進(jìn)行SQL語句操作,取出數(shù)據(jù);(3)斷開數(shù)據(jù)庫(kù)連接。

  Connection con=DriverManager.getConnection(“url”);

  Statement stmt=con.createStatement();

  ResultSet rs=stmt.executeQuery(“SELECT a,b,c FROM Table1”);

  while (rs.next()) {

  int x=rs.getInt(“a”);

  String s=rs.getString(“b”);

  float f=rs.getFloat(“c”);}

  3 基于MVC模式的在線投票系統(tǒng)

  隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)上投票系統(tǒng)逐漸成為人們生活中的必不可少的一部分,如2008年奧運(yùn)投票系統(tǒng)、網(wǎng)上流行的娛樂投票系統(tǒng)等。各種各樣的投票系統(tǒng)日益發(fā)展,充分調(diào)動(dòng)了人們參與活動(dòng)的積極性。

  3.1 MVC(Model-View-Controller)模式

  使用MVC模式(如圖1)設(shè)計(jì)Web應(yīng)用程序非常有效。其結(jié)合了JSP和Servlet兩種技術(shù),Servlet可充當(dāng)Controller的角色,JSP可以充當(dāng)View層的角色,即采用JSP顯示頁面內(nèi)容,但它并不處理任何的業(yè)務(wù)邏輯,而采用Servlet進(jìn)行數(shù)據(jù)處理以生成動(dòng)態(tài)內(nèi)容。


  MVC模式具有更清晰的頁面表現(xiàn)、清楚的開發(fā)者角色劃分,可以充分利用開發(fā)小組中的界面設(shè)計(jì)人員。同時(shí),增加了代碼的重用率,使軟件的可維護(hù)性、可擴(kuò)展性、靈活性和封裝性大大提高。

  3.2 系統(tǒng)流程圖

  基于網(wǎng)格的電子投票系統(tǒng),設(shè)計(jì)非常直觀,用戶很容易看出投票的情況,并且只有合法用戶才能進(jìn)行有效投票。該系統(tǒng)分為多個(gè)功能模塊,主要有以下功能:用戶登錄、校驗(yàn)、增加新投票項(xiàng)目、修改投票項(xiàng)目、刪除投票項(xiàng)目、投票、查看投票結(jié)果、退出系統(tǒng)。本投票系統(tǒng)還具有防止重復(fù)投票的功能。系統(tǒng)流程圖如圖2。


  3.3 系統(tǒng)實(shí)現(xiàn)特色

  (1)JDBC連接數(shù)據(jù)庫(kù)技術(shù)

  在網(wǎng)格中實(shí)現(xiàn)該系統(tǒng),如何操作數(shù)據(jù)庫(kù)是不可避免要遇到的問題,目前有多種數(shù)據(jù)庫(kù)連接技術(shù),如CGI技術(shù)、WebAPI技術(shù)、RAD技術(shù)和JDBC技術(shù)等。通過分析,JDBC為所有數(shù)據(jù)庫(kù)管理系統(tǒng)提供一種標(biāo)準(zhǔn)接口,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問,簡(jiǎn)單容易掌握,速度快。所以,選擇了通過JDBC連接數(shù)據(jù)庫(kù)和訪問數(shù)據(jù)庫(kù),執(zhí)行查詢和提取數(shù)據(jù)等操作,部分代碼如下:

  public JDBCConnect ( ) {

  try {Class.forName(url);        //加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序

  conn=DriverManager.getConnection(url);}     //建立連接

  catch (Exception e) {

  System.out.println (“JDBCConnect():”+e.getMessage());}}

  (2)禁止重復(fù)投票

  系統(tǒng)主要應(yīng)用JSP的內(nèi)置對(duì)象Application,與Session對(duì)象相比,Application對(duì)象的含義更加廣泛。在使用Session對(duì)象時(shí),各個(gè)客戶端共享一個(gè)Session對(duì)象;而使用Application對(duì)象時(shí),在同一個(gè)服務(wù)器中的JSP文件共享一個(gè)Application對(duì)象,除此之外,可以使用Application對(duì)象的getServerInfo()方法來獲取JSP的版本信息和名稱。

  應(yīng)用Cookie技術(shù)實(shí)現(xiàn)一個(gè)IP地址每周只能投票的功能。通過request.getRemoteHost()方法取得客戶端的IP地址后,將其存放在Cookie對(duì)象中,并且通過cookie.setMaxAge(60*60*24*7)的方法設(shè)置存儲(chǔ)時(shí)間。通過Cookie[4]技術(shù),可以防止在某一段時(shí)間內(nèi)某個(gè)投票者重復(fù)使用同一IP地址重復(fù)投票。這種投票技術(shù)的特點(diǎn)是對(duì)重復(fù)投票得到了有效控制,而且可以記錄投票者的IP地址,并可間接確定用戶身份,因此該技術(shù)在網(wǎng)上被廣泛使用。

  注意,此系統(tǒng)禁止重復(fù)投票,一個(gè)IP地址每周只能投票,投票時(shí),系統(tǒng)自動(dòng)記錄該主機(jī)IP地址,當(dāng)學(xué)生代表在本周第二次投票時(shí),系統(tǒng)給出相關(guān)提示信息。

  實(shí)現(xiàn)投票的關(guān)鍵代碼如下:

  (1)使用JSP的內(nèi)置對(duì)象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)應(yīng)用Cookie實(shí)現(xiàn)一個(gè)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(′一個(gè)IP地址每周只能投票′);

  window.location.href=′index.jsp′;</script>”);}%>

  3.4 安全性解決方案

  一個(gè)安全實(shí)用的電子投票系統(tǒng)應(yīng)該滿足如下標(biāo)準(zhǔn)[5]:

  (1)*性。只有合法的投票者才能投票,且只能在規(guī)定的時(shí)間段內(nèi)投票。

  (2)準(zhǔn)確性。投票不能被中間機(jī)構(gòu)或他人篡改、復(fù)制或刪除時(shí)不被發(fā)現(xiàn);無效的選票可以被及時(shí)發(fā)現(xiàn)從而不會(huì)被計(jì)入終的統(tǒng)計(jì)結(jié)果。

  (3)秘密性。選票的投出是匿名的,任何機(jī)構(gòu)或個(gè)人不能確定投票者的投票內(nèi)容,也不能確定選票的投票者。

  (4)可證實(shí)性。投票者可以確定其投票被正確計(jì)算在終結(jié)果中。任何參與者或其他觀察監(jiān)督者都可以核實(shí)終結(jié)果的正確性。

  (5)公平性。終統(tǒng)計(jì)結(jié)果公布前,任何參與者都無法得知中間的選票統(tǒng)計(jì)信息,因?yàn)橹虚g的選票統(tǒng)計(jì)信息可能會(huì)影響投票者的投票意向。

  (6)簡(jiǎn)單性。投票者無需特別的設(shè)備和技術(shù)就可簡(jiǎn)單快速地完成投票;投票者無需到特別的地點(diǎn)進(jìn)行投票;投票活動(dòng)的組織進(jìn)行應(yīng)該簡(jiǎn)單且效率高。

  本系統(tǒng)采用CA技術(shù)有效解決了投票過程的安全性問題。CA(Certificate Authority)[6]中心是指用于證明某一主體的身份以及合法性的權(quán)威機(jī)構(gòu),由社會(huì)公認(rèn)的具有法律效力的權(quán)威機(jī)構(gòu)組成,或由某單位的權(quán)威部門組成。由CA中心給用戶簽發(fā)證書,證書中包含用戶身份名稱和驗(yàn)證密碼等信息。投票中心存放投票數(shù)據(jù),記錄投票結(jié)果。

  如果雙方主體都有證書,而且都信任彼此的中心CA,則雙方可相互明確彼此的身份,其采用的協(xié)議是SSL協(xié)議。在相互可以進(jìn)行之前,雙方首先要相信彼此的中心。實(shí)現(xiàn)過程中,要求雙方都有彼此中心自身的證書,中心自身的證書中包含中心的公鑰。這樣才能確保雙方由中心簽署的證書具有合法性。

  本文在網(wǎng)格環(huán)境中,設(shè)計(jì)開發(fā)出了安全有效的電子投票系統(tǒng),給出了系統(tǒng)流程圖,實(shí)現(xiàn)了實(shí)時(shí)性的跨Web服務(wù)器動(dòng)態(tài)網(wǎng)頁的創(chuàng)建。以JSP實(shí)現(xiàn)頁面顯示,JavaBean編寫數(shù)據(jù)庫(kù)連接,Servlet控制整個(gè)系統(tǒng)的流程,從而實(shí)現(xiàn)用戶界面和數(shù)據(jù)庫(kù)之間良好的交互,有效提高了系統(tǒng)的效率和性能?;贑A技術(shù)較好地解決了安全性問題,保證了投票者的合法性、公正性、真實(shí)性和有效性。


  
關(guān)鍵詞:基于網(wǎng)格的電子投票系統(tǒng)電子投票

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見,您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!