2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  在線投票系統(tǒng)</b></p><p><b>  摘要:</b></p><p>  如今,越來越多的網(wǎng)站開始重視網(wǎng)頁(yè)的互動(dòng)性。而在線投票就是一個(gè)非常重要的互動(dòng)形式。本文以JSP、SQL Server2000為編程工具開發(fā)了一種通用網(wǎng)上投票系統(tǒng),并介紹了系統(tǒng)的調(diào)試、運(yùn)行環(huán)境、系統(tǒng)功能、系統(tǒng)設(shè)計(jì)以及系統(tǒng)實(shí)現(xiàn)。</

2、p><p>  關(guān)鍵詞:在線投票;JSP;SQL Server2000</p><p><b>  Abstract:</b></p><p>  Nowadays, more and more sites starting to focus on interactive web pages. The online voting is a very

3、 important forms of interaction. In this paper, JSP, SQL Server2000 as program development of a common online voting system, and introduced the system of commissioning, operating environment, system function, system desi

4、gn and implementation.</p><p>  Keywords: online voting; JSP; SQL Server2000</p><p><b>  目 錄</b></p><p><b>  第一章 概述3</b></p><p>  第二章 相關(guān)知識(shí)介紹

5、4</p><p>  2.1 Java簡(jiǎn)介4</p><p>  2.1.1 什么是Java4</p><p>  2.1.2 Java主要特性4</p><p>  2.2 JSP簡(jiǎn)介6</p><p>  2.2.1 什么是JSP6</p><p>  2.2.2 JSP的運(yùn)行原

6、理及優(yōu)點(diǎn)7</p><p>  2.2.3 JSP運(yùn)行環(huán)境介紹8</p><p>  2.3 SQL Server2000簡(jiǎn)介9</p><p>  2.3.1 SQL Server概述9</p><p>  2.3.2 SQL Server2000特性9</p><p>  2.4 JSP與SQL Serv

7、er2000數(shù)據(jù)庫(kù)的連接10</p><p>  第三章 系統(tǒng)分析12</p><p>  3.1 需求分析12</p><p>  第四章 系統(tǒng)設(shè)計(jì)13</p><p>  4.1 總體設(shè)計(jì)13</p><p>  4.2 模塊設(shè)計(jì)15</p><p>  4.2.1 客戶投票模塊

8、15</p><p>  4.2.2 管理員模塊16</p><p>  4.2.3 數(shù)據(jù)處理模塊18</p><p>  4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)18</p><p>  第五章 系統(tǒng)開發(fā)21</p><p>  5.1 客戶投票模塊21</p><p>  5.2 管理員模塊27&l

9、t;/p><p>  5.3 數(shù)據(jù)處理模塊36</p><p>  第六章 系統(tǒng)實(shí)現(xiàn)39</p><p>  6.1 系統(tǒng)運(yùn)行環(huán)境39</p><p>  6.2 系統(tǒng)測(cè)試39</p><p><b>  【參考文獻(xiàn)】40</b></p><p><b> 

10、 第一章 概述</b></p><p>  如今,許許多多的網(wǎng)站設(shè)計(jì)者們開始意識(shí)到,網(wǎng)站的主要作用,除了給廣大網(wǎng)友們提供單項(xiàng)的信息資訊服務(wù)外,還應(yīng)該成為網(wǎng)友們互相交流的場(chǎng)所。于是,他們把越來越多的注意力,集中到網(wǎng)站互動(dòng)性的設(shè)計(jì)規(guī)劃上?;?dòng)的形式,除了我們經(jīng)常見到的留言板、討論組和聊天室之外,還有一項(xiàng)非常重要的、正在被日益廣泛地采用的互動(dòng)形式一一在線投票。在線投票和留言板、聊天室相比,其優(yōu)點(diǎn)在于簡(jiǎn)潔、規(guī)

11、范、直觀。它不僅能夠給網(wǎng)友們提供互相交流看法、興趣的場(chǎng)所,還可以方便網(wǎng)站設(shè)計(jì)者們作廣泛的社會(huì)調(diào)查,進(jìn)行社會(huì)研究或是制定商業(yè)策略。</p><p>  我的投票系統(tǒng)具有極大的靈活性,管理員可以在線設(shè)計(jì)不同的投票主題供用戶進(jìn)行投票。對(duì)于該設(shè)計(jì)報(bào)告還有什么不當(dāng)之處請(qǐng)見諒,同時(shí)也希望您能多提寶貴意見。我會(huì)認(rèn)真參考您的意見,修改和完善該系統(tǒng)。</p><p>  第二章 相關(guān)知識(shí)介紹</p&g

12、t;<p>  該在線投票系統(tǒng)主要采用Java、JSP、SQL Server2000進(jìn)行設(shè)計(jì)與開發(fā),下面主要介紹與之相關(guān)的知識(shí)。</p><p>  2.1 Java簡(jiǎn)介</p><p>  2.1.1 什么是Java</p><p>  Java是由Sun公司開發(fā)的編程語(yǔ)言,使用它可在各式各樣不同種機(jī)器、不同種操作平臺(tái)的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。不論用戶使

13、用的是哪一種WWW測(cè)覽囂、哪一種計(jì)算機(jī)、哪一種操作系統(tǒng),只要www瀏覽器上面注明了”支持Java”,就可以看到生動(dòng)的頁(yè)面。Java正在逐步成為Intemet應(yīng)用的扛要開發(fā)語(yǔ)言。它徹底改變了應(yīng)用軟件的開發(fā)模式,帶來了自個(gè)人計(jì)算機(jī)以來又一次技術(shù)革命,為迅速發(fā)展的信息世界增添了新的活力。</p><p>  2.1.2 Java主要特性</p><p>  1、Java語(yǔ)言是簡(jiǎn)單的。Java語(yǔ)言

