版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精品文檔JavaEE課程設計報告題目名稱:基于 struts2 、Spring、Hibernate構建一個網(wǎng)上投票系統(tǒng)成績:目錄基于struts2 、Spring、Hibernate構建一個網(wǎng)上投票系統(tǒng) 2一、問題描述及設計思路 21.1 需求分析 21.2業(yè)務分析 31.3投票用例 5二、詳細設計過程 102.1 創(chuàng)建 Struts2 應用 102.2 添加 Hibernate 102.3添加Spring應用 122.4領域模型層設計 12三、結論和體會 173.1 結論 173.2體會 17四、附錄 18附錄A其它圖表 18附錄B主要程序代碼 19五、參考文獻 30可編輯基于 struts
2、2 、Spring 、Hibernate 構建一 個網(wǎng)上投票系統(tǒng)一、問題描述及設計思路對于開發(fā)一個投票管理系統(tǒng)來說, 應該實現(xiàn)什么功能, 如何實現(xiàn)這個功能都是 開發(fā)人員必須了解的問題。 將這個系統(tǒng)的需求、 業(yè)務流程以及用例進行細致的分 析、講解。1.1 需求分析隨著網(wǎng)絡應用的日益普及, 投票的形式也發(fā)生了很大的變化。 目前在很多的場合,投票已經(jīng)開始由原始方式轉變?yōu)榫W(wǎng)上投票。 由于具有方便、 快捷、成本低、調查范圍廣等優(yōu)點,網(wǎng)上投票已經(jīng)被廣泛的應用。如何管理好網(wǎng)上投票信息內容也變得十分的重要,我們所設計開發(fā)的投票管理系統(tǒng),正是基于這種需求誕生的。本投票管理系統(tǒng)分為用戶提供網(wǎng)上投票和投票信息管理兩
3、大類功能。 通過投 票管理功能可以完成增加新投票、 修改原有投票信息、查找投票等功能。本系統(tǒng) 的界面友好、操作簡便,適用于任何網(wǎng)站進行投票調查。本系統(tǒng)的基本功能如下所述。使用本系統(tǒng)的網(wǎng)上投票功能, 用戶只要登錄指定的網(wǎng)頁, 就可以進行投票操作, 并可以得到投票結果信息。使用本網(wǎng)站的登錄功能,管理員可以登錄系統(tǒng),然后對相關的信息進行管理。使用本系統(tǒng)的創(chuàng)建投票功能,管理員可以創(chuàng)建一個新的投票功能。使用本系統(tǒng)的管理投票功能, 管理員可以對系統(tǒng)已經(jīng)存在的投票進行更新,包括增加投票子選項、刪除投票子選項、修改投票類型、更改投票狀態(tài)。使用本系統(tǒng)的查找投票功能,管理員可以通過輸入部分或者全部的投票主題查找對
4、應的投票信息。使用本系統(tǒng)的管理員管理功能,管理員可以修改本人的密碼或者創(chuàng)建一個新的管理 員。使用本系統(tǒng)的注銷功能,管理員可以安全的退出本系統(tǒng)。1.2業(yè)務分析投票管理系統(tǒng)由前臺和后臺兩部分組成:前臺顯示投票并可以執(zhí)行投票操作,后臺是對投票信息和管理員信息進行管理。下面分別從使用前臺和使用后臺兩個角度來分析本系統(tǒng)的業(yè)務流程。1.2.1顯示投票用戶進入投票頁面如圖,進行投票操作。what are you doinr.獨舉類型邑單選t冬迪是否殲族 是普hh1.2.2管理投票1.221后臺登錄頁面只有管理員可以進入后臺對相關的信息進行維護,管理員在維護信息之前必須先登錄系統(tǒng)。n 1 7n后
5、臺主頁面當成功登錄系統(tǒng)后進入后臺主頁面, 在后臺主頁面的左側顯示歡迎信息和系 統(tǒng)當前所有投票數(shù)量信息。同時該頁面提供了相關操作的鏈接,單擊相應的鏈接 即可進行相應的操作。各鏈接具體實現(xiàn)的業(yè)務如下。管理投票鏈接:當管理員單擊“投票管理”的文字或者圖標鏈接后,進入管理投票頁面,可以對系統(tǒng)已有投票信息進行維護。創(chuàng)建投票鏈接當管理員單擊“創(chuàng)建投票”的文字或者圖標鏈接后,進入創(chuàng)建投票頁面,可以增加新的投票選項。查找投票鏈接:當管理員單擊“查找投票”的文字或者圖標后,進入查 找投票頁面,可以根據(jù)所輸入的投票主題信息(可以是完整的,也可以是關鍵字)在系統(tǒng)已有的投票中進行查找。管理員管理連接:當管理員單擊“管
6、理員管理”鏈接后,進入管理員管 理頁面,可以修改當前管理員密碼,增加新的管理員。投票主頁鏈接:當管理員單擊“投票主頁”鏈接后,可以跳轉到后臺主 頁面。注銷鏈接:當管理員單擊“注銷后“鏈接后,可以安全退出系統(tǒng)。3 2略住戈 *li V W i-p I1.3投票用例?用例名稱:投票簡要說明:允許所有用戶進行投票操作基本事件流:(1)用戶進入投票頁面(2)系統(tǒng)顯示投票主題及投票內容(3)用戶進行投票(4)系統(tǒng)顯示投票結果(5)用例結束異常事件流:(1)投票已經(jīng)關閉,系統(tǒng)給出錯誤提示(2)用戶所在 IP 已經(jīng)投過票,系統(tǒng)出現(xiàn)錯誤提示用例名稱:創(chuàng)建投票簡要說明:允許管理員創(chuàng)建新投票前置條件:管理員已經(jīng)登
7、錄后臺系統(tǒng)基本事件流:(1)管理員進入創(chuàng)建投票頁面(2)管理員填寫新投票主題相關信息并單擊下一步(3)管理員填寫新投票選項信息并單擊下一步(4)系統(tǒng)增加新投票信息并顯示(5)用例結束異常事件流:(1)填寫信息錯誤,系統(tǒng)給出提示信息(2)管理員中途單擊其他頁面鏈接,跳轉相應頁面用例名稱:查找投票簡要說明:允許管理員查找投票前置條件:管理員已經(jīng)登錄后臺系統(tǒng)基本事件流:(1)管理員進入查找投票頁面(2)管理員輸入完整或部分的投票主題并提交(3)系統(tǒng)顯示查找結果(4)用例結束異常事件流:(1)輸入信息有誤,系統(tǒng)給出錯誤提示(2)數(shù)據(jù)庫沒有符合要求的信息,系統(tǒng)給出提示用例名稱:增加投票選項簡要說明:允許
8、管理員為某投票主題增加子選項氣質條件:管理員已經(jīng)登錄后臺系統(tǒng)基本事件流:(1)管理員進入修改投票信息頁面(2)管理員單擊“新增加一個投票選項“鏈接(3)管理員輸入新增加選項內容(4)用例結束異常事件流:(1)輸入信息有誤,系統(tǒng)給出錯誤提示(2)數(shù)據(jù)庫沒有符合要求信息,系統(tǒng)給出提示用例名稱:刪除投票選項簡要說明:允許管理員刪除某投票選項的子選項氣質條件:管理員已經(jīng)登錄后臺系統(tǒng)基本事件流:(1)管理員進入修改投票信息頁面(2)管理員單擊要刪除選項相應的“刪除”鏈接(3)系統(tǒng)刪除相應的選項(4)用例結束異常事件流:當剩余選項個數(shù)小于等于 2 時,繼續(xù)刪除系統(tǒng)提示錯誤 用例名稱:修改投票選項簡要說明:
9、允許管理員修改投票信息 前置條件:管理員已經(jīng)登錄后臺系統(tǒng) 基本事件流:(1)管理員進入修改投票信息頁面(2)管理員修改投票信息并單擊“更新”按鈕(3)系統(tǒng)更新投票信息(4)用例結束異常信息流:輸入信息有誤,系統(tǒng)給出提示用例名稱:修改密碼 簡要說明:允許管理員修改本人的登錄密碼 前置條件:管理員已經(jīng)登錄后臺系統(tǒng) 基本事件流:(1)管理員進入修改密碼頁面(2)管理員輸入信息并提交(3)系統(tǒng)顯示現(xiàn)修改成功(4)用例結束異常信息流:(1)輸入信息有誤,系統(tǒng)給出錯誤提示(2)舊密碼輸入不正確,系統(tǒng)給出提示(3)兩次輸入新密碼不一致,系統(tǒng)給出提示?用例名稱:創(chuàng)建新管理員簡要說明:允許管理員創(chuàng)建一個新管理員
10、前置條件:管理員已經(jīng)登錄了后臺系統(tǒng)基本事件流:(1)管理員進入創(chuàng)建新管理員頁面(2)管理員輸入信息并提交(3)系統(tǒng)顯示創(chuàng)建成功(4)用例結束異常信息流:(1)輸入信息有誤,系統(tǒng)給出錯誤提示(2)兩次輸入密碼不一致,系統(tǒng)給出提示(3)新管理員用戶名已存在,系統(tǒng)給出提示二、詳細設計過程到目前為止我們已經(jīng)對于整個投票系統(tǒng)的需求有了一定的了解, 下面將要設 計到具體的實現(xiàn)方案。 本節(jié)將從兩個方面入手進行系統(tǒng)設計, 包括技術方案 (使 用什么樣的技術來開發(fā)設計這個系統(tǒng)) 和數(shù)據(jù)庫設計 (本系統(tǒng)設計到的數(shù)據(jù)信息 如何存?。?。下面就是系統(tǒng)設計的詳細內容。通過前面的分析設計,我們已經(jīng)對整個投票管理系統(tǒng)的工作流
11、程、工程構架有了深入的 了解,下面開始進入詳細設計和代碼的實現(xiàn)過程。2.1 創(chuàng)建 Struts2 應用在 stc 根目錄添加配置文件 struts.Xml修改 web.xml 文件內容引入 jar 包2.2 添加 Hibernate引入 jar 包包括 hibernate3.jar 、 cglib-nodep-2.14_3.jar 、dom4j-1.6.1.jar 、commons-collections.jar 、 log4-1.2.13.jar 、 c3p.jar 、jta.jar 、 antlr-0.7.6.jar創(chuàng)建對應數(shù)據(jù)庫的持久化類一共需要創(chuàng)建 4 個持久化類,分別
12、為 Admin.java 、Vote.java 、 Votecontext.java 、Voterjava 。它們各自對應的代碼將在具體實現(xiàn)小節(jié) 中提供需要注意的是,在寫 Hibernate 持久類的時候,一定要遵循如下所 述的規(guī)范。持久化類符合 Javabean 的規(guī)范,包含一些成員變量,以及與 之對應的 getter 、setter 方法持久化類有一個 ID 屬性,用來唯一標示 Customer 類的每一 個對象。在面向對象術語中,這個 ID 屬性被稱為對象標識符 (OID , Object Identifier ),通常它都用整數(shù)表示。Hibernate 要求持久化類必須提供一個不帶參數(shù)
13、的默認構造方 法。創(chuàng)建對象關系映射文件對應持久化類 我們也需要創(chuàng)建 4 個映射文件,分 別為 Admin.hbm.xml 、 Vote.hbm.xml 、 Voter.hbm.xml 、 Votecontext.hbm.xml 。它們各自對應的代碼將在具體的實現(xiàn)小節(jié)中提 供。創(chuàng)建 Hibernate 配置文件 hibernate.cfg.xml2.3 添加 Spring 應用引入 jar 包包括 spring.jar 和 sturts2-spring-plugin-2.08.jar創(chuàng)建 Spring 配置文件 applicationContext.xml在 Web.xml 中添加 Spring
14、 監(jiān)聽2.4 領域模型層設計2.4.1 持久層設計持久層是通過 Hibernate 實現(xiàn)的,采用 DAO 模式進行的開發(fā)設計。在 設計過程中,我們所有的實現(xiàn)類都繼承了 HibernateDaoSupport ,通過 Hibernate 提供的 HQL 語言執(zhí)行數(shù)據(jù)操作, 避免了手寫大量 SQL 語句繁瑣、 易錯的弊端。具體的實現(xiàn)過程可以分為以下幾步。1)編寫接口2)編寫實現(xiàn)類3)在 applicationContext.xml中配置 DAO2.4.2 業(yè)務層設計業(yè)務層是一個典型的 Web 應用程序中是作為中間組件而存在的。2.4.3 表示層設計管理員登錄模塊設計后臺管理員登錄是后臺系統(tǒng)管理的入
15、口,只有成功登錄系統(tǒng)后才可以進行信息管理管理m登錄咗輸人用戶擊柿人密科航!碼nl 7n首先管理員進入登錄界面。輸入用戶名、密碼以及圖形校檢碼并單擊“確定”按鈕,如果信息無誤則進入后臺管理系統(tǒng)這頁面 ;如果輸入信息有誤,系統(tǒng)將給出提示信息。創(chuàng)建投票模塊該模塊主要用于系統(tǒng)中添加一個新的投票,包括投票主題,投票類型、投票是否發(fā)布、投票選項內容。輸入投票的主題、子選項個數(shù)、選擇投票類型以及是否馬上開放并單 擊“下一步”按鈕。如過輸入有誤,系統(tǒng)給出提示信息。創(chuàng)建投票選項的代碼。確定并單擊“下一步”,創(chuàng)建投票流程結束查看投票信息模塊該模塊用來顯示目前系統(tǒng)中已經(jīng)存在的所有投票信息內容。當管理 員單擊系統(tǒng)主頁
16、面的管理投票鏈接后,系統(tǒng)顯示所有的投票信息。顯示 所有的投票信息代碼。按具樂幾g 5 IHI 背2011-12-07 19r5T:19123開放單請2011-12*09 ZQtll|12J開放?1(hclLo20L1-12-J9 M;L0:駅133 II開戒wh右H. sre yoiu doing帕I L 17 舊 201Z3開簾單說修改投票信息模塊該模塊用來修改系統(tǒng)已存在的投票相關信息。為了確保信息的公正性,當某個投票信息被更新時,該投票對應投票記錄,包括投票票數(shù)以及投票人信息都被清空。當單擊投票編號對應的編輯鏈接,進入修改投 票信息界面。腌nt ITU T-SU捲萃:吝抿罕內容悴要洪型單準
17、 事社 足乏汗放亠丘杏單擊新增加一個投票選項,可以為當前投票增加子選項。增加投票 選項的代碼。觀察發(fā)現(xiàn),在員原選項下面增加了一個新的選項。單擊投票選項后 面的“刪除”鏈接,可以刪除對應的選票選項。查找信息模塊該模塊允許管理員根據(jù)投票主題查找對應的投票信息。當單擊后臺 主頁查找投票鏈接后,進入查找投票界面。輸入查詢的內容并單擊“確 定”按鈕,系統(tǒng)顯示符合條件的投票信息。修改密碼模塊通過該模塊可以修改登錄管理員的登錄密碼。單擊修改密碼連接進入修改界面。輸入提示信息并單擊“確認”按鈕即可修改密碼,如果舊密碼不正確或者兩次輸入的新密碼不一致, 系統(tǒng)會給出錯誤的提示信息 創(chuàng)建新管理員模塊通過該模塊可以創(chuàng)
18、建一個新的管理員。單擊創(chuàng)建新管理員鏈接,進 入創(chuàng)建管理員的界面。輸入相關的信息并單擊“確定”按鈕可以創(chuàng)建一 個新的管理員,如果輸入有誤或者所輸入用戶名已經(jīng)不存在,系統(tǒng)給出 錯誤的提示信息。投票模塊該模塊負責顯示投票信息給用戶并處理投票過程。當投票人進入投票頁面。選擇并單機:下一步“按鈕,系統(tǒng)顯示投票結果界面1are you帛mil irp1輩100fti呂ga唱1 0%三、結論和體會3.1 結論隨著網(wǎng)絡應用的日益普及, 投票的形式也發(fā)生了很大的變化。 目前在很多的 場合,投票已經(jīng)開始由原始方式轉變?yōu)榫W(wǎng)上投票。 由于具有方便、 快捷、成本低、 調查范圍廣等優(yōu)點, 網(wǎng)上投票已經(jīng)被廣泛的應用。 如何
19、管理好網(wǎng)上投票信息內容 也變得十分的重要,我們所設計開發(fā)的投票管理系統(tǒng), 正是基于這種需求誕生的。本投票管理系統(tǒng)分為用戶提供網(wǎng)上投票和投票信息管理兩大類功能。 通過投 票管理功能可以完成增加新投票、 修改原有投票信息、 查找投票等功能。 本系統(tǒng) 的界面友好、操作簡便,適用于任何網(wǎng)站進行投票調查。3.2 體會這次數(shù)據(jù)庫課程設計給我的最大的印象就是如果自己有了興趣,就動手去 做,困難在你的勇氣和毅力下是抬不了頭的。 從做這個課程設計開始無論遇到什 么困難,我都沒有一絲的放棄的念頭。 出于對知識的渴望, 出于對新技術的好奇, 出于對一切未知的求知。我完成了這次課程設計,不過這只是我學習路上的驛站,
20、我會繼續(xù)學習它,包括jave公司的j2ee我也很想試試,語言本來就是相通的, just doit !語言并不重要畢竟它僅僅是工具,用好一個工具并不是一件值得為 外人道的事情,主要是了解學習思想。古語說的好:學無止境??!我很慶幸我參加了這次課程設計,讓我確實打開了眼界。四、附錄附錄A其它圖表創(chuàng)紡時間2011-12-V7 閃汚仁 19123開敢11占皂123開戰(zhàn)|睪詵Th.c 1120111249 20;埔;輛123單詵TA jl_ =E.yitjfily3L. doing01 1 IZ-佰觸:恥:舊1Z3幵放單選L. feI HIM 三 H附錄B主要程序代碼創(chuàng)建用戶package sunyan
21、g.vote.acti on. adm in;import java.text.SimpleDateFormat;import java.util.Cale ndar;import java.util.Date;import sunyan g.vote.actio n.rootactio n.Admi nRoot;import sunyan g.vote.doma in. Adm in;SuppressWar nin gs(serial)public class Createadmin extends AdminRoot private static final String CREATEAD
22、MINERROR createAdminError;Overridepublic String execute() throws Exception / 通過用戶名查找管理員信息Admin a = adminService.findAdminByName(name);/ 如果不為空,說明已經(jīng)存在if (a != null) addActionError(getText(adminexist);return CREATEADMINERROR; else Date date = Calendar.getInstance().getTime();newSimpleDateFormat formatt
23、er =SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String dateString = formatter.format(date);Admin admin = new Admin();admin.setName(name);admin.setPassword(newpwd1); admin.setLogintime(dateString); adminService.addAdmin(admin);return SUCCESS;登錄界面package sunyang.vote.action.admin;import java.text.SimpleDate
24、Format;import java.util.Calendar;import java.util.Date;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import sunyang.vote.action.rootaction.AdminRoot;import sunyang.vote.domain.Admin;import sunyang.vote.domain.Count;SuppressWarnings(serial)public class Login ext
25、ends AdminRoot Overridesessionpublic String execute() throws Exception HttpSessionServletActionContext.getRequest().getSession();if(session.getAttribute(rand)=null)return ERROR;/ 獲得圖形校驗碼String sf = (String) session.getAttribute(rand);/ 如果圖形校驗碼正確,判斷帳號、密碼是否正確if (sf.equals(safecode) Admin admin = admin
26、Service.findAdmin(name, password);if (admin = null) addActionError(getText(loginerror); return ERROR; else / 將 admin 信息存入 session session.setAttribute(admin, admin);Count count2 = new Count();/ 設置單選投票個數(shù)count2.setSingleCount(voteService.findVoteCountByTy pe(new Integer(1);/ 設置多選投票個數(shù)count2.setMultiCou
27、nt(voteService.findVoteCountByType(new Integer(0);/ 設置所有投票個數(shù) count2.setAllCount(voteService.findVoteCount();session.setAttribute(count2, count2);/ 獲得當前系統(tǒng)時間并格式化,存入管理員登錄時間Date date = Calendar.getInstance().getTime();SimpleDateFormat formatter = newSimpleDateFormat(yyyy-MM-dd HH:mm:ss);String dateStrin
28、g = formatter.format(date);admin.setLogintime(dateString);/ 更新管理員登錄時間信息adminService.updatelogintime(admin);return SUCCESS; else addActionError(getText(codeerror);return ERROR;退出登錄package sunyang.vote.action.admin;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;im
29、port com.opensymphony.xwork2.ActionSupport;SuppressWarnings(serial)public class Logout extends ActionSupport Overridepublic String execute() throws Exception HttpSession sessionServletActionContext.getRequest().getSession();session.invalidate();return SUCCESS;投票根目錄package sunyang.vote.action.rootact
30、ion;import java.util.List;import java.util.Map;import sunyang.vote.service.VoteContextService;import sunyang.vote.service.VoteService;import sunyang.vote.domain.*;import com.opensymphony.xwork2.ActionSupport;SuppressWarnings(serial)public class VoteContextRoot extends ActionSupport /* param context*
31、子選項內容,數(shù)組類型* param voteId*投票編號* param list* param list2*封裝投票結果信息* param votecontextId*投票子選項編號param type* 投票類型* param publish*是否發(fā)布* param map*封裝投票選項編號及內容*/protected VoteContextService voteContextService;protected VoteService voteService;protected String context;protected Integer voteId;protected List
32、list2;protected Integer votecontextId;protected Integer type;protected Integer publish;protected Map map;public Integer getPublish() return publish;public void setPublish(Integer publish) this.publish = publish;public Integer getType() return type;public void setType(Integer type) this.type = type;p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車抵押貸款居間擔保合同
- 網(wǎng)絡電商平臺加盟合同范本
- 機械部件外協(xié)加工協(xié)議
- 房產質押貸款協(xié)議
- 2024年電子商務安全性論文
- 代理補充協(xié)議書格式
- 房屋裝潢施工協(xié)議案例
- 勞動合同終止后的社保轉移
- 標準建設工程借款合同范本
- 私人物品交易合同模板
- 靜脈炎相關知識課件
- 烯烴分離裝置操作規(guī)程
- 雨污水管網(wǎng)施工要點及質量驗收要求
- DB33∕T 1231-2020 人防門安裝技術規(guī)程
- 蘇教版五年級上冊數(shù)學試題-第一、二單元 測試卷【含答案】
- 發(fā)揮產業(yè)工會作用的實施方案
- 科捷物流介紹(中文版)ppt課件
- 軍事地形學地形圖基本知識
- 2022版義務教育(生物學)課程標準(含2022年修訂和新增部分)
- 六年級綜合實踐活動課件-珍愛生命遠離毒品 全國通用(共24張PPT)
- 建設工程竣工消防驗收記錄表(DOC36頁)
評論
0/150
提交評論