在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對(duì)本研究提供過幫助和做出過貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說明并表示了謝意。作者簽名:日期:指導(dǎo)教師簽名:日期:使用授權(quán)說明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。作者簽名:日期:

學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名: 日期:年月日導(dǎo)師簽名:日期:年月日

注意事項(xiàng)1.設(shè)計(jì)(論文)的內(nèi)容包括:1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關(guān)鍵詞4)外文摘要、關(guān)鍵詞5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻(xiàn)8)致謝9)附錄(對(duì)論文支持必要時(shí))2.論文字?jǐn)?shù)要求:理工類設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字?jǐn)?shù)不少于1.2萬字。3.附件包括:任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求,無錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫2)工程設(shè)計(jì)類題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國家技術(shù)標(biāo)準(zhǔn)規(guī)范。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫3)畢業(yè)論文須用A4單面打印,論文50頁以上的雙面打印4)圖表應(yīng)繪制于無格子的頁面上5)軟件工程類課題應(yīng)有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(jì)(論文)2)附件:按照任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)次序裝訂

指導(dǎo)教師評(píng)閱書指導(dǎo)教師評(píng)價(jià):一、撰寫(設(shè)計(jì))過程1、學(xué)生在論文(設(shè)計(jì))過程中的治學(xué)態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學(xué)生掌握專業(yè)知識(shí)、技能的扎實(shí)程度□優(yōu)□良□中□及格□不及格3、學(xué)生綜合運(yùn)用所學(xué)知識(shí)和專業(yè)技能分析和解決問題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學(xué)性;技術(shù)線路的可行性;設(shè)計(jì)方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設(shè)計(jì))期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績(jī):□優(yōu)□良□中□及格□不及格(在所選等級(jí)前的□內(nèi)畫“√”)指導(dǎo)教師:(簽名)單位:(蓋章)年月日