14、的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。</p><p>  2、Java語(yǔ)言是一個(gè)面向?qū)ο蟮?。Java語(yǔ)言提供類、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見,只支持類之間的單繼承,但

15、支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++ 語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。</p><p>  3、Java語(yǔ)言是分布式的。Java語(yǔ)言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java.net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括URL、U

16、RLConnection、Socket、 ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。</p><p>  4、Java語(yǔ)言是健壯的。Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。</p><p>  5、Java語(yǔ)言是安全的。

17、Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。 </p><p>  6、Java語(yǔ)言是體系結(jié)構(gòu)中立的。Java程序(后綴為j

18、ava的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 </p><p>  7、Java語(yǔ)言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用AN

19、SI C實(shí)現(xiàn)的。</p><p>  8、Java語(yǔ)言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。</p><p>  9、Java是高性能的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的。事

20、實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。 </p><p>  10、Java語(yǔ)言是多線程的。在Java語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫ru

21、n方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來控制。 Java語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。</p><p>  11、Java語(yǔ)言是動(dòng)態(tài)的。Java語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序

22、需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級(jí)。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。</p><p>  Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一

23、個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫(kù)。</p><p><b>  2.2 JSP簡(jiǎn)介</b></p><p>  2.2.1 什么是JSP</p><p>  JSP (JavaServer Pa

24、ges)是由Sun Microsystems公司倡導(dǎo),許多公司參與建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記( tag),就構(gòu)成了JSP網(wǎng)頁(yè)(^jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送E-mail等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的

25、功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅僅是結(jié)果,對(duì)客戶瀏覽器的要求最低。</p><p>  在Java的基礎(chǔ)上開發(fā)出的JSP實(shí)現(xiàn)了動(dòng)態(tài)貞面與靜態(tài)頁(yè)而的分離,脫離了硬件平臺(tái)的束縛以及編譯后運(yùn)行等方式,大大提高了其執(zhí)行效率f酊逐漸成為Internet上的主流開發(fā)工具。在美國(guó),EJB+Servlet+JSP幾乎成了電子商務(wù)的開發(fā)標(biāo)準(zhǔn).而在我國(guó)也正逐漸興起,不少網(wǎng)站部采用了JSP技術(shù)。</p&

26、gt;<p>  2.2.2 JSP的運(yùn)行原理及優(yōu)點(diǎn)</p><p>  在一個(gè)JSP文件第一次被請(qǐng)求時(shí),JSP引擎把該JSP文件轉(zhuǎn)換成為一個(gè)Servlet。而這個(gè)引擎本身也是一個(gè)Servlet。JSP的運(yùn)行過程如下所示:</p><p> ?。?)JSP引擎先把該JSP文件轉(zhuǎn)換成一個(gè)Java源文件(Servlet),在轉(zhuǎn)換時(shí)如果發(fā)現(xiàn)JSP文件有任何語(yǔ)法錯(cuò)誤,轉(zhuǎn)換過程將中斷,

27、并向服務(wù)端和客戶端輸出出錯(cuò)信息。</p><p> ?。?)如果轉(zhuǎn)換成功,JSP引擎用javac把該Java源文件編譯成相應(yīng)的class文件。</p><p> ?。?)創(chuàng)建一個(gè)該Servlet(JSP頁(yè)面的轉(zhuǎn)換結(jié)果)的實(shí)例,該Servlet的jspInit()方法被執(zhí)行,jspInit()方法在Servlet的生命周期中只被執(zhí)行一次。</p><p> ?。?)j

28、spService()方法被調(diào)用來處理客戶端的請(qǐng)求。對(duì)每一個(gè)請(qǐng)求,JSP引擎創(chuàng)建一個(gè)新的線程來處理該請(qǐng)求。如果有多個(gè)客戶端同時(shí)請(qǐng)求該JSP文件,則JSP引擎會(huì)創(chuàng)建多個(gè)線程。每個(gè)客戶端請(qǐng)求對(duì)應(yīng)一個(gè)線程。以多線程方式執(zhí)行可以大大降低對(duì)系統(tǒng)的資源需求,提高系統(tǒng)的并發(fā)量及響應(yīng)時(shí)間。但不過也應(yīng)該注意多線程的編程限制,由于該Servlet始終駐于內(nèi)存,所以響應(yīng)是非??斓?。</p><p> ?。?)如果.jsp文件被修改了,

29、服務(wù)器將根據(jù)設(shè)置決定是否對(duì)該文件重新編譯,如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中的Servlet,并繼續(xù)上述處理過程。</p><p>  (6)雖然JSP效率很高,但在第一次調(diào)用時(shí)由于需要轉(zhuǎn)換和編譯而有一些輕微的延 遲。此外,在任何時(shí)候如果由于系統(tǒng)資源不足的原因,JSP引擎將以某種不確定的方式將Servlet從內(nèi)存中移去。當(dāng)這種情況發(fā)生時(shí)jspDestroy()方法首先被調(diào)用。</p><

30、;p> ?。?)然后Servlet實(shí)例便被標(biāo)記加入“垃圾收集”處理??稍趈spInit()中進(jìn)行一些初始化工作,如建立與數(shù)據(jù)庫(kù)的連接,或建立網(wǎng)絡(luò)連接,從配置文件中取一些參數(shù)等,在jspDestory()中釋放相應(yīng)的資源。</p><p>  基于Java語(yǔ)言的JSP技術(shù)具有很多其他動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)所沒有的特點(diǎn),具體表現(xiàn)在如下方面:</p><p>  1.簡(jiǎn)便性和有效性 </p&g

