• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于 Struts架構(gòu)的在線投票系統(tǒng)的設(shè)計與實現(xiàn)

      2014-02-28 03:01:55蔣晨琛來學(xué)偉
      關(guān)鍵詞:列表頁面選項

      蔣晨琛 來學(xué)偉

      (三門峽職業(yè)技術(shù)學(xué)院 信息傳媒學(xué)院,河南 三門峽 472000)

      基于 Struts架構(gòu)的在線投票系統(tǒng)的設(shè)計與實現(xiàn)

      蔣晨琛 來學(xué)偉

      (三門峽職業(yè)技術(shù)學(xué)院 信息傳媒學(xué)院,河南 三門峽 472000)

      利用 Struts2、Spring 和 Hibernate 技術(shù)實現(xiàn)了在線投票系統(tǒng),詳細介紹了利用框架技術(shù)實現(xiàn)動態(tài)網(wǎng)站的創(chuàng)建和訪問數(shù)據(jù)庫的方法和技巧,并在設(shè)計過程中采用了 Struts 2 和 Hibernate 及 Spring 相結(jié)合的技術(shù),此方法對于創(chuàng)建基于 web的應(yīng)用系統(tǒng)具有很好的借鑒作用。

      在線投票系統(tǒng);sturts 2;Hibernate

      引言

      現(xiàn)在國內(nèi)外信息化建設(shè)已經(jīng)進入基于 Web應(yīng)用為核心的階段,而框架是一套面向企業(yè)應(yīng)用的體系結(jié)構(gòu),它不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)框架,其包括許多組件,主要可簡化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全性與再用價值。 隨著因特網(wǎng)的迅猛發(fā)展,在線投票系統(tǒng)已經(jīng)在互聯(lián)網(wǎng)的功能模塊和應(yīng)用變得越來越普遍。無論是在新聞發(fā)布網(wǎng)站或其他大型門戶網(wǎng)站直銷,在線投票系統(tǒng)都是強大的,而且起著不可替代的作用。 它可以很好的把用戶和互聯(lián)網(wǎng)連接起來,從而達到資源共享的目的。[1]文 中設(shè)計與實現(xiàn) 了基于 struts2 框架技 術(shù)地在線投票系統(tǒng),該系統(tǒng)建立一個集 B/S 結(jié)構(gòu)和先進的 struts2 框架技術(shù)為一體的,具有多層次用戶的、安全的網(wǎng)上能夠在線投票的系統(tǒng)。

      1 系統(tǒng)設(shè)計目標(biāo)

      在線投票系統(tǒng)通過 Internet向不同用戶提供服務(wù),對于普通用戶應(yīng)該具有提供投票,顯示投票的結(jié)果,對于管理員用戶應(yīng)該具有發(fā)布新投票、查詢投票以 及 投 票 的 后 臺 管 理 功 能 。 使 用 Struts2 和Hibernate 及 Spring 編寫的在線投票系統(tǒng)要實現(xiàn)如下功能:

      (1)用戶注冊和登錄。 系統(tǒng)要求所有的用戶必須登錄,才能使用系統(tǒng)。若不是注冊用戶則要注冊后才可以登錄使用投票系統(tǒng)。登錄成功后再進入投票列表頁面,登錄失敗則在登錄頁面中顯示失敗原因。

      (2)發(fā)布新投票。 用戶進入系統(tǒng)后,可進行各種操作,在投票列表頁面中,單擊“添加新投票”超鏈接,進入添加新投票頁面,增加新投票。 如果新投票發(fā)布成功,則調(diào)轉(zhuǎn)至成功頁面,如果失敗則顯示相應(yīng)的報錯信息。

      (3)完成投票。 在投票列表頁面,單擊“我要參與”超鏈接,進入投票頁面,選擇選項單擊“投票”按鈕,完成投票,投票成功后,頁面跳轉(zhuǎn)至投票成功頁面。

      (4)查看投票結(jié)果。 在投票列表頁面單擊投票內(nèi)容標(biāo)題超鏈接或者在投票成功后單擊“返回查看投票結(jié)果”超鏈接,查看投票結(jié)果。

      (5)維護投票。 在投票列表頁面中單擊“維護”超鏈接,進入管理頁面,在管理頁面中,選擇要維護的投票內(nèi)容,單擊“維護”超鏈接,修改投票內(nèi)容,單擊“確定”按鈕,提交修改后的投票內(nèi)容,修改成功頁面跳轉(zhuǎn)到成功頁面,失敗則提示相關(guān)信息。

      (6)投票查詢。 在投票列表頁面輸入查詢關(guān)鍵字,單擊“搜索”按鈕,即可獲得查詢結(jié)構(gòu)。

      2 技術(shù)選擇

      本系統(tǒng) 選 取了 B/S(瀏 覽 器/服 務(wù) 器 )模 式 的 體系結(jié)構(gòu) , 使用 Struts2+Spring+Hibernate+Ajax 整合開發(fā),Struts2 為控制層,Spring 為業(yè)務(wù)層,Hibernate

      為持久層。 以 SQLServer2008 為數(shù)據(jù)庫管理系統(tǒng)的開發(fā)方案, 用戶使用瀏覽器完成人機交互,JSP頁面和支持 JSP 處理的 Web 服務(wù)器共同完成了該系統(tǒng)的功能。

      2.1 struts2 框架技術(shù)

      Struts2 是 java 領(lǐng) 域的 一 個 開 源 MVC 框 架 。框架設(shè)計的目標(biāo)貫穿整個開發(fā)周期,從開發(fā)到發(fā)布, 包括維護的整個過程。 Struts2 在 Struts1 和WebWork 的基 礎(chǔ) 上發(fā)展而來, 結(jié) 合了 Struts1 和WebWork 的優(yōu) 點 。 盡 管 Struts2 取名自 Struts1,但其核心思想?yún)s來源于 WebWork。 Struts 2 還對其 他 框 架 下 開 發(fā) 的 程 序 提 供 了 很 好 的 兼 容 性[2]。Struts 2 框 架 已逐 漸 成 為動 態(tài) 網(wǎng) 站 技 術(shù) 的 主 流 ,本系統(tǒng)正是用這種技術(shù)來實現(xiàn) B/S 體系結(jié)構(gòu)的。

      2.2 struts2 框架技術(shù)分析

      Struts2 框 架 按 照 模 塊 來 劃 分 , 可 以 分 為Servlet Filters、Struts 核心模塊、 攔截器和用戶實現(xiàn)部分。 用戶請求在 Struts2 框架中的處理過程大致如下:

      首先由框架產(chǎn)生一個請求并進行處理。框架根據(jù)請求匹配相應(yīng)的配置,得到使用哪些攔截器、Action 類和返回結(jié)果的信息。 然后請求通過一系列的攔截器。攔截器和攔截器組可以按照不同級別進行組合配置來處理請求。它們?yōu)檎埱筇峁└鞣N預(yù)處理和切面處理的應(yīng)用功能。再由 ActionInvocation 實例調(diào)用 Action。 其次 ActionInvocation 實例根據(jù)配置文件查找與 Action 的返回值匹配的結(jié)果[3]。 最后返回 HttpServletResponse 給客戶端。

      2.3 Hibernate 技術(shù)

      Hibernate 的中 文 翻 譯 為 冬 眠 ,Hibernate 是 一個開源的持久層框架,其目標(biāo)是成為一個持久管理的完整解決方案。通過映射關(guān)系來協(xié)調(diào)持久對象與關(guān)系數(shù)據(jù)庫的交互,使開發(fā)者不必關(guān)心持久方面的問題,而專注于業(yè)務(wù)的開發(fā)。 Hibernate 作為一個對象關(guān)系映射框架, 本身對 JDBC 進行簡單的對象封裝,開發(fā)人員運用面向?qū)ο蟮挠^念來實現(xiàn)對數(shù)據(jù)庫的操作。 Hibernate 就是一種 ORM 中間件,位于數(shù)據(jù)庫和應(yīng)用程 序之間[4]。

      Hibernate 是一種 java 語言下的對 象關(guān)系映射解決方案。它是一種自由、開源的軟件。它用來把對象模型表示的對象映射到基于 SQL 的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射提供了一個使用方便的框架。

      3 數(shù)據(jù)庫的設(shè)計與操作

      數(shù)據(jù)庫設(shè)計是整個系統(tǒng)的重要組成部分,在結(jié)構(gòu)設(shè)計直接關(guān)系到整個系統(tǒng)的性能 的 優(yōu)劣[5]。 根據(jù)需求概述及問題分析中數(shù)據(jù)庫設(shè)計部分的內(nèi)容,抽取出業(yè)務(wù)實體,分析每個業(yè)務(wù)實體的屬性以及實體之間的關(guān)系,完成數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計工作。 數(shù)據(jù)庫表之間的關(guān)系圖如圖1所示:

      圖1 數(shù)據(jù)庫關(guān)系圖

      每個投票應(yīng)該有多個選項,所以投票選項表vote_option 和 與 投票內(nèi)容表 vote_subject應(yīng)為多對一關(guān)系, 而投票結(jié)果表 vote_item 則應(yīng)記錄投票選項、投票內(nèi)容以及用戶。 其中,用戶表 vote_user 中user_name 為用戶名,user_password 為密碼,投票內(nèi)容表 投 票 內(nèi) 容 表 vote_subject中 vs_title 為 投 票 內(nèi)容,vs_type 為 投票類 型 ,值 為 1 時 代 表 單 選,為 2時代 表多選。 投票 選項表 vote_option 中 vo_option表示投票選項,vo_order表示顯示順序。

      數(shù)據(jù)庫操作在整個系統(tǒng)的開發(fā)和運行中是一件非常大的工作,包括數(shù)據(jù)庫的連接,數(shù)據(jù)庫的關(guān)閉,對數(shù)據(jù)庫數(shù)據(jù)的查詢、修改、添加、刪除等。 我們使用 hibernate 框架來完成這些工作,這樣事情就變得簡單起來了。

      4 系統(tǒng)的實現(xiàn)

      該系統(tǒng)包括注冊和登錄,即要求用戶必須登錄,才能使用系統(tǒng)投票。若不是注冊用戶則要注冊后才可以登錄使用投票系統(tǒng);對于普通用戶應(yīng)該具有提供投票,顯示投票的結(jié)果,對于管理員用戶應(yīng)該具有發(fā)布新投票、查詢投票以及投票的后臺管理功能。普通用戶的投票頁面效果如圖2所示,管理員查看投票結(jié)果頁面效果圖如圖3所示。下面以查看投票結(jié)果為例來介紹系統(tǒng)的實施。投票標(biāo)題頁的內(nèi)容投票列表中,單擊超級鏈接,或者成功投票后點擊“返回查看投票結(jié)果”超鏈接以查看投票結(jié)果。

      圖2 投票頁面效果圖

      圖3 查看投票結(jié)果效果圖

      實現(xiàn)該功能的核心 action 代碼如下:

      publicclassVoteActionextendsBaseAction{

      privateVoteServiceservice;//業(yè)務(wù)類

      privateLonguserCountOfThisSubject//投 票人數(shù)

      privateSubjectsubject;//投票內(nèi)容

      privateLong[]options;

      //每個選項票數(shù)

      private Map 〈Long,Long 〉 stat=new HashMap〈Long,Long〉();

      //每個選項百分比

      privateMap〈Long, Long〉 statPercent=new

      HashMap〈Long, Long〉();

      public String view() {

      statUserCountOfThisSubject();//獲得投票人數(shù)

      initStatResultToZeroForView();//初始化數(shù)據(jù)

      //計算每個選項票數(shù)占總票數(shù)百分比statVoteCountAndCalcPercentPerOption();

      return "viewSuccess";

      }

      }

      頁面核心代碼如下:

      〈div id="vote" class="wrap"〉

      〈h2〉查看投票〈/h2〉

      〈ul class="list"〉

      〈li〉

      〈h4〉〈s:property value="subject.title"/〉〈/ h4〉

      〈pclass="info"〉共 有 〈s:propertyvalue=" subject.options.size"/〉 個 選 項 , 已 有 〈s:property value="votes"/〉 個網(wǎng)友參與了投票。 〈/p〉

      〈ol〉

      〈s:iteratorvalue="subject.options"status=" status"〉

      〈li〉〈s:property value="option.name"/〉

      〈div class="rate"〉

      〈divclass="ratebg"〉〈divclass="percent" style="width:〈s:propertyvalue='statPercent[id]'/〉%"〉〈/div〉〈/div〉

      〈p〉〈s:propertyvalue="stat[id]"/〉票〈span〉(〈s:propertyvalue="statPercent[id]"/〉%)〈/span〉〈/p〉

      〈/div〉

      〈/li〉

      〈/s:iterator〉

      〈/ol〉

      〈divclass="goback"〉〈ahref="Subject!list. action?entityId=〈s:propertyvalue='subject.id'/〉"〉 返回投票列表〈/a〉〈/div〉

      〈/li〉

      〈/ul〉

      〈/div〉

      5 結(jié)束語

      框架技術(shù)的使用使該系統(tǒng)的開發(fā)變得更簡單,Struts 2 框架作為表示層,Hibernate 框架作為持久層,這樣可以對每層的處理選取不同的框架進行保證,令他們之間的影響降到最低。 相比其他技術(shù),框

      架技術(shù)在開發(fā)業(yè)務(wù)邏輯復(fù)雜、數(shù)據(jù)交互頻繁、高并發(fā)量、兼容遺留系統(tǒng)等方面具有很大的優(yōu)勢。 用框架技術(shù)開發(fā)的在線投票系統(tǒng)界面簡單、靈活、易用,安全性能高,能滿足不同用戶的需要,對社會的發(fā)展起到了促進作用。

      [1]宋 士 安 , 鄒 俊 偉 , 劉 麗 華 .基 于 Struts+Spring+Hibernate 缺陷管理 系統(tǒng) 實現(xiàn) [J].計 算機技 術(shù)與 發(fā)展,2012(2):146~148.

      [2]李綱.Struts2 權(quán) 威指南 [M].北 京:電 子工 業(yè)出版 社,2008.

      [3]符 鈺.基 于 Struts2+Hibernate3+Spring3 框 架 的 Web 應(yīng) 用研究[J].金 華職業(yè) 技術(shù) 學(xué)院 學(xué) 報,2013(2):61~64.

      [4]羅 玉 玲 .J2EE 應(yīng) 用 開 發(fā) 詳 解 [M].北 京 : 電 子 工 業(yè) 出 版 社 ,2009:105~108.

      [5]齊二石,王慧明.基于 JSP 的制造業(yè)信 息化網(wǎng)上申 報系統(tǒng)[J].情報 科學(xué),2004,22(8):992~994.

      (責(zé)任編輯 梁紅艷)

      Design and Realization of online voting system based on Struts

      JIANGChen-chen LAIXue-wei(Information and Communication College , SanMenXia vocational-technical college, Sanmenxia,472000,China)

      This paper realizes all the steps of online voting system using framework technology, introduces indetail the methods and skills to create and access database to achieve the dynamic website using framework technology, and uses Struts 2 and Hibernate technology in the design process, this method has very good reference function to create application system based on web.

      Online voting system; sturts 2; Hibernate

      TP311.52

      :A

      :1671-9123(2014)04-0119-04

      2014-11-18

      河南省教育廳科學(xué)技術(shù)研究重點項目(13B520186)

      蔣晨?。?983-),女,河南三門峽人,三門峽職業(yè)技術(shù)學(xué)院信息傳媒學(xué)院講師。

      猜你喜歡
      列表頁面選項
      大狗熊在睡覺
      巧用列表來推理
      刷新生活的頁面
      學(xué)習(xí)運用列表法
      擴列吧
      跟蹤導(dǎo)練(四)
      閱讀理解
      跟蹤導(dǎo)練(5)
      單項填空精選練習(xí)100道
      不含3-圈的1-平面圖的列表邊染色與列表全染色
      久治县| 迁西县| 屏南县| 东兰县| 沁源县| 金湖县| 婺源县| 榆中县| 曲麻莱县| 曲周县| 自贡市| 阿拉善右旗| 鄯善县| 台湾省| 吉水县| 宜州市| 新巴尔虎右旗| 句容市| 荆门市| 西乡县| 泽库县| 寻甸| 宜黄县| 怀远县| 盐山县| 成安县| 交口县| 越西县| 双峰县| 甘孜| 巴林左旗| 旌德县| 宜君县| 东辽县| 原阳县| 墨脱县| 阳东县| 吴旗县| 巴中市| 南投市| 乐陵市|