版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEII川師范大學(xué)本科畢業(yè)論文在線投票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——管理子系統(tǒng)PAGEIIPAGEII四川師范大學(xué)本科畢業(yè)設(shè)計(jì)在線投票系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)——系統(tǒng)管理子系統(tǒng)作者楊富淋院系電子信息工程學(xué)院專業(yè)通信工程年級(jí)2002級(jí)學(xué)號(hào)200239016001指導(dǎo)教師黃進(jìn)答辯日期四川師范大學(xué)電子信息工程學(xué)院教務(wù)處制在線投票系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)——系統(tǒng)管理子系統(tǒng)學(xué)生:楊富淋指導(dǎo)教師:黃進(jìn)內(nèi)容摘要:在線投票系統(tǒng)是典型的信息管理系統(tǒng)(MIS),它克服了以往的通過(guò)實(shí)地調(diào)查并手工填表的調(diào)查方式時(shí)所帶來(lái)的人力、物力以及時(shí)間上的浪費(fèi),同時(shí)也保證了調(diào)查評(píng)估過(guò)程的科學(xué)化、高效化,使調(diào)查評(píng)估得出的結(jié)論更準(zhǔn)確、更快捷、更具說(shuō)服力。本文全面介紹了利用JSP和SQLServer2000技術(shù)實(shí)現(xiàn)在線投票系統(tǒng)——系統(tǒng)管理子系統(tǒng)。該系統(tǒng)是一個(gè)基于B/S模式,Html和JSP與Tomcat服務(wù)器交互來(lái)實(shí)現(xiàn)信息收集和處理、網(wǎng)上評(píng)估、結(jié)果查詢?yōu)橐惑w的在線投票系統(tǒng),其設(shè)計(jì)和實(shí)現(xiàn)方法可以應(yīng)用于其他子系統(tǒng)。關(guān)鍵詞:Tomcat、Html、SQL語(yǔ)言,MSSQLServer,JSP,數(shù)據(jù)庫(kù),在線投票系統(tǒng)Thedesignandtherealizationoftheon-linevotesystem——Thesystemmanagementsub-systemAbstract:Theon-linevotesystemisthetypicalinformationmanagementsystem(MIS),itovercametopasstheon-siteinspectiontocombinethehouroftheinquisitionmethodthathandicraftfillintheformbeforethemanpower,materialresourcesandthewasteontimesbrings,alsoguaranteeingtoinvestigatetoevaluatetheprocessscientificandturningefficiently,makeinvestigatethevaluationtheconclusionofismoreaccurate,fasterandevenhastheconviction.ThistextintroducestomakeuseoftheJSPandthetechniqueofSQLServer2000tocarryouttheon-linevotesystem-systemmanagementsub-systemcompletely.ThatsystemisanaccordingtothemodeofB/S,theHtmlandJSPsandserverofTomcatshandovertocarryouttheinformationcollectionsandprocessing,on-linevaluations,resultssearchastheon-linevotesystemoftheintegralwholewitheachother,itdesignandcarryoutthemethodandcanbeapplyinothersub-systems.Keyword:Tomcat,Html,languageofSQL,theMSSQLServer,JSP,database,on-linevotesystem目錄TOC\o"1-4"\h\z\u緒論 1一、JSP技術(shù)概述 2(一)常見動(dòng)態(tài)網(wǎng)頁(yè)技術(shù) 21、CGI、ASP、PHP、JSP介紹 22.JSP技術(shù)特點(diǎn)及其優(yōu)勢(shì) 3(二)發(fā)展趨勢(shì)與前景分析 4二、MSSQLServer概述 4(一)MSSQLServer介紹 4(二)SQL語(yǔ)句介紹 5(三)SQL的優(yōu)點(diǎn) 5三、在線投票系統(tǒng)的整體設(shè)計(jì)原理及思路 6(一)基于B/S的三層結(jié)構(gòu) 6(二)在線投票系統(tǒng)的組成 6(三)在線投票系統(tǒng)的頁(yè)面功能分析及設(shè)計(jì) 6四、在線投票系統(tǒng)的詳細(xì)設(shè)計(jì) 8(一)搭建開發(fā)環(huán)境 81、該系統(tǒng)運(yùn)行環(huán)境 82、安裝和配置JDK 83、安裝和配置Tomcat 94、測(cè)試是否安裝配置成功 105、安裝和設(shè)置SQLServer2000 11(二)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn) 112、設(shè)計(jì)數(shù)據(jù)庫(kù)表 113、數(shù)據(jù)庫(kù)的連接 13(三)系統(tǒng)模塊設(shè)計(jì) 131、用戶注冊(cè)模塊 132、用戶信息查詢模塊 143、用戶信息修改模塊 154、用戶注冊(cè)刪除模塊 16五、在線投票系統(tǒng)使用說(shuō)明 16六、各個(gè)系統(tǒng)文件簡(jiǎn)單介紹 17結(jié)束語(yǔ) 19致謝 20附錄 21參考文獻(xiàn) 32-PAGE32-緒論該系統(tǒng)是一個(gè)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性、數(shù)據(jù)安全性好的庫(kù),而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。本系統(tǒng)采用MSSQLServer2000數(shù)據(jù)庫(kù)管理系統(tǒng)與JSP應(yīng)用程序,主要完成對(duì)在線投票系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫(kù)模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的在線投票系統(tǒng)可以滿足投票者、發(fā)表話題的用戶和維護(hù)系統(tǒng)的高級(jí)管理員三方面的需要。該系統(tǒng)具體劃分了三類用戶的操作權(quán)限,設(shè)計(jì)了了三個(gè)操作界面。實(shí)現(xiàn)了數(shù)據(jù)庫(kù)表的瀏覽,記錄的添加、刪除和修改,報(bào)表的生成,實(shí)現(xiàn)了多數(shù)據(jù)庫(kù)表的連接操作,實(shí)現(xiàn)了多條件查詢和模糊查詢,并靈活實(shí)現(xiàn)了對(duì)不可更新查詢結(jié)果集的更新操作,實(shí)現(xiàn)了主從表操作,實(shí)現(xiàn)了密碼維護(hù)功能,最后,系統(tǒng)還可以導(dǎo)入數(shù)據(jù)庫(kù)以對(duì)任意同結(jié)構(gòu)的數(shù)據(jù)庫(kù)進(jìn)行操作該系統(tǒng)應(yīng)用程序包含兩部分內(nèi)容,即前臺(tái)開發(fā)工具和后臺(tái)數(shù)據(jù)庫(kù)。服務(wù)器端的最關(guān)鍵的開發(fā)技術(shù)在于與數(shù)據(jù)庫(kù)服務(wù)器的交互,我們采用DreamweaverMX來(lái)開發(fā)后臺(tái)活動(dòng)服務(wù)器頁(yè)JSP文件;后臺(tái)數(shù)據(jù)庫(kù)選用了SQLServer2000,系統(tǒng)庫(kù)體系結(jié)構(gòu)采用的是較之于傳統(tǒng)C/S模式優(yōu)點(diǎn)更多的B/S模式三層結(jié)構(gòu)。在下面的各章節(jié)中,我們將對(duì)該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)說(shuō)明。由于這是我初次進(jìn)行JSP網(wǎng)頁(yè)設(shè)計(jì)與數(shù)據(jù)庫(kù)系統(tǒng)的開發(fā),本系統(tǒng)在許多方面都還存在著不足,希望今后能進(jìn)一步完善本系統(tǒng)。在線投票系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)——系統(tǒng)管理子系統(tǒng)一、JSP技術(shù)概述(一)常見動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)1、CGI、ASP、PHP、JSP介紹(1)CGICGI(CommomGatewayInterface,即通用網(wǎng)關(guān)接口)是早期用來(lái)建立動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。當(dāng)客戶端向Web服務(wù)器上指定的CGI程序發(fā)出請(qǐng)求時(shí),Web服務(wù)器會(huì)啟動(dòng)一個(gè)新的進(jìn)程(pro-cess)執(zhí)行GGI程序,程序執(zhí)行后將結(jié)果以網(wǎng)頁(yè)的形式發(fā)送給客戶端。CGI的優(yōu)點(diǎn)是它可以用很多的語(yǔ)言編寫,比如C、C++、VB和Perl語(yǔ)言,在選擇上有很大的靈活性。目前大多使用Perl編寫CGI。CGI主要缺點(diǎn)是維護(hù)復(fù)雜,運(yùn)行效率底下,主要表現(xiàn)在以下幾個(gè)方面:CGI程序是以獨(dú)立的進(jìn)程方式運(yùn)行的,這樣,當(dāng)用戶訪問(wèn)數(shù)量增大時(shí),會(huì)嚴(yán)重地?fù)p耗系統(tǒng)資源,大幅度的降低系統(tǒng)性能。CGI程序不是常駐內(nèi)存的,因此,當(dāng)用戶頻率訪問(wèn)CGI程序時(shí),會(huì)導(dǎo)致大量的磁盤操作,從而造成系統(tǒng)性能的下降。訪問(wèn)數(shù)據(jù)庫(kù)的程序不容易編寫。(2)ASPASP(ActiveServerPages)是微軟平臺(tái)下的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。是一個(gè)WEB服務(wù)器端的開發(fā)環(huán)境,利用它可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。它采用了三層計(jì)算結(jié)構(gòu),將WEB服務(wù)器(邏輯層)、客戶端瀏覽器(表示層)以及數(shù)據(jù)庫(kù)服務(wù)器(數(shù)據(jù)層)分開,具有良好的擴(kuò)充性。ASP采用腳本語(yǔ)言VBScript(Javascript)作為自己的開發(fā)語(yǔ)言。ASP有以下優(yōu)點(diǎn):簡(jiǎn)單易學(xué),降低WEB應(yīng)用程序的編寫難度。實(shí)現(xiàn)了動(dòng)態(tài)訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù)。安全性好。通過(guò)COM來(lái)擴(kuò)充復(fù)雜的功能,使得如文件上傳、e_mail發(fā)送以復(fù)雜的業(yè)務(wù)處理分離成為可重復(fù)使用的模塊。(3)PHPPHP(PersonalHomePage)是一種服務(wù)器端的嵌入HTML的腳本語(yǔ)言。它大量地借用C、Java和Perl語(yǔ)言的語(yǔ)法,并耦合PHP自己的特性,使WEB開發(fā)者能夠快速地寫出動(dòng)態(tài)生成頁(yè)面,它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。但是PHP沒有象JSP、ASP那樣對(duì)數(shù)據(jù)組件的支持,擴(kuò)展性較差,顧只能適應(yīng)小流量的網(wǎng)站。(4)JSPJSP(JavaServerPage)它是SUN公司推出的新一代站點(diǎn)開發(fā)語(yǔ)言,他完全解決了目前ASP、PHP的一個(gè)通病--腳本級(jí)執(zhí)行(據(jù)說(shuō)PHP4也已經(jīng)在Zend的支持下,實(shí)現(xiàn)編譯運(yùn)行).Sun公司借助自己在Java上的不凡造詣,將Java從Java應(yīng)用程序和JavaApplet之外,又有新的碩果,就是Jsp--JavaServerPage。Jsp可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。2.JSP技術(shù)特點(diǎn)及其優(yōu)勢(shì)(1)JSP技術(shù)特點(diǎn)=1\*GB3①JSP將內(nèi)容的生成和顯示進(jìn)行分離使用JSP技術(shù),Web頁(yè)面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其他人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過(guò)訪問(wèn)JavaBeans組件,使用JDBCTM技術(shù)訪問(wèn)數(shù)據(jù)庫(kù),或者包含文件),并且將結(jié)果以HTML(或者XML頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽的完全可用性。=2\*GB3②強(qiáng)調(diào)可重用的組件絕大多數(shù)JSP頁(yè)面依賴于可重用的,跨平臺(tái)的組件(JavaBeans或者EnterpriseJavaBeansTM組件)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用?;诮M件的方法加速了體開發(fā)過(guò)程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。=3\*GB3③采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開發(fā)Web頁(yè)面開發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JavaServerPage技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。(2)JSP技術(shù)優(yōu)勢(shì)通過(guò)開發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)工作。JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java編程語(yǔ)言的,而且所有的JSP頁(yè)面都被編譯成為JavaServlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫,各處運(yùn)行”的特點(diǎn)。隨著越來(lái)越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。應(yīng)用范圍ASP是Microsoft開發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言,也繼承了微軟產(chǎn)品的一貫傳統(tǒng)——只能運(yùn)行于微軟的服務(wù)器產(chǎn)品,IIS(InternetInformationServer)(windowsNT)和PWS(PersonalWebServer)(windows98)上。Unix下也有ChiliSoft的插件來(lái)支持ASP,但是ASP本身的功能有限必須通過(guò)ASP+COM的組合來(lái)擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來(lái)非常困難。PHP3可在Windows,Unix,Linux的Web服務(wù)器上正常運(yùn)行,還支持IIS,Apache等通用Web服務(wù)器,用戶更換平臺(tái)時(shí),無(wú)需變換PHP3代碼,可即拿即用.JSP同PHP3類似,幾乎可以運(yùn)行于所有平臺(tái)。如WinNT,Linux,Unix.NT下IIS通過(guò)一個(gè)插件,例如JRUN或者ServletExec,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場(chǎng)份額,但是在服務(wù)器方面Unix的優(yōu)勢(shì)仍然很大,而新崛起的Linux更是來(lái)勢(shì)不些從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無(wú)關(guān)的。性能比較有人做過(guò)試驗(yàn),對(duì)這三種語(yǔ)言分別做循環(huán)性能測(cè)試及存取Oracle數(shù)據(jù)庫(kù)測(cè)試。在循環(huán)性能測(cè)試中,JSP只用了令人吃驚的四秒鐘就結(jié)束了20000*20000的循環(huán)。而ASP、PHP測(cè)試的是2000*2000循環(huán)(少一個(gè)數(shù)量級(jí)),卻分別用了63秒和84秒。(參考PHPLIB)據(jù)庫(kù)測(cè)試中,三者分別對(duì)Oracle8進(jìn)行1000次Update,Select,和Delete:Php需要69秒,ASP則需要73秒,Jsp僅需要13秒,(二)發(fā)展趨勢(shì)與前景分析目前在國(guó)內(nèi)JSP、PHP與ASP應(yīng)用最為廣泛。而ASP.NET由于是一種較新的技術(shù),國(guó)內(nèi)采用的較少。在國(guó)外,JSP已經(jīng)是比較流行的一種技術(shù),尤其是電子商務(wù)類的網(wǎng)站,多采用JSP。采用PHP的網(wǎng)站如新浪網(wǎng)(sina)、中國(guó)人(Chinaren)等,但由于PHP本身存在的一些缺點(diǎn),使得它不適合應(yīng)用于大型電子商務(wù)站點(diǎn),而更適合一些小型的商業(yè)站點(diǎn)。首先,PHP缺乏規(guī)模支持。其次,缺乏多層結(jié)構(gòu)支持。對(duì)于大負(fù)荷站點(diǎn),解決方法只有一個(gè):分布計(jì)算。數(shù)據(jù)庫(kù)、應(yīng)用邏輯層、表示邏輯層彼此分開,而且同層也可以根據(jù)流量分開,組成二維陣列。而PHP則缺乏這種支持。還有上面提到過(guò)的一點(diǎn),PHP提供的數(shù)據(jù)庫(kù)接口支持不統(tǒng)一,這就使得它不適合運(yùn)用在電子商務(wù)中。ASP和JSP則沒有以上缺陷,ASP可以通過(guò)MicrosoftWindows的COM/DCOM獲得ActiveX規(guī)模支持,通過(guò)DCOM和TranscationServer獲得結(jié)構(gòu)支持;JSP可以通過(guò)SUNJava的JavaClass和EJB獲得規(guī)模支持,通過(guò)EJB/CORBA以及眾多廠商的ApplicationServer獲得結(jié)構(gòu)支持。四者中,JSP、ASP。NET應(yīng)該是未來(lái)發(fā)展的趨勢(shì)。世界上一些大的電子商務(wù)解決方案提供商都采用JSP/Servlet。比較出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere。二、MSSQLServer概述(一)MSSQLServer介紹SQLServer是一個(gè)后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),它功能強(qiáng)大操作簡(jiǎn)便,日益為廣大數(shù)據(jù)庫(kù)用戶所喜愛。越來(lái)越多的開發(fā)工具提供了與SQLServer的接口。SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。于1988年推出了第一個(gè)OS/2版本,在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能、具有使用方便、可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)??煽缭綇倪\(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。MSSQLServer不但可以應(yīng)用于大中型數(shù)據(jù)庫(kù)管理中,建立分布式關(guān)系數(shù)據(jù)庫(kù),并且也可以開發(fā)桌面數(shù)據(jù)庫(kù)。事實(shí)上,SQLServer數(shù)據(jù)庫(kù)處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫(kù)模式,盡管如此,相信大家都可以輕易的發(fā)現(xiàn),在SQLServer的數(shù)據(jù)庫(kù)處理方式,則是使用面向?qū)ο蟮牟僮鞣绞脚c精神,也就是說(shuō),SQLServer的所有功能,都可以基于系統(tǒng)已經(jīng)建立好的一些對(duì)象來(lái)達(dá)成,是相當(dāng)OO(面向?qū)ο螅┑囊粋€(gè)系統(tǒng)結(jié)構(gòu)。SQLServer企業(yè)管理器是SQLServer的主要管理工具,它提供了一個(gè)遵從MMC標(biāo)準(zhǔn)的用戶界面,使用戶得以:定義SQLServer實(shí)例組。將個(gè)別服務(wù)器注冊(cè)到組中。為每個(gè)已注冊(cè)的服務(wù)器配置所有SQLServer選項(xiàng)。在每個(gè)已注冊(cè)的服務(wù)器中創(chuàng)建并管理所有SQLServer數(shù)據(jù)庫(kù)、對(duì)象、登錄、用戶和權(quán)限。在每個(gè)已注冊(cè)的服務(wù)器上定義并執(zhí)行所有SQLServer管理任務(wù)。通過(guò)喚醒調(diào)用SQL查詢分析器,交互地設(shè)計(jì)并測(cè)試SQL語(yǔ)句、批處理和腳本。喚醒調(diào)用為SQLServer定義的各種向?qū)?。(二)SQL語(yǔ)句介紹SQL全稱是“結(jié)構(gòu)化查詢語(yǔ)言(StructuredQueryLanguage)”,功能強(qiáng)大,是一種完備的數(shù)據(jù)處理語(yǔ)言,不僅用于數(shù)據(jù)庫(kù)查詢,而且用于數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改和更新,概括起來(lái),包含4個(gè)部分:1、數(shù)據(jù)查詢語(yǔ)言(DQL-DataQueryLanguage)SELECT:用于檢索數(shù)據(jù);2、據(jù)操縱語(yǔ)言(DQL-DataManipulationLanguage):用于增加、修改或刪除數(shù)據(jù);INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫(kù);UPDATE:用于從數(shù)據(jù)庫(kù)中修改現(xiàn)存的數(shù)據(jù);DELETE:用于從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。3、數(shù)據(jù)定義語(yǔ)言(DQL-DataDefinitionLanguage)用于定義數(shù)據(jù)的結(jié)構(gòu),比如創(chuàng)建修改或者刪除數(shù)據(jù)庫(kù)對(duì)象;CREATE,ALTER,DROP4、數(shù)據(jù)控制語(yǔ)言(DQL-DataControlLanguage):用于定義數(shù)據(jù)庫(kù)用戶的權(quán)限。COMMITWORK,ROLLBACKWORK(三)SQL的優(yōu)點(diǎn)SQL廣泛地被采用正說(shuō)明了它的優(yōu)點(diǎn)。它使全部用戶,包括應(yīng)用程序員、DBA管理員和終端用戶受益非淺。1.非過(guò)程化語(yǔ)言SQL是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法。這種特性使用戶更易集中精力于要得到的結(jié)果。所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段。查詢優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。2.統(tǒng)一的語(yǔ)言SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。基本的SQL命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握。SQL為許多任務(wù)提供了命令,包括:查詢數(shù)據(jù)在表中插入、修改和刪除記錄建立、修改和刪除數(shù)據(jù)對(duì)象控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取保證數(shù)據(jù)庫(kù)一致性和完整性以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。3.是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS轉(zhuǎn)到另一個(gè)。所有用SQL編寫的程序都是可以移植的。SQL是PostgreSQL(和大多數(shù)其它關(guān)系型數(shù)據(jù)庫(kù))用做查詢語(yǔ)言的語(yǔ)言。它是可以移植的,并且容易學(xué)習(xí)使用。但是所有SQL語(yǔ)句都必須由數(shù)據(jù)庫(kù)服務(wù)器獨(dú)立地執(zhí)行。這就意味著客戶端應(yīng)用必須把每條查詢發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器,等待它處理這個(gè)查詢,接收結(jié)果,做一些運(yùn)算,然后給服務(wù)器發(fā)送另外一條查詢。所有這些東西都會(huì)產(chǎn)生進(jìn)程間通訊,并且如果客戶端在另外一臺(tái)機(jī)器上甚至還會(huì)導(dǎo)致網(wǎng)絡(luò)開銷。如果使用了PL/pgSQL,那么可以把一塊運(yùn)算和一系列查詢?cè)跀?shù)據(jù)庫(kù)服務(wù)器里面組成一個(gè)塊,這樣就擁有了過(guò)程語(yǔ)言的力量并且簡(jiǎn)化SQL的使用,因而節(jié)約了大量的時(shí)間,因?yàn)橛貌恢冻隹蛻舳?服務(wù)器通訊的過(guò)熱。通過(guò)使用PL/pgSQL,應(yīng)用可以獲得可觀的性能提升。三、在線投票系統(tǒng)的整體設(shè)計(jì)原理及思路要做一個(gè)門戶網(wǎng)站系統(tǒng),首先應(yīng)該進(jìn)行功能分析,這樣才能做出的網(wǎng)站滿足用戶需要的各項(xiàng)功能。該系統(tǒng)主要采用JSP、HTML、SQL數(shù)據(jù)庫(kù)。整體設(shè)計(jì)遵循軟件工程的方法,經(jīng)過(guò)總體分析、總體設(shè)計(jì)、文檔和代碼的編制、測(cè)試和系統(tǒng)實(shí)現(xiàn)幾個(gè)階段。下面就對(duì)在線投票系統(tǒng)的設(shè)計(jì)進(jìn)行功能分析。(一)基于B/S的三層結(jié)構(gòu)本次設(shè)計(jì)采用基于B/S模式的三層體系結(jié)構(gòu),如圖1所示。邏輯層由所有的JSP腳本程序組成,用來(lái)提供基本的信息傳遞,并將從客戶端獲得的用戶輸入與的數(shù)據(jù)庫(kù)中的數(shù)據(jù)按應(yīng)用需求規(guī)則進(jìn)行相應(yīng)處理,生成客戶機(jī)所要的結(jié)果,并將結(jié)果返回給客戶端。表示層表示層客戶機(jī)Windows98/2000邏輯層Web服務(wù)器Windows2000Server數(shù)據(jù)庫(kù)服務(wù)器SQLSever2000數(shù)據(jù)層瀏覽器JSP教本程序數(shù)據(jù)庫(kù)圖1B/S模式三層結(jié)構(gòu)圖(二)在線投票系統(tǒng)的組成本系統(tǒng)主要采用數(shù)據(jù)庫(kù)及網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)在線投票和后臺(tái)管理功能,本系統(tǒng)主要包括用戶注冊(cè)模塊,用戶查詢模塊,用戶信息修改模塊,用戶注冊(cè)刪除模塊。用戶可以在注冊(cè)模塊中通過(guò)注冊(cè)進(jìn)入該系統(tǒng)發(fā)表話題,由系統(tǒng)管理員對(duì)用戶信息,用戶權(quán)限等各種資料進(jìn)行處理。所有數(shù)據(jù)均放在數(shù)據(jù)庫(kù)中。系統(tǒng)功能模塊分布如圖2所示:(三)在線投票系統(tǒng)的頁(yè)面功能分析及設(shè)計(jì)本系統(tǒng)充分利用了以用戶權(quán)限限定對(duì)系統(tǒng)的操作,以便管理員能比較輕松的管理系統(tǒng)。用戶當(dāng)在登陸頁(yè)面用戶輸入用戶名及密碼后,經(jīng)系統(tǒng)判斷進(jìn)入一般用戶模式或者管理員模式。進(jìn)入系統(tǒng)后,用戶在不同的權(quán)限和模式下進(jìn)行注冊(cè),用戶查詢,用戶信息修改,用戶注冊(cè)刪除以及投票等相應(yīng)的操作。其功能關(guān)系如圖3所示:在線投票系統(tǒng)在線投票系統(tǒng)投票模塊用戶系統(tǒng)后臺(tái)管理系統(tǒng)用戶注冊(cè)模塊用戶注冊(cè)刪除模塊用戶信息查詢模塊用戶話題管理模塊用戶信息修改模塊用戶權(quán)限設(shè)置圖2系統(tǒng)功能模塊的分布圖一般用戶一般用戶管理員用戶發(fā)表話題(mainform.jsp)用戶信息查詢(member.jsp)話題修改(edit.jsp)參與投票(showquestion.jsp)增加管理員(adduser.jsp)查看投票結(jié)果(showresult2.jsp)刪除用戶帳戶(deluser.jsp)用戶權(quán)限設(shè)置(qxsz.jsp)用戶注冊(cè)(zhuce.jsp)話題管理(isvisable.jsp)公布投票結(jié)果(isopen.jsp)密碼驗(yàn)證出錯(cuò)密碼驗(yàn)證通過(guò)用戶詳細(xì)信息(chakan.jsp)判斷注冊(cè)成敗(adduser2.jsp)注冊(cè)成功注冊(cè)失敗登陸頁(yè)面(login.jsp)判斷用戶密碼及權(quán)限(chkadmin.jsp)用戶信息修改(edituser.jsp)圖3在線投票系統(tǒng)各模塊關(guān)系及功能四、在線投票系統(tǒng)的詳細(xì)設(shè)計(jì)在進(jìn)行了整體設(shè)計(jì)以后,就開始進(jìn)行詳細(xì)的設(shè)計(jì)及編碼工作。也就是設(shè)計(jì)文件和把他們有機(jī)地組織在一起實(shí)現(xiàn)所有功能。由于投票系統(tǒng)詳細(xì)設(shè)計(jì)是整個(gè)設(shè)計(jì)過(guò)程中最重要的步驟之一。下面就分如下幾個(gè)部分對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì):(1)搭建開發(fā)環(huán)境(2)數(shù)據(jù)庫(kù)中表的設(shè)計(jì)與實(shí)現(xiàn)(3)系統(tǒng)中各模塊設(shè)計(jì)(4)后臺(tái)功能設(shè)計(jì)(一)搭建開發(fā)環(huán)境本節(jié)主要介紹JSP開發(fā)環(huán)境的搭建。首先介紹該投票系統(tǒng)對(duì)運(yùn)行環(huán)境的要求,接著講述JSP開發(fā)和運(yùn)行的安裝配置以及數(shù)據(jù)庫(kù)安裝和配置。1、該系統(tǒng)運(yùn)行環(huán)境為了保證系統(tǒng)運(yùn)行的效率和可靠性,系統(tǒng)服務(wù)器端應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運(yùn)行于國(guó)際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運(yùn)行要求如下:(1)軟件環(huán)境客戶端:Windows95/98,Windows2000/xp,InternetExplorer(IE)等服務(wù)器端:Windows2000Server(IIS)4.0及其以上版本,IE等數(shù)據(jù)庫(kù):采用SQL,運(yùn)行于服務(wù)器端。(2)硬件環(huán)境服務(wù)器CPU:PIII500以上,內(nèi)存:256M以上客戶機(jī)CPU:P200MMX以上,內(nèi)存:32M以上2、安裝和配置JDK(1)JDK的安裝=1\*GB3①可先到/j2se/downloads.html下載j2sdk-1_4_1-win.exe。=2\*GB3②自動(dòng)解壓后出現(xiàn)出現(xiàn)確認(rèn)安裝界面,在此界面中單擊【NEXT】按鈕。=3\*GB3③出現(xiàn)版權(quán)協(xié)議說(shuō)明界面,單擊【YES】按鈕,接受版權(quán)協(xié)議后,選擇安裝路徑,如C:\j2sdk1.4.2_05,然后單擊【OK】按扭。=4\*GB3④出現(xiàn)安裝組件的界面,直接單擊【NEXT】按鈕繼續(xù)安裝。=5\*GB3⑤選擇一種瀏覽器,能在此瀏覽器中運(yùn)行Applet,然后單擊【NEXT】。=6\*GB3⑥對(duì)JDK進(jìn)行按裝,安裝完畢,單擊【Finish】結(jié)束安裝。(2)JDK的配置安裝好JDK后,還需要在環(huán)境變量中進(jìn)行相應(yīng)的配置。如下:=1\*GB3①在桌面上單擊“我的電腦”屬性,依次選擇【屬性】/【高級(jí)】/【環(huán)境變量】選項(xiàng)。=2\*GB3②新建一個(gè)環(huán)境變量,名為JAVA_HOME,值為C:\j2sdk1.4.2_05,如圖4所示:圖4JDK配置=3\*GB3③單擊【確定】按鈕。=4\*GB3④用同樣的方法設(shè)置其他環(huán)境變量:“Path=C:\j2sdk1.4.2_05\bin”。3、安裝和配置TomcatTomcat服務(wù)器是當(dāng)今使用廣泛的Servlet/JSP服務(wù)器,它運(yùn)行穩(wěn)定,性能可靠,本節(jié)介紹Tomcat的安裝、配置與使用,并做對(duì)應(yīng)的測(cè)試。(1)安裝Tomcat=1\*GB3①可以從/tomcat下載Tomcat5.0Servlet服務(wù)器,下載后單擊安裝。=2\*GB3②在彈出的窗口中單擊【NEXT】按鈕。=3\*GB3③出現(xiàn)授權(quán)界面,單擊【IAgree】按鈕。=4\*GB3④在彈出的界面中選擇安裝組件,可以選擇“full“,然后單擊【NEXT】按鈕。=5\*GB3⑤選擇安裝目錄然后單擊【NEXT】按鈕。=6\*GB3⑥配置Tomcat,默認(rèn)斷口8080,輸入一個(gè)密碼,本系統(tǒng)設(shè)置為“admin”。注意:必須記住這個(gè)密碼。然后單擊【NEXT】按鈕,如圖5所示:圖5Tomcat密碼設(shè)置=7\*GB3⑦選擇JDK的安裝位置,如C:\j2sdk1.4.2_05,然后單擊【NEXT】按鈕。=8\*GB3⑧單擊【Install】按鈕。=9\*GB3⑨安裝完成后單擊【Finish】按鈕。(2)Tomcat的配置安裝好Tomcat后,還需要在環(huán)境變量中進(jìn)行相應(yīng)的配置。如下:=1\*GB3①在桌面上單擊“我的電腦”屬性,依次選擇【屬性】/【高級(jí)】/【環(huán)境變量】選。=2\*GB3②新建一個(gè)環(huán)境變量,名為CATALINA_HOME,值為C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat5.0,如圖6所示:圖6Tomcat環(huán)境變量配置=3\*GB3③單擊【確定】按鈕。=4\*GB3④用同樣的方法設(shè)置其他環(huán)境變量:“CLASSPATH=.;”。4、測(cè)試是否安裝配置成功執(zhí)行C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat5.0\bin目錄下的startup.bat,如果出現(xiàn)如圖7所示,表示環(huán)境變量配置成功;圖7Tomcat啟動(dòng)成功這時(shí)候可以打開瀏覽器,在地址欄輸入http://localhost:8080,便可以見到一網(wǎng)頁(yè)樣式頁(yè)面。如不能啟動(dòng)Tomcat服務(wù)器或在瀏覽器不能獲得相應(yīng)的結(jié)果,請(qǐng)檢查JDK的設(shè)置是否正確,請(qǐng)參看本節(jié)的內(nèi)容。5、安裝和設(shè)置SQLServer2000該系統(tǒng)數(shù)據(jù)庫(kù)采用的是MicrosoftSQLServer2000。運(yùn)用MicrosoftSQLServer2000安裝光盤,選擇“安裝簡(jiǎn)體中文企業(yè)版”/“安裝組建”/“安裝數(shù)據(jù)庫(kù)服務(wù)器”,下一步后選擇安裝路徑,需注意的是在選擇服務(wù)帳戶的時(shí)候選擇”使用本地系統(tǒng)帳戶”如圖8;身份驗(yàn)證模式選擇混合模式,并設(shè)置密碼如圖9。本系統(tǒng)的密碼為”sa”,以便成功連接數(shù)據(jù)庫(kù)。圖8安裝設(shè)置SQLServer2000使用“本地帳戶”圖9為SQLServer2000設(shè)置密碼(二)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)2、設(shè)計(jì)數(shù)據(jù)庫(kù)表本系統(tǒng)需設(shè)計(jì)的數(shù)據(jù)庫(kù)中包含3個(gè)表,具體如下:=1\*GB3①點(diǎn)擊【刷新服務(wù)器】后【開始繼續(xù)】使之成功運(yùn)行。=2\*GB3②單擊運(yùn)行【開始】/【程序】/【MicrosoftSQLServer】/【企業(yè)管理器】打開SQLServer控制根目錄。=3\*GB3③打開本機(jī)服務(wù)器中的“數(shù)據(jù)庫(kù)”,右鍵數(shù)據(jù)庫(kù)并點(diǎn)擊“新建數(shù)據(jù)庫(kù)”,建一個(gè)名為“yfl”的數(shù)據(jù)庫(kù)。=4\*GB3④設(shè)計(jì)數(shù)據(jù)庫(kù)表,右鍵數(shù)據(jù)庫(kù)并點(diǎn)擊“新建表”,本系統(tǒng)需設(shè)計(jì)的數(shù)據(jù)庫(kù)中包含3個(gè)表,具體如表一:表一數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)表名說(shuō)明所屬系統(tǒng)Admins用來(lái)存放用戶名和密碼及權(quán)限管理登陸Items用來(lái)存放投票結(jié)果用戶投票系統(tǒng)Questions用來(lái)存放管理投票后臺(tái)管理系統(tǒng)Admin用戶信息基本表Admin表存放的是后臺(tái)管理員的用戶名和密碼,并且密碼存放的是已經(jīng)經(jīng)過(guò)MD5型加密算法進(jìn)行加密,詳細(xì)設(shè)計(jì)如圖10所示:圖10Admin用戶信息基本表AdminName用戶名AdminPwd用戶密碼T用戶權(quán)限e_mail電子郵箱phone聯(lián)系電話birthd出生日期www個(gè)人主頁(yè)Items主題內(nèi)容基本表Items表是用來(lái)存放所發(fā)話題的內(nèi)容以及投票記數(shù)結(jié)果,詳細(xì)設(shè)計(jì)如圖11所示:圖11Items主題內(nèi)容基本表ItemID索引投票選項(xiàng)QuestionID關(guān)聯(lián)投票主題Item存儲(chǔ)投票選項(xiàng)內(nèi)容ItemCount投票記數(shù)Questions主題管理基本表Questions表是用來(lái)存放用戶所發(fā)表話題的主題與發(fā)表時(shí)間,詳細(xì)設(shè)計(jì)如表四所示:圖12Questions主題管理基本表QuestionID索引投票主題Questions存儲(chǔ)投票主題內(nèi)容Isvisable標(biāo)識(shí)投票是否在前臺(tái)顯示Date記錄投票發(fā)布時(shí)間IsOpen用戶公開Admname用戶名3、數(shù)據(jù)庫(kù)的連接本系統(tǒng)采用了以下方法與數(shù)據(jù)庫(kù)連接:建立一個(gè)能進(jìn)入數(shù)據(jù)庫(kù)的文件opendata.jsp,具體如下:<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=yfl";//連接到sql中名為“yfl”的數(shù)據(jù)庫(kù)Connectioncon=DriverManager.getConnection(url,"sa","sa");//對(duì)sql輸入用戶名和密碼“sa”,“sa”,以便成功連接“yfl”數(shù)據(jù)庫(kù)Statementsmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSetrs;Stringsql;%>因?yàn)樵诤芏嗄K中都有連接數(shù)據(jù)庫(kù)的操作,所以將其保存在該文件中。其它文件中引用此文件作為文件頭就可以訪問(wèn)數(shù)據(jù)庫(kù),代碼如下:<%@includefile="opendata.jsp"%>(三)系統(tǒng)模塊設(shè)計(jì)1、用戶注冊(cè)模塊在本部分中,用戶進(jìn)入系統(tǒng)主頁(yè)面(login.jsp)后,若希望在系統(tǒng)中發(fā)表話題進(jìn)行調(diào)查,則須注冊(cè)成為用戶。用戶在注冊(cè)頁(yè)面(zhuce.jsp如圖)所示需正確填寫注冊(cè)用戶名、密碼、E_mail,其他項(xiàng)目可以根據(jù)自己情況確定是否填寫。用戶填寫完注冊(cè)項(xiàng)目,提交注冊(cè)后系統(tǒng)由(adduser2.jsp)判斷用戶名稱和E_mail格式是否正確、兩次輸入的密碼要一致,若判斷出有誤則不能通過(guò)注冊(cè),并返回頁(yè)面(adduser2.jsp),同時(shí)指出出錯(cuò)位置;若通過(guò)注冊(cè)則返回歡迎信息(cgzc.jsp),同時(shí)系統(tǒng)自動(dòng)把注冊(cè)信息寫入數(shù)據(jù)庫(kù)。重新重新注冊(cè)用戶名不正確密碼為空e_mail不正確兩次密碼不一致登陸頁(yè)面注冊(cè)(zhuce.jsp)判斷注冊(cè)adduser2.jsp注冊(cè)成功圖13用戶注冊(cè)流程
圖14主頁(yè)面用戶注冊(cè)圖15填寫注冊(cè)信息出錯(cuò)的顯示頁(yè)面圖16注冊(cè)成功的顯示頁(yè)面該模塊對(duì)數(shù)據(jù)庫(kù)的主要操作是寫入注冊(cè)資料,實(shí)現(xiàn)方式如下:sql="insertintoadmins(Admname,Admpwd,T,e_mail,sex,phone,birthd,www)values('"+name+"','"+password+"','"+0+"','"+e_mail+"','"+sex+"','"+phone+"','"+birthd+"','"+www+"')";2、用戶信息查詢模塊此模塊是方便管理員查看系統(tǒng)用戶信息,主要顯示如圖,在此頁(yè)面管理員可選擇對(duì)用戶相應(yīng)的操作,如用戶權(quán)限設(shè)置、刪除用戶,并可以點(diǎn)擊對(duì)應(yīng)的用戶名稱查看其詳細(xì)信息,包括該用戶的主頁(yè)及其在該系統(tǒng)中所發(fā)表的話題。圖17用戶信息查詢模塊首頁(yè)圖18用戶詳細(xì)信息查詢結(jié)果設(shè)置權(quán)限的實(shí)現(xiàn)方式是對(duì)數(shù)據(jù)庫(kù)中表Admin中字段T的操作,“1”代表管理員,“0”代表一般用戶,其實(shí)現(xiàn)方式見附錄10(qxsz.jsp文件)。用戶信息查詢是對(duì)指定用戶對(duì)應(yīng)數(shù)據(jù)庫(kù)信息通過(guò)WEB頁(yè)面顯示出來(lái),其實(shí)現(xiàn)方式見附錄7(chakan.jsp文件)。3、用戶信息修改模塊該模塊是用戶在登陸后進(jìn)行個(gè)人基本信息修改的操作模塊,它的設(shè)計(jì)原理與用戶注冊(cè)模塊相似,不同的是對(duì)數(shù)據(jù)庫(kù)的操作,用戶注冊(cè)模塊是寫入數(shù)據(jù),而用戶修改模塊是修改數(shù)據(jù)庫(kù)。圖19用戶信息修改頁(yè)面圖20用戶信息修改成功顯示頁(yè)面該系統(tǒng)的實(shí)現(xiàn)方式:sql="updateadminssetAdmpwd='"+password+"',e_mail='"+e_mail+"',T='"+T+"',sex='"+sex+"',phone='"+phone+"',birthd='"+birthd+"',www='"+www+"'whereadmname='"+name+"'";smt.executeUpdate(sql);4、用戶注冊(cè)刪除模塊該模塊是在進(jìn)入數(shù)據(jù)庫(kù)通過(guò)以下一段程序直接對(duì)數(shù)據(jù)庫(kù)操作進(jìn)行刪除。<%Stringdeluser=request.getParameter("user");sql="deletefromAdminswhereAdmname='"+deluser+"'";smt.executeUpdate(sql);response.sendRedirect("member.jsp");%>五、在線投票系統(tǒng)使用說(shuō)明1、將所有文件放到同一目錄文件中,如:”yfl”,再把文件夾”yfl”放到C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat5.0\webapps目錄下。2、啟動(dòng)Tomcat和SQL服務(wù)管理器。3、套入數(shù)據(jù)庫(kù)(yfl\DataBase\questionnaire.sql),庫(kù)名“yfl”。4、權(quán)限及其他說(shuō)明打開IE瀏覽器,在地址欄中輸入http://localhost:8080/yfl/login.jsp,即可進(jìn)入投票系統(tǒng)主界面,如圖21所示:此頁(yè)面分別連接到了3個(gè)不同權(quán)限的用戶模塊。你可以到投票模塊進(jìn)行投票及查看投票結(jié)果,也可以登陸到該系統(tǒng)的一般用戶模塊進(jìn)行發(fā)表、修改和維護(hù)話題,若你還不是該系統(tǒng)的用戶可以到用戶注冊(cè)模塊注冊(cè)成為會(huì)員。同時(shí),此頁(yè)面也是該系統(tǒng)管理員進(jìn)入系統(tǒng)后臺(tái)維護(hù)的直接通道。系統(tǒng)默認(rèn)系統(tǒng)管理員(該系統(tǒng)的主要維護(hù)操作人員)帳號(hào):admin密碼:admin進(jìn)入后馬上更改否則后果不堪設(shè)想?。∠鄬?duì)路徑:yfl/login.asp絕對(duì)路徑(IE瀏覽器):http://localhost:8080/yfl/login.jsp圖21用戶登陸頁(yè)面圖六、各個(gè)系統(tǒng)文件簡(jiǎn)單介紹\DataBase\questionnaire.sqlSQLServer數(shù)據(jù)庫(kù)生成腳本\guest\shpowquestion.jsp顯示投票\guest\thanks.jsp投票結(jié)果確認(rèn)\guest\convert.jsp處理中文字符串及換行的自定義函數(shù)文件\guest\showresult2.jsp用戶查看投票結(jié)果\guest\opendata.jsp打開數(shù)據(jù)庫(kù)\admin\showresult.jsp用戶查看投票結(jié)果(受管理員限制)\admin\convert.jsp處理中文字符串及換行的自定義函數(shù)文件\admin\check.jsp檢查用戶是否已經(jīng)登陸,嵌入各管理功能頁(yè)面中\(zhòng)admin\opendata.jsp打開數(shù)據(jù)庫(kù)\admin\convert.jsp處理中文字符串及換行的自定義函數(shù)文件\admin\login.jsp管理員登陸\admin\chkadmin.jsp驗(yàn)證密碼\admin\mainform.jsp管理主界面\admin\result.jsp管理員查看投票結(jié)果\admin\adpoll.jsp添加問(wèn)題\admin\savedata.jsp儲(chǔ)存數(shù)據(jù)\admin\delete.jsp刪除投票\admin\edit1.jsp方式B編輯投票\admin\modify.jsp方式B保存重新編輯結(jié)果\admin\resetcount.jsp將投票結(jié)果清零\admin\isvisable.jsp設(shè)置投票主題是否在前臺(tái)顯示\admin\zhuce.jsp用戶注冊(cè)界面\Admin\adduser2.jsp用戶注冊(cè)確認(rèn)\Admin\qxsz.jsp用戶權(quán)限設(shè)置\Admin\chankan.jsp用戶信息顯示\admin\member.jsp用戶管理界面\admin\adduser.jsp添加用戶\admin\deluser.jsp刪除用戶\admin\edituser.jsp修改用戶信息\admin\moduser.jsp用戶信息修改確認(rèn)\admin\edit.jsp方式B編輯投票\admin\editquestion.jsp方式B編輯標(biāo)題\admin\modquestion.jsp方式B保存編輯標(biāo)題結(jié)果\admin\edititem.jsp方式B編輯選項(xiàng)\admin\moditem.jsp方式B保存編輯選項(xiàng)結(jié)果\admin\additem.jsp方式B保存增加選項(xiàng)結(jié)果\admin\delitem.jsp方式B刪除選項(xiàng)結(jié)束語(yǔ)本文所介紹的是一種在線投票系統(tǒng)——管理子系統(tǒng),該系統(tǒng)采用了JSP進(jìn)行Web數(shù)據(jù)庫(kù)的編程和開發(fā)。對(duì)于該系統(tǒng)中的后臺(tái)數(shù)據(jù)庫(kù)的管理開發(fā)選用了SQLServer2000。本文著重介紹了對(duì)動(dòng)態(tài)數(shù)據(jù)庫(kù)實(shí)行結(jié)果管理、更新和查詢的方法。經(jīng)過(guò)一段時(shí)間的設(shè)計(jì)和開發(fā),本系統(tǒng)的基本功能已經(jīng)得以實(shí)現(xiàn)。但要投入實(shí)用,尚有諸多不完善之處。比如在網(wǎng)絡(luò)安全方面未做過(guò)多的考慮。另外對(duì)在線投票情況中存在的某些問(wèn)題可能考慮不周。在這個(gè)Internet已經(jīng)普及的時(shí)代,本系統(tǒng)的實(shí)現(xiàn)有著重要的意義。在未來(lái)的工作中,我將不斷完善本系統(tǒng)的功能,使其在實(shí)際生活中所起的作用得以真正體現(xiàn)。致謝本論文在導(dǎo)師黃進(jìn)老師的嚴(yán)格要求和精心指導(dǎo)下完成的,它凝聚著幾個(gè)月來(lái)黃老師對(duì)我的悉心培養(yǎng)和教導(dǎo)所付出的大量心血;尤其是黃老師在設(shè)計(jì)方案與設(shè)計(jì)思想上的指導(dǎo)會(huì)對(duì)我在今后的學(xué)習(xí)中起到重要的作用。在此,向黃老師表示忠心的感謝!另外,當(dāng)我在遇到困難的時(shí)候,同班上的同學(xué)積極討論給了我很大的支持和幫助,使我才能如期的完成論文,在此感謝你們!由于本人掌握的水平有限,在論文中或許尚有很多不足之處,期待您的指正,同時(shí)本人也會(huì)不斷的修改,使其更加完善。附錄1、SQLServer數(shù)據(jù)庫(kù)生成腳本文件questionnaire.sql,該文件是為方便建立數(shù)據(jù)庫(kù)之用/*==============================================================*//*Databasename:PhysicalDataModel_1*//*DBMSname:MicrosoftSQLServer2000*//*Createdon:2003-4-168:59:11*//*==============================================================*/altertabledbo.ItemsdropconstraintFK_ITEMS_QUESTIONI_QUESTIONgoifexists(select1fromsysobjectswhereid=object_id('dbo.Admins')andtype='U')droptabledbo.Adminsgoifexists(select1fromsysobjectswhereid=object_id('dbo.Items')andtype='U')droptabledbo.Itemsgoifexists(select1fromsysobjectswhereid=object_id('dbo.Questions')andtype='U')droptabledbo.Questionsgo/*==============================================================*//*Table:Admins*//*==============================================================*/createtabledbo.Admins(Admnamevarchar(50)notnull,Admpwdvarchar(50)notnull,Tintnotnull,e_mailvarchar(50)null,sexvarchar(50)null,phonevarchar(50)null,birthdvarchar(50)null,wwwvarchar(50)null,constraintPK_ADMINprimarykeyclustered(Admname))go/*==============================================================*//*Table:Items*//*==============================================================*/createtabledbo.Items(ItemIDintidentity,QuestionIDintnotnull,Itemvarchar(500)notnull,ItemCountbigintnotnulldefault0,constraintPK_ITEMSprimarykeyclustered(ItemID))go/*==============================================================*//*Table:Questions*//*==============================================================*/createtabledbo.Questions(QuestionIDintidentity,Questionvarchar(500)notnull,IsVisableintnotnulldefault0,Datevarchar(50)null,IsOpenintnulldefault1,Admnamevarchar(50)null,constraintPK_QUESTIONSprimarykeyclustered(QuestionID))goaltertabledbo.ItemsaddconstraintFK_ITEMS_QUESTIONI_QUESTIONforeignkey(QuestionID)referencesdbo.Questions(QuestionID)goinsertintoAdminsvalues('admin','admin','1','6409476@163.com','boy',,'1984/5/1','http://localhost:8080/toupiao/login.jsp')go2、打開數(shù)據(jù)庫(kù)文件opendata.jsp,該文件嵌入各管理功能頁(yè)面中。<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=yfl";Connectioncon=DriverManager.getConnection(url,"sa","sa");Statementsmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSetrs;Stringsql;%>3、驗(yàn)證密碼文件chkadmin.jsp,該文件嵌入各管理功能頁(yè)面中。<%@pageimport="java.sql.*"%><%@pagecontentType="text/html;charset=GB2312"%><%@includefile="opendata.jsp"%><%@pageimport="java.sql.*"%><%@pageimport="java.util.*"%><%Stringname=request.getParameter("name");Stringpassword=request.getParameter("password");intt;sql="select*fromadminswhereadmname='"+name+"'andadmpwd='"+password+"'";rs=smt.executeQuery(sql);if(rs.next()){t=rs.getInt(3);if(t==0){request.getSession(true);Stringchk="true";session.putValue("Enter",chk);response.sendRedirect("mainform.jsp?user="+name+"");}elseif(t==1){request.getSession(true);Stringchk="true";session.putValue("Enter",chk);response.sendRedirect("member.jsp?user="+name+"");}}else{Stringerrmsg="error1";response.sendRedirect("../login.jsp?errmsg="+errmsg);}%>4、檢查管理員是否已經(jīng)登陸文件check.jsp,該文件嵌入各管理功能頁(yè)面中。<%if((String)session.getValue("Enter")!="true"){Stringerrmsg="error2";response.sendRedirect("../login.jsp?errmsg="+errmsg);}%>5、處理中文字符串及換行的自定義函數(shù)文件convert.jsp<%!Stringconvert(Stringstr){bytenewstr[]=newbyte[str.length()];for(inti=0;i<str.length();i++)newstr[i]=(byte)str.charAt(i);returnnewString(newstr);}StringReplace(Stringstr){intindex=0;while((index=str.indexOf("\n"))!=-1)str=str.substring(0,index)+"<br>"+str.substring(index+1);return(str);}%>6、注冊(cè)信息存儲(chǔ)文件adduser2.jsp<%Stringname=request.getParameter("name");Stringsex=request.getParameter("sex");Stringe_mail=request.getParameter("e_mail");Stringpassword=request.getParameter("password");Stringconfirm=request.getParameter("confirm");Stringbirthd=request.getParameter("birthd");Stringphone=request.getParameter("phone");Stringwww=request.getParameter("www");sql="select*fromAdminswhereAdmname='"+name+"'";rs=smt.executeQuery(sql);out.print("<center>");Stringid=null;while(rs.next())id=rs.getString(1);{sql="insertintoadmins(Admname,Admpwd,T,e_mail,sex,phone,birthd,www)values('"+name+"','"+password+"','"+0+"','"+e_mail+"','"+sex+"','"+phone+"','"+birthd+"','"+www+"')";smt.executeUpdate(sql);out.print("<fontcolor=greensize=5>注冊(cè)成功</font><hr>");out.print("<palign=center>用戶名稱:"+name+"</p>");out.print("<palign=center>用戶密碼:"+password+"</p>");out.print("<palign=center>E_mail:"+e_mail+"</p>");out.print("<palign=center>歡迎你的使用!請(qǐng)牢記你的用戶名稱和密碼!!</p>");out.print("<hr><fontcolor=redsize=5><ahref=../login.jsp>返回登陸</font>");}%>7、用戶信息查詢文件chakan.jsp<%Stringadminname=request.getParameter("user2");sql="select*fromadminswhereAdmname='"+adminname+"'";rs=smt.executeQuery(sql);Stringadmine_mail="";StringadminAdmpwd="";Stringadminsex="";StringadminT="";Stringadminphone="";Stringadminbirthd="";Stringadminwww="";while(rs.next()){adminAdmpwd=rs.getString("Admpwd");adminphone=rs.getString("phone");adminsex=rs.getString("sex");adminT=rs.getString("T");adminbirthd=rs.getString("birthd");adminwww=rs.getString("www");admine_mail=rs.getString("e_mail");out.print("<fontalign=centercolor=greensize=5>"+adminname+"的基本資料</font><hr>");out.print("<palign=center>用戶名:"+adminname+"</p>");out.print("<palign=center>用戶密碼:"+adminAdmpwd+"</p>");out.print("<palign=center>性別:"+adminsex+"</p>");if(adminT.equals("1"))out.print("<palign=center>用戶權(quán)限:管理員</p>");elseout.print("<palign=center>用戶權(quán)限:普通用戶</p>");out.print("<palign=center>E_mail:"+admine_mail+"</p>");out.print("<palign=center>出生日期:"+adminbirthd+"</p>");out.print("<palign=center>聯(lián)系電話:"+adminphone+"</p>");out.print("<palign=center>個(gè)人主頁(yè):"+adminwww+"</p>");}%><%sql="select*fromQuestionswhereAdmname='"+adminname+"'";rs=smt.executeQuery(sql);StringQuestion="";if(rs.next()){Question=rs.getString(2);out.print("<pal
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024學(xué)校鍋爐工環(huán)境保護(hù)與節(jié)能減排合同范本3篇
- 自動(dòng)打鈴器課程設(shè)計(jì)數(shù)電
- 漢川市汽車營(yíng)銷課程設(shè)計(jì)
- 自動(dòng)飛行系統(tǒng)課程設(shè)計(jì)
- 2024年裝表接電工(初級(jí)工)技能鑒定理論考試復(fù)習(xí)題庫(kù)(含答案)
- 2024年美術(shù)教案課件
- 童話課程設(shè)計(jì)封面
- 立式車床主軸箱課程設(shè)計(jì)
- 小班兔子繪本課程設(shè)計(jì)
- 金融投資行業(yè)顧問(wèn)工作總結(jié)
- GA 1802.2-2022生物安全領(lǐng)域反恐怖防范要求第2部分:病原微生物菌(毒)種保藏中心
- 企業(yè)EHS風(fēng)險(xiǎn)管理基礎(chǔ)智慧樹知到答案章節(jié)測(cè)試2023年華東理工大學(xué)
- 健身俱樂(lè)部入場(chǎng)須知
- 井下機(jī)電安裝安全教育培訓(xùn)試題及答案
- TZJXDC 002-2022 電動(dòng)摩托車和電動(dòng)輕便摩托車用閥控式鉛酸蓄電池
- GB/T 4744-2013紡織品防水性能的檢測(cè)和評(píng)價(jià)靜水壓法
- GB/T 337.1-2002工業(yè)硝酸濃硝酸
- 《解放戰(zhàn)爭(zhēng)》(共48張PPT)
- 放射工作人員法律法規(guī)及防護(hù)知識(shí)培訓(xùn)考核試題附答案
- 勞動(dòng)仲裁追加申請(qǐng)申請(qǐng)書(標(biāo)準(zhǔn)版)
- 西方法律思想史 課件
評(píng)論
0/150
提交評(píng)論