31、t;<p>  JSP動(dòng)態(tài)網(wǎng)頁(yè)的編寫與一般的靜態(tài)HTML的網(wǎng)頁(yè)編寫是十分相似的。只是在原來的HTML網(wǎng)頁(yè)中加入一些JSP專有的標(biāo)簽,或是一些腳本程序(此項(xiàng)不是必需的)。這樣,一個(gè)熟悉HTML網(wǎng)頁(yè)編寫的設(shè)計(jì)人員可以很容易進(jìn)行JSP網(wǎng)頁(yè)的開發(fā)。而且開發(fā)人員完全可以不自己編寫腳本程序,而只是通過JSP獨(dú)有的標(biāo)簽使用別人已寫好的部件來實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的編寫。這樣,一個(gè)不熟悉腳本語(yǔ)言的網(wǎng)頁(yè)開發(fā)者,完全可以利用JSP做出漂亮的動(dòng)態(tài)網(wǎng)頁(yè)。而

32、這在其他的動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)中是不可實(shí)現(xiàn)的。</p><p><b>  2.程序的獨(dú)立性</b></p><p>  JSP是Java API家族的一部分,它擁有一般的Java程序的跨平臺(tái)的特性。換句話說,就是擁有程序的對(duì)平臺(tái)的獨(dú)立性,即Write once,Run anywhere!。</p><p><b>  3.程序的兼容性 &l

33、t;/b></p><p>  JSP中的動(dòng)態(tài)內(nèi)容可以各種形式進(jìn)行顯示,所以它可以為各種客戶提供服務(wù),即從使用HTML/DHTML的瀏覽器,到使用WML的各種手提無(wú)線設(shè)備(例如,移動(dòng)電話和個(gè)人數(shù)字設(shè)備PDA),再到使用XML的B2B應(yīng)用,都可以使用JSP的動(dòng)態(tài)頁(yè)面。</p><p>  4.程序的可重用性 </p><p>  在JSP頁(yè)面中可以不直接將腳本程

34、序嵌入,而只是將動(dòng)態(tài)的交互部分作為一個(gè)部件加以引用。這樣,一旦這樣的一個(gè)部件寫好,它可以為多個(gè)程序重復(fù)引用,實(shí)現(xiàn)了程序的可重用性。現(xiàn)在,大量的標(biāo)準(zhǔn)JavaBeans程序庫(kù)就是一個(gè)很好的例證。</p><p>  2.2.3 JSP運(yùn)行環(huán)境介紹</p><p>  從最開始的JSWDK到現(xiàn)在的Tomcat、WebLogic等,JSP的運(yùn)行環(huán)境也有了很大的變化,出現(xiàn)了很多優(yōu)秀的JSP容器,如T

35、omcat、WebLogic、IBM WebSphere等。本文介紹Tomcat 6.0。</p><p>  Tomcat是Apache Jakarta軟件組織的一個(gè)子項(xiàng)目,它是一個(gè)JSP/Servlet的容器,是在Sun公司的JSWDK(Java Server Web Development Kit)基礎(chǔ)上發(fā)展起來的一個(gè)JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實(shí)現(xiàn)。使用Tomcat可以體驗(yàn)JSP和Servlet的最新

36、規(guī)范。經(jīng)過多年的發(fā)展,使得Tomcat不僅是JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實(shí)現(xiàn),而且具備了很多商業(yè)Java Servlet容器的特性,使得它被一些企業(yè)用于商業(yè)用途。</p><p>  2.3 SQL Server2000簡(jiǎn)介</p><p>  2.3.1 SQL Server概述</p><p>  SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由M

37、icrosoft Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本;Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上

38、的應(yīng)用。</p><p>  SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本。該版本繼承了SQL Server 7.0 版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服

39、務(wù)器等多種平臺(tái)使用。</p><p>  2.3.2 SQL Server2000特性</p><p>  1.Internet 集成。SQL Server 2000 數(shù)據(jù)庫(kù)引擎提供完整的XML 支持。它還具有構(gòu)成最大的Web 站點(diǎn)的數(shù)據(jù)存儲(chǔ)組件所需的可伸縮性、可用性和安全功能。SQL Server 2000 程序設(shè)計(jì)模型與 Windows DNA 構(gòu)架集成,用以開發(fā) Web 應(yīng)用程序,并

40、且SQL Server 2000 支持 English Query 和 Microsoft 搜索服務(wù)等功能,在Web 應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能。</p><p>  2.可伸縮性和可用性。同一個(gè)數(shù)據(jù)庫(kù)引擎可以在不同的平臺(tái)上使用,從運(yùn)行 Microsoft Windows&reg; 98 的便攜式電腦,到運(yùn)行 Microsoft Windows 2000 數(shù)據(jù)中心版的大型多處理器服務(wù)器

41、。SQL Server 2000 企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型內(nèi)存支持等功能,使其得以升級(jí)到最大 Web 站點(diǎn)所需的性能級(jí)別。</p><p>  3.企業(yè)級(jí)數(shù)據(jù)庫(kù)功能。SQL Server 2000 關(guān)系數(shù)據(jù)庫(kù)引擎支持當(dāng)今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫(kù)引擎充分保護(hù)數(shù)據(jù)完整性,同時(shí)將管理上千個(gè)并發(fā)修改數(shù)據(jù)庫(kù)的用戶的開銷減到最小。SQL Server 2000 分布式查詢使您得以引用來自不同數(shù)據(jù)源的數(shù)

