jsp在線調(diào)查管理系統(tǒng)mysql論文_第1頁
jsp在線調(diào)查管理系統(tǒng)mysql論文_第2頁
jsp在線調(diào)查管理系統(tǒng)mysql論文_第3頁
jsp在線調(diào)查管理系統(tǒng)mysql論文_第4頁
jsp在線調(diào)查管理系統(tǒng)mysql論文_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計說明書在線問卷調(diào)查系統(tǒng)學(xué)生姓名:學(xué)號: 學(xué)院: 函授站點: 專業(yè): 輔導(dǎo)老師: 2012年10月第一章:緒論隨著計算機(jī)技術(shù)的飛速發(fā)展,利用計算機(jī)來獲取和處理信息是當(dāng)今信息管理的一大特點?;趙eb系統(tǒng)作為最普遍最實用的系統(tǒng),其管理現(xiàn)代化、信息化,對整個社會起著巨大的推動作用。早期的問卷調(diào)查很不方便,需要大量的人力和財力,而卻只能在相對局部的的區(qū)域里,對于不同的調(diào)查相對的人群也會有變化,針對性不強(qiáng),因為數(shù)據(jù)量很大,信息的提取比較復(fù)雜,所以以前的問卷調(diào)查很少,只有發(fā)現(xiàn)了問題之后,才能知道問題的原因。當(dāng)今的社會已經(jīng)是一個信息時代,只有在第一時間獲得有效的信息,才能在社會上立足。網(wǎng)上問卷調(diào)查系統(tǒng)正好彌補(bǔ)了這個缺陷,網(wǎng)上問卷調(diào)查現(xiàn)在已經(jīng)成為了解社會狀況的一種有效的方式,你只要在網(wǎng)上搜索調(diào)查,會有成萬的相關(guān)記錄,企業(yè)能及時的了解客戶的需求,也能得到產(chǎn)品的優(yōu)點和缺點,及時的了解信息,及時的處理問題是現(xiàn)在社會競爭中勝出的條件。1.1問卷調(diào)查的特點問卷調(diào)查對象是經(jīng)過思考之后才對問卷做出反應(yīng)的。這有助于獲得真實、準(zhǔn)確的資料。但是,往往由于受試者發(fā)現(xiàn)了某些屬于敏感性的問題而加以回避,從而拒答或回答不真實。這就會造成問卷回收率下降,或者資料可靠性下降,而研究者又無法作進(jìn)一步的追索,單從回收的答卷上又無法判斷答案的真?zhèn)?,使回收的問卷失去了價值。因此,設(shè)計好問題,合理地安排問題順序是問卷設(shè)計的重要任務(wù)。問卷調(diào)查適應(yīng)于大樣本或小樣本的情況。問卷調(diào)查與訪問調(diào)查情況不同,訪問調(diào)查必須面對面地提出問題,收集口述材料。由于人力、財力的原因,調(diào)查的樣本數(shù)不可能太多,調(diào)查的地域不可能太廣。而問卷調(diào)查是依賴調(diào)查對象自我填答,問卷可以通過郵寄分發(fā),也可以面對面分發(fā)。因此樣本數(shù)可多可少,有時僅選數(shù)十人作問卷調(diào)查,有些課題,樣本則多達(dá)數(shù)千以至過萬人。有利于獲得定量資料。問卷調(diào)查不僅能取得數(shù)量標(biāo)志的數(shù)量資料,還可以獲得有關(guān)屬性、品質(zhì)、態(tài)度為標(biāo)志的計數(shù)資料。這些資料都能通過統(tǒng)計處理的方法進(jìn)行量化分析,使結(jié)果更為客觀、真實、系統(tǒng)、科學(xué)化,提高了研究結(jié)果的水平。隨著計算機(jī)網(wǎng)絡(luò)的發(fā)展,網(wǎng)上問卷調(diào)查慢慢占據(jù)了主導(dǎo)地位。他解決了人工問卷的很多問題。是問卷調(diào)查更加容易和便利。1.2網(wǎng)上問卷調(diào)查的特點(1)問卷法調(diào)查結(jié)果容易量化調(diào)查的問題可以固定的形式,避免主觀偏見。(2)問卷調(diào)查結(jié)果便于統(tǒng)計與分析,節(jié)省了處理結(jié)果的時間。(3)問卷調(diào)查可以進(jìn)行大規(guī)模的調(diào)查,使結(jié)果更有參考價值。(4)問卷調(diào)查以政府、企業(yè)等為主體,具有普遍性。(5)問卷的結(jié)果可以持久的保存,作為將來的參考。1.3網(wǎng)上問卷的基本解決方案盡量消除被調(diào)查者的警戒心理,拉近與被調(diào)查者距離的原則。防御心是人性最自然的一面,在被調(diào)查者接觸到問卷調(diào)查時,第一個反映就是考慮填寫問卷對自己有什么壞處或者好處;對于銷售網(wǎng)絡(luò)狀況調(diào)查來說,被調(diào)查的零售商更是有這一層的顧慮,害怕問卷的填寫不當(dāng)直接會影響到后期的生意發(fā)展,因此如果不能消除被調(diào)查者的警戒心理,拉近與被調(diào)查者的距離是很難得到真實、可靠的信息反饋。避免尖銳性的問題,以免引發(fā)被調(diào)查者的情緒過度波動而造成不利影響。內(nèi)容盡量做到精簡,避免重復(fù)和過分煩瑣。從被調(diào)查者填寫問卷的心理變化分析來看,被調(diào)查者剛開始填寫問卷應(yīng)該是以好奇和仔細(xì)為主,隨著填寫時間的延長,好奇心逐步衰減,而煩躁的心情卻逐漸滋生出來,所以為了保持問卷填寫的高質(zhì)量,問卷的內(nèi)容應(yīng)精簡、有力。問卷回答格式應(yīng)適合信息的匯總和分析?;卮鸶袷綉?yīng)適合信息的匯總和分析可能對于很多調(diào)查者來說是比較陌生的,從統(tǒng)計和分析的角度來看,假如采取雜亂無章的回答設(shè)計方法,調(diào)查結(jié)果所收集的問卷成千上萬,對問卷的內(nèi)容進(jìn)行歸類、分析就比較困難了,所以在設(shè)計問卷回答格式的時候,就要考慮到對于問卷的問題采取什么樣的方法進(jìn)行分析。第二章:相關(guān)技術(shù)介紹2.1JAVA語言介紹任何事物的產(chǎn)生既有必然的原因也有偶然的因素,java語言的出現(xiàn)也驗證了這一點。1991年,美國SunMicrosystems公司的某個研究小組為了能夠在消費電子產(chǎn)品上開發(fā)應(yīng)用程序,積極尋找合適的編程語言。消費電子產(chǎn)品種類繁多,包括PDA、機(jī)頂盒、手機(jī)等等,即使是同一類消費電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)也不相同,也存在著跨平臺的問題。當(dāng)時最流行的編程語言是C和C++語言,Sun公司的研究人員就考慮是否可以采用C++語言來編寫消費電子產(chǎn)品的應(yīng)用程序,但是研究表明,對于消費電子產(chǎn)品而言C++語言過于復(fù)雜和龐大,并不適用,安全性也并不令人滿意。于是,BillJoy先生領(lǐng)導(dǎo)的研究小組就著手設(shè)計和開發(fā)出一種語言,稱之為Oak。該語言采用了許多C語言的語法,提高了安全性,并且是面向?qū)ο蟮恼Z言,但是Oak語言在商業(yè)上并未獲得成功。時間轉(zhuǎn)到了1995年,互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語言所具有的跨平臺、面向?qū)ο?、安全性高等特點非常符合互聯(lián)網(wǎng)的需要,于是改進(jìn)了該語言的設(shè)計,要達(dá)到如下幾個目標(biāo):(1)創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計語言,而不是面向過程的語言;(2)提供一個解釋執(zhí)行的程序運(yùn)行環(huán)境,是程序代碼獨立于平臺;(3)吸收C和C++的優(yōu)點,使程序員容易掌握;(4)去掉C和C++中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請和釋放;(5)實現(xiàn)多線程,使得程序能夠同時執(zhí)行多個任務(wù);(6)提供動態(tài)下載程序代碼的機(jī)制;(7)提供代碼校驗機(jī)制以保證安全性;最終,Sun公司給該語言取名為java語言。JAVA語言的特點如下[2]:(1)簡單、面向?qū)ο蠛蜑槿怂煜ava的簡單首先體現(xiàn)在精簡的系統(tǒng)上,力圖用最小的系統(tǒng)實現(xiàn)足夠多的功能;對硬件的要求不高,在小型的計算機(jī)上便可以良好的運(yùn)行。和所有的新一代的程序設(shè)計語言一樣,java也采用了面向?qū)ο蠹夹g(shù)并更加徹底,所有的java程序和applet程序均是對象,封裝性實現(xiàn)了模塊化和信息隱藏,繼承性實現(xiàn)了代碼的復(fù)用,用戶可以建立自己的類庫。而且java采用的是相對簡單的面向?qū)ο蠹夹g(shù),去掉了運(yùn)算符重載、多繼承的復(fù)雜概念,而采用了單一繼承、類強(qiáng)制轉(zhuǎn)換、多線程、引用(非指針)等方式。無用內(nèi)存自動回收機(jī)制也使得程序員不必費心管理內(nèi)存,是程序設(shè)計更加簡單,同時大大減少了出錯的可能。java語言采用了C語言中的大部分語法,熟悉C語言的程序員會發(fā)現(xiàn)java語言在語法上與C語言極其相似。(2)魯棒并且安全java語言在編譯及運(yùn)行程序時,都要進(jìn)行嚴(yán)格的檢查。作為一種強(qiáng)制類型語言,java在編譯和連接時都進(jìn)行大量的類型檢查,防止不匹配問題的發(fā)生。如果引用一個非法類型、或執(zhí)行一個非法類型操作,java將在解釋時指出該錯誤。在java程序中不能采用地址計算的方法通過指針訪問內(nèi)存單元,大大減少了錯誤發(fā)生的可能性;而且java的數(shù)組并非用指針實現(xiàn),這樣就可以在檢查中避免數(shù)組越界的發(fā)生。無用內(nèi)存自動回收機(jī)制也增加了java的魯棒性。作為網(wǎng)絡(luò)語言,java必須提供足夠的安全保障,并且要防止病毒的侵襲。java在運(yùn)行應(yīng)用程序時,嚴(yán)格檢查其訪問數(shù)據(jù)的權(quán)限,比如不允許網(wǎng)絡(luò)上的應(yīng)用程序修改本地的數(shù)據(jù)。下載到用戶計算機(jī)中的字節(jié)代碼在其被執(zhí)行前要經(jīng)過一個核實工具,一旦字節(jié)代碼被核實,便由java解釋器來執(zhí)行,該解釋器通過阻止對內(nèi)存的直接訪問來進(jìn)一步提高java的安全性。同時java極高的魯棒性也增強(qiáng)了java的安全性。(3)結(jié)構(gòu)中立并且可以移植網(wǎng)絡(luò)上充滿了各種不同類型的機(jī)器和操作系統(tǒng),為使java程序能在網(wǎng)絡(luò)的任何地方運(yùn)行,java編譯器編譯生成了與體系結(jié)構(gòu)無關(guān)的字節(jié)碼結(jié)構(gòu)文件格式。任何種類的計算機(jī),只有在其處理器和操作系統(tǒng)上有java運(yùn)行時環(huán)境,字節(jié)碼文件就可以在該計算機(jī)上運(yùn)行。即使是在單一系統(tǒng)的計算機(jī)上,結(jié)構(gòu)中立也有非常大的作用。隨著處理器結(jié)構(gòu)的不斷發(fā)展變化,程序員不得不編寫各種版本的程序以在不同的處理器上運(yùn)行,這使得開發(fā)出能夠在所有平臺上工作的軟件集合是不可能的。而使用java將使同一版本的應(yīng)用程序可以運(yùn)行在所有的平臺上。體系結(jié)構(gòu)的中立也使得java系統(tǒng)具有可移植性。java運(yùn)行時系統(tǒng)可以移植到不同的處理器和操作系統(tǒng)上,java的編譯器是由java語言實現(xiàn)的,解釋器是由java語言和標(biāo)準(zhǔn)C語言實現(xiàn)的,因此可以較為方便的進(jìn)行移植工作。(4)高性能雖然java是解釋執(zhí)行的,但它仍然具有非常高的性能,在一些特定的CPU上,java字節(jié)碼可以快速的轉(zhuǎn)換成為機(jī)器碼進(jìn)行執(zhí)行。而且java字節(jié)碼格式的設(shè)計就是針對機(jī)器碼的轉(zhuǎn)換,實際轉(zhuǎn)換時相當(dāng)簡便,自動的寄存器分配與編譯器對字節(jié)碼的一些優(yōu)化可使之生成高質(zhì)量的代碼。隨著java虛擬機(jī)的改進(jìn)和"即時編譯"(justintime)技術(shù)的出現(xiàn)使得java的執(zhí)行速度有了更大的提高。(5)解釋執(zhí)行、多線程并且是動態(tài)的為易于實現(xiàn)跨平臺性,java設(shè)計成為解釋執(zhí)行,字節(jié)碼本身包含了許多編譯時生成的信息,使連接過程更加簡單。而多線程使應(yīng)用程序可以同時進(jìn)行不同的操作,處理不同的事件。在多線程機(jī)制中,不同的線程處理不同的任務(wù),互不干涉,不會由于某一任務(wù)處于等待狀態(tài)而影響了其它任務(wù)的執(zhí)行,這樣就可以容易的實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。java在執(zhí)行過程中,可以動態(tài)的加載各種類庫,這一特點使之非常適合于網(wǎng)絡(luò)運(yùn)行,同時也非常有利于軟件的開發(fā),即使是更新類庫也不必重新編譯使用這一類庫的應(yīng)用程序。2.2J2EE企業(yè)級開發(fā)介紹Web應(yīng)用開發(fā)者需要編寫企業(yè)級的分布式的事務(wù)處理應(yīng)用程序[3],而這些應(yīng)用程序必須可以發(fā)揮速度、安全性和服務(wù)器端技術(shù)的可靠性。企業(yè)級的應(yīng)用程序必須具有以下特點:花費更少的金錢、具有更快的速度、占用更少的資源。為了減少費用,快速設(shè)計和開發(fā)企業(yè)級的應(yīng)用程序,Java2Platform,EnterpriseEdition(J2EE)技術(shù)提供了一個基于組件的方法來設(shè)計、開發(fā)、裝配和部署企業(yè)級應(yīng)用程序。J2EE平臺提供了一個多層結(jié)構(gòu)的分布式的應(yīng)用程序模型[4],該模型具有重用組件的能力、基于擴(kuò)展標(biāo)記語言(XML)的數(shù)據(jù)交換、統(tǒng)一的安全模式和靈活的事務(wù)控制。你不僅可以比以前更快地發(fā)表對市場的新的解決方案,而且你的獨立于平臺的基于組件的J2EE解決方案不再受任何提供商的產(chǎn)品和應(yīng)用程序編程界面(APIs)的限制。提供商和買主都可以自己選擇最合適于它們的商業(yè)應(yīng)用和所需技術(shù)的產(chǎn)品和組件。2.4Struts2簡介Struts2既然是從Struts1發(fā)展而來,但實際上Struts2與Struts1在框架的設(shè)計思想上面還是有很大的區(qū)別,Struts2是以WebWork的設(shè)計思想為核心,為什么Struts2不沿用Struts1的設(shè)計思想,畢竟Struts1在目前的企業(yè)應(yīng)用中還是有非常大的市場在的,那么,來看下Struts1的一些缺點吧:(1)支持的表現(xiàn)層技術(shù)單一(2)與ServletAPI嚴(yán)重耦合,這點可以從Action的Execute的方法聲明里面就可以看的出來(3)代碼依賴Struts1API,有侵入性,這點可以從寫Action類和FormBean的時候看的出來,Action必須實現(xiàn)Struts的Action類而Struts2之所以以WebWork的設(shè)計思想為其核心,一點就是最近WebWork的上升勢頭,再就是WebWork沒有Struts1上面的那些缺點,更符合MVC的設(shè)計思想,也更利于代碼的復(fù)用?;谝陨辖榻B可以看的出,Struts2體系結(jié)構(gòu)與Struts1的體系結(jié)構(gòu)有很大的差別,Struts1是使用ActionServlet做為其中心處理器,Struts2則使用一個攔截器(FilterDispatcher)做為其中心處理器,這樣做的一個好處就是將Action類和ServletAPI進(jìn)行了分離。Struts2的簡單處理流程如下:(1)瀏覽器發(fā)送請求(2)中心處理器根據(jù)struts.xml文件查找對應(yīng)的處理請求的Action類(3)WebWork的攔截器鏈自動對請求應(yīng)用通用功能,例如:WorkFlow、Validation等功能(4)如果Struts.xml文件中配置Method參數(shù),則調(diào)用Method參數(shù)對應(yīng)的Action類中的Method方法,否則調(diào)用通用的Execute方法來處理用戶請求(5)將Action類中的對應(yīng)方法返回的結(jié)果響應(yīng)給瀏覽器2.5Hibernate簡介Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration.這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這五的核心接口分別加以介紹。Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應(yīng)用中的HttpSession.這里當(dāng)使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將HttpSesion對象稱為用戶session.SessionFactory接口:SessionFactroy接口負(fù)責(zé)初始化Hibernate.它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當(dāng)需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory.Configuration接口:Configuration接口負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFacTransaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。2.6Spring簡介傳統(tǒng)J2EE應(yīng)用的開發(fā)效率低,應(yīng)用服務(wù)器廠商對各種技術(shù)的支持并沒有真正統(tǒng)一,導(dǎo)致J2EE的應(yīng)用沒有真正實現(xiàn)WriteOnce及RunAnywhere的承諾。Spring作為開源的中間件,獨立于各種應(yīng)用服務(wù)器,甚至無須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)、事務(wù)處理等。Spring致力于J2EE應(yīng)用的各層的解決方案,而不是僅僅專注于某一層的方案??梢哉fSpring是企業(yè)應(yīng)用開發(fā)的“一站式”選擇,并貫穿表現(xiàn)層、業(yè)務(wù)層及持久層。然而,Spring并不想取代那些已有的框架,而是與它們無縫地整合。Spring是一個開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。(1)目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性。(2)功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能。(3)范圍:任何Java應(yīng)用。簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。①輕量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。②控制反轉(zhuǎn)Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。③面向切面Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。④Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。⑤框架Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。Spring對你的工程來說,它不需要一個以上的framework。Spring是潛在地一站式解決方案,定位于與典型應(yīng)用相關(guān)的大部分基礎(chǔ)結(jié)構(gòu)。它也涉及到其他framework沒有考慮到的內(nèi)容。(4)特點①方便解耦,簡化開發(fā)通過Spring提供的IoC容器,我們可以將對象之間的依賴關(guān)系交由Spring進(jìn)行控制,避免硬編碼所造成的過度程序耦合。有了Spring,用戶不必再為單實例模式類、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應(yīng)用。②AOP編程的支持通過Spring提供的AOP功能,方便進(jìn)行面向切面的編程,許多不容易用傳統(tǒng)OOP實現(xiàn)的功能可以通過AOP輕松應(yīng)付。③聲明式事務(wù)的支持在Spring中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來,通過聲明式方式靈活地進(jìn)行事務(wù)的管理,提高開發(fā)效率和質(zhì)量。④方便程序的測試可以用非容器依賴的編程方式進(jìn)行幾乎所有的測試工作,在Spring里,測試不再是昂貴的操作,而是隨手可做的事情。⑤方便集成各種優(yōu)秀框架Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優(yōu)秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。⑥降低JavaEEAPI的使用難度Spring對很多難用的JavaEEAPI(如JDBC,JavaMail,遠(yuǎn)程調(diào)用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些JavaEEAPI的使用難度大為降低。⑦Java源碼是經(jīng)典學(xué)習(xí)范例Spring的源碼設(shè)計精妙、結(jié)構(gòu)清晰、匠心獨用,處處體現(xiàn)著大師對Java設(shè)計模式靈活運(yùn)用以及對Java技術(shù)的高深造詣。Spring框架源碼無疑是Java技術(shù)的最佳實踐范例。2.7MVC設(shè)計模式概述MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。MVC是XeroxPARC在20世紀(jì)80年代為編程語言Smalltalk—80發(fā)明的一種軟件設(shè)計模式,至今已被廣泛使用,最近幾年被推薦為Sun公司J2EE平臺的設(shè)計模式,受到越來越多的Web開發(fā)者的歡迎。(1)MVC設(shè)計模式MVC是一種設(shè)計模式[9],它強(qiáng)制性地把應(yīng)用程序的輸入、處理和輸出分開。MVC把應(yīng)用程序分為三個核心模塊:模型、視圖和控制器,它們分別擔(dān)任不同的任務(wù)。如下圖顯示了這幾個模塊各自的功能以及它們的相互關(guān)系。視圖:視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接收用戶的輸入數(shù)據(jù),但是它并不進(jìn)行任何實際的業(yè)務(wù)處理。視圖可以向模型查詢業(yè)務(wù)狀態(tài),但不能改變模型。視圖還能接收模型發(fā)出的數(shù)據(jù)更新事件,從而對用戶界面進(jìn)行同步更新。模型:模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。一個模型能為多個視圖提供數(shù)據(jù)。由于同一個模型可以被多個視圖重用,所以提高了應(yīng)用的可重用性。方法調(diào)用〈控制器〉方法調(diào)用〈控制器〉接受用戶請求調(diào)用模型響應(yīng)用戶請求選擇視圖顯示響應(yīng)結(jié)果〈視圖〉顯示模型狀態(tài)接受數(shù)據(jù)更新請求把用戶輸入數(shù)據(jù)傳輸給控制器〈模型〉代表應(yīng)用程序狀態(tài)響應(yīng)狀態(tài)查詢處理業(yè)務(wù)流程通知視圖業(yè)務(wù)狀態(tài)更新事件圖2.1MVC視圖控制器:控制器接收用戶輸入并調(diào)用模型和視圖去完成用戶的需求。當(dāng)Web用戶單擊Web頁面中的提交按鈕來發(fā)送HTML表單時,控制器接收請求并調(diào)用相應(yīng)的模型組件去處理請求,然后調(diào)用相應(yīng)的視圖來顯示模型返回的數(shù)據(jù)。MVC的處理過程如下:首先控制器接收用戶的請求,并決定應(yīng)該調(diào)用哪個模型來進(jìn)行處理;然后根據(jù)用戶請求并進(jìn)行相應(yīng)的業(yè)務(wù)處理,并返回數(shù)據(jù),最后控制器調(diào)用相應(yīng)的視圖來格式化模型返回的數(shù)據(jù),并通過視圖呈現(xiàn)給用戶。(2)MVC的優(yōu)點和不足MVC的優(yōu)點表現(xiàn)在以下幾個方面:可以為一個模型在運(yùn)行時同時建立和使用多個視圖。變化-傳播機(jī)制可以確保所有相關(guān)的視圖及時得到模型數(shù)據(jù)變化,從而使所有關(guān)聯(lián)的視圖和控制器做到行為同步。視圖與控制器的可接插性,允許更換視圖和控制器對象,而且可以根據(jù)需求動態(tài)的打開或關(guān)閉、甚至在運(yùn)行期間進(jìn)行對象替換。模型的可移植性。因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作。需要做的只是在新平臺上對視圖和控制器進(jìn)行新的修改。潛在的框架結(jié)構(gòu)??梢曰诖四P徒?yīng)用程序框架,不僅僅是用在設(shè)計界面的設(shè)計中。MVC的不足表現(xiàn)在以下幾個方面:增加了系統(tǒng)結(jié)構(gòu)和實現(xiàn)的復(fù)雜性。對于簡單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過多的更新操作,降低運(yùn)行效率。視圖與控制器間的過于緊密的連接。視圖與控制器是相互分離,但確實聯(lián)系緊密的部件,視圖沒有控制器的存在,其應(yīng)用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。視圖對模型數(shù)據(jù)的低效率訪問。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對未變化數(shù)據(jù)的不必要的頻繁訪問,也將損害操作性能。目前,一般高級的界面工具或構(gòu)造器不支持MVC模式。改造這些工具以適應(yīng)MVC需要和建立分離的部件的代價是很高的,從而造成使用MVC的困難。