評(píng)閱教師評(píng)閱書評(píng)閱教師評(píng)價(jià):一、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績(jī):□優(yōu)□良□中□及格□不及格(在所選等級(jí)前的□內(nèi)畫“√”)評(píng)閱教師:(簽名)單位:(蓋章)年月日教研室(或答辯小組)及教學(xué)系意見教研室(或答辯小組)評(píng)價(jià):一、答辯過程1、畢業(yè)論文(設(shè)計(jì))的基本要點(diǎn)和見解的敘述情況□優(yōu)□良□中□及格□不及格2、對(duì)答辯問題的反應(yīng)、理解、表達(dá)情況□優(yōu)□良□中□及格□不及格3、學(xué)生答辯過程中的精神狀態(tài)□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格評(píng)定成績(jī):□優(yōu)□良□中□及格□不及格教研室主任(或答辯小組組長(zhǎng)):(簽名)年月日教學(xué)系意見:系主任:(簽名)年月日摘要科學(xué)技術(shù)日新月異的發(fā)展使社會(huì)信息化程度越來越高。傳統(tǒng)的問卷調(diào)查一般采用書面問卷、直接采訪、電話等媒體形式,其費(fèi)用較高,操作不靈活,而且調(diào)查周期長(zhǎng),效果卻只能在相對(duì)局限的區(qū)域里。鑒于此情況,傳統(tǒng)的問卷調(diào)查已經(jīng)不能滿足社會(huì)發(fā)展和人們生活的需求,迫使人們尋求一種更高效的方式來捕獲所需要的信息,因此網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)應(yīng)運(yùn)而生。在線問卷系統(tǒng)是一個(gè)對(duì)網(wǎng)上問卷調(diào)查中設(shè)計(jì)問卷、問卷發(fā)布收集和問卷調(diào)查結(jié)果統(tǒng)計(jì)分析與存儲(chǔ)的全部過程提供全程支持的系統(tǒng)。對(duì)上述三個(gè)過程的支持分別由問卷設(shè)計(jì)子系統(tǒng)、問卷收發(fā)子系統(tǒng)、問卷結(jié)果處理子系統(tǒng)實(shí)現(xiàn)。其中問卷設(shè)計(jì)子系統(tǒng)是其它兩個(gè)子系統(tǒng)的基礎(chǔ),問卷收發(fā)子系統(tǒng)依賴于問卷設(shè)計(jì)子系統(tǒng),而問卷結(jié)果處理子系統(tǒng)不僅依賴于問卷設(shè)計(jì)子系統(tǒng),也依賴于問卷收發(fā)子系統(tǒng)。該系統(tǒng)采用Myeclipse,Mysql,JAVA作為開發(fā)工具。關(guān)鍵詞:WEB;網(wǎng)上調(diào)查;問卷系統(tǒng);JAVATOC\o"1-3"\h\u14066摘要 I28119Abstract II304471緒論 158271.1課題背景和意義 1308811.2問卷系統(tǒng)研究現(xiàn)狀 1304431.3本文主要工作 262892系統(tǒng)關(guān)鍵技術(shù) 314132.1JSP技術(shù) 347722.1.1JSP簡(jiǎn)介 3210602.1.2JSPWeb開發(fā) 3243942.1.3JSP的特點(diǎn) 4155272.2JDK 4297552.2.1JDK組成 595462.2.2JDK常用的包 5283942.2.3JDK常用工具 538552.3Tomcat服務(wù)器 6156802.3.1簡(jiǎn)介 6137612.3.2Tomcat的功能 6302612.4MySQL數(shù)據(jù)庫體系 7211942.5AJAX 8223163在線問卷系統(tǒng)的分析和設(shè)計(jì) 9191393.1系統(tǒng)需求分析 9226523.2系統(tǒng)功能分析 9238043.3問卷系統(tǒng)的設(shè)計(jì) 10215953.3.1系統(tǒng)體系架構(gòu)設(shè)計(jì) 11248083.3.2系統(tǒng)工作流程設(shè)計(jì) 12189314在線問卷系統(tǒng)的功能實(shí)現(xiàn) 12283324.1Java簡(jiǎn)介 13320364.2系統(tǒng)運(yùn)行環(huán)境的配置 13182394.3系統(tǒng)功能實(shí)現(xiàn) 1615564.3.1數(shù)據(jù)庫設(shè)計(jì) 16146144.3.2功能模塊設(shè)計(jì) 17155494.4系統(tǒng)運(yùn)行截圖 23230915總結(jié)與展望 2319779參考文獻(xiàn) 24935致謝 251緒論1.1課題背景和意義科學(xué)技術(shù)日新月異的發(fā)展使社會(huì)信息化程度越來越高。傳統(tǒng)的問卷調(diào)查一般采用書面問卷、直接采訪、電話等媒體形式,其費(fèi)用較高,操作不靈活,而且調(diào)查周期長(zhǎng),效果卻只能在相對(duì)局限的區(qū)域里。鑒于此情況,傳統(tǒng)的問卷調(diào)查已經(jīng)不能滿足社會(huì)發(fā)展和人們生活的需求,迫使人們尋求一種更高效的方式來捕獲所需要的信息,因此網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)應(yīng)運(yùn)而生。網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)的產(chǎn)生和發(fā)展給人們帶來了相當(dāng)大的便捷,首先網(wǎng)絡(luò)問卷調(diào)查基于網(wǎng)絡(luò)來傳遞信息,信息傳播速度快、范圍廣,使得問卷調(diào)查的目標(biāo)群體不只局限于某一地區(qū),可以發(fā)展到全國,甚至全世界。其次網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)節(jié)約成本,一方面,系統(tǒng)的開發(fā)不需要額外增加設(shè)備費(fèi)、軟件開發(fā)費(fèi)、管理和維護(hù)費(fèi);另一方面,系統(tǒng)實(shí)現(xiàn)后使得問卷調(diào)查克服了紙質(zhì)問卷調(diào)查的影印、人工分發(fā)、人工回收統(tǒng)計(jì)等缺點(diǎn),節(jié)省材料資源、人力資源和時(shí)間,使得企業(yè)在競(jìng)爭(zhēng)激烈的市場(chǎng)中擁有更強(qiáng)大的資本。問卷調(diào)查系統(tǒng)能快速地提取分析調(diào)查結(jié)果,且把統(tǒng)計(jì)信息及時(shí)公布,縮短了問卷調(diào)查的周期,使得問卷調(diào)查更具有時(shí)效性。問卷調(diào)查是社會(huì)科學(xué)研究中的一種重要方法,隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)上問卷調(diào)查成為一種比較常見的問卷調(diào)查形式,而且必將得到進(jìn)一步的發(fā)展和推廣。在線問卷調(diào)查系統(tǒng)主要提供了三個(gè)功能:?jiǎn)柧碓O(shè)計(jì)、問卷發(fā)放和收集、以及對(duì)問卷結(jié)果的分析統(tǒng)計(jì)和存儲(chǔ)備份。這三個(gè)功能則分別可以由相應(yīng)的模塊來實(shí)現(xiàn)。1.2問卷系統(tǒng)研究現(xiàn)狀借助Internet這一現(xiàn)代化的信息溝通工具,網(wǎng)絡(luò)問卷調(diào)查具有低成本、高速率、豐富的展現(xiàn)形式、跨越空間局限、智能化以及互動(dòng)性等多種優(yōu)點(diǎn)。在使用性方面,網(wǎng)絡(luò)問卷調(diào)查在歐洲、美洲以及日韓等互聯(lián)網(wǎng)發(fā)達(dá)國家己經(jīng)相當(dāng)普遍,在市場(chǎng)調(diào)查、民意調(diào)查、企業(yè)內(nèi)部調(diào)查、網(wǎng)絡(luò)選舉以及學(xué)術(shù)研究領(lǐng)域得到廣泛的應(yīng)用。據(jù)不完全統(tǒng)計(jì),歐洲、美洲以及韓等地區(qū)幾乎實(shí)現(xiàn)了全員參與的問卷調(diào)查。在技術(shù)層面上,日本和美國網(wǎng)絡(luò)問卷調(diào)查實(shí)現(xiàn)技術(shù)已經(jīng)處于世界頂尖水平,其使用的.NET技術(shù)是首屈一指的,JesseLiberty和DanHurwitz展示如何使用VisualStudio和ASP.NET來構(gòu)建下一代WEB應(yīng)用程序,不僅在代碼編程上更簡(jiǎn)潔、更健壯,而且實(shí)現(xiàn)的功能上也非常之多,例如問卷信息綁定用戶推送功能、強(qiáng)大的后臺(tái)數(shù)據(jù)庫支持功能;其次在歐美等發(fā)達(dá)國家網(wǎng)絡(luò)問卷系統(tǒng)的易用性、保密性和人性化都有保障,用戶登錄網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)后不用擔(dān)心私密信息被泄露;另外還利用軟硬件相結(jié)合的方式,使用電腦觸摸屏幕的硬件設(shè)備,讓網(wǎng)絡(luò)問卷調(diào)查的易用性更強(qiáng),即使不會(huì)上網(wǎng)、不會(huì)使用電腦的人群也可實(shí)現(xiàn)網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)的填寫。然而,在網(wǎng)絡(luò)問卷調(diào)查技術(shù)方面,中國的起步相對(duì)來說比較晚,早期都是以人工問卷調(diào)查方式出現(xiàn),但是這種方法投入大、回收小,而且污染環(huán)境,逐漸被市場(chǎng)淘汰。近些年隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)問卷調(diào)查在中國有迅速普及的趨勢(shì)。根據(jù)CNNIC報(bào)告,截止到2010年,中國網(wǎng)民數(shù)量己經(jīng)突破10億,而且還在呈增長(zhǎng)趨勢(shì),互聯(lián)網(wǎng)在中國的普及為網(wǎng)絡(luò)問卷的發(fā)展奠定了扎實(shí)的基礎(chǔ)。拒不完全統(tǒng)計(jì),在網(wǎng)絡(luò)調(diào)查應(yīng)用領(lǐng)域,2000年,國內(nèi)市場(chǎng)研究?jī)H有10%用于網(wǎng)絡(luò)問卷調(diào)查,2003年這一比例大約為23.6,2006年基本為33%。中國市場(chǎng)信息協(xié)會(huì)調(diào)查分會(huì)報(bào)告指出,2010年,借助互聯(lián)網(wǎng)和相應(yīng)軟件技術(shù)進(jìn)行調(diào)查的市場(chǎng)公司有幾千家,占了70%,這說明越來越多的國內(nèi)企業(yè)開始重視和普及網(wǎng)絡(luò)問卷調(diào)查的應(yīng)用。近幾年來國內(nèi)對(duì)于ASP.NET技術(shù)的研究也正在興起,由于ASP.NET具有簡(jiǎn)潔的設(shè)計(jì)和實(shí)施,其開發(fā)環(huán)境允許設(shè)置斷點(diǎn)、跟蹤代碼段和查看調(diào)用堆棧,是一個(gè)多元化的調(diào)試環(huán)境[7],另外ASP.NET主要應(yīng)用于Windows平臺(tái),雖然添加組件后也可以用于Linux平臺(tái),但是很多重要的功能沒法實(shí)現(xiàn)。針對(duì)這些情況,近幾年來國內(nèi)對(duì)于ASP.NET技術(shù)的研究也逐漸成熟。1.3本文主要工作本文將分五章對(duì)在線問卷系統(tǒng)的設(shè)計(jì)進(jìn)行了研究探討,論文的組織結(jié)構(gòu)如下:是緒論,闡述了本課題的研究背景及其意義,并對(duì)當(dāng)前國內(nèi)外網(wǎng)絡(luò)問卷調(diào)查的研究應(yīng)用概況和發(fā)展趨勢(shì)進(jìn)行了探討和研究,最后介紹了論文的研究目標(biāo)、工作內(nèi)容和組織結(jié)構(gòu);第二章介紹實(shí)現(xiàn)問卷系統(tǒng)所需要的相關(guān)技術(shù);第三章網(wǎng)上問卷系統(tǒng)的分析和設(shè)計(jì)。對(duì)本系統(tǒng)的用戶參與者的分析以及系統(tǒng)的主要業(yè)務(wù)流程進(jìn)行了進(jìn)一步的分析,完成了系統(tǒng)總體方案的設(shè)計(jì),接著分析了系統(tǒng)的設(shè)計(jì)原則和功能模塊的劃分,對(duì)各子系統(tǒng)的功能進(jìn)行了劃分,并且確定了各個(gè)子系統(tǒng)的功能和相互之間的關(guān)系。在設(shè)計(jì)過程中,考慮到系統(tǒng)的通用性和代碼的重用性,應(yīng)用了模塊化的思想。在需求分析的基礎(chǔ)上,逐步完成了數(shù)據(jù)庫的分析和設(shè)計(jì);第四章是系統(tǒng)的詳細(xì)設(shè)計(jì),在需求分析的基礎(chǔ)上詳細(xì)地設(shè)計(jì)每個(gè)功能模塊要實(shí)現(xiàn)的內(nèi)容;第五章是總結(jié)與展望。敘述了本系統(tǒng)完成的功能以及系統(tǒng)的不足之處。2系統(tǒng)關(guān)鍵技術(shù)2.1JSP技術(shù)2.1.1JSP簡(jiǎn)介JSP全稱為JavaServerPages,該技術(shù)由SunMicrosystems提出,并由許多其他公司一起參與和建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。這種技術(shù)通過在傳統(tǒng)的Web頁面的HTML文件(*.htm,*.html)中添加JAVA程序片段(Scriptlet)和JSP標(biāo)記(tag,并因此形成了JSP網(wǎng)頁(*.jsp)。1998年4月Sun公司發(fā)布JSP0.90規(guī)范,1999年1月Sun公司又發(fā)布了0.92規(guī)范,同時(shí)推出了支持JSP的JavaWebServer2.0服務(wù)器,JSP也開始流行起來,同年11月Sun公司發(fā)布了JSP1.1規(guī)范,同時(shí)推出JSWDK1.0.1和Servlet2.2版,2000年9月Sun公司發(fā)布JSP1.2規(guī)范和JavaServletAPI2.3。JSP技術(shù)在這短短的幾年中取得了突破性的發(fā)展,并在各地廣為流行,可見其必有得天獨(dú)厚的優(yōu)勢(shì)。一個(gè)用戶可以通過瀏覽器將一個(gè)HTTP請(qǐng)求發(fā)送到一個(gè)可執(zhí)行應(yīng)用程序而不一個(gè)靜態(tài)的HTML文件,服務(wù)器將會(huì)立即運(yùn)行這個(gè)限定的程序,對(duì)用戶的輸入做出反應(yīng),將處理結(jié)果返回客戶端,或者對(duì)數(shù)據(jù)的記錄進(jìn)行更新,CGI、ISAPI、ASP、PHP等技術(shù)的出現(xiàn)為用戶發(fā)布交互性和實(shí)時(shí)信息提供了可能,而新推出的JSP技術(shù)是其中的佼佼者,由于其具有很高的運(yùn)行效率,較短的開發(fā)周期,很強(qiáng)的擴(kuò)展能力,而且它的技術(shù)規(guī)范公開的,任何人都可以按照規(guī)范開發(fā)出自己的產(chǎn)品,更重要的是它一種與平臺(tái)無關(guān)的開發(fā)技術(shù),基于這些優(yōu)點(diǎn),JSP迅速流行起來。在Internet眾多網(wǎng)站中,基于Web數(shù)據(jù)庫的動(dòng)態(tài)網(wǎng)站應(yīng)用相當(dāng)廣泛?;赪eb網(wǎng)絡(luò)數(shù)據(jù)庫的動(dòng)態(tài)網(wǎng)站由一個(gè)Web瀏覽器作為客戶端界面,一個(gè)數(shù)據(jù)庫服務(wù)器用做信息存儲(chǔ)和一個(gè)連接兩者的Web應(yīng)用服務(wù)器組成。原有開發(fā)動(dòng)態(tài)網(wǎng)站的CGI技術(shù)隨著Web應(yīng)用程序客戶端技術(shù)的不斷發(fā)展,逐漸被JavaApplet,、ActiveX控件、DHTML和JavaScript所取代。2.1.2JSPWeb開發(fā)JSP是基于JavaServlet以及整個(gè)Java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立先進(jìn)、安全、快速和跨平臺(tái)的動(dòng)態(tài)網(wǎng)站。在傳統(tǒng)的HTML文件中加入Java程序片段和JSP標(biāo)記,就形成了JSP網(wǎng)頁。JSP頁面請(qǐng)求通過Web服務(wù)器接收并訪問,此時(shí),Web服務(wù)器首先執(zhí)行程序段,然后以HTML的格式把執(zhí)行的結(jié)果返回給客戶。這些程序塊可以重定向頁面、發(fā)送郵件和操作數(shù)據(jù)庫等,這就需要構(gòu)建的動(dòng)態(tài)Web站點(diǎn)的功能。在服務(wù)器端執(zhí)行所有的程序,而網(wǎng)絡(luò)傳輸中只將結(jié)果發(fā)送至客戶端,因此對(duì)客戶的瀏覽器要求不高。在用戶連接JSP網(wǎng)站時(shí),用戶請(qǐng)求網(wǎng)頁,JSP頁面獨(dú)自響應(yīng)請(qǐng)求,將用戶對(duì)網(wǎng)頁的請(qǐng)求轉(zhuǎn)化為對(duì)數(shù)據(jù)的請(qǐng)求,通過JavaBean處理請(qǐng)求并將返回的數(shù)據(jù)封裝成HTML頁面返回給用戶。2.1.3JSP的特點(diǎn)JSP技術(shù)具有以下顯著的特點(diǎn):分離內(nèi)容生成和顯示由于JSP技術(shù)的誕生,Web頁面的程序員可以使用HTML或XML格式標(biāo)識(shí)來設(shè)計(jì)網(wǎng)頁??梢允褂肑SP或者腳本來生成具有動(dòng)態(tài)內(nèi)容(即內(nèi)容根據(jù)要求更改)的頁面。在JSP標(biāo)識(shí)和JavaBeans/EJB組件中封裝著生成內(nèi)容的邏輯,這些邏輯通過一個(gè)小腳本進(jìn)行捆綁,并且在服務(wù)器上運(yùn)行著所有的腳本。如果在JSP標(biāo)識(shí)和JavaBeans/EJB組件中封裝著核心邏輯,那么Web管理者和頁面設(shè)計(jì)者都能通過接口來編輯JSP頁面,并且同時(shí)不會(huì)影響內(nèi)容的生成。JSP標(biāo)識(shí)和小腳本在服務(wù)器端通過JSP引擎進(jìn)行解釋,然后生成了請(qǐng)求內(nèi)容(比如,使用JDBC技術(shù)訪問數(shù)據(jù)庫),并且將結(jié)以HTML或XML的形式返回瀏覽器。這樣做能夠確保任何基于HTM的網(wǎng)頁瀏覽器的完整性和可用性,并且能夠幫助作者保護(hù)自己的代碼。2)可重用組件的生成很多時(shí)候應(yīng)用程序需要進(jìn)行更為復(fù)雜的處理,因此很多可重用的、跨平臺(tái)的組件(如JavaBeans或EnterpriseJavaBeans)都使用JSP頁面來實(shí)現(xiàn)。程序員能交換執(zhí)行和共享普通操作組件,并且讓它們用于更多用戶或客戶。這種基于組件的方法加快了開發(fā)速度,平衡了各種組織現(xiàn)有的技能和優(yōu)化方式。3)使用標(biāo)識(shí)簡(jiǎn)化頁面進(jìn)行開發(fā)Web頁面的程序員并不都熟悉腳本語言。JavaServer頁面技術(shù)封裝了很多功能,在使用時(shí)通過與JSP關(guān)聯(lián)的XML標(biāo)識(shí)進(jìn)行動(dòng)態(tài)文件內(nèi)容生成。程序員通過標(biāo)準(zhǔn)的JSP標(biāo)識(shí)來識(shí)別和實(shí)例化JavaBeans的組件,下載Applet、設(shè)置或者檢索組件屬性。JSP技術(shù)可以通過開發(fā)自定義的標(biāo)識(shí)庫進(jìn)行發(fā)展。未來第三方的程序員可以創(chuàng)建自己的標(biāo)識(shí)庫。Web頁面的程序員能夠使用熟知的工具和相同的組件來執(zhí)行具有特定功能的工作。2.2JDKJDK(JavaDevelopmentKit)是SunMicrosystems針對(duì)Java程序員開發(fā)的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的JavaSDK。JDK是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類庫。JDK是學(xué)好Java的第一步。而專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比SunJDK好很多。從SUN的JDK5.0開始,提供了泛型等非常實(shí)用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高。2.2.1JDK組成JDK包含以下基本組件:1)Javac:編譯器,將源程序轉(zhuǎn)成字節(jié)碼。2)jar:打包工具,將相關(guān)的類文件打包成一個(gè)文件。3)Javadoc:文檔生成器,從源碼注釋中提取文檔。4)jdb:debugger,查錯(cuò)工具。5)Java:運(yùn)行編譯后的Java程序(.class后綴的)。6)appletviewer:小程序?yàn)g覽器,一種執(zhí)行HTML文件上的Java小程序的Java瀏覽器。7)Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。8)Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時(shí)顯示字節(jié)代碼含義。9)Jconsole:Java進(jìn)行系統(tǒng)調(diào)試和監(jiān)控的工具。其中Javac是Javac語言編程編譯器。Javac工具由Java語言編寫的類和接口定義,并將它們編譯成字節(jié)代碼的class文件。Javac可以隱式編譯一些沒有在命令行中提及的源文件。用verbose選項(xiàng)可跟蹤自動(dòng)編譯。2.2.2JDK常用的包1)Java.lang:這個(gè)是系統(tǒng)的基礎(chǔ)類,比如String等都是這里面的,這個(gè)包是唯一一個(gè)可以不用引入(import)就可以使用的包。2)Java.io:這里面是所有輸入輸出有關(guān)的類,比如文件操作等。3)Java.nio:為了完善io包中的功能,提高io包中性能而寫的一個(gè)新包,例如NIO非堵塞應(yīng)用。4)J:這里面是網(wǎng)絡(luò)有關(guān)的類,比如URL,URLConnection等。5)Java.sql:這個(gè)是數(shù)據(jù)庫操作的類,Connection,Statement,ResultSet等。6)Javax.servlet:這個(gè)是JSP,Servlet等使用到的類。2.2.3JDK常用工具1)Javac:Java源程序編譯器,將Java源代碼轉(zhuǎn)換成字節(jié)碼。2)Java:Java解釋器,直接從字節(jié)碼文件執(zhí)行Java應(yīng)用程序的字節(jié)代碼。3)appletviewer.exe:Javaapplet瀏覽器。appletviewer命令可在脫離萬維網(wǎng)瀏覽器環(huán)境的情況下運(yùn)行applet。4)jar:Java應(yīng)用程序打包工具,可將多個(gè)類文件合并為單個(gè)JAR歸檔文件。5)Javadoc:JavaAPI文檔生成器,從Java源程序代碼注釋中提取文檔,生成API文檔HTML頁。6)jdb:Java調(diào)試器(debugger),可以逐行執(zhí)行程序,設(shè)置斷點(diǎn)和檢查變量。2.3Tomcat服務(wù)器2.3.1簡(jiǎn)介Tomcat服務(wù)器作為一個(gè)免費(fèi)開源的Web應(yīng)用服務(wù)器,其技術(shù)先進(jìn)、性能穩(wěn)定且免費(fèi),所以得到了很多軟件開發(fā)商的認(rèn)可和JAVA愛好者的擁護(hù),從而成為了目前比較流行的Web應(yīng)用服務(wù)器之一。直到現(xiàn)在,Tomcat一直被認(rèn)為是Servlet/JSPAPI的執(zhí)行器,也就Servlet容器。然而,Tomcat并不僅僅如此,它還提供了JNDI和JMXAPI的實(shí)現(xiàn)機(jī)制。盡管如此,Tomcat仍然還不能算是應(yīng)用服務(wù)器,因?yàn)樗惶峁┐蠖鄶?shù)J2EEAPI的支持。Tomcat中的應(yīng)用程序與傳統(tǒng)的桌面應(yīng)用程序不同,它是一個(gè)WAR(WebArchive文件。WAR與JAR類似,是Sun公司提出的類似文件壓縮包的Web應(yīng)用程序格式。通常根目錄下包括Html和Jsp文件,另外還有一個(gè)WEB-NIF目錄,在該目錄下有一個(gè)classes目錄和一個(gè)web.xml文件,classes目錄下包括了已經(jīng)編譯成形的Servlet類和Servlet所依賴的其他類或者Jsp,而web.xml則是該應(yīng)用的外部配置文件。通常在WEB-INF中的lib目錄下可以找到這些依賴類打包形成的JAR文件,也可以配置到CLASSPATH中。2.3.2Tomcat的功能使用Tomcat能夠使應(yīng)用程序的部署變得非常簡(jiǎn)單,只需在Tomcat的webapps目錄下放入WAR,之后Tomcat就會(huì)自行檢查到該文件,并對(duì)其進(jìn)行解壓。一般情況而言,第一次在瀏覽器中訪問這個(gè)應(yīng)用時(shí)會(huì)非常慢,這是因?yàn)門omcat要把Jsp變換為Servlet文件,之后才會(huì)進(jìn)行編譯。當(dāng)編譯結(jié)束以后,訪問速度會(huì)加快。另外Tomcat也提供了一個(gè)名叫manager的應(yīng)用方式。該方式需要用戶名和密碼來訪問這個(gè)應(yīng)用,而在xml文件中通常儲(chǔ)存著用戶名和密碼。用戶可以通過這個(gè)應(yīng)用遠(yuǎn)程進(jìn)行Web部署和撤銷應(yīng)用。Tomcat不單是一個(gè)Servlet,它也擁有傳統(tǒng)Web服務(wù)器的特點(diǎn),如處理Html頁面。但它處理靜態(tài)Html效果不如Apache。除此以外,Tomcat給出了Realm支持。Realm可以看作Unix中的group。在Unix里,系統(tǒng)里的一定資源對(duì)應(yīng)著一個(gè)group,而一個(gè)group不能訪問不歸屬于它的資源。Tomcat用Realm來對(duì)不同的應(yīng)用(可以看作系統(tǒng)資源)賦予給不同的用戶(可以看作group),如果用戶沒有權(quán)限則不能訪問這個(gè)應(yīng)用。Tomcat一共給出了三種Realm:1)JNDIRealm,基于LDAP的服務(wù)器里儲(chǔ)存著用戶信息,通過JNDI獲取。2)JDBCRealm,數(shù)據(jù)庫里存儲(chǔ)著用戶信息,通過JDBC來進(jìn)行驗(yàn)證。3)MemoryRealm,xml文件里儲(chǔ)存用戶信息,通過Realm方便地驗(yàn)證訪問某個(gè)應(yīng)用的客戶。事實(shí)上,Jsp和Servlet的開發(fā)已經(jīng)基本上涵蓋了Tomcat的主要開發(fā),而這兩種技術(shù)的開發(fā)也非常簡(jiǎn)單,只需要通過普通的文本編輯器進(jìn)行編寫,然后在打包成WAR。2.4MySQL數(shù)據(jù)庫體系因?yàn)镸ySQL采用的是客戶機(jī)/服務(wù)器體系結(jié)構(gòu),所以在使用MySQL進(jìn)行存取數(shù)據(jù)操作時(shí),必須使用至少兩個(gè)或者是兩類程序:1)一個(gè)是位于存放數(shù)據(jù)的主機(jī)上的程序-數(shù)據(jù)庫服務(wù)器。數(shù)據(jù)庫服務(wù)器在網(wǎng)絡(luò)上監(jiān)聽來自客戶機(jī)的請(qǐng)求,然后根據(jù)客戶機(jī)的這些請(qǐng)求訪問數(shù)據(jù)庫數(shù)據(jù),訪問之后再向客戶機(jī)提供它們想得到的信息。2)連接到數(shù)據(jù)庫服務(wù)器的程序-客戶機(jī),這些程序是作為用戶和服務(wù)器之間交互信息的工具,并且告訴服務(wù)器需要查詢信息的內(nèi)容。MySQL的架構(gòu)可以描述為層次性子系統(tǒng)組合。MySQL的源代碼不是按照單組件或者模塊的方式編寫的,但是各個(gè)層次的源代碼還是能夠被分離出來,大部分的子系統(tǒng)依賴于一些通用的底層庫。MySQL包含以下子系統(tǒng):網(wǎng)絡(luò)連接和網(wǎng)絡(luò)通信協(xié)議子系統(tǒng);線程、進(jìn)程和內(nèi)存分配子系統(tǒng);查詢解析和查詢優(yōu)化子系統(tǒng);存儲(chǔ)引擎接口子系統(tǒng);各類存儲(chǔ)引擎子系統(tǒng);安全管理子系統(tǒng);日志子系統(tǒng);mysys核心庫文件等。當(dāng)一個(gè)客戶端通過網(wǎng)絡(luò)連接MySQL數(shù)據(jù)庫服務(wù)時(shí),網(wǎng)絡(luò)連接子系統(tǒng)執(zhí)行一系列的與網(wǎng)絡(luò)協(xié)議有關(guān)的底層任務(wù)。然后網(wǎng)絡(luò)連接子系統(tǒng)將控制權(quán)交給線程子系統(tǒng),線程子系統(tǒng)提供一個(gè)線程來處理這個(gè)連接,這個(gè)連接稱之為連接線程。隨后連接線程得到控制權(quán),它首先調(diào)用安全管理子系統(tǒng)來驗(yàn)證用戶訪問的合法性。連接線程將獲得的數(shù)據(jù)傳給控制系統(tǒng),其中一些請(qǐng)求在內(nèi)核代碼中被稱作命令。這些命令中的一部分可以由這個(gè)控制系統(tǒng)直接完成,對(duì)于不可以直接由系統(tǒng)分發(fā)來完成查詢的,分發(fā)系統(tǒng)將調(diào)用解析子系統(tǒng)對(duì)SQL語句進(jìn)行解析。同時(shí),如果在配置MySQL系統(tǒng)時(shí)采用了日志功能,那么分發(fā)系統(tǒng)還會(huì)調(diào)用日志系統(tǒng)去記錄此次的信息。隨后解析子系統(tǒng)將解析結(jié)果傳給調(diào)用優(yōu)化子系統(tǒng)以優(yōu)化SQL語句。接著進(jìn)行表操作,并將一系列請(qǐng)求發(fā)往存儲(chǔ)引擎接口子系統(tǒng)。存儲(chǔ)引擎接口子系統(tǒng)將上述調(diào)用自動(dòng)轉(zhuǎn)化為某個(gè)具體的存儲(chǔ)子系統(tǒng)方法。上述過程完成后,相應(yīng)的模塊將SQL執(zhí)行結(jié)果發(fā)往客戶端,最后再由服務(wù)器將控制權(quán)交給連接線程,連接線程完成某些清理工作,并在此等待客戶端的連接或者其他查詢,直到客戶端輸入Quit命令為止,到此本次通話才會(huì)結(jié)束。2.5AJAXAjax全稱為“AsynchronousJavaScriptandXML",中文意思是異步JavaScript和XML,是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。它并不是一項(xiàng)新的技術(shù),而是一系列己有技術(shù)的組合。下面是Ajax用到的基本技術(shù):1)HTML用于建立Web表單并確定應(yīng)用程序其他部分使用的字段。2)JavaScript代碼是運(yùn)行Ajax應(yīng)用程序的核心代碼,幫助改進(jìn)與服務(wù)器應(yīng)用程序的通信。3)DHTML或DynamicHTML,用于動(dòng)態(tài)更新表單。我們將使用DTV,SPAN和其他動(dòng)態(tài)HTML元素來標(biāo)一記HTML。4)文檔對(duì)象模型DOM用于(通過JavaScript代碼)處理HTML結(jié)構(gòu)和(某些情況下)服務(wù)器返回的XML。在使用Ajax之前,站點(diǎn)總是強(qiáng)制用戶提交后等待重新加載頁面,用戶的動(dòng)作總是與服務(wù)器加載同步。而Ajax模式提供與服務(wù)器異步通信的能力,使用戶從請(qǐng)求、響應(yīng)的循環(huán)中解脫出來。Ajax的核心是JavaScript對(duì)象XmlHttpRequest。它是一種支持異步請(qǐng)求的技術(shù),XmlHttpRequest可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶。Ajax的優(yōu)點(diǎn)是在不更新整個(gè)頁面的前提下更新數(shù)據(jù),這樣在每次提交時(shí),只有用戶的請(qǐng)求發(fā)送到服務(wù)器端處理。簡(jiǎn)言之就是局部刷新。避免了占用過多的帶寬。Ajax的缺點(diǎn)是破壞瀏覽器的后退按鈕功能。3在線問卷系統(tǒng)的分析和設(shè)計(jì)3.1系統(tǒng)需求分析在線問卷系統(tǒng)是一個(gè)基于因特網(wǎng)的數(shù)據(jù)采集系統(tǒng),這個(gè)系統(tǒng)的主要目的就是通過網(wǎng)絡(luò)問卷調(diào)查的方式,收集我校不同部門對(duì)在校學(xué)生進(jìn)行的問卷調(diào)查的相關(guān)資料。然后這些資料經(jīng)過處理及時(shí)的存儲(chǔ)起來,進(jìn)行一定的統(tǒng)計(jì)分析,分析的結(jié)果對(duì)調(diào)查實(shí)施者來說是非常重要的數(shù)據(jù)。這些數(shù)據(jù)可以幫助他們調(diào)整最新培養(yǎng)方案中的課程結(jié)構(gòu),更好地培養(yǎng)以就業(yè)為導(dǎo)向的合格畢業(yè)生。3.2系統(tǒng)功能分析本系統(tǒng)應(yīng)能方便問卷設(shè)計(jì)者完成對(duì)問卷的設(shè)計(jì)和修改;其次,系統(tǒng)應(yīng)能方便答卷人在系統(tǒng)提示下很順利地完成回答再次;系統(tǒng)應(yīng)能方便地發(fā)放調(diào)查問卷;第四,當(dāng)答卷人回答完畢后,系統(tǒng)能夠?qū)υ摲輪柧磉M(jìn)行采集;最后,系統(tǒng)將數(shù)據(jù)及分析結(jié)果及時(shí)的存儲(chǔ)起來,以確保信息安全可靠。因此本系統(tǒng)必須實(shí)現(xiàn)用戶管理、問卷創(chuàng)建、問卷發(fā)布、問卷收集、數(shù)據(jù)分析和系統(tǒng)管理等功能。系統(tǒng)功能劃分如圖3-1所示。圖3-1系統(tǒng)功能示意圖1)用戶管理對(duì)用戶權(quán)限的管理。對(duì)用戶的管理包括新增用戶、刪除用戶以及為用戶賦權(quán)限。用戶有兩類,分別是答卷人和系統(tǒng)管理員,系統(tǒng)管理員可以設(shè)計(jì)問卷。用戶權(quán)限包括對(duì)問卷的操作權(quán)限和對(duì)其他用戶的控制權(quán)限,這個(gè)通過身份驗(yàn)證來區(qū)分。2)問卷管理可以提供的服務(wù)有新建問卷,編輯和修改已存在的問卷,保存問卷等功能。該部分的功能由用戶自行操作。對(duì)問卷的操作權(quán)限指的是對(duì)問卷的增加、刪除、修改、查詢等權(quán)限。3)問卷發(fā)布可以提供發(fā)布問卷的服務(wù),用戶可以通過問卷發(fā)布器發(fā)布問卷。問卷可以通過兩種途徑發(fā)布出去,即可以通過因特網(wǎng)發(fā)布成網(wǎng)上調(diào)查問卷,也可以打印成紙質(zhì)問卷發(fā)布以進(jìn)行當(dāng)面訪問。4)問卷收集網(wǎng)上問卷調(diào)查的結(jié)果是系統(tǒng)自動(dòng)收集的,當(dāng)面訪問的紙質(zhì)問卷的調(diào)查結(jié)果分兩種情況:?jiǎn)柧頂?shù)量較少的時(shí)候,手工整理后把資料錄入問卷系統(tǒng);數(shù)量比較多的時(shí)候,通過掃描儀收集,然后由識(shí)別軟件進(jìn)一步處理后再輸入系統(tǒng)。問卷調(diào)查結(jié)果收集是后臺(tái)操作,因此不必在界面上反應(yīng)出來。5)數(shù)據(jù)分析和處理此模塊集資料編輯、數(shù)據(jù)管理、統(tǒng)計(jì)分析、報(bào)表制作、圖形繪制為一體。數(shù)據(jù)分析模塊根據(jù)不同的過濾條件對(duì)問卷調(diào)查的結(jié)果進(jìn)行分析,最終針對(duì)不同的過濾條件輸出分析結(jié)果并存儲(chǔ)到數(shù)據(jù)庫中。3.3問卷系統(tǒng)的設(shè)計(jì)要得到一個(gè)可用的系統(tǒng)需要一個(gè)非常重要的環(huán)節(jié),那就是系統(tǒng)構(gòu)架。系統(tǒng)構(gòu)架為我們提供了整個(gè)系統(tǒng)清晰的視角,這對(duì)控制系統(tǒng)的開發(fā)是必需的。系統(tǒng)構(gòu)架不同于軟件系統(tǒng)的單一,軟件構(gòu)架從不同的視角展示了整個(gè)軟件系統(tǒng),而系統(tǒng)的模型視圖則從不同角度全面的集合展示了整個(gè)系統(tǒng)的各個(gè)層面網(wǎng)上問卷系統(tǒng)設(shè)計(jì)中還應(yīng)該遵循的目標(biāo)如下:1)代碼可重用代碼重用是提高軟件開發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。2)伸縮性系統(tǒng)架構(gòu)靈活,全部采用模塊化設(shè)計(jì),可以輕松進(jìn)行各個(gè)模塊之間的組合,系統(tǒng)可以方便地多次擴(kuò)充。3)合理的功能劃分設(shè)計(jì)中的各個(gè)類在應(yīng)用中的作用應(yīng)該盡可能清晰。設(shè)計(jì)清晰會(huì)有利于維護(hù),也有利于分析,而且對(duì)于開發(fā)中的新成員來說則更容易上手。4)易用性系統(tǒng)采用人性化設(shè)計(jì),充分考慮操作者的特點(diǎn),即使不是專業(yè)人員也能輕易掌握。5)擴(kuò)展性從網(wǎng)絡(luò)協(xié)議到操作系統(tǒng),從系統(tǒng)軟件到應(yīng)用軟件,均遵循通用的國際或行業(yè)標(biāo)準(zhǔn),可以很輕松地和其它系統(tǒng)接口。6)安全性提高系統(tǒng)安全性能最大限度地防止非法操作和入侵保證數(shù)據(jù)安全。3.3.1系統(tǒng)體系架構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)通常被稱為架構(gòu),指可預(yù)制和可重構(gòu)的軟件框架結(jié)構(gòu)一軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過程中的一個(gè)層次,它從不同方面對(duì)系統(tǒng)進(jìn)行描述。軟件體系結(jié)構(gòu)的開發(fā)是大型軟件系統(tǒng)開發(fā)的關(guān)鍵環(huán)節(jié),在軟件生產(chǎn)線的開發(fā)中具有至關(guān)重要的作用。軟件體系結(jié)構(gòu)貫穿于軟件研發(fā)的整個(gè)生命周期內(nèi),具有重要的影響。這主要從以下幾個(gè)方一面來進(jìn)行考察: 1)利益相關(guān)人員之間的交流:軟件體系結(jié)構(gòu)是一種常見的對(duì)系統(tǒng)的抽象,代碼級(jí)別的系統(tǒng)抽象僅僅可以成為程序員的交流工具,而包括程序員在內(nèi)的絕大多數(shù)系統(tǒng)的利益相關(guān)人員都借助軟件體系結(jié)構(gòu)來進(jìn)行彼此理解、協(xié)商、達(dá)成共識(shí)或者相互溝通的基礎(chǔ)。2)系統(tǒng)設(shè)計(jì)的前期決策:軟件體系結(jié)構(gòu)是軟件系統(tǒng)最早期設(shè)計(jì)決策的體現(xiàn),而這些早期決策對(duì)軟件系統(tǒng)的后續(xù)開發(fā)、部署和維護(hù)具有相當(dāng)重要的影響。這也是能夠?qū)λ_發(fā)系統(tǒng)進(jìn)行分析的最早時(shí)間點(diǎn)。3)可傳遞的系統(tǒng)級(jí)抽象:軟件體系結(jié)構(gòu)是關(guān)于系統(tǒng)構(gòu)造以及系統(tǒng)各個(gè)元素工作機(jī)制的相對(duì)較小、卻又能夠突出反映問題的模型。由于軟件系統(tǒng)具有的一些共通特性,這種模型可以在多個(gè)系統(tǒng)之間傳遞,特別是可以應(yīng)用到具有相似質(zhì)量屬性和功能需求的系統(tǒng)中,并能夠促進(jìn)大規(guī)模軟件的系統(tǒng)級(jí)復(fù)用。開發(fā)基于Web的問卷調(diào)查系統(tǒng),首先應(yīng)確定系統(tǒng)網(wǎng)絡(luò)模式,由于不同的網(wǎng)絡(luò)計(jì)算模式的工作特點(diǎn)和所提供的服務(wù)是不同的,因此用戶應(yīng)當(dāng)根據(jù)所運(yùn)行的應(yīng)用程序的需要選擇自己適宜的網(wǎng)絡(luò)類型。目前使用較多的兩種系統(tǒng)計(jì)算模式分別是:C/S模式與B/S模式。由于B/S模式作為系統(tǒng)結(jié)構(gòu)還具有以下優(yōu)勢(shì):1)無須開發(fā)客戶端軟件,維護(hù)和升級(jí)方便;2)可跨平臺(tái)操作,任何一臺(tái)機(jī)器只要裝有WWW瀏覽器軟件,均可訪問系統(tǒng);3)具有良好的開放性和可擴(kuò)充性;4)可采用防火墻技術(shù)來保證系統(tǒng)的安全性,有效地適應(yīng)了當(dāng)前用戶對(duì)信息系統(tǒng)的新需求。基于以上優(yōu)點(diǎn),B/S結(jié)構(gòu)在信息系統(tǒng)開發(fā)領(lǐng)域中獲得飛速發(fā)展,成為應(yīng)川軟件開發(fā)的一種流行體系結(jié)構(gòu)。本系統(tǒng)選擇后者。基于B/S的網(wǎng)絡(luò)問卷調(diào)查系統(tǒng)以三層體系結(jié)構(gòu)為主,包括數(shù)據(jù)庫系統(tǒng)、應(yīng)用服務(wù)器、客戶瀏覽器三部分。其中,客戶端接受用戶的一請(qǐng)求,向應(yīng)用服務(wù)器提出請(qǐng)求,應(yīng)用服務(wù)從數(shù)據(jù)庫中獲得數(shù)據(jù),將數(shù)據(jù)進(jìn)行計(jì)算并將結(jié)果提交給客戶端,客戶端瀏覽器將結(jié)果呈現(xiàn)給用戶。3.3.2系統(tǒng)工作流程設(shè)計(jì)問卷設(shè)計(jì)是問卷調(diào)查前應(yīng)做的準(zhǔn)備工作,問卷結(jié)果分析和存儲(chǔ)屬于問卷調(diào)查后的信息挖掘。首先是調(diào)查前的準(zhǔn)備工作,它主要是由老師根據(jù)我們的調(diào)查需求目標(biāo),討論和設(shè)計(jì)一套調(diào)查問卷,然后運(yùn)用系統(tǒng)的問卷設(shè)計(jì)功能,生成相應(yīng)的網(wǎng)上問卷,并將問卷鏈接放到學(xué)院的校園網(wǎng)上供學(xué)生們接受問卷調(diào)查。問卷調(diào)查收集的樣本越多,隨機(jī)誤差就越少。由于訪問站點(diǎn)并參與問卷調(diào)查的用戶人數(shù)有限,因此收集足夠量的樣本需要較長(zhǎng)的時(shí)間。然后系統(tǒng)收集問卷,并進(jìn)行一定的統(tǒng)計(jì)分析,用比較直觀和形象的圖形的方式將本次調(diào)查的結(jié)果顯示出來或是打印輸出。并對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的存儲(chǔ)備份。整個(gè)網(wǎng)上問卷系統(tǒng)的工作流程如圖3-2所示。圖3-2在線問卷系統(tǒng)的工作流程圖4在線問卷系統(tǒng)的功能實(shí)現(xiàn)4.1Java簡(jiǎn)介Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由SunMicrosystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaEE,JavaME,JavaSE)的總稱。Java自面世后就非常流行,發(fā)展迅速,對(duì)C++語言形成了有力沖擊。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景[28]。Java服務(wù)器頁面是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件,后綴名為(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。4.2系統(tǒng)運(yùn)行環(huán)境的配置本系統(tǒng)在Myeclipse平臺(tái)上運(yùn)行。運(yùn)行Myeclipse之前需要安裝JDK和Mysql數(shù)據(jù)庫,將安裝路徑均設(shè)置在D盤下。如圖4-1、圖4-2。圖4-1安裝Mysql到D盤圖4-2安裝JDK到D盤安裝好Mysql與JDK后運(yùn)行Myeclipse,打開windows,Java查看是否成功加載JDK。如圖4-3。圖4-3查看JDK加載頁加載成功后導(dǎo)入設(shè)預(yù)先編好的項(xiàng)目,如圖4-4、4-5。圖4-4導(dǎo)入項(xiàng)目圖4-5導(dǎo)入項(xiàng)目成功4-6配置Tomcat服務(wù)器配置好Tomcat服務(wù)器后,即可在瀏覽器訪問本項(xiàng)目。4.3系統(tǒng)功能實(shí)現(xiàn)4.3.1數(shù)據(jù)庫設(shè)計(jì)由于涉及到問卷的設(shè)計(jì)以及數(shù)據(jù)搜集,所以需要進(jìn)行數(shù)據(jù)庫的設(shè)計(jì)。本系統(tǒng)共設(shè)計(jì)了五張表。分別是存儲(chǔ)用戶信息的usertable,單選題目表danxuan,多選題目表duoxuan,問答題目表wenda以及答案信息表answer。數(shù)據(jù)庫表見表4-1、4-2、4-3、4-4、4-5所示。表4-1用戶信息表usertableidint(4)primarykeyusernumbervarchar(20)userpasswordvarchar(20)namageint(2)表4-2單選題目表danxuanidint(4)primarykeydisplayint(2)textvarchar(50)Avarchar(10)Bvarchar(10)Cvarchar(10)Dvarchar(10)表4-3多選題目表duoxuanidint(4)primarykeydisplayint(2)textvarchar(50)Avarchar(10)Bvarchar(10)Cvarchar(10)Dvarchar(10)Evarchar(10)Fvarchar(10)Gvarchar(10)Hvarchar(10)表4-4問答題目表wendaidint(4)primarykeydisplayint(2)textvarchar(50)表4-5答案信息表answeridint(4)primarykeyusernumbervarchar(20)x0varchar(50)x1varchar(50)x2varchar(50)x3varchar(50)x4varchar(50)x5varchar(50)x6varchar(50)x7varchar(50)x8varchar(50)x9varchar(50)x10varchar(50)x11varchar(50)x12varchar(50)x13varchar(50)x14varchar(50)x15varchar(50)x16varchar(50)x17varchar(50)x18varchar(50)x19varchar(50)4.3.2功能模塊設(shè)計(jì)在線問卷系統(tǒng)是一個(gè)對(duì)網(wǎng)上問卷調(diào)查中設(shè)計(jì)問卷、問卷發(fā)布收集和問卷調(diào)查結(jié)果統(tǒng)計(jì)分析與存儲(chǔ)的全部過程提供全程支持的系統(tǒng)。對(duì)上述三個(gè)過程的支持分別由問卷設(shè)計(jì)子系統(tǒng)、問卷收發(fā)子系統(tǒng)、問卷結(jié)果處理子系統(tǒng)實(shí)現(xiàn)。1)登陸界面主要是用戶的注冊(cè)與登錄。普通用戶注冊(cè)登陸后方可進(jìn)行問卷答題。實(shí)現(xiàn)該部分功能的部分代碼如下:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("UTF-8");Stringnumber=request.getParameter("number");Stringpassword=request.getParameter("password");Stringinsert="insertintousertable(usernumber,userpassword,manage)values('"+number+"','"+password+"','0')"; intn=tool.insert(insert); if(n==1) { response.sendRedirect("index.jsp"); } else { response.sendRedirect("注冊(cè)失敗"); } }publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringusernumber=request.getParameter("usernumber"); Stringuserpassword=request.getParameter("userpassword"); HttpSessionhs=request.getSession(); hs.setAttribute("usernumber",usernumber); //Stringa=(String)hs.getAttribute("usernumber"); StringselectSQL="select*fromusertablewhereusernumber='"+usernumber+"'anduserpassword='"+userpassword+"';"; ResultSetrs=tool.select(selectSQL); try{ if(rs.next()) { if(rs.getString("manage").equals("0")) { response.sendRedirect("main.jsp"); } else { response.sendRedirect("manage.jsp"); } } else { response.sendRedirect("error.jsp"); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }2)管理員功能管理員可以進(jìn)行用戶管理,問卷設(shè)計(jì)以及問卷發(fā)布統(tǒng)計(jì)等功能。實(shí)現(xiàn)該部分功能部分代碼如下:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=utf-8"); PrintWriterout=response.getWriter(); request.setCharacterEncoding("UTF-8");Stringnumber=request.getParameter("usernumber");Stringpassword=request.getParameter("userpassword");Stringinsert="insertintousertable(usernumber,userpassword,manage)values('"+number+"','"+password+"','1')"; intn=tool.insert(insert); response.sendRedirect("manage.jsp"); }publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;;charset=UTF-8"); PrintWriterout=response.getWriter(); StringselectSQL="select*fromusertablewheremanage='1'"; ResultSetrs=tool.select(selectSQL); out.write("管理員用戶名密碼信息:<table>"); out.write("<tr><td>賬號(hào)</td><td>密碼</td></tr>"); try{ while(rs.next()) { out.write("<trid=\"tr"+rs.getString("id")+"\">"); out.write("<td>"+rs.getString("usernumber")+"</td>"); out.write("<td><inputid=\"password"+rs.getString("id")+"\"type=\"text\"value="+rs.getString("userpassword")+"\"></td>"); out.write("<td><inputid="+rs.getString("id")+"type=\"button\"onclick=\"userdelete("+rs.getString("id")+")\"value=\"刪除\"></td>"); out.write("<td><inputid="+rs.getString("id")+"type=\"button\"onclick=\"userupdate("+rs.getString("id")+")\"value=\"修改\"></td>"); out.write("</tr>"); }publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringnumber=request.getParameter("number"); Stringpassword=request.getParameter("password"); StringSQLinsert="insertintousertable(usernumber,userpassword)values('"+number+"','"+password+"')"; tool.insert(SQLinsert); }3)問卷調(diào)查題目的設(shè)計(jì)該部分主要是管理員對(duì)問卷調(diào)查內(nèi)容的設(shè)計(jì),包含單選、多選以及問答題等。實(shí)現(xiàn)該部分功能的部分代碼如下:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=UTF-8"); PrintWriterout=response.getWriter(); StringselectSQL="select*fromdanxuan"; ResultSetrs=tool.select(selectSQL); ResultSetMetaDatarsm; try{ rsm=rs.getMetaData(); while(rs.next()) { out.write("<br><divclass=\"responsediv\">"); if(rs.getString("display").endsWith("1")) { out.write("<inputid="+rs.getString("id")+"type=\"checkbox\"id=\"i\"onclick=\"radioclick(1,"+rs.getString("id")+")\"checked>"); } else { out.write("<inputid="+rs.getString("id")+"type=\"checkbox\"id=\"i\"onclick=\"radioclick(1,"+rs.getString("id")+")\">"); } out.write(rs.getString("text")+"?<br>"); intj=4; while((j<7)&&(!rs.getString(j).equals(""))) { out.write(rsm.getColumnName(j)+"、"+rs.getString(j)+""); j++; } out.write("</div><br>"); } } catch(Exceptione){ thrownewRuntimeException(e.getMessage(),e); } }publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=UTF-8"); PrintWriterout=response.getWriter(); StringselectSQL="select*fromwenda"; ResultSetrs=tool.select(selectSQL); ResultSetMetaDatarsm; try{ rsm=rs.getMetaData(); while(rs.next()) { out.write("<br><divclass=\"responsediv\">"); if(rs.getString("display").equals("1")) { out.write("<inputid="+rs.getString("id")+"type=\"checkbox\"id=\"i\"onclick=\"radioclick(3,"+rs.getString("id")+")\"checked>"); } else { out.write("<inputid="+rs.getString("id")+"type=\"checkbox\"id=\"i\"onclick=\"radioclick(3,"+rs.getString("id")+")\">"); } out.write(rs.getString("text")+"?<br>"); out.write("</div><br>"); } } catch(Exceptione){ thrownewRuntimeException(e.getMessage(),e); } }4)問卷作答該部分主

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論