42、據(jù),就好象這些數(shù)據(jù)是 SQL Server 2000 數(shù)據(jù)庫(kù)的一部分,同時(shí)分布式事務(wù)支持充分保護(hù)任何分布式數(shù)據(jù)更新的完整性。復(fù)制同樣使您得以維護(hù)多個(gè)數(shù)據(jù)復(fù)本,同時(shí)確保單獨(dú)的數(shù)據(jù)復(fù)本保持同步。可將一組數(shù)據(jù)復(fù)制到多個(gè)移動(dòng)的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務(wù)器。</p><p>  4.易于安裝、部署和使用。 SQL Server 2000 中包括一系列管理和開發(fā)工具,這些工具可改進(jìn)在多

43、個(gè)站點(diǎn)上安裝、部署、管理和使用 SQL Server 的過程。SQL Server 2000 還支持基于標(biāo)準(zhǔn)的、與 Windows DNA 集成的程序設(shè)計(jì)模型,使 SQL Server 數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的使用成為生成強(qiáng)大的可伸縮系統(tǒng)的無(wú)縫部分。這些功能使您得以快速交付 SQL Server 應(yīng)用程序,使客戶只需最少的安裝和管理開銷即可實(shí)現(xiàn)這些應(yīng)用程序。</p><p>  5.數(shù)據(jù)倉(cāng)庫(kù)。 SQL Server 2

44、000 中包括析取和分析匯總數(shù)據(jù)以進(jìn)行聯(lián)機(jī)分析處理 (OLAP) 的工具。SQL Server 中還包括一些工具,可用來直觀地設(shè)計(jì)數(shù)據(jù)庫(kù)并通過 English Query 來分析數(shù)據(jù)。</p><p>  SQL Server 2000共有4個(gè)版本,分別是個(gè)人版,標(biāo)準(zhǔn)版,企業(yè)版和開發(fā)版,本系統(tǒng)采用個(gè)人版。</p><p>  2.4 JSP與SQL Server2000數(shù)據(jù)庫(kù)的連接<

45、/p><p>  testsqlserver.jsp如下:</p><p>  <%@ page contentType="text/html;charset=gb2312"%></p><p>  <%@ page import="java.sql.*"%></p><p><

46、;b>  <html></b></p><p><b>  <body></b></p><p>  <%Class.forName</p><p>  ("com.microsoft.jdbc.sqlserver.SQLServerDriver").</p>&

47、lt;p>  newInstance();</p><p><b>  String </b></p><p>  url="jdbc:microsoft:sqlserver://localhost:1433;Da</p><p>  tabaseName=pubs";</p><p>  //

48、pubs為你的數(shù)據(jù)庫(kù)的</p><p>  String user="sa";</p><p>  String password="";</p><p>  Connection conn= DriverManager.getConnection</p><p>  (url,user,passwor

49、d);</p><p>  Statement stmt=conn.createStatement</p><p>  (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);</p><p>  String sql="select * from test";</p>

50、<p>  ResultSet rs=stmt.executeQuery(sql);</p><p>  while(rs.next()) {%></p><p>  您的第一個(gè)字段內(nèi)容為:<%=rs.getString(1)%></p><p>  您的第二個(gè)字段內(nèi)容為:<%=rs.getString(2)%></

51、p><p><b>  <%}%></b></p><p>  <%out.print("數(shù)據(jù)庫(kù)操作成功,恭喜你/");%></p><p>  <%rs.close();</p><p>  stmt.close();</p><p>  conn.

52、close();</p><p><b>  %></b></p><p><b>  </body></b></p><p><b>  </html></b></p><p><b>  第三章 系統(tǒng)分析</b></

53、p><p><b>  3.1 需求分析</b></p><p>  需求分析是軟件工程中一個(gè)重要的過程,在很長(zhǎng)的一-段時(shí)間內(nèi),人們一直認(rèn)為需求分析是軟件開發(fā)過程中最簡(jiǎn)單的一部分,但需求分析的草率行事往往會(huì)使最終的軟件產(chǎn)品不符合用戶的要求,從而導(dǎo)致軟件產(chǎn)品開發(fā)的失敗。下面就介紹在線投票系統(tǒng)的需求分析。</p><p>  對(duì)于普通用戶,在線投票系統(tǒng)

54、在網(wǎng)頁(yè)中顯示需要調(diào)查的問題、接受用戶的投票,并以統(tǒng)計(jì)圖示的方式顯示當(dāng)前調(diào)查結(jié)果。如下圖:</p><p>  對(duì)于管理員用戶,在線投票系統(tǒng)提供管理接口,管理員可以任意增加、修改、刪除投票,如下圖:</p><p><b>  密碼錯(cuò)誤</b></p><p><b>  密碼正確</b></p><p&

55、gt;<b>  第四章 系統(tǒng)設(shè)計(jì)</b></p><p><b>  4.1 總體設(shè)計(jì)</b></p><p>  為了更好地表述在線投票系統(tǒng),這里將部分地使用UML的建模圖形。</p><p>  用例圖(Use Case Diagram)提供一個(gè)系統(tǒng)環(huán)境的建模辦式,它能夠幫助系統(tǒng)分析師確定系統(tǒng)內(nèi)部利外部元素以及系統(tǒng)范

56、圍。簡(jiǎn)單來說,列例圖由用例和參與者構(gòu)成,其中用例是外部可見的一個(gè)系統(tǒng)功能單元;參與者是與系統(tǒng)發(fā)生交互作用的外部用戶、進(jìn)程或其他系統(tǒng)的理想化概念。</p><p>  在線投票系統(tǒng)的用例圖下圖所示,可以識(shí)別出兩個(gè)參與者,即系統(tǒng)管理員( Admin)和系統(tǒng)使用者( user)。系統(tǒng)管理員除了可以參加投票外還能對(duì)整個(gè)系統(tǒng)實(shí)施完全的管理。系統(tǒng)使用者只能參與投票升查看投票結(jié)果。</p><p>&l