第三章系統(tǒng)的設(shè)計3.1系統(tǒng)架構(gòu)設(shè)計為了是系統(tǒng)能夠方便的使用,降低系統(tǒng)維護(hù)成本,提高使用效率,本系統(tǒng)采用B/S架構(gòu)實現(xiàn),實施只需要將系統(tǒng)部署到一臺專用服務(wù)器上,其他客戶機(jī)通過瀏覽器即可訪問操作本系統(tǒng),降低系統(tǒng)開銷和維護(hù)成本。本系統(tǒng)選用J2EE平臺開發(fā)實現(xiàn)。選用當(dāng)前主流開發(fā)框架,詳細(xì)系統(tǒng)架構(gòu)圖如圖3.1系統(tǒng)框架圖:圖3.1系統(tǒng)框架圖由系統(tǒng)框架圖也可以看出本系統(tǒng)的框架結(jié)構(gòu)。本系統(tǒng)采用的是主流的框架結(jié)構(gòu)即SSH架構(gòu),所謂SSH是目前業(yè)界比較流行的架構(gòu),SSH分別代表了Struts、Spring、Hibernate。其三者的搭配已成為軟件開發(fā)的經(jīng)典。其中Struts用戶配合頁面的展現(xiàn),也做控制轉(zhuǎn)發(fā),Spring則通過依賴注入對整個應(yīng)用進(jìn)行管理。而Hibernate則主要負(fù)責(zé)持久化操作。從框架圖可以看出,本系統(tǒng)將采用MySql數(shù)據(jù)庫做數(shù)據(jù)存儲,而數(shù)據(jù)庫也位于整個系統(tǒng)的最底層,其上則是整個系統(tǒng)的業(yè)務(wù)層,位于數(shù)據(jù)庫之上的則是對數(shù)據(jù)操作的Hibernate,主要負(fù)責(zé)數(shù)據(jù)的持久化,再往上則是用于配合界面顯示的控制層Struts,而貫穿于整個業(yè)務(wù)層的則是Spring,它主要通過依賴注入的方式管理整個業(yè)務(wù)層對象的生命周期。在業(yè)務(wù)層之上則是HTML、JavaScript等頁面顯示部分,用來給用戶呈現(xiàn)結(jié)果。作為View部分。當(dāng)用戶在界面上做任何操作,都先進(jìn)入Struts中,由Struts獲得用戶的輸入,根據(jù)業(yè)務(wù)需求,再決定調(diào)用哪個業(yè)務(wù)類,而不需要界面中直接調(diào)用業(yè)務(wù)類,降低了頁面的復(fù)雜度,也實現(xiàn)了界面與業(yè)務(wù)的分離。Struts根據(jù)用戶的請求,使用Spring注入的業(yè)務(wù)類,調(diào)用相應(yīng)的業(yè)務(wù)類,這樣實現(xiàn)了系統(tǒng)業(yè)務(wù)功能的模塊化。增加了系統(tǒng)的可讀性。各個業(yè)務(wù)模塊根據(jù)輸入不同調(diào)用相應(yīng)的Hibernate進(jìn)行數(shù)據(jù)操作。實現(xiàn)了業(yè)務(wù)與數(shù)據(jù)操作相分離,增加了系統(tǒng)的模塊化,降低系統(tǒng)的耦合度,同時增加了系統(tǒng)的可擴(kuò)展性,以后根據(jù)需要可以使用其他數(shù)據(jù)庫而不需要更改業(yè)務(wù)邏輯。本系統(tǒng)嚴(yán)格按照MVC思想進(jìn)行架構(gòu)的搭建和設(shè)計,從對系統(tǒng)架構(gòu)圖的分析來看,本系統(tǒng)的架構(gòu)合理,符合MVC思想,實現(xiàn)了業(yè)務(wù)與控制的解耦合。也大大提高了系統(tǒng)的可擴(kuò)展性。因此可以嚴(yán)格按照此架構(gòu)進(jìn)行系統(tǒng)的開發(fā)工作。3.2系統(tǒng)模塊設(shè)計在線調(diào)查問卷系統(tǒng)是一個基于網(wǎng)絡(luò)的數(shù)據(jù)采集系統(tǒng)[2],這個系統(tǒng)的主要目的就是通過在線問卷調(diào)查來獲取大眾的信息,這些信息要經(jīng)過處理并且及時的存儲起來。本系統(tǒng)支持將數(shù)據(jù)庫文件導(dǎo)入至相關(guān)的統(tǒng)計分析軟件進(jìn)行統(tǒng)計分析,同時系統(tǒng)還要求用戶能夠在線編輯問卷,同時也能夠跟蹤問卷調(diào)查的情況等,在被訪者訪問問卷后,用戶還能夠看到當(dāng)前各項選項的支持情況。根據(jù)對在線調(diào)查系統(tǒng)的分析,基本確定在線調(diào)查主要包括在線調(diào)查模塊、用戶管理模塊、問卷管理模塊等三大模塊。具體系統(tǒng)的基本架構(gòu)圖如圖3.2系統(tǒng)基本架構(gòu)圖:圖3.2系統(tǒng)基本架構(gòu)圖3.2.1登錄功能對與本系統(tǒng)的使用有兩種授權(quán)方式,一種是匿名方式、一種是認(rèn)證方式,所謂匿名即任何用戶都可以訪問,不需要登錄本系統(tǒng),例如參與在線投票即為匿名方式。認(rèn)證方式指需要注冊成為本系統(tǒng)的用戶或者系統(tǒng)的管理員,通過登錄之后才能訪問的方式。用戶登錄本系統(tǒng)之后可以使用本系統(tǒng)發(fā)布一些新的問卷調(diào)查,管理員可以審核用戶發(fā)布的在線調(diào)查,審核通過的調(diào)查可以被顯示在網(wǎng)站上,任何通過網(wǎng)絡(luò)訪問的本系統(tǒng)的用戶都可以參與投票。用戶也可以查看自己發(fā)布問卷的投票結(jié)果。3.2.2用戶管理所謂系統(tǒng)用戶指的是通過注冊成為的本系統(tǒng)用戶,注冊成為本系統(tǒng)的用戶之后,用戶便可以通過本系統(tǒng)創(chuàng)建屬于自己的在線問卷,發(fā)布調(diào)查自己需要調(diào)查的問題。通過本平臺提供了以個方便快結(jié)的問卷調(diào)查發(fā)布與管理的平臺,但是對于注冊用戶是有一定的要求的,即用戶發(fā)布的問卷必須符合本網(wǎng)站的規(guī)定,網(wǎng)站管理員可以對注冊的用戶進(jìn)行管理,也可以刪除一些長時間不登錄的用戶,為有需要的用戶提供良好的服務(wù)。3.2.3問卷管理系統(tǒng)的用戶登錄本系統(tǒng)之后,可以根據(jù)自己的需要發(fā)布自己的問卷,調(diào)查自己需要調(diào)查的問題。因此,用戶可以對自己發(fā)布的問卷進(jìn)行管理。用戶登錄本系統(tǒng)之后可以查看自己發(fā)布的問卷,查看問卷的調(diào)查結(jié)果,此結(jié)果可以以餅圖或者柱狀圖的方式展現(xiàn)。用戶也可以停止一些問卷的調(diào)查,對于一些過期的問卷,用戶還可以選擇刪除以節(jié)約系統(tǒng)的資源。3.2.4問卷審核系統(tǒng)用戶登錄后可以創(chuàng)建自己的問卷,添加自己需要調(diào)查的問題,但是此問卷并不能直接被用戶所投票,所有問卷在創(chuàng)建完之后都要通過管理員審核才可以,審核通過的問卷可被發(fā)布到首頁上等待用戶投票,用戶也可以管理該問卷。如果問卷審核失敗,則不能發(fā)不到首頁上,用戶需要修改后重新提交等待管理員審核。3.3數(shù)據(jù)庫設(shè)計3.3.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計E-R圖即實體-關(guān)系圖(Entity-RelationDiagram),是用來建立數(shù)據(jù)模型,在數(shù)據(jù)庫系統(tǒng)概論中屬于概念設(shè)計階段,形成一個獨立于機(jī)器,獨立于DBMS的E-R圖模型。通常將它簡稱為E-R圖,相應(yīng)地可把用E-R圖描繪的數(shù)據(jù)模型稱為ER模型。ER圖提供了表示實體(即數(shù)據(jù)對象)、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。E-R圖體現(xiàn)了系統(tǒng)數(shù)據(jù)存儲的架構(gòu)以及系統(tǒng)的設(shè)計思想,創(chuàng)建E-R圖的過程也就是從需求到數(shù)據(jù)表的設(shè)計過程,E-R圖也是系統(tǒng)設(shè)計的結(jié)晶,如圖3.3系統(tǒng)E-R圖。圖3.3系統(tǒng)E-R圖3.3.2數(shù)據(jù)庫詳細(xì)設(shè)計系統(tǒng)用戶表存儲所有系統(tǒng)用戶的相關(guān)信息,包括用戶姓名、性別、用戶名、密碼等相關(guān)信息,具體見表3.1系統(tǒng)用戶表。表3.1系統(tǒng)用戶表名稱代碼數(shù)據(jù)類型是鍵默認(rèn)值注釋用戶IDU_IdintTRUE用戶姓名U_TrueNamevarchar(50)FALSE性別U_Gendervarchar(50)FALSE登錄用戶名U_LoginNamevarchar(50)FALSE登錄密碼U_Passwordvarchar(50)FALSE是否是管理員U_IsManagerbitFALSE問卷表可以存放所有的調(diào)查問卷,每個用戶登錄后創(chuàng)建的問卷都會通過此表進(jìn)行保存,具體包括了問卷的標(biāo)題、問卷內(nèi)容、選項數(shù)據(jù)、問卷狀態(tài)等相關(guān)信息,具體見表3.2問卷表。表3.2問卷表名稱代碼數(shù)據(jù)類型是鍵默認(rèn)值注釋問卷IDV_IdintTRUE用戶IDU_IdintTRUE問卷標(biāo)題V_Titlevarchar(50)FALSE問卷內(nèi)容V_Contentvarchar(100)FALSE選項數(shù)目V_ItemCountintFALSE投票數(shù)量V_TotleSupportNumintFALSE問卷狀態(tài)V_Statusvarchar(50)FALSE創(chuàng)建時間V_CreateTimedatetimeFALSE問卷選項表記錄了每個問卷的所有選項,以及支持票數(shù),具體包括選項名稱、支持人數(shù)等相關(guān)信息。詳細(xì)見表3.3問卷選項表。表3.3問卷選項表名稱代碼數(shù)據(jù)類型是鍵默認(rèn)值注釋選項IDI_IdintTRUE問卷IDV_IdintTRUE選項名稱I_ItemContentvarchar(100)FALSE支持人數(shù)I_SupportNumintFALSE第四章系統(tǒng)的實現(xiàn)4.1注冊登錄本系統(tǒng)為在線問卷調(diào)查系統(tǒng),設(shè)計到的用戶有授權(quán)用戶,也有匿名用戶,匿名用戶可以不登錄本系統(tǒng)即可參與本系統(tǒng)的一些問卷調(diào)查。但是如果希望通過本系統(tǒng)來發(fā)布自己的一些調(diào)查內(nèi)容的話就必須成為本系統(tǒng)的授權(quán)用戶才可以。用戶通過用戶注冊的方式成為本系統(tǒng)的用戶,具體如圖4.1用戶注冊圖。圖4.1用戶注冊圖系統(tǒng)用戶可以通過登錄本系統(tǒng)的方式來管理自己的問卷。即可以創(chuàng)建自己的問卷可以發(fā)布自己的問卷,通過圖表的方式展現(xiàn)自己問卷的調(diào)查結(jié)果,具體用戶登錄見圖4.2用戶登錄圖。圖4.2用戶登錄圖4.2問卷管理用戶登錄本系統(tǒng)后可以管理自己的問卷??梢詣?chuàng)建屬于自己的問卷,可以以刪除已經(jīng)創(chuàng)建的問卷或者結(jié)束正在進(jìn)行的問卷,具體添加問卷的方法見圖4.3添加問卷。圖4.3添加問卷4.3問卷審核所有用戶在創(chuàng)建問卷之后都不能直接被用戶看到,如果要想讓所有用戶都能參與投票,就必須需要管理元進(jìn)行審核,當(dāng)管理員審核通過之后就可以將已經(jīng)審核通過的問卷發(fā)不到網(wǎng)絡(luò),由匿名用戶進(jìn)行投票,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論