




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、通用網(wǎng)絡(luò)調(diào)查問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)大學(xué) 學(xué)院 07計(jì)算機(jī) 2010年4月目 錄 TOC o 1-3 h z u HYPERLINK l _Toc260810764 前言 PAGEREF _Toc260810764 h 5 HYPERLINK l _Toc260810765 第1章 緒論 PAGEREF _Toc260810765 h 6 HYPERLINK l _Toc260810766 第1.1節(jié) 研究背景 PAGEREF _Toc260810766 h 6 HYPERLINK l _Toc260810767 第1.2節(jié) 課題研究的內(nèi)容及意義 PAGEREF _Toc260810767 h 6
2、 HYPERLINK l _Toc260810768 第1.3節(jié) 論文的組織結(jié)構(gòu) PAGEREF _Toc260810768 h 7 HYPERLINK l _Toc260810769 第2章 基本原理及技術(shù)介紹 PAGEREF _Toc260810769 h 8 HYPERLINK l _Toc260810770 第2.1節(jié) J2EE概述 PAGEREF _Toc260810770 h 8 HYPERLINK l _Toc260810771 第2.2節(jié) JavaScript PAGEREF _Toc260810771 h 9 HYPERLINK l _Toc260810772 第2.3節(jié) M
3、VC模式 PAGEREF _Toc260810772 h 10 HYPERLINK l _Toc260810773 第3章 系統(tǒng)分析與概要設(shè)計(jì) PAGEREF _Toc260810773 h 11 HYPERLINK l _Toc260810774 第3.1節(jié) 使用設(shè)計(jì)模式進(jìn)行系統(tǒng)設(shè)計(jì) PAGEREF _Toc260810774 h 11 HYPERLINK l _Toc260810775 第3.2節(jié) 系統(tǒng)總體設(shè)計(jì) PAGEREF _Toc260810775 h 11 HYPERLINK l _Toc260810776 3.2.1. 系統(tǒng)總體結(jié)構(gòu) PAGEREF _Toc260810776 h
4、 11 HYPERLINK l _Toc260810777 第3.3節(jié) 持久層設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc260810777 h 12 HYPERLINK l _Toc260810778 3.3.1. 數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc260810778 h 12 HYPERLINK l _Toc260810779 3.3.2. 持久層框架設(shè)計(jì) PAGEREF _Toc260810779 h 14 HYPERLINK l _Toc260810780 第3.4節(jié) 業(yè)務(wù)邏輯層的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc260810780 h 15 HYPERLINK l _Toc2608107
5、81 第4章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc260810781 h 16 HYPERLINK l _Toc260810782 第4.1節(jié) 用例圖 PAGEREF _Toc260810782 h 16 HYPERLINK l _Toc260810783 4.1.1. 系統(tǒng)用例圖 PAGEREF _Toc260810783 h 16 HYPERLINK l _Toc260810784 4.1.2. 模塊用例圖 PAGEREF _Toc260810784 h 16 HYPERLINK l _Toc260810785 第4.2節(jié) 部分功能的實(shí)現(xiàn) PAGEREF _Toc260810785
6、 h 17 HYPERLINK l _Toc260810786 4.2.1. 系統(tǒng)各文件功能說明 PAGEREF _Toc260810786 h 17 HYPERLINK l _Toc260810787 4.2.2. 系統(tǒng)部分主要功能實(shí)現(xiàn) PAGEREF _Toc260810787 h 18 HYPERLINK l _Toc260810788 第4.3節(jié) 用于獲取數(shù)據(jù)庫連接的實(shí)用方法 PAGEREF _Toc260810788 h 19 HYPERLINK l _Toc260810789 第4.4節(jié) 用于快速執(zhí)行SQL的類SQLCommand PAGEREF _Toc260810789 h 2
7、0 HYPERLINK l _Toc260810790 第4.5節(jié) 防刷票技術(shù)設(shè)計(jì) PAGEREF _Toc260810790 h 20 HYPERLINK l _Toc260810791 第4.6節(jié) 重難點(diǎn)問題解決方案研究 PAGEREF _Toc260810791 h 23 HYPERLINK l _Toc260810792 第5章 總結(jié) PAGEREF _Toc260810792 h 25 HYPERLINK l _Toc260810793 第5.1節(jié) 本系統(tǒng)的特點(diǎn) PAGEREF _Toc260810793 h 25 HYPERLINK l _Toc260810794 第5.2節(jié) 本系
8、統(tǒng)存在的不足 PAGEREF _Toc260810794 h 25 HYPERLINK l _Toc260810795 第5.3節(jié) 心得體會(huì) PAGEREF _Toc260810795 h 25 HYPERLINK l _Toc260810796 參考文獻(xiàn) PAGEREF _Toc260810796 h 26 HYPERLINK l _Toc260810797 致謝 PAGEREF _Toc260810797 h 27 HYPERLINK l _Toc260810798 附錄 PAGEREF _Toc260810798 h 28 HYPERLINK l _Toc260810799 附錄1:部分
9、源程序 PAGEREF _Toc260810799 h 28 HYPERLINK l _Toc260810800 附錄2:業(yè)務(wù)流程 PAGEREF _Toc260810800 h 37通用網(wǎng)絡(luò)調(diào)查問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【摘要】:在校園、機(jī)關(guān)或企業(yè)里,由于各種調(diào)查研究的需要,經(jīng)常會(huì)有各種各樣的調(diào)查問卷,在傳統(tǒng)模式下,人們不但要花費(fèi)不少的費(fèi)用印刷問卷,而且還要消耗大量時(shí)間和精力發(fā)放問卷,回收問卷,統(tǒng)計(jì)問卷,并且問卷可控性差,容易產(chǎn)生漏卷,廢卷等問題。本系統(tǒng)建立在信息技術(shù)基礎(chǔ)上,構(gòu)建一個(gè)在線的問卷設(shè)計(jì)、分發(fā)、調(diào)查、回收、統(tǒng)計(jì)的系統(tǒng),基本解決傳統(tǒng)問卷的上述問題。本文首先對J2EE體系架構(gòu)作了簡要介紹;然
10、后討論了設(shè)計(jì)模式在面向?qū)ο筌浖_發(fā)過程中的重要作用,闡述了在J2EE平臺下開發(fā)應(yīng)用程序的一些常用的設(shè)計(jì)模式,以及如何使用這些設(shè)計(jì)模式來對一個(gè)問卷調(diào)查系統(tǒng)項(xiàng)目進(jìn)行設(shè)計(jì);接著討論了應(yīng)用程序框架的概念以及使用應(yīng)用程序框架開發(fā)業(yè)務(wù)應(yīng)用程序所帶來的優(yōu)勢,最后研究和設(shè)計(jì)了一個(gè)建立在J2EE平臺上的通用框架。從而建立了一個(gè)能夠快速開發(fā)業(yè)務(wù)應(yīng)用程序的開發(fā)環(huán)境?!娟P(guān)鍵詞】:J2EE體系結(jié)構(gòu),問卷調(diào)查,設(shè)計(jì)模式,通用框架Abstract: On campus, authorities or enterprises in China, due to a variety of research needs, ofte
11、n have a variety of questionnaires, the traditional model, people not only have to spend a lot of the cost of printing the questionnaires, but also spend a lot of time and Issued on the questionnaire, the recovery of the questionnaire, statistical survey, questionnaires and control poor, prone to le
12、akage volume, the volume of waste. The system built on the basis of information technology, to build an online questionnaire design, distribution, investigation, recovery, statistical systems, the traditional solution to the basic appeal of the questionnaire chronic problem.The paper introduces J2EE
13、 architecture firstly, and then, the importance of design patterns and the advantage of developing object-oriented application using design patterns are discussed. With following, some important design patterns used on J2EE architecture are described, and the way how to use these design patterns to
14、design an enterprise management information system is introduced. Finally, the papers make a research and a design of a common framework established on J2EE platform.Key words: J2EE; questionnaire; common framework; survey前言由于各種原因,人們經(jīng)常有進(jìn)行問卷調(diào)查的需求,在傳統(tǒng)模式下,人們不但要花費(fèi)不少的費(fèi)用印刷問卷,而且還要消耗大量時(shí)間和精力發(fā)放問卷,回收問卷,統(tǒng)計(jì)問卷,并且
15、問卷可控性差,容易產(chǎn)生漏卷,廢卷等問題。與傳統(tǒng)調(diào)查方式相比較,網(wǎng)上問卷調(diào)查以其成本低、周期短、效率高、客觀性強(qiáng)和數(shù)據(jù)質(zhì)量高等特點(diǎn)越來越受到人們的青睞。本項(xiàng)目旨在建立一個(gè)基于J2EE的WEB應(yīng)用系統(tǒng),提供調(diào)查問卷創(chuàng)建、編輯、發(fā)布、統(tǒng)計(jì),題目添加刪除修改等功能;題目支持單選題、多選題、帶文本輸入的單選題、帶文本輸入的多選題、問答題;用戶可以給問卷添加圖片,設(shè)置密碼,IP限制,包括黑名單和白名單,也可以設(shè)置同一IP是否可以重復(fù)提交等防作弊選項(xiàng);系統(tǒng)提供對客觀題調(diào)查結(jié)果的智能統(tǒng)計(jì),并用圖表展示出來;針對每一張問卷的每一個(gè)題目的任易選項(xiàng),用戶也可以設(shè)置截?cái)啵K止調(diào)查,也可以設(shè)置跳轉(zhuǎn),即被調(diào)查者點(diǎn)擊了某個(gè)
16、選項(xiàng)后自動(dòng)跳轉(zhuǎn)到與該選項(xiàng)匹配的后續(xù)題目上。緒論研究背景在當(dāng)前的各類企業(yè)網(wǎng)站中,通常都需要提供有相應(yīng)的網(wǎng)絡(luò)調(diào)查功能,以便收集廣大客戶的意見或看法。類似的,在企業(yè)對有關(guān)問題(如客戶的意見、售后服務(wù)的滿意程度、產(chǎn)品改進(jìn)要求等)進(jìn)行調(diào)查研究時(shí),也可通過網(wǎng)絡(luò)調(diào)查的方式實(shí)時(shí)高效地獲取客戶反饋信息,作為決策制定的參考依據(jù)。課題研究的內(nèi)容及意義隨著INTERNET的發(fā)展,世界網(wǎng)民的數(shù)量急劇增加,社會(huì)的信息化強(qiáng)度增強(qiáng),企業(yè)競爭越發(fā)激烈,故對市場信息的掌握范圍不僅僅是周邊的一些信息,而應(yīng)把范圍擴(kuò)展到全國,甚至全世界,INTERNET恰恰是實(shí)現(xiàn)這目標(biāo)的有利工具。對于新產(chǎn)品,新觀點(diǎn)的調(diào)查范圍應(yīng)該更廣泛,消息應(yīng)該及時(shí)反
17、饋給企業(yè)單位,故一個(gè)網(wǎng)上在線調(diào)查問卷系統(tǒng)應(yīng)運(yùn)而生,它正好充分滿足客戶的需求,信息反饋的范圍擴(kuò)大,人力資源的節(jié)省,從而使得企業(yè)在競爭激烈的市場中擁有更強(qiáng)大的資本。開發(fā)此調(diào)查問卷系統(tǒng)是為了更好的把市場的信息更準(zhǔn)確更快速的反饋給客戶,使信息的來源更廣泛,從而提高信息的準(zhǔn)確性。運(yùn)用此系統(tǒng)可以降低企業(yè)為市場調(diào)查而消耗的人力和物力,利用節(jié)省的資源提高產(chǎn)品的質(zhì)量,增強(qiáng)競爭力。通用網(wǎng)絡(luò)調(diào)查問卷系統(tǒng)的主要研究內(nèi)容:調(diào)查問卷主題的管理:調(diào)查問卷主題的管理包括對調(diào)查主題的查看、添加、刪除和修改功能的實(shí)現(xiàn)。調(diào)查問卷回答: 此功能在調(diào)查界面中實(shí)現(xiàn),受調(diào)查者對于其感性趣的主題回答問卷,沒有選擇任何選項(xiàng)時(shí)回做出“您沒有選擇
18、選項(xiàng)” 的提示。除了這個(gè)功能外還有一個(gè)功能就記錄下每個(gè)對主題進(jìn)行投票調(diào)查者的IP地址,從而可以使調(diào)查的公平性得到保證,不給那些想根據(jù)實(shí)際需要搞假者以可乘之機(jī)。在問卷回答完成后點(diǎn)擊“確定”,系統(tǒng)會(huì)根據(jù)實(shí)際情況將選票加到相應(yīng)的項(xiàng)目上。查看問卷的調(diào)查情況: 這個(gè)功能的實(shí)現(xiàn)頁面是調(diào)查結(jié)果顯示頁面,在這個(gè)頁面中列出了關(guān)于某個(gè)調(diào)查的主題信息、該主題所包含的所有調(diào)查項(xiàng)目的名稱及每個(gè)項(xiàng)目的總投票數(shù),最重要的一個(gè)功能是加了明顯的進(jìn)度條,這個(gè)進(jìn)度條是經(jīng)過將該項(xiàng)目的總票數(shù)/各項(xiàng)目投票總數(shù)之和后得到的百分比。管理員的登陸: 在管理員的登陸中只有數(shù)據(jù)庫中存在的管理員才能進(jìn)入后臺進(jìn)行后臺的管理。論文的組織結(jié)構(gòu)本文介紹的是
19、基于J2EE的通用網(wǎng)絡(luò)調(diào)查問卷系統(tǒng),全文共分5章,分別如下:第一章:對此系統(tǒng)的功能進(jìn)行了總體的概述,并對論文結(jié)構(gòu)以及開發(fā)背景和意義作了簡要的介紹。第二章:基本原理及技術(shù)介紹部分。簡單介紹了與該項(xiàng)目有關(guān)的技術(shù)知識:J2EE概念,JavaScript語言,以及MVC框架模式。第三章:系統(tǒng)分析與概要設(shè)計(jì),介紹了本系統(tǒng)框架設(shè)計(jì)的具體實(shí)施流程,以及數(shù)據(jù)庫設(shè)計(jì)。第四章:描述了系統(tǒng)的具體設(shè)計(jì),包括關(guān)鍵功能的實(shí)現(xiàn)及分析,防刷票技術(shù)討論研究,以及重點(diǎn)疑難問題的解決。第五章:總結(jié)本系統(tǒng)的設(shè)計(jì),并討論了系統(tǒng)不足及改進(jìn)之處?;驹砑凹夹g(shù)介紹J2EE概述隨著Internet的迅速發(fā)展,作為一門新興的語言,Java以其
20、完全面向?qū)ο蟮脑O(shè)計(jì)風(fēng)格和良好的平臺無關(guān)性,已經(jīng)超越了語言本身的功能,成為了開發(fā)Web應(yīng)用的理想平臺。Java平臺包括了一種用于實(shí)現(xiàn)Java對象的語言和這些Java對象的運(yùn)行環(huán)境Java虛擬機(jī)JVM(Java Virtual Machine)。Java語言的主要特點(diǎn)是平臺無關(guān)性:在一個(gè)操作系統(tǒng)下開發(fā)的Java對象可以不做修改的運(yùn)行在另外一個(gè)操作系統(tǒng)的JVM上。JVM封裝了各種底層操作系統(tǒng)在體系結(jié)構(gòu)和語義上的差異,在此基礎(chǔ)上為Java對象提供了一個(gè)統(tǒng)一的運(yùn)行環(huán)境。Java對象的源代碼被編譯為平臺無關(guān)的中性代碼字節(jié)碼。在運(yùn)行時(shí)刻,字節(jié)碼由JVM進(jìn)行解釋,被映射為真正的相關(guān)的操作系統(tǒng)調(diào)用而得以執(zhí)行功能
21、。因此,只要是100%純Java語言實(shí)現(xiàn)的對象可以被各種具有相應(yīng)JVM的操作系統(tǒng)所支持。Sun公司的J2EE架構(gòu)是在1997年的Java One大會(huì)上宣布的,J2EE定義了開發(fā)和運(yùn)行企業(yè)級Web應(yīng)用的標(biāo)準(zhǔn)。它是一組規(guī)范,旨在為支持Java語言服務(wù)器端部署而提供平臺無關(guān)的、可移植的、多用戶的、安全的和標(biāo)準(zhǔn)的企業(yè)級平臺。伴隨J2EE的出現(xiàn),Java語言的功能和工具得到了極大的擴(kuò)充、豐富和發(fā)展,可以用于復(fù)雜的、多層次的以及分布式的電子商務(wù)和企業(yè)級應(yīng)用。J2EE構(gòu)架與技術(shù)為組件開發(fā)模型提供廣泛的支持,同時(shí)也提供一組開發(fā)工具和服務(wù),以便開發(fā)模塊化的、可重用的和平臺獨(dú)立的各種組件技術(shù)的業(yè)務(wù)邏輯。J2EE為
22、搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制,它具有以下突出的優(yōu)點(diǎn):1、事實(shí)的標(biāo)準(zhǔn):J2EE是由SUN引導(dǎo),各廠商共同發(fā)起的,并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn),業(yè)內(nèi)的大企業(yè)(如IBM,BEA,ORACLE等)都積極參與,很多應(yīng)用軟件開發(fā)商也把自己的產(chǎn)品轉(zhuǎn)移到J2EE平臺上來,使之成為事實(shí)的工業(yè)標(biāo)準(zhǔn)。因此,J2EE擁有良好的市場和旺盛的生命力。2、可保存現(xiàn)有的IT資產(chǎn):使用J2EE能夠充分利用客戶原有的投資,保留已有的信息資源;同時(shí),由于基于J2EE平臺的產(chǎn)品幾乎在任何操作系統(tǒng)和硬件配置上都可以運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能夠被保留使用。3、高效的開發(fā):J2EE允許公司把一些通用的、很繁
23、瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建業(yè)務(wù)邏輯上,相應(yīng)地縮短了開發(fā)時(shí)間。4、支持異構(gòu)環(huán)境:J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的程序不依賴于任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的應(yīng)用程序只需開發(fā)一次就可被部署到各種平臺。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分重要的。J2EE標(biāo)準(zhǔn)也允許客戶定購與J2EE兼容的第三方的現(xiàn)成的組件,把它們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制定整個(gè)方案所需的費(fèi)用。5、可伸縮性:企業(yè)必須選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的可伸縮性去滿足那些在它們的系統(tǒng)上進(jìn)行商業(yè)運(yùn)作的大批新客戶?;贘2EE平
24、臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX和大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個(gè)處理器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署。這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。6、穩(wěn)定的可用性:一個(gè)服務(wù)器端平臺必須能夠全天候運(yùn)轉(zhuǎn)以滿足公司客戶和合作伙伴的需要。因?yàn)镮nternet是全球化的、無處不在的,即使在夜間按計(jì)劃停機(jī)也可能造成嚴(yán)重?fù)p失。意外停機(jī)有可能造成災(zāi)難性后果??梢园袹2EE部署到可靠的操作環(huán)境中,它們支持長期的可用性。最健壯的操作系統(tǒng)可達(dá)到99.
25、999的可用性或每年只需5分鐘的停機(jī)時(shí)間,這是實(shí)時(shí)性很強(qiáng)商業(yè)系統(tǒng)理想的選擇。J2EE是開發(fā)分布式企業(yè)級應(yīng)用程序的中間件平臺。J2EE技術(shù)很好地解決了傳統(tǒng)二層體系架構(gòu)帶來的弊端;而且它也被許多提供企業(yè)應(yīng)用軟件的國際領(lǐng)先廠商所支持,擁有眾多的支撐與應(yīng)用資源,發(fā)展越來越成熟,因此在可以預(yù)見的將來具有很好的應(yīng)用前景。通過使用J2EE開發(fā)平臺,大大簡化了應(yīng)用程序的編程代碼量,部分地免去了編程的復(fù)雜性,提高了軟件的生產(chǎn)效率和可維護(hù)性。因此,通過使用J2EE架構(gòu),可以快速地開發(fā)出高質(zhì)量的企業(yè)級應(yīng)用軟件。JavaScriptJavaScript就是適應(yīng)動(dòng)態(tài)網(wǎng)頁制作的需要而誕生的一種新的編程語言,如今越來越廣泛
26、地使用于Internet網(wǎng)頁制作上。 JavaScript是由 Netscape公司開發(fā)的一種腳本語言(scripting language),或者稱為描述語言。在HTML基礎(chǔ)上,使用JavaScript可以開發(fā)交互式Web網(wǎng)頁。JavaScript的出現(xiàn)使得網(wǎng)頁和用戶之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁包含更多活躍的元素和更加精彩的內(nèi)容。 運(yùn)行用JavaScript編寫的程序需要能支持JavaScript語言的瀏覽器。Netscape公司 Navigator 30以上版本的瀏覽器都能支持 JavaScript程序,微軟公司 Internet Explorer 30以上版本的瀏
27、覽器基本上支持JavaScript。微軟公司還有自己開發(fā)的JavaScript,稱為Jscript。 JavaScript和Jscript基本上是相同的,只是在一些細(xì)節(jié)上有出入。 JavaScript短小精悍, 又是在客戶機(jī)上執(zhí)行的,大大提高了網(wǎng)頁的瀏覽速度和交互能力。 同時(shí)它又是專門為制作Web網(wǎng)頁而量身定做的一種簡單的編程語言。JavaScript 使網(wǎng)頁增加互動(dòng)性。JavaScript 使有規(guī)律地重復(fù)的HTML文段簡化,減少下載時(shí)間。JavaScript 能及時(shí)響應(yīng)用戶的操作,對提交表單做即時(shí)的檢查,無需浪費(fèi)時(shí)間交由 CGI 驗(yàn)證。JavaScript 的特點(diǎn)是無窮無盡的,只要擁有創(chuàng)意。
28、MVC模式模型視圖控制器(MVC)是Xerox PARC在八十年代為編程語言Smalltalk80發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE平臺的設(shè)計(jì)模式。MVC結(jié)構(gòu)提供了一種按功能對各種對象進(jìn)行分割的方法,它強(qiáng)制性地使應(yīng)用程序的輸入、處理和輸出分開,所以依據(jù)這種設(shè)計(jì)思想能夠構(gòu)造良好的松耦合的構(gòu)件。使用MVC的應(yīng)用程序被分成三個(gè)核心構(gòu)件:模型、視圖、控制器。它們各自處理自己的任務(wù)。 視圖:視圖是用戶看到并與之交互的界面。對老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已
29、層出不窮,它們包括Adobe Flash和象XHTML,XML/XSL,WML等一些標(biāo)識語言和Web services. 如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。 模型:模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對象來處理數(shù)據(jù)庫。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視
30、圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性??刂破鳎嚎刂破鹘邮苡脩舻妮斎氩⒄{(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器(例如:servlet)本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請求,然后確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。 MVC的處理過程,首先控制器接收用戶的請求,并決定應(yīng)該調(diào)用哪個(gè)模型來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。系統(tǒng)分析與概要設(shè)計(jì)使用設(shè)計(jì)模式進(jìn)行系統(tǒng)設(shè)計(jì)軟件模式
31、是軟件開發(fā)期間對重復(fù)問題的可復(fù)用解決方案,是經(jīng)驗(yàn)的總結(jié)。掌握這些設(shè)計(jì)模式后,當(dāng)遇到類似的問題時(shí),就可以快速利用已有的解決方案分析問題,然后采取適當(dāng)?shù)牟呗?,從而有效縮短軟件開發(fā)周期并提高軟件質(zhì)量。因此,使用設(shè)計(jì)模式是進(jìn)行軟件設(shè)計(jì)開發(fā)的有效途徑。在企業(yè)級應(yīng)用開發(fā)中,通過使用設(shè)計(jì)模式,可以大大提高應(yīng)用程序的性能和增加軟件的復(fù)用性。因此,在本項(xiàng)目中,采用經(jīng)過實(shí)踐檢驗(yàn)的、成熟的面向?qū)ο蟮脑O(shè)計(jì)模式來對本應(yīng)用系統(tǒng)進(jìn)行建模,以期達(dá)到服務(wù)質(zhì)量(QoS)較好(可擴(kuò)展性強(qiáng)、性能優(yōu)良、安全可靠,有一定的靈活性)的目的,并在此基礎(chǔ)上實(shí)現(xiàn)整個(gè)系統(tǒng)。系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體結(jié)構(gòu)本系統(tǒng)采用MVC的設(shè)計(jì)模式,用戶輸入輸出界面均為J
32、SP頁面,即展示層(VIEW),用戶的請求(REQUEST)將會(huì)被發(fā)送到控制層(CONTROL)的一個(gè)SERVLET集中處理,根據(jù)請求調(diào)用模型層(MODEL)的JAVABEAN對請求進(jìn)行實(shí)際處理,并把結(jié)果返回給控制層,控制層根據(jù)請求的執(zhí)行結(jié)果將響應(yīng)(RESPONSE)派發(fā)到相應(yīng)的JSP頁面。例如,一個(gè)數(shù)據(jù)提交(操作請求)的標(biāo)準(zhǔn)流程:在問卷管理模塊中的添加問卷頁面(SurveyAdd.jsp),用戶在這個(gè)頁面中輸入數(shù)據(jù),提交之后,請求被派發(fā)到一個(gè)名為SurveyManage的servlet中集中處理,在這個(gè)servlet中,調(diào)用了持久層的名為SurveyDAO 的javabean的addSurv
33、ey方法對數(shù)據(jù)進(jìn)行持久化,然后把處理結(jié)果返回給SurveyMange這個(gè)控制器,控制器根據(jù)返回的結(jié)果決定將相應(yīng)的頁面展現(xiàn)給客戶端瀏覽器。又如,一個(gè)數(shù)據(jù)查詢(數(shù)據(jù)請求)的標(biāo)準(zhǔn)流程:在問卷設(shè)計(jì)頁面中(SurveyAdmin.jsp),用戶打開頁面后,頁面即調(diào)用SurveyDAO的listAllSurvey方法查詢出所有問卷信息返回給頁面,即頁面進(jìn)行數(shù)據(jù)查詢時(shí)不再經(jīng)過CONTROLLER層。如圖3-1。圖3-1 MVC設(shè)計(jì)模式持久層設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)核心實(shí)體包括:管理員表(admins)(表3-1);問卷表(survey)(表3-2);答卷表(answersheet)(表3-3);題目表(ques
34、tion)(表3-4);還有保存用戶輸入文本內(nèi)容的文本輸入表(text)(表3-5)。表3-1 管理員表(admins)字段名類型可否空含義a_idnumeric(18, 0)no管理員ID,主鍵a_uservarchar(50)yes管理員名a_passvarchar(50)yes密碼a_namevarchar(50)yes真實(shí)姓名a_isLockbityes是否鎖定a_lastLogTimedatetimeyes最后登錄時(shí)間a_logTimesnumeric(18, 0)yes登錄次數(shù)a_loginIpvarchar(50)yes登錄ipa_addtimedatetimeyes管理員帳號添
35、加日期a_emailvarchar(100)yes電子郵箱表3-2問卷表(survey)字段名類型可否空含義s_idNumericNo問卷IDTemplet_idNumericNo模板IDS_nameVarchar(100)No問卷名稱S_descVarchar(500)Yes問卷描述S_authorVarchar(100)Yes發(fā)起人S_imgVarchar(1000)Yes圖片文件名S_ipRepeatBit(1)Yes是否允許同一IP多次提交S_createdateDatetimeYes創(chuàng)建時(shí)間S_ipLimitTypeVarchar(100)YesIP限制類型,預(yù)留字段未使用S_ipR
36、angeVarchar(2000)YesIP限制范圍,格式如下:“白名單:192.168.0.1192.168.0.254;黑名單:127.0.0.1127.0.0.1”S_passwordVarchar(100)Yes訪問密碼S_isOpenBit(1)Yes是否開放,即是否顯示在首頁S_expireDateDatetimeYes過期日期S_isAuditedBit(1)Yes是否審核通過S_hitsNumericYes點(diǎn)擊訪問次數(shù)S_usehitsNumericYes答卷張數(shù)表3-3 答卷表(answersheet)字段名類型可否空含義as_idnumeric(9)no答卷IDs_idnu
37、meric(9)no問卷ID,survey表外鍵as_resultvarchar(8000)yes答卷內(nèi)容 格式如下:18:as=1,4;text=醬油&19:as=1;即每個(gè)題目用戶&分隔;題目內(nèi)部以題號開頭+冒號+用戶選擇的項(xiàng)+分號+用戶輸入文本as_postdatedatetimeyes提交日期as_userIPvarchar(50)yes用戶IP表3-4 題目表(question)字段名類型可否空含義Q_idnumericNo題目IDS_idNumeric(18)No問卷ID,survey表外鍵Q_typeNumber(18)No題目類型: 1單選題,2多選題,3單選題加輸入框,4多選
38、題加輸入框,5問答題Q_headVarchar(1000)Yes題干Q_bodyVarchar(8000)Yes選項(xiàng)以 &$& 分隔Q_resultVarchar(1000)Yes用戶提交的選擇,格式如下:2,3,5,2表示選擇A選項(xiàng)被選擇了2次,B選項(xiàng)被選擇了3次,C選項(xiàng)被選擇了5次,D選項(xiàng)被選擇了2次,即此選項(xiàng)被選擇了一次之后,其對應(yīng)的RESULT值加一。Q_imgVarchar(1000)Yes題目的圖片Q_jdtzVarchar(1000)Yes截?cái)嗵D(zhuǎn):格式如下:null&69&over&90即用戶點(diǎn)擊A選項(xiàng)后,跳轉(zhuǎn)到默認(rèn)的題目,即下一題,點(diǎn)擊B跳轉(zhuǎn)到69號題,點(diǎn)擊C終止問卷,點(diǎn)擊D
39、跳轉(zhuǎn)到90號題Q_orderNumeric(18)yes題目順序號表3-5文本輸入表(text)字段名類型可否空含義t_idnumeric(18, 0)no答案ID,主鍵q_idnumeric(18, 0)no題目IDt_contentvarchar(8000)no文本內(nèi)容為保證每個(gè)題目可以有不限量個(gè)選項(xiàng),在question表中,把q_body字段用來保存該題目所以的選項(xiàng)信息,每個(gè)選項(xiàng)用&$&這個(gè)特殊字符串隔開,同樣的,在q_result中保存的調(diào)查結(jié)果信息用逗號隔開,在q_jdtz中保存的截?cái)嗵D(zhuǎn)信息用&隔開。持久層框架設(shè)計(jì)持久性框架是一組軟件服務(wù),將應(yīng)用程序同其使用和操縱的數(shù)據(jù)源分離。它位
40、于機(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模式、簡單工廠模式。DAO(數(shù)據(jù)訪問對象)模式:數(shù)據(jù)訪問對象(DAO)模式使用數(shù)據(jù)訪問對象來封裝和抽象對所有數(shù)據(jù)源的訪問,它管理著與數(shù)據(jù)源的連接以便于檢索和存儲(chǔ)數(shù)據(jù),為業(yè)務(wù)對象提供了透明的底層數(shù)據(jù)訪問實(shí)現(xiàn)。DAO模式完全包裝數(shù)據(jù)的讀取和操縱,并包裝與數(shù)據(jù)庫交互的數(shù)據(jù)訪問API,它用數(shù)值對象包裝從數(shù)據(jù)庫讀取和發(fā)送到數(shù)據(jù)庫的數(shù)據(jù),與業(yè)務(wù)層進(jìn)行通信。DAO模式提供的靈活性是由于應(yīng)用程序并不直接訪問數(shù)據(jù)
41、源,而是創(chuàng)建DAO對象,用其訪問數(shù)據(jù)源。讀取數(shù)據(jù)時(shí),可以用數(shù)值對象保存取得的數(shù)據(jù)。VO(值對象)模式:使用值對象能夠減少使用實(shí)體bean時(shí)需要的遠(yuǎn)程調(diào)用的次數(shù)。本系統(tǒng)使用值對象來封裝業(yè)務(wù)數(shù)據(jù),用相應(yīng)的方法調(diào)用來設(shè)置和檢索值對象。當(dāng)客戶端向?qū)嶓wbean請求業(yè)務(wù)數(shù)據(jù)時(shí),該實(shí)體bean可以構(gòu)造值對象,用屬性值來填充,并且將值對象傳送給客戶端。同樣道理,客戶端向?qū)嶓wbean提交數(shù)據(jù)時(shí),也采用值對象這一辦法。系統(tǒng)中所有的數(shù)據(jù)庫實(shí)體,都被封裝成了這樣的VO。如頁面上要數(shù)據(jù)庫中添加一個(gè)問卷,那么首先頁面把數(shù)據(jù)發(fā)送到控制層的SERVLET,在該SERVLET中通過頁面?zhèn)鬟^來的參數(shù)構(gòu)造一個(gè)VO,然后把這個(gè)VO傳
42、遞給DAO對象,DAO對象最后完成對數(shù)據(jù)庫的控制操作。簡單工廠模式:專門定義一個(gè)類來負(fù)責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。它又稱為靜態(tài)工廠方法模式,屬于類的創(chuàng)建型模式。簡單工廠模式的實(shí)質(zhì)是由一個(gè)工廠類根據(jù)傳入的參數(shù),動(dòng)態(tài)決定應(yīng)該創(chuàng)建哪一個(gè)產(chǎn)品類(這些產(chǎn)品類繼承自一個(gè)父類或接口)的實(shí)例。工廠類使用了多方法工廠,隔離上層與數(shù)據(jù)庫底層,使上層方法不用關(guān)心底層采用何種數(shù)據(jù)庫實(shí)現(xiàn),系統(tǒng)如果要遷移到其他數(shù)據(jù)庫上,也只需實(shí)現(xiàn)相應(yīng)的DAO接口,然后在DAOFactroy類中修改返回的實(shí)現(xiàn)類即可。業(yè)務(wù)邏輯層的設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)涉及的業(yè)務(wù)邏輯相對簡單,因此在設(shè)計(jì)的時(shí),將其并入MVC控制層,在控制層
43、中直接調(diào)用DAO處理對象持久化操作。系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)用例圖系統(tǒng)用例圖圖4-1 系統(tǒng)用例圖模塊用例圖(1)管理員登錄模塊用例圖圖4-2管理員登錄模塊用例圖(2)管理員模塊用例圖圖4-3 管理員模塊用例圖(3)用戶模塊用例圖圖4-4用戶模塊用例圖部分功能的實(shí)現(xiàn)系統(tǒng)各文件功能說明表4-1管理員文件功能說明文件名功能admin_index.jsp后臺管理頁面框架admin_left.jsp后臺管理頁面菜單admin_main.jsp后臺管理頁面初始主頁admin_top.jsp后臺管理主頁LOGO頭AdminAdd.jsp添加管理員AdminList.jsp管理員列表AdminModifg.jsp管
44、理員信息修改OpResult.jsp顯示操作成功或失敗信息QuestionAdmin.jsp問題增加QuestionEdit.jsp問題編輯QuestionJD.jsp問題截?cái)嘣O(shè)置QuestionTZ.jsp顯示答卷列表ShowSheet.jsp問卷預(yù)覽ShowSheets.jsp顯示問卷列表ShowText.jsp顯示答案文本信息SurveyAdd.jsp增加調(diào)查卷SurveyAdmin.jsp調(diào)查卷管理SurveyAudi.jsp調(diào)查卷審核SurveyEdit.jsp調(diào)查卷設(shè)計(jì)SurveyStatis.jsp問卷統(tǒng)計(jì)SurveyStatisShow.jsp統(tǒng)計(jì)結(jié)果顯示upload.jsp上
45、傳圖片表4-2用戶文件功能說明文件名功能index.jsp系統(tǒng)首頁,顯示調(diào)查中的問卷列表ajax_SurveyShow.jsp被SurveyShow.jsp調(diào)用,根據(jù)數(shù)據(jù)庫中問題的類型字段,生成相應(yīng)的題形(單選,多選等)。img.jsp生成4位隨機(jī)數(shù)的圖片login.jsp管理員登錄logout.jsp管理員退出OpResult.jsp顯示操作成功或失敗信息Survey_Code.jsp輸入問卷編號和密碼,訪問私有調(diào)查卷Survey_list.jsp顯示調(diào)查卷列表Survey_list2.jsp可將該頁面嵌入其他頁面,顯示調(diào)查卷列表SurveyShow.jsp顯示調(diào)查卷,源代碼見附錄1系統(tǒng)部分
46、主要功能實(shí)現(xiàn)由于調(diào)查卷的問題和選擇題的選項(xiàng)是不確定的,所以如何顯示問卷是一個(gè)重點(diǎn)(源代碼見附錄1)。當(dāng)用戶在調(diào)查卷列表頁面選擇一個(gè)調(diào)查卷進(jìn)入調(diào)查卷顯示頁面時(shí)1根據(jù)傳遞過來的問卷ID號,到數(shù)據(jù)庫中獲取問卷;2對問卷進(jìn)行問卷開放性校驗(yàn),問卷過期時(shí)間校驗(yàn),問卷IP檢驗(yàn),密碼檢驗(yàn);3調(diào)用ajax_SurveyShow.jsp(源代碼見附錄1)頁面來顯示題目,根據(jù)字段Q_type 的值來判斷題目類型,1單選題,2多選題,3單選題加輸入框,4多選題加輸入框,5問答題;4傳遞一個(gè)4位隨機(jī)數(shù)給img.jsp來生成防止刷票的驗(yàn)證圖片;5用戶提交后,判斷用戶已填寫所有問題,以及驗(yàn)證碼是否正確。用于獲取數(shù)據(jù)庫連接的
47、實(shí)用方法首先,在TOMCAT的CONTEXT.XML里配置如下代碼:接著在WEB-INF/WEB.XML里配置如下代碼: JNDIname java.lang.String jdbc/survey/JNDI名稱 然后,在ConnectionFactory中寫:public class ConnectionFactory private ConnectionFactory()public static Connection getConnection()try String JNDIname=(String)new javax.naming.InitialContext().lookup(jav
48、a:comp/env/JNDIname);/尋找WEB.XML中的JNDIname的值,通過它來找到數(shù)據(jù)庫JNDI的名稱return ConnectionFactory.getConnection(JNDIname); catch (NamingException e) e.printStackTrace();return null;public static Connection getConnection(String JNDIname) try Context initCtx = new InitialContext(); Context envCtx = (Context) initC
49、tx.lookup(java:comp/env); DataSource ds = (DataSource) envCtx.lookup(JNDIname);/通過指定的JNDI名稱獲取數(shù)據(jù)庫連接,如jdbc/surveyreturn ds.getConnection(); catch (NamingException e1) e1.printStackTrace();return null; catch (SQLException e) e.printStackTrace();return null;總體思路就是通過web.xml獲取JNDI名稱,然后通過JNDI名稱去查找TOMCAT初始上
50、下文中的JNDI配置中數(shù)據(jù)源,獲取這個(gè)數(shù)據(jù)源,創(chuàng)建數(shù)據(jù)庫連接。用于快速執(zhí)行SQL的類SQLCommand為了簡化開發(fā)的復(fù)雜度,把執(zhí)行SQL的語句進(jìn)行了封裝,打包成一個(gè)SQLCommand類,使用這個(gè)類操作數(shù)據(jù)庫,不用再關(guān)心數(shù)據(jù)庫連接的獲取和釋放,只需提供要執(zhí)行的SQL即可。但是,考慮到模塊耦合的問題,本系統(tǒng)并不會(huì)在頁面中或業(yè)務(wù)邏輯層中使用本工具,主要在DAO的實(shí)現(xiàn)類中使用本工具。SQLCommand的主要方法有:executeSQLs(String sqls) 方法:執(zhí)行一組SQL;executeSQL(String sql) 方法:執(zhí)行一條SQL;queryRowSet(String sql
51、) 方法:執(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é)果都是為決策作參考,不管對一個(gè)單位還是一個(gè)部門,決策失誤都會(huì)帶來意想不到的損失,所以防止重復(fù)回答問卷具有重要意義。本文采用以下幾個(gè)方法在一定程度上可以防止連續(xù)反復(fù)回答問卷。解決方案:一:如果在添加問卷時(shí),不勾選“同一
52、IP可重復(fù)提交”,如圖4-5,可以禁止相同ip的客戶機(jī)重復(fù)提交數(shù)據(jù),其原理是記錄每個(gè)答卷著的ip地址,與他的答卷放在同一張數(shù)據(jù)表中,在開始答卷前,如在數(shù)據(jù)表中找到相同ip的答卷,則判斷為重復(fù)回答。圖4-5 不勾選 “同一IP可重復(fù)提交”二:如只需在內(nèi)部網(wǎng)絡(luò)中進(jìn)行調(diào)查,可以選擇“設(shè)置訪問IP限制” 如圖4-6,設(shè)置禁止或允許訪問問卷的ip地址。其原理是在用戶訪問問卷是,對用戶的ip進(jìn)行判斷,是否在允許或禁止的ip段里,從而來允許或禁止用戶回答問卷。圖4-6 設(shè)置ip訪問權(quán)限三:管理員可以選擇是否公開問卷,如圖4-7,選擇公開,則在首頁顯示調(diào)查問卷,如選擇不公開,則用戶必須知道問卷的正確的編號及訪
53、問密碼,才可以進(jìn)行回答問卷。表4-7 設(shè)置公開問卷四:增加動(dòng)態(tài)驗(yàn)證碼。人工刷票的危害還是相對有限的,對數(shù)據(jù)準(zhǔn)確性危害最大的是使用軟件自動(dòng)進(jìn)行回答問卷,在問卷中加入動(dòng)態(tài)驗(yàn)證碼已成為防止軟件進(jìn)行刷票的有效方法。在本系統(tǒng)中,在用戶申請打開問卷的同時(shí),由服務(wù)器產(chǎn)生一張4位隨機(jī)數(shù)的圖片,在用戶點(diǎn)擊提交問卷時(shí),首先判斷輸入的驗(yàn)證碼是否正確,如不正確,則彈出警告框,并禁止提交問卷。如圖4-8,圖4-9:圖4-8 產(chǎn)生動(dòng)態(tài)驗(yàn)證圖片圖 4-9 動(dòng)態(tài)驗(yàn)證碼輸入錯(cuò)誤提示以上4種方法,前面3種可以由管理員按情況來自由組合配置,而第4種方法為了數(shù)據(jù)有效性,強(qiáng)制執(zhí)行,通過以上措施可以有效防止人為惡意刷票的行為出現(xiàn)。重難點(diǎn)
54、問題解決方案研究需求描述:很多情況下,問卷發(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)很可能不一樣的情況,如圖4-10,4-11:圖4-10用戶A答卷圖4-11用戶B答卷解決方案:首先,在用戶提交問卷的時(shí)候,系統(tǒng)把該答卷存入ANSWERSHEET表,該表主要有4個(gè)字段,as_id,s_id,as_result,as_userIP。As_id就是答卷的編號,s_id是問卷的編號,as_userIP是用戶的IP地
55、址,而as_result是按一定結(jié)構(gòu)組織成的用戶的答卷信息。該結(jié)構(gòu)形式如下:18:as=1,4;text=醬油&19:as=1;即每個(gè)題目用&分隔;題目內(nèi)部以題號開頭+冒號+as=用戶選擇的項(xiàng)(多個(gè)項(xiàng)用逗號分隔)+分號+text=用戶輸入文本。其次,當(dāng)用戶打開答卷頁面時(shí),頁面解析從數(shù)據(jù)庫傳過來的as_result字符串,先用&拆成數(shù)組,然后再對每個(gè)字串進(jìn)行解析。把解析出來的qid構(gòu)造成一個(gè)ArrayList,根據(jù)個(gè)List,查找question表,迭代出該答卷所有的題目信息。然后,在頁面底部,用javascript給題目賦上用戶選擇或輸入的值。總結(jié)本系統(tǒng)的特點(diǎn)Internet網(wǎng)的調(diào)查系統(tǒng),為了
56、管理方便,需要每個(gè)參與調(diào)查的用戶注冊會(huì)員,但更多的用戶只是并不想注冊會(huì)員來參與調(diào)查,有大部分都是在瀏覽網(wǎng)頁時(shí)順便參與調(diào)查,所以本系統(tǒng)不需要注冊會(huì)員。這樣,用戶就不會(huì)因?yàn)榉爆嵉淖赃^程而望而生畏,增加了系統(tǒng)的調(diào)查數(shù)據(jù)量。本系統(tǒng)存在的不足本系統(tǒng)從設(shè)計(jì)到實(shí)現(xiàn),遇到了許多困難,一是因?yàn)樽约簩蚣芎蛿?shù)據(jù)庫的了解不夠深入,二是開發(fā)經(jīng)驗(yàn)不夠,但經(jīng)過反復(fù)實(shí)踐,反復(fù)修改,最終把系統(tǒng)開發(fā)出來,但仍然還有一些不足,具體如下所示:(1)由于時(shí)間比較緊迫,在做開發(fā)設(shè)計(jì)的時(shí)候,考慮不夠充分,導(dǎo)致系統(tǒng)在開發(fā)過程中要對系統(tǒng)的流程結(jié)構(gòu)做修改,這對開發(fā)流程的影響是非常大的。(2)因?yàn)轫?xiàng)目開發(fā)經(jīng)驗(yàn)不足,在代碼的精簡上做的有些欠缺,
57、代碼的重利用率不搞,重復(fù)的地方比較多,而且系統(tǒng)的可讀性也不是好。(3)由于沒有測試經(jīng)驗(yàn),對系統(tǒng)的抗壓能力,穩(wěn)定性,安全性不是很了解。心得體會(huì)在J2EE架構(gòu)上進(jìn)行的軟件開發(fā),雖然是面向組件的,但究其根本還是屬于面向?qū)ο蟮某绦蛟O(shè)計(jì)方法范疇。因此,軟件除了必須給用戶提供必需的基本功能外,還需要使軟件具備可重用性、可維護(hù)性、可擴(kuò)展性、可移植性和靈活性。面向?qū)ο笤O(shè)計(jì)模式的產(chǎn)生和應(yīng)用,正是為了實(shí)現(xiàn)這些目標(biāo)。工業(yè)化的軟件復(fù)用已經(jīng)從通用類庫發(fā)展到了面向領(lǐng)域的應(yīng)用框架??蚣艿淖畲蠛锰幘褪侵赜茫嫦?qū)ο笙到y(tǒng)獲得的最大的復(fù)用方式就是框架??蚣艿闹赜靡殉蔀檐浖a(chǎn)中最有效的重用方式之一,大型應(yīng)用系統(tǒng)往往可能由多層互相
58、協(xié)作的框架組成。在某些方面使用別人的成熟的框架,就相當(dāng)于讓別人完成了一些基礎(chǔ)工作,只需要集中精力完成應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì),從而使軟件生產(chǎn)效率得到了大幅度提高。因此,使用框架開發(fā)應(yīng)用程序,能夠加快開發(fā)速度,逐漸成為了企業(yè)應(yīng)用程序開發(fā)的趨勢。在論文中,本項(xiàng)目嘗試設(shè)計(jì)了一個(gè)通用框架的原型系統(tǒng),希望能夠?qū)崿F(xiàn)軟件復(fù)用,達(dá)到快速開發(fā)應(yīng)用程序的目的。參考文獻(xiàn)盧守東.通用網(wǎng)上調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)J.廣西財(cái)經(jīng)學(xué)院學(xué)報(bào),2006,19(10):327-329.曾令明,索望,甘剛,宋波.Java程序設(shè)計(jì)教程M. 西安:西安電子科技大學(xué)出版社;2007:204-2115.劉曉華.JSP應(yīng)用開發(fā)詳解(第三版)M.北京
59、:電子工業(yè)出版社,2007:286-287.張銘澤.JavaScript權(quán)威指南(第四版)M.北京:機(jī)械工業(yè)出版社,2003:259-284.朱末霞.基于JSP開發(fā)的網(wǎng)上調(diào)查系統(tǒng)J.大學(xué)圖書情報(bào)學(xué)刊,2007,25(1):45-48.孫曉菲,張亞莉.基于JSP的網(wǎng)絡(luò)問卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)J.計(jì)算機(jī)與現(xiàn)代化,2006(4):91-94.汪孝宜.JSP數(shù)據(jù)庫開發(fā)實(shí)例精粹M.北京:電子工業(yè)出版社,2005:89.馮燕奎,趙德奎.JSP實(shí)用案例教程M.北京:清華大學(xué)出版社,2004:142.范新民.基于JSP、JDBC技術(shù)動(dòng)態(tài)訪問Web數(shù)據(jù)庫的實(shí)現(xiàn)方案J.福建師范大學(xué)學(xué)報(bào):自然科學(xué)版2002,1
60、8(2):28-33.吳晨清,榮震華.用JSP/Servlet技術(shù)構(gòu)建Web應(yīng)用J.計(jì)算機(jī)工程,2001,27(1):170-172.彭巧珍,姚力文,段隆振,袁萍.基于JSP技術(shù)的網(wǎng)上選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)J.計(jì)算機(jī)與現(xiàn)代化,2004(8):122124.萬華.基于JSP的網(wǎng)上購物系統(tǒng)的實(shí)現(xiàn)J.現(xiàn)代計(jì)算機(jī),2002(10):6063.致謝感謝任勇老師在畢業(yè)設(shè)計(jì)中給予耐心的指導(dǎo)與幫助,在這次畢業(yè)設(shè)計(jì)中我學(xué)到許多書本上學(xué)不到的東西。在系統(tǒng)制作過程中,遇到很多問題,剛開始覺得無從下手,不知從哪里找資料,在任老師的指導(dǎo)下我學(xué)會(huì)了如何解決問題,鍛煉了自己的動(dòng)手能力,做到“學(xué)以致用”。在完成畢業(yè)論文之時(shí),我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2199-2025數(shù)字式時(shí)鐘校準(zhǔn)規(guī)范
- 前期策劃合同范本
- 養(yǎng)牛設(shè)備出售合同范本
- 保障性住房購房合同范本
- 加油卡租車合同范本
- 協(xié)議單位優(yōu)惠合同范例
- 醫(yī)藥物流合同范本
- 修叉車合同范本
- 勞務(wù)分包協(xié)議合同范本
- 勞務(wù)合同范本已填
- 脫硫自動(dòng)化控制-洞察分析
- 醫(yī)務(wù)人員醫(yī)德醫(yī)風(fēng)培訓(xùn)
- 人教版初中歷史八上-第2課 第二次鴉片戰(zhàn)爭
- 2024湖北省金口電排站管理處招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 油井供水合同范例
- 2025年人教部編版語文五年級下冊教學(xué)計(jì)劃(含進(jìn)度表)
- 全國計(jì)算機(jī)等級考試一級試題及答案(5套)
- 銀河證券-科創(chuàng)板認(rèn)知測評題目及答案
- 產(chǎn)品方案設(shè)計(jì)模板
- 部隊(duì)通訊員培訓(xùn)
- 物業(yè)公司水浸、水管爆裂事故應(yīng)急處置預(yù)案
評論
0/150
提交評論