57、t;b>  在線投票用例圖</b></p><p>  順序圖( Sequence Diagram)描述對(duì)象之問動(dòng)態(tài)交互關(guān)系,著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。順序圖是一個(gè)二維圖,縱向是時(shí)問軸,時(shí)間延豎線向下延伸;橫向表示對(duì)象之間的消息傳遞。對(duì)象之間的消息從一個(gè)對(duì)象的生命線(時(shí)問軸上的雙道線>用箭頭指向另一個(gè)對(duì)象的生命線。</p><p>  用戶參與投票的流程順序

58、圖如下所示,用戶參與在線投票系統(tǒng)從進(jìn)入投票模塊開始,投票模塊以網(wǎng)頁(yè)的形式顯示所有開放的問題,用戶在選取符合他要求的投票項(xiàng)后單擊“提交”按鈕,他的投票數(shù)據(jù)將提交給數(shù)據(jù)模塊,由數(shù)據(jù)模塊保存到SQL Server 2000數(shù)據(jù)庫(kù)中,從而完成投票提交的過程。用戶還可以查看某問題的投票統(tǒng)計(jì)結(jié)果,用戶進(jìn)入顯示模塊,顯示模塊從數(shù)據(jù)模塊讀取開放問題的投票數(shù)據(jù),并以柱狀統(tǒng)計(jì)圖的形式顯示。</p><p>  用戶參與投票的流程順序

59、圖</p><p>  管理員增加新投票的過程從登錄管理模塊開始,管理員先把用戶名和密碼提交給登錄模塊,登求模塊根據(jù)用戶名到數(shù)據(jù)庫(kù)中搜索其對(duì)應(yīng)的密碼,然后對(duì)比用戶名是否存在以及管理員輸入的密碼是否幣確。如果用戶名和密碼正確,登錄模塊把用戶信息提交到管理模塊并提示用戶登錄成功,管理員在管理模塊提交新投票數(shù)據(jù),管理模塊把新投票數(shù)據(jù)提交到數(shù)據(jù)模塊并保存到數(shù)據(jù)庫(kù)中,管理模塊提示管理員操作成功,從而完成添加新投票的整個(gè)過程

60、。管理員添加新投票的流程順序圖如下:</p><p>  管理員添加新投票的流程圖</p><p><b>  4.2 模塊設(shè)計(jì)</b></p><p>  在線投票系統(tǒng)大致可以分為客戶投票模塊、管理員模塊以及數(shù)據(jù)處理模塊3部分。</p><p>  4.2.1 客戶投票模塊</p><p>  

61、用戶投票模塊包括showquestion.jsp、showresult.jsp、thanks.jsp、convert.jsp 4個(gè)程序頁(yè)面,具體的系統(tǒng)結(jié)構(gòu)如下圖。</p><p>  其中,showquestion.jsp是用戶投票的首頁(yè),用戶登錄在線投票系統(tǒng)后就自動(dòng)跳轉(zhuǎn)到該頁(yè)面,該頁(yè)面通過數(shù)據(jù)處理模塊讀取數(shù)據(jù)庫(kù)中所有開放的問題并顯示,用戶可以選取一項(xiàng)或多項(xiàng)回答項(xiàng)并提交。</p><p>

62、  thanks.jsp是數(shù)據(jù)接收頁(yè)。用戶在showquestion.jsp中選擇投票的回答項(xiàng)并提交,用戶所選擇的數(shù)據(jù)項(xiàng)被提交到thanks.jsp,該頁(yè)把這些數(shù)據(jù)項(xiàng)儲(chǔ)存到數(shù)據(jù)庫(kù)中,并提示用戶投票數(shù)據(jù)提交成功。</p><p>  showresult.jsp是數(shù)據(jù)的顯示頁(yè)。當(dāng)用廣在參加投票后可以查看該項(xiàng)投票的統(tǒng)計(jì)結(jié)果,該頁(yè)就用柱狀圖的顯示給出統(tǒng)計(jì)圖和所有選擇的百分比。</p><p> 

63、 convert.j sp足字符轉(zhuǎn)換頁(yè),主要用于解決中文字符無(wú)法正確顯示的問題。</p><p>  在這里用清晰易懂的順序圖來描述用戶投票的過裎中上述頁(yè)面間的互相協(xié)作以及消息交互。</p><p>  客戶投票模塊各頁(yè)面間的順序圖如圖所示。</p><p>  4.2.2 管理員模塊</p><p>  管理員模塊由用戶登錄頁(yè)面、新增投票頁(yè)

64、面、編輯投票頁(yè)面組成,具體的系統(tǒng)結(jié)構(gòu)圖如下圖所示。</p><p>  其中l(wèi)ogin,jsp是管理員的登錄頁(yè),管理員要對(duì)在線投票系統(tǒng)進(jìn)行管理必須先進(jìn)行登錄,通過用戶名和密碼的驗(yàn)證。</p><p>  Checkadmin.jsp是管理員登錄的驗(yàn)證頁(yè)。管理員在login,jsp填入用戶名和密碼后,這些數(shù)據(jù)將被提交到該頁(yè),然后與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比。如果驗(yàn)證通過將跳轉(zhuǎn)到管理主頁(yè)面。<

65、;/p><p>  Mainform.jsp是在線投票系統(tǒng)的管理主頁(yè)面,在管理員通過用戶名和密碼的驗(yàn)證后,login.jsp將跳轉(zhuǎn)到該頁(yè)面。Mainform.jsp包含所有投票的鏈接,管理員單擊問題就能查看投票的結(jié)果,管理員還可以選擇編輯該投票或者刪除該投票。</p><p>  Result.jsp是查看投票結(jié)果的頁(yè)面。管理員在登錄劊管理主頁(yè)面Mainform,jsp后,單擊某投票的問題,系

66、統(tǒng)會(huì)跳轉(zhuǎn)到該頁(yè)面。Result.jsp會(huì)以柱狀圖的形式在網(wǎng)頁(yè)上給出該投票每個(gè)選項(xiàng)所占的百分比。</p><p>  Addpoll.jsp和Savedata.jsp是新增投票的頁(yè)。管理員在登錄到管理主頁(yè)面Mainform.jsp后,選擇新增投票.系統(tǒng)會(huì)跳轉(zhuǎn)到Addpoll.jsp頁(yè)而,管理員需要在該頁(yè)面填入新增投票的問題以及選項(xiàng),然后提交。Savedata.jsp頁(yè)面把管理員所提交的新增投票資料保存到數(shù)據(jù)庫(kù)中,并

67、提示管理員操作成功。</p><p>  Delete.jsp是刪除投票頁(yè)。管理員在登錄到管理主頁(yè)面Mainform.jsp后,呵以選擇刪除投票選項(xiàng)來刪除不需要的投票。</p><p>  Edituserjsp和moduser.jsp是編輯密碼頁(yè)。管理員在登錄到管理主頁(yè)面Mainform.jsp后,可以選擇更改自己的登錄密碼.</p><p>  isopen.j

68、sp和isvisible.jsp是編輯投票項(xiàng)頁(yè)面.管理員在登錄到管理主頁(yè)面Main form.jsp后,可以編輯某個(gè)投票的屬性。isopen.jsp是設(shè)置投票結(jié)果為不開放,即接收用戶的投票但用戶不可以查看投票的結(jié)果。isvisible,jsp是把某個(gè)投票設(shè)置為對(duì)用戶不可見,即不再接收用戶的投票而且用戶也不能查看投票的結(jié)果,但系統(tǒng)管理員還可以查看投票的結(jié)果.</p><p>  在這里選取典型的管理員添加投票過程來

69、描述系統(tǒng)頁(yè)面間的互相協(xié)作以及消息交互的過程。</p><p>  管理員添加投票各頁(yè)面間的順序圖如下圖所示。</p><p>  4.2.3 數(shù)據(jù)處理模塊</p><p>  數(shù)據(jù)處理模塊由一個(gè)JavaBean程序opendata.java組成.一般的系統(tǒng)都把與數(shù)據(jù)庫(kù)相關(guān)的代碼封裝在一個(gè)JavaBean組件中。本系統(tǒng)中的opendata.java負(fù)責(zé)連接數(shù)據(jù)庫(kù)、執(zhí)行

70、數(shù)據(jù)庫(kù)查詢、更新、刪除數(shù)據(jù)等操作。</p><p><b>  4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  在線投票系統(tǒng)使用的數(shù)據(jù)庫(kù)是Microsof SQL Server 2000。系統(tǒng)所使用的表包括管理員信息表(Admins)、投票問題表(Questions)以及投票選項(xiàng)表(Items)。</p><p>  管理員信息表(Admins

71、)</p><p>  管理員信息表( Admins)包括管理員的用戶名和密碼,管理員登錄在線投票系統(tǒng)時(shí)Checkadmin.jsp就是讀取管理員輸入的用戶名和密碼與數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)比.</p><p>  投票問題表(Questions)</p><p>  投票問題表(Questions)包括的字段為投票的問題、投票問題是否可見、投票問題是否開放、投票問題設(shè)立的

