freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

通用網(wǎng)絡(luò)調(diào)查問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-25 17:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 這個(gè)特殊字符串隔開,同樣的,在q_result中保存的調(diào)查結(jié)果信息用逗號(hào)隔開,在q_jdtz中保存的截?cái)嗵D(zhuǎn)信息用amp。隔開。. 持久層框架設(shè)計(jì)持久性框架是一組軟件服務(wù),將應(yīng)用程序同其使用和操縱的數(shù)據(jù)源分離。它位于機(jī)構(gòu)的數(shù)據(jù)源之上,隱藏訪問這些數(shù)據(jù)源的數(shù)據(jù)查詢存取API(如JDBC、實(shí)體EJB等),它提供的服務(wù)應(yīng)完全抽象,并且隱藏使用及操縱數(shù)據(jù)源數(shù)據(jù)的細(xì)節(jié)。本系統(tǒng)在持久層主要使用了3種設(shè)計(jì)模式:DAO模式、VO模式、簡(jiǎn)單工廠模式。DAO(數(shù)據(jù)訪問對(duì)象)模式:數(shù)據(jù)訪問對(duì)象(DAO)模式使用數(shù)據(jù)訪問對(duì)象來封裝和抽象對(duì)所有數(shù)據(jù)源的訪問,它管理著與數(shù)據(jù)源的連接以便于檢索和存儲(chǔ)數(shù)據(jù),為業(yè)務(wù)對(duì)象提供了透明的底層數(shù)據(jù)訪問實(shí)現(xiàn)。DAO模式完全包裝數(shù)據(jù)的讀取和操縱,并包裝與數(shù)據(jù)庫(kù)交互的數(shù)據(jù)訪問API,它用數(shù)值對(duì)象包裝從數(shù)據(jù)庫(kù)讀取和發(fā)送到數(shù)據(jù)庫(kù)的數(shù)據(jù),與業(yè)務(wù)層進(jìn)行通信。DAO模式提供的靈活性是由于應(yīng)用程序并不直接訪問數(shù)據(jù)源,而是創(chuàng)建DAO對(duì)象,用其訪問數(shù)據(jù)源。讀取數(shù)據(jù)時(shí),可以用數(shù)值對(duì)象保存取得的數(shù)據(jù)。VO(值對(duì)象)模式:使用值對(duì)象能夠減少使用實(shí)體bean時(shí)需要的遠(yuǎn)程調(diào)用的次數(shù)。本系統(tǒng)使用值對(duì)象來封裝業(yè)務(wù)數(shù)據(jù),用相應(yīng)的方法調(diào)用來設(shè)置和檢索值對(duì)象。當(dāng)客戶端向?qū)嶓wbean請(qǐng)求業(yè)務(wù)數(shù)據(jù)時(shí),該實(shí)體bean可以構(gòu)造值對(duì)象,用屬性值來填充,并且將值對(duì)象傳送給客戶端。同樣道理,客戶端向?qū)嶓wbean提交數(shù)據(jù)時(shí),也采用值對(duì)象這一辦法。系統(tǒng)中所有的數(shù)據(jù)庫(kù)實(shí)體,都被封裝成了這樣的VO。如頁(yè)面上要數(shù)據(jù)庫(kù)中添加一個(gè)問卷,那么首先頁(yè)面把數(shù)據(jù)發(fā)送到控制層的SERVLET,在該SERVLET中通過頁(yè)面?zhèn)鬟^來的參數(shù)構(gòu)造一個(gè)VO,然后把這個(gè)VO傳遞給DAO對(duì)象,DAO對(duì)象最后完成對(duì)數(shù)據(jù)庫(kù)的控制操作。簡(jiǎn)單工廠模式:專門定義一個(gè)類來負(fù)責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。它又稱為靜態(tài)工廠方法模式,屬于類的創(chuàng)建型模式。簡(jiǎn)單工廠模式的實(shí)質(zhì)是由一個(gè)工廠類根據(jù)傳入的參數(shù),動(dòng)態(tài)決定應(yīng)該創(chuàng)建哪一個(gè)產(chǎn)品類(這些產(chǎn)品類繼承自一個(gè)父類或接口)的實(shí)例。工廠類使用了多方法工廠,隔離上層與數(shù)據(jù)庫(kù)底層,使上層方法不用關(guān)心底層采用何種數(shù)據(jù)庫(kù)實(shí)現(xiàn),系統(tǒng)如果要遷移到其他數(shù)據(jù)庫(kù)上,也只需實(shí)現(xiàn)相應(yīng)的DAO接口,然后在DAOFactroy類中修改返回的實(shí)現(xiàn)類即可。 業(yè)務(wù)邏輯層的設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)涉及的業(yè)務(wù)邏輯相對(duì)簡(jiǎn)單,因此在設(shè)計(jì)的時(shí),將其并入MVC控制層,在控制層中直接調(diào)用DAO處理對(duì)象持久化操作。 第4章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 用例圖. 系統(tǒng)用例圖圖41 系統(tǒng)用例圖. 模塊用例圖(1)管理員登錄模塊用例圖圖42管理員登錄模塊用例圖 (2)管理員模塊用例圖圖43 管理員模塊用例圖(3)用戶模塊用例圖圖44用戶模塊用例圖 部分功能的實(shí)現(xiàn). 系統(tǒng)各文件功能說明表41管理員文件功能說明文件名功能后臺(tái)管理頁(yè)面框架后臺(tái)管理頁(yè)面菜單后臺(tái)管理頁(yè)面初始主頁(yè)后臺(tái)管理主頁(yè)LOGO頭添加管理員管理員列表管理員信息修改顯示操作成功或失敗信息問題增加問題編輯問題截?cái)嘣O(shè)置顯示答卷列表問卷預(yù)覽顯示問卷列表顯示答案文本信息增加調(diào)查卷調(diào)查卷管理調(diào)查卷審核調(diào)查卷設(shè)計(jì)問卷統(tǒng)計(jì)統(tǒng)計(jì)結(jié)果顯示上傳圖片表42用戶文件功能說明文件名功能系統(tǒng)首頁(yè),顯示調(diào)查中的問卷列表,根據(jù)數(shù)據(jù)庫(kù)中問題的類型字段,生成相應(yīng)的題形(單選,多選等)。生成4位隨機(jī)數(shù)的圖片管理員登錄管理員退出顯示操作成功或失敗信息輸入問卷編號(hào)和密碼,訪問私有調(diào)查卷顯示調(diào)查卷列表可將該頁(yè)面嵌入其他頁(yè)面,顯示調(diào)查卷列表顯示調(diào)查卷,源代碼見附錄1. 系統(tǒng)部分主要功能實(shí)現(xiàn)由于調(diào)查卷的問題和選擇題的選項(xiàng)是不確定的,所以如何顯示問卷是一個(gè)重點(diǎn)(源代碼見附錄1)。當(dāng)用戶在調(diào)查卷列表頁(yè)面選擇一個(gè)調(diào)查卷進(jìn)入調(diào)查卷顯示頁(yè)面時(shí)1根據(jù)傳遞過來的問卷ID號(hào),到數(shù)據(jù)庫(kù)中獲取問卷;2對(duì)問卷進(jìn)行問卷開放性校驗(yàn),問卷過期時(shí)間校驗(yàn),問卷IP檢驗(yàn),密碼檢驗(yàn);(源代碼見附錄1)頁(yè)面來顯示題目,根據(jù)字段Q_type 的值來判斷題目類型,1—單選題,2—多選題,3—單選題加輸入框,4—多選題加輸入框,5—問答題;;5用戶提交后,判斷用戶已填寫所有問題,以及驗(yàn)證碼是否正確。 用于獲取數(shù)據(jù)庫(kù)連接的實(shí)用方法首先,:?xml version=39。39。 encoding=39。utf839。?ContextResource name=jdbc/surveytype=driverClassName=url=jdbc:sqlserver://:1433。 DatabaseName=surveyusername=sa password=sa maxActive=200 maxIdle=10maxWait=1//Context接著在WEBINF/:enventry enventrynameJNDIname/enventryname enventrytype/enventrytype enventryvaluejdbc/survey/enventryvalue//JNDI名稱 /enventry然后,在ConnectionFactory中寫:public class ConnectionFactory { private ConnectionFactory(){ } public static Connection getConnection(){ try { String JNDIname=(String)new ().lookup(java:p/env/JNDIname)。//,通過它來找到數(shù)據(jù)庫(kù)JNDI的名稱 return (JNDIname)。 } catch (NamingException e) { ()。 } return null。 } public static Connection getConnection(String JNDIname){ try { Context initCtx = new InitialContext()。 Context envCtx = (Context) (java:p/env)。 DataSource ds = (DataSource) (JNDIname)。 //通過指定的JNDI名稱獲取數(shù)據(jù)庫(kù)連接,如jdbc/survey return ()。 } catch (NamingException e1) { ()。 return null。 } catch (SQLException e) { ()。 return null。 } }},然后通過JNDI名稱去查找TOMCAT初始上下文中的JNDI配置中數(shù)據(jù)源,獲取這個(gè)數(shù)據(jù)源,創(chuàng)建數(shù)據(jù)庫(kù)連接。 用于快速執(zhí)行SQL的類SQLCommand為了簡(jiǎn)化開發(fā)的復(fù)雜度,把執(zhí)行SQL的語(yǔ)句進(jìn)行了封裝,打包成一個(gè)SQLCommand類,使用這個(gè)類操作數(shù)據(jù)庫(kù),不用再關(guān)心數(shù)據(jù)庫(kù)連接的獲取和釋放,只需提供要執(zhí)行的SQL即可。但是,考慮到模塊耦合的問題,本系統(tǒng)并不會(huì)在頁(yè)面中或業(yè)務(wù)邏輯層中使用本工具,主要在DAO的實(shí)現(xiàn)類中使用本工具。SQLCommand的主要方法有:executeSQLs(String [] sqls) 方法:執(zhí)行一組SQL;executeSQL(String sql) 方法:執(zhí)行一條SQL;queryRowSet(String sql) 方法:執(zhí)行一條SQL,返回一個(gè)RowSet類型的結(jié)果集,這個(gè)結(jié)果集是無連接的,保存在內(nèi)存中;queryScalar(String sql) 方法:獲取結(jié)果集中第一行第一列的值,返回類型為String,常用于帶聚合函數(shù)的SQL。 防刷票技術(shù)設(shè)計(jì)網(wǎng)上調(diào)查是快速收集信息的有效方法,但是目前部分網(wǎng)站的網(wǎng)上調(diào)查存在一個(gè)不足之處,即任何用戶根據(jù)自己的愛好可以連續(xù)反復(fù)回答問卷。因?yàn)樗械恼{(diào)查結(jié)果都是為決策作參考,不管對(duì)一個(gè)單位還是一個(gè)部門,決策失誤都會(huì)帶來意想不到的損失,所以防止重復(fù)回答問卷具有重要意義。本文采用以下幾個(gè)方法在一定程度上可以防止連續(xù)反復(fù)回答問卷。解決方案:一:如果在添加問卷時(shí),不勾選“同一IP可重復(fù)提交”,如圖45,可以禁止相同ip的客戶機(jī)重復(fù)提交數(shù)據(jù),其原理是記錄每個(gè)答卷著的ip地址,與他的答卷放在同一張數(shù)據(jù)表中,在開始答卷前,如在數(shù)據(jù)表中找到相同ip的答卷,則判斷為重復(fù)回答。圖45 不勾選 “同一IP可重復(fù)提交”二:如只需在內(nèi)部網(wǎng)絡(luò)中進(jìn)行調(diào)查,可以選擇“設(shè)置訪問IP限制” 如圖46,設(shè)置禁止或允許訪問問卷的ip地址。其原理是在用戶訪問問卷是,對(duì)用戶的ip進(jìn)行判斷,是否在允許或禁止的ip段里,從而來允許或禁止用戶回答問卷。圖46 設(shè)置ip訪問權(quán)限三:管理員可以選擇是否公開問卷,如圖47,選擇公開,則在首頁(yè)顯示調(diào)查問卷,如選擇不公開,則用戶必須知道問卷的正確的編號(hào)及訪問密碼,才可以進(jìn)行回答問卷。表47 設(shè)置公開問卷四:增加動(dòng)態(tài)驗(yàn)證碼。人工刷票的危害還是相對(duì)有限的,對(duì)數(shù)據(jù)準(zhǔn)確性危害最大的是使用軟件自動(dòng)進(jìn)行回答問卷,在問卷中加入動(dòng)態(tài)驗(yàn)證碼已成為防止軟件進(jìn)行刷票的有效方法。在本系統(tǒng)中,在用戶申請(qǐng)打開問卷的同時(shí),由服務(wù)器產(chǎn)生一張4位隨機(jī)數(shù)的圖片,在用戶點(diǎn)擊提交問卷時(shí),首先判斷輸入的驗(yàn)證碼是否正確,如不正確,則彈出警告框,并禁止提交問卷。如圖48,圖49:圖48 產(chǎn)生動(dòng)態(tài)驗(yàn)證圖片圖 49 動(dòng)態(tài)驗(yàn)證碼輸入錯(cuò)誤提示以上4種方法,前面3種可以由管理員按情況來自由組合配置,而第4種方法為了數(shù)據(jù)有效性,強(qiáng)制執(zhí)行,通過以上措施可以有效防止人為惡意刷票的行為出現(xiàn)。 重難點(diǎn)問題解決方案研究需求描述:很多情況下,問卷發(fā)起人需要知道每個(gè)被調(diào)查人的單張答卷信息,以進(jìn)一步了解答卷人的想法。因此需要系統(tǒng)能夠提供一個(gè)記錄和提取答卷人單張答卷的功能,也就是說,問卷發(fā)起人可以查看到任何一個(gè)被調(diào)查人的答卷信息,并且,因?yàn)橄到y(tǒng)有截?cái)嗵D(zhuǎn)功能,需要考慮每張答卷結(jié)構(gòu)很可能不一樣的情況,如圖410,411:圖410用戶A答卷圖411用戶B答卷解決方案:首先,在用戶提交問卷的時(shí)候,系統(tǒng)把該答卷存入ANSWERSHEET表,該表主要有4個(gè)字段,as_id,s_id,as_result,as_userIP。As_id就是答卷的編號(hào),s_id是問卷的編號(hào),as_userIP是用戶的IP地址,而as_result是按一定結(jié)構(gòu)組織成的用戶的答卷信息。該結(jié)構(gòu)形式如下:18:as=1,4。text=醬油amp。@@amp。19:as=1。即每個(gè)題目用amp。@@amp。分隔;題目?jī)?nèi)部以題號(hào)開頭+冒號(hào)+[as=用戶選擇的項(xiàng)(多個(gè)項(xiàng)用逗號(hào)分隔)+分號(hào)]+[text=用戶輸入文本]。其次,當(dāng)用戶打開答卷頁(yè)面時(shí),頁(yè)面解析從數(shù)據(jù)庫(kù)傳過來的as_result字符串,先用amp。@@amp。拆成數(shù)組,然后再對(duì)每個(gè)字串進(jìn)行解析。把解析出來的qid構(gòu)造成一個(gè)ArrayList,根據(jù)個(gè)List,查找question表,迭代出該答卷所有的題目信息。然后,在頁(yè)面底部,用javascript給題目賦上用戶選擇或輸入的值。 第5章 總結(jié) 本系統(tǒng)的特點(diǎn)Internet網(wǎng)的調(diào)查系統(tǒng),為了管理方便,需要每個(gè)參與調(diào)查的用戶注冊(cè)會(huì)員,但更多的用戶只是并不想注冊(cè)會(huì)員來參與調(diào)查,有大部分都是在瀏覽網(wǎng)頁(yè)時(shí)順便參與調(diào)查,所以本系統(tǒng)不需要注冊(cè)會(huì)員。這樣,用戶就不會(huì)因?yàn)榉爆嵉淖?cè)過程而望而生
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1