72、時(shí)間,當(dāng)用戶登錄showquestion.jsp時(shí).該頁(yè)就從數(shù)據(jù)庫(kù)中讀取所有的可見問題及其選項(xiàng)并顯示在網(wǎng)頁(yè)上。</p><p>  投票選項(xiàng)表(Items)</p><p>  投票選項(xiàng)表(Items)包括的字段為投票問題ID號(hào)、該問題選項(xiàng)內(nèi)容、該選項(xiàng)獲得的投票數(shù)。當(dāng)用戶登錄showquestion.jsp時(shí),該網(wǎng)頁(yè)先讀取投票問題表(Questions)中所有可見的問題,然后根據(jù)每一個(gè)問題

73、的ID號(hào)在投票選項(xiàng)表(ltems)中找到該問題的對(duì)應(yīng)選項(xiàng)并最終顯示在網(wǎng)頁(yè)上。當(dāng)用戶完成自己的投票后,thanks.jsp將用戶所投的選項(xiàng)所對(duì)應(yīng)的投票數(shù)加1。</p><p>  投票問題表(Questions)與投票選項(xiàng)表(Items)在SQL-Server 2000中的數(shù)據(jù)庫(kù)邏輯關(guān)系如下圖所示。</p><p><b>  第五章 系統(tǒng)開發(fā)</b></p>

74、;<p>  5.1 客戶投票模塊</p><p><b>  1.用戶投票首頁(yè)</b></p><p>  用戶登錄在線投票系統(tǒng)后首先看到的就是該頁(yè)面,該頁(yè)面從數(shù)據(jù)庫(kù)中讀取所有的可見問題及其選項(xiàng)后以網(wǎng)頁(yè)的形式顯示,并且接收用戶的投票,然后把用戶的投票信息提交給數(shù)據(jù)接收頁(yè)。</p><p>  程序說明:用戶投票首頁(yè)。</p

75、><p>  程序模塊名稱:Showquestion.jsp。</p><p>  相關(guān)數(shù)據(jù)表:投票問題表(Questions)、投票選項(xiàng)表(Items)。</p><p>  用戶投票頁(yè)的部分代碼如下:</p><p>  String permit;</p><p>  String SqlString="S

76、ELECT Question,QuestionID from questions where IsVisable = 1";</p><p><b>  try</b></p><p><b>  {</b></p><p>  ResultSet rs=null;</p><p>  R

77、esultSet ch_rs=null;</p><p><b>  //設(shè)置連接</b></p><p>  sqltest.setConnection("com.microsoft.jdbc.sqlserver.SQLServerDriver","jdbc:microsoft:sqlserver://localhost:1433;Da

78、tabaseName=questionnaire","sa","");</p><p><b>  //設(shè)置SQL語(yǔ)句</b></p><p>  rs=sqltest.executeQuery(SqlString);</p><p><b>  //得到查詢結(jié)果</b>&

79、lt;/p><p>  int questionid = 0,itemid = 0;</p><p>  int i=0,j; //題目及選項(xiàng)標(biāo)號(hào)</p><p>  while(rs.next())</p><p><b>  {</b></p><p><b>  i++;</b&

80、gt;</p><p>  String question = rs.getString(1);</p><p>  questionid= rs.getInt(2);</p><p>  out.print("<TABLE borderColor=#999999 cellSpacing=0 cellPadding=0 width=100% bord

81、er=0><tr bgcolor=#999999><td>"+" "+i+"."+" "+question+"</td></tr>");</p><p>  //子查詢語(yǔ)句,根據(jù)問題id號(hào)到items表中查詢?cè)搯栴}的所有選項(xiàng)</p><p>  S

82、tring ch_sql = "SELECT Item,ItemID From Items Where QuestionID ='"+questionid+"'";</p><p>  ch_rs=sqltest.executeQuery(ch_sql);</p><p><b>  j = 0;</b><

83、/p><p>  while(ch_rs.next())</p><p><b>  {</b></p><p><b>  j++;</b></p><p>  String item = ch_rs.getString(1); //</p><p>  itemi

84、d = ch_rs.getInt(2);</p><p><b>  %></b></p><p><b>  <td ></b></p><p>  <%=j%><input type=radio value="<%=itemid%>" name=&qu

85、ot;<%=questionid%>"><%=item%></p><p>  </td></tr></p><p><b>  <%</b></p><p><b>  }</b></p><p>  out.print(&qu

86、ot; </table><p>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  catch(SQLException e1)</p><p><b>  {</b></p>

87、<p>  out.print("SQL異常!");</p><p><b>  }</b></p><p><b>  2.數(shù)據(jù)接收頁(yè)</b></p><p>  用戶首先登錄投票頁(yè)showquestion.jsp并提交他們認(rèn)可的回答項(xiàng),用戶所選擇的數(shù)據(jù)項(xiàng)被提交到數(shù)據(jù)接收頁(yè)thanks.j

88、sp,該頁(yè)把這些數(shù)據(jù)項(xiàng)儲(chǔ)存到數(shù)據(jù)庫(kù)中.并提示用戶投票數(shù)據(jù)提交成功。</p><p>  程序說明:數(shù)據(jù)接收頁(yè)。</p><p>  程序模塊名稱:Thanks.jsp</p><p>  相關(guān)數(shù)據(jù)表:投票問題表(Questions)、投票選項(xiàng)表(Items)</p><p>  數(shù)據(jù)接收頁(yè)的代碼如下:</p><p>

89、  ResultSet rs=null;</p><p>  ResultSet ch_rs=null;</p><p>  //查詢所有可見問題</p><p>  String sqlstring = "SELECT QuestionID from questions where IsVisable = 1 ";</p>&l

90、t;p><b>  try</b></p><p><b>  {</b></p><p>  rs=sqltest.executeQuery(sqlstring);</p><p>  int questionid = 0,itemid = 0;</p><p>  while(rs.nex

91、t())</p><p><b>  {</b></p><p>  questionid = rs.getInt(1);</p><p>  //獲取用戶選擇的該問題的選項(xiàng)的id號(hào)</p><p>  itemid = Integer.parseInt(request.getParameter(String.value

92、Of(questionid)));</p><p>  //更新該問題選擇的計(jì)數(shù)值,做加1操作</p><p>  sqlstring = "update Items set ItemCount = ItemCount + 1 Where ItemID ="+itemid;</p><p>  sqltest.executeUpdate(sql

93、string);</p><p><b>  }</b></p><p><b>  }</b></p><p>  catch(SQLException e1)</p><p><b>  {</b></p><p>  out.print("

94、;SQL異常!");</p><p><b>  }</b></p><p><b>  3.數(shù)據(jù)顯示頁(yè)</b></p><p>  showresult.jsp是數(shù)據(jù)的顯示頁(yè)。當(dāng)用戶在用戶投票貞showquestion.jsp完成投票后可以跳轉(zhuǎn)到本頁(yè)面.查看該頊投票的統(tǒng)計(jì)結(jié)果.該頁(yè)就是用柱狀圖的顯示給出統(tǒng)計(jì)圖,

95、并給出投票問題每個(gè)選項(xiàng)的百分比。</p><p>  程序說明:數(shù)據(jù)顯示頁(yè)。</p><p>  程序模塊名稱:showresult.jsp</p><p>  相關(guān)數(shù)據(jù)表:投票問題表(Questions)、投票選項(xiàng)表(Items)</p><p>  數(shù)據(jù)顯示頁(yè)的代碼如下:</p><p>  String ques

96、tion,date,Sqlstring;</p><p>  ResultSet rs=null; //定義數(shù)據(jù)集</p><p>  ResultSet rs1=null;</p><p>  ResultSet rs2=null;</p><p>  int questionid = 0;</p><p>

97、  Sqlstring = "SELECT Question, Date, QuestionID from questions where IsVisable = 1 and IsOpen= 1"; //查詢所有問題內(nèi)容可見且投票結(jié)果可見的問題</p><p>  rs=sqltest.executeQuery(Sqlstring);</p><p>  Sq

98、lstring = "SELECT ItemCount From Items Where QuestionID ="+questionid;</p><p>  rs1 = sqltest.executeQuery(Sqlstring);</p><p>  int totalcount = 0;</p><p>  while(rs1.next

99、())</p><p><b>  {</b></p><p>  totalcount += rs1.getInt(1);</p><p><b>  }</b></p><p>  if(totalcount==0)</p><p><b>  {</b&

100、gt;</p><p>  out.print("暫時(shí)還沒有人參加本題投票");</p><p>  Sqlstring = "SELECT Item, ItemCount FROM Items where QuestionID ="+questionid;</p><p>  rs2 = sqltest.executeQue

101、ry(Sqlstring);</p><p>  String item;</p><p>  int itemcount;</p><p>  String percent;</p><p>  while(rs2.next())</p><p><b>  {</b></p>&

102、lt;p>  item = rs2.getString(1);</p><p>  itemcount = rs2.getInt(2);</p><p>  percent = printf(String.valueOf((double)itemcount/totalcount*100)+"0");</p><p>  out.print(

103、"<tr><td>"+item+"</td>");</p><p>  out.print("<td align=center>"+itemcount+"</td>");</p><p>  out.print("</tr>&qu

104、ot;);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  out.print("共

105、有"+totalcount+"人參加本題投票");</p><p>  Sqlstring = "SELECT Item, ItemCount FROM Items where QuestionID ="+questionid;</p><p>  rs2 = sqltest.executeQuery(Sqlstring);</p&g

106、t;<p>  String item;</p><p>  int itemcount;</p><p>  String percent;</p><p>  while(rs2.next())</p><p><b>  {</b></p><p>  item = rs2.g

107、etString(1);</p><p>  itemcount = rs2.getInt(2);</p><p>  percent = printf(String.valueOf((double)itemcount/totalcount*100)+"0");</p><p>  out.print("<tr><td

108、>"+item+"</td>");</p><p>  out.print("<td align=center>"+itemcount+"</td>");</p><p>  out.print("<td><img src = bar.jpg widt

109、h = "+Float.parseFloat(percent)*2+ " height = 10>"+ percent+"%");</p><p>  out.print("</tr>");</p><p><b>  }</b></p><p><b

110、>  }</b></p><p><b>  4.字符轉(zhuǎn)換頁(yè)</b></p><p>  此頁(yè)面主要用于解決中文字符無(wú)法正確顯示的問題,這是一個(gè)基礎(chǔ)頁(yè)面,在其他所有的頁(yè)面都有可能調(diào)用該頁(yè)的函數(shù)。</p><p>  程序說明:字符轉(zhuǎn)換頁(yè)。</p><p>  程序模塊名稱:converr.jsp。<

111、;/p><p><b>  相關(guān)數(shù)據(jù)表:無(wú)。</b></p><p>  字符轉(zhuǎn)換頁(yè)代碼如下:</p><p><b>  <%!</b></p><p>  String convert(String str)</p><p><b>  {</b>

112、</p><p>  byte newstr[] = new byte[str.length()];</p><p>  for(int i=0;i<str.length();i++)</p><p>  newstr[i]=(byte)str.charAt(i);</p><p>  return new String(newstr)

113、;</p><p><b>  }</b></p><p>  String Replace(String str)</p><p><b>  {</b></p><p>  int index=0;</p><p>  while((index=str.indexOf(&

114、quot;\n")) != -1)</p><p>  str = str.substring(0,index) +"<br>"+ str.substring(index+1);</p><p>  return(str);</p><p><b>  }</b></p><p>

115、;<b>  %></b></p><p><b>  5.2 管理員模塊</b></p><p><b>  1. 管理員登陸頁(yè)</b></p><p>  程序說明:管理員登錄頁(yè)。</p><p>  程序模塊名稱:login.jsp。</p><

116、p><b>  相關(guān)數(shù)據(jù)表:無(wú)。</b></p><p>  管理員登錄頁(yè)部分代碼如下:</p><p>  String errmsg = request.getParameter("errmsg");</p><p>  request.getSession(true);</p><p> 

117、 String chk = "false";</p><p>  session.putValue("Enter",chk);</p><p>  if(errmsg != null && errmsg.equals("error1"))</p><p>  out.print("

118、您輸入管理員帳號(hào)或者密碼不正確!!");</p><p>  else if(errmsg != null && errmsg.equals("error2"))</p><p>  out.print("請(qǐng)先登陸!!");</p><p><b>  2. 管理員驗(yàn)證頁(yè)</b>

119、</p><p>  checkadmin.jsp是管理員登錄的驗(yàn)證頁(yè)。管理員在login.jsp頁(yè)面填入用戶名和密碼后,這些數(shù)據(jù)將被提交到該頁(yè),然后與數(shù)據(jù)庫(kù)中的相應(yīng)數(shù)據(jù)進(jìn)行對(duì)比。如果驗(yàn)證通過將跳轉(zhuǎn)到管理主頁(yè)面。</p><p>  程序說明:管理員驗(yàn)證頁(yè)。</p><p>  程序模塊名稱:checkadmin.jsp。</p><p> 

120、 相關(guān)數(shù)據(jù)庫(kù):管理員信息表(Admins)。</p><p>  管理員驗(yàn)證頁(yè)部分代碼如下:</p><p>  ResultSet rs=null;</p><p>  String name = request.getParameter("name");</p><p>  String password = requ

121、est.getParameter("password");</p><p>  //根據(jù)用戶提交的用戶名和密碼查詢admins表</p><p>  String sqlstring = "select * from admins where Admname = '"+name+"' and Admpwd= '&qu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論