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

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  題 目: 學(xué)校圖書管理系統(tǒng) </p><p>  學(xué) 院: &

2、lt;/p><p>  專 業(yè): 計算機科學(xué)與技術(shù) </p><p>  學(xué)生姓名: 學(xué)號: </p><p>  指導(dǎo)教師: 職稱: </p><p

3、>  合作導(dǎo)師: 職稱: </p><p>  完成時間: </p><p>  成 績: </p><p><b>  目 錄</

4、b></p><p><b>  摘要:1</b></p><p><b>  1 引言1</b></p><p>  1.1 圖書管理的現(xiàn)狀1</p><p>  1.2 現(xiàn)有圖書管理系統(tǒng)的概述2</p><p>  1.3 選題的目的、意義3<

5、;/p><p>  1.4 圖書管理系統(tǒng)的可行性分析3</p><p>  1.5 系統(tǒng)開發(fā)運行環(huán)境4</p><p>  2 圖書管理系統(tǒng)開發(fā)相關(guān)技術(shù)的介紹4</p><p>  2.1 JAVA的介紹4</p><p>  2.1.1 JAVA的優(yōu)勢介紹4</p><p> 

6、 2.1.2 JAVA的特點5</p><p>  2.2SQL Server 2005 概述5</p><p>  2.3 Web技術(shù)6</p><p>  2.3.1 瀏覽器/服務(wù)器(Browser/Server)結(jié)構(gòu)6</p><p>  2.3.2 IIS服務(wù)器技術(shù)7</p><p>  3

7、 系統(tǒng)總體設(shè)計分析7</p><p>  3.1 系統(tǒng)需求分析7</p><p>  3.2 系統(tǒng)實現(xiàn)的目標8</p><p>  3.3 系統(tǒng)功能模塊設(shè)計8</p><p>  3.4 系統(tǒng)功能結(jié)構(gòu)圖8</p><p>  3.5 系統(tǒng)流程圖11</p><p>  4

8、 數(shù)據(jù)總體結(jié)構(gòu)設(shè)計12</p><p>  4.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計12</p><p>  4.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計13</p><p>  4.3 圖書管理系統(tǒng)的系統(tǒng)E-R圖15</p><p>  4.4 數(shù)據(jù)表設(shè)計16</p><p>  5 圖書管理系統(tǒng)詳細設(shè)計18</p>

9、;<p>  5.1 系統(tǒng)流程分析18</p><p>  5.2 主要模塊的運行19</p><p>  5.2.1 登陸界面19</p><p>  5.2.2 圖書信息管理模塊19</p><p>  5.2.3 圖書借還信息模塊21</p><p>  5.3 系統(tǒng)開發(fā)的遇到

10、的相關(guān)問題及解決21</p><p>  5.3.1 圖書管理系統(tǒng)索引21</p><p>  5.3.2 如何驗證輸入的字符串22</p><p>  5.3.3 自動計算圖書歸還日期23</p><p>  5.3.4 系統(tǒng)登陸驗證碼的實現(xiàn)23</p><p><b>  6 結(jié)論2

11、6</b></p><p>  6.1 主要研究內(nèi)容及成果27</p><p>  6.2 今后進一步研究方向27</p><p><b>  參考文獻27</b></p><p>  學(xué)校圖書管理系統(tǒng)的開發(fā)</p><p>  武漢工業(yè)學(xué)院 計算機科學(xué)與技術(shù) 周密(05

12、600114)</p><p>  摘要:圖書管理系統(tǒng)是智能辦公系統(tǒng)(IOA)的重要組成部分,因此,圖書管理系統(tǒng)也以方便、快捷的優(yōu)點正慢慢地進入人們的生活,將傳統(tǒng)的圖書管理方式徹底的解脫出來,提高效率,減輕工作人員以往繁忙的工作,減小出錯的概率,使讀者可以花更多的時間在選擇書和看書上。從而使人們有更多時間來獲取信息、了解信息、掌握信息。其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。采用MyS

13、QL5.0數(shù)據(jù)庫作為后臺數(shù)據(jù)庫、JAVA編程語言作為前臺開發(fā)工具,通過對數(shù)據(jù)庫技術(shù)進行了較深入的學(xué)習(xí)和應(yīng)用,主要完成書目檢索、讀者管理、借閱管理、圖書管理、用戶維護、系統(tǒng)維護等系統(tǒng)功能。系統(tǒng)運行結(jié)果證明,本文所設(shè)計的圖書管理系統(tǒng)可以滿足學(xué)生和教師借閱者、圖書管理員兩方面的需要,達到了設(shè)計要求。</p><p>  關(guān)鍵詞:圖書管理;系統(tǒng)設(shè)計;信息;JAVA;MySQL5.0</p><p>

14、;<b>  1 引言</b></p><p>  隨著計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,當今社會正快速向信息化社會前進,信息系統(tǒng)的作用也越來越大。圖書館在正常運營中總是面對大量的讀者信息,書籍信息以及由兩者相互作用產(chǎn)生的借書信息,還書信息。因此圖書管理信息化是發(fā)展的必然趨勢。用結(jié)構(gòu)化系統(tǒng)分析與設(shè)計的方法,建立一套有效的圖書信息管理系統(tǒng)

15、,可以減輕工作,將工作科學(xué)化、規(guī)范化,提高了圖書館信息管理的工作質(zhì)量因此根據(jù)圖書館目前實際的管理情況開發(fā)一套圖書管理系統(tǒng)是十分必要的。</p><p>  1.1 圖書管理的現(xiàn)狀</p><p>  一直以來人們使用傳統(tǒng)的人工方式管理圖書館的日常工作,對于圖書館的借書和還書過程,想必大家都已很熟悉。在計算機尚未在圖書管理系統(tǒng)廣泛使用之前,借書和還書過程主要依靠手工。一個最典型的手工處理還

16、書過程就是:讀者將要借的書和借閱證交給工作人員,工作人員將每本書上附帶的描述書的信息的卡片和讀者的借閱證放在一個小格欄里,并在借閱證和每本書貼的借閱條上填寫借閱信息。這樣借書過程就完成了。還書時,讀者將要還的書交給工作人員,工作人員根據(jù)圖書信息找到相應(yīng)的書卡和借閱證,并填好相應(yīng)的還書信息,這樣還書過程就完成了。隨著近年來信息技術(shù)及計算機網(wǎng)絡(luò)技術(shù)的不斷發(fā)展, 圖書館也先從傳統(tǒng)的圖書館發(fā)展到自動化圖書館,再發(fā)展到今天的數(shù)字圖書館,這些變化使

17、得圖書館的形象越來越現(xiàn)代化,人們查找資料也更加方便。對于一些小圖書館和一些圖書室來說,由于工作人員比較少,長期以來,作為圖書館的主要工作—圖書借閱一直未能很好地開展。在平常的圖書借閱工作中, 由于大部分讀者不熟悉圖書館藏書,且對圖書排架分類的不了解,往往花費很長時間才能找到其所需的書。為提高管理效率,更好地為讀者服務(wù),利用已有的辦公局域網(wǎng)絡(luò)條件,將館藏書籍做成基于WE</p><p>  傳統(tǒng)的圖書管理模式其最大

18、的特點是手工;首先要把買來的圖書資料登記到資料本上,再給每本書分類貼上標簽及制作和標簽相對應(yīng)的圖書分類卡片,最后把圖書分類卡片按類別分別放置在文件柜里。對于有學(xué)生(教師)證的學(xué)生(教師)來說還要對他們資料作一定的記錄。并且在人們來借書的時候,首先持證件者要去存放圖書分類卡片的文件柜里查找想借的書是否在架,如果卡片存在,再按照圖書分類卡片在相應(yīng)的書架上找到需要的圖書,然后登記持證件者的借還書時間和在書簽條上寫下借還書記錄,之后把借書證留在

19、那里;還書的時候,相對應(yīng)的消去出借記錄;這樣做起來比較麻煩,比較費時間。傳統(tǒng)圖書管理的特點是一直以來,中小型書店、中小學(xué)的小型圖書館及各高校圖書館和資料室使用傳統(tǒng)的人工方式管理圖書檔案、會員檔案。這種管理方式存在著諸多缺點,如:手續(xù)繁瑣、工作量大、效率低下、出錯率高等,同時給對大量資料的查詢、更新及維護都帶來不少困難。</p><p>  1.2 現(xiàn)有圖書管理系統(tǒng)的概述</p><p>

20、  在試用了一些個圖書管理系統(tǒng)和查閱了大量相關(guān)資料文獻的基礎(chǔ)上,發(fā)現(xiàn)那些系統(tǒng)在幾個方面已經(jīng)不符合時代的要求,由于設(shè)計人員及其所用的工具的不同,有Visual Basic6.0、Visual ForPro6.0、Power Builder等,再加上這些圖書管理系統(tǒng)設(shè)計的時間也不一樣,所用具體場合也有區(qū)別,因此在功能上除了圖書資料管理所需的基本功能之外也有所不同。經(jīng)過比較總結(jié)他們都實現(xiàn)了以下圖書管理的基本功能:1、圖書檢索模塊:是圖書管理系

21、統(tǒng)的重要模塊之一,是讀者快速查詢圖書的途徑。2、圖書管理模塊:是圖書管理員操作模塊,讀者是無權(quán)進入的。本模塊由借出圖書登記、歸還圖書登記和續(xù)借圖書登記子模塊構(gòu)成。3、數(shù)據(jù)維護模塊:是由圖書管理員控制的模塊,它由增加、修改和刪除讀者,增加、修改刪除圖書,瀏覽修改讀者、瀏覽修改圖書等程序組成。 4、數(shù)據(jù)統(tǒng)計模塊:由讀者統(tǒng)計、圖書統(tǒng)計、借出圖書分類統(tǒng)計、到期末歸還圖書讀者統(tǒng)計幾部分組成。這些系統(tǒng)解決了以前的那種管理方式所存在著的諸如手續(xù)繁瑣、

22、工作量大、效率低下、出錯率高等缺點,設(shè)計出的系統(tǒng)能使讀者快速檢索到自己喜愛的書,圖書管理員能減輕工作量。</p><p>  但是鑒于開發(fā)工具和開發(fā)當時的科技發(fā)展水平所限,再加上歷史發(fā)展到今天,人們的生活環(huán)境已經(jīng)發(fā)生了改變,大家對于圖書查詢這方面的要求也更高。比如在一個局域網(wǎng)內(nèi),大家希望能在本臺電腦上就能查找自己想要的圖書,而不用跑到圖書館或圖書室里去用那里的電腦查詢,這就需要一個網(wǎng)絡(luò)化的聯(lián)機查詢系統(tǒng)。</

23、p><p>  1.3 選題的目的、意義 </p><p>  隨著社會的進步,信息技術(shù)的廣泛應(yīng)用,數(shù)字化管理的優(yōu)勢日趨顯著。針對中小型圖書館或圖書室管理落后的情況,設(shè)計實現(xiàn)一個圖書信息管理系統(tǒng),通過與計算機的結(jié)合使用對中小型圖書館或圖書室的各種圖書信息進行管理可以給管理員和用戶帶來以下不同的方便:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高工作

24、效率,也是圖書館等部門管理科學(xué)化、正規(guī)化的重要標志之一。而且計算機管理的成本不斷降低。因此,開發(fā)一套這樣的中小型圖書管理軟件已經(jīng)很有必要,并且實現(xiàn)研究服務(wù)于實踐的原則。</p><p>  1.4 圖書管理系統(tǒng)的可行性分析</p><p>  本次畢業(yè)設(shè)計題目:“學(xué)校圖書管理系統(tǒng)的開發(fā)”主要目的是利用數(shù)據(jù)庫軟件編制一個管理軟件,用以實現(xiàn)圖書、讀者以及日常工作等多項管理。同時對整個系統(tǒng)的分

25、析、設(shè)計過程給出一個完整論證。圖書管理系統(tǒng)是一種基于集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫數(shù)據(jù)管理新模式。在對圖書、讀者的管理,其實是對圖書、讀者數(shù)據(jù)的管理。本系統(tǒng)的建成無疑會為管理者對圖書管理系統(tǒng)提供極大的幫助。本系統(tǒng)的設(shè)計主要從以下幾方面做起:系統(tǒng)業(yè)務(wù)流程分析、系統(tǒng)的功能設(shè)計、系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計等。作這些工作需對數(shù)據(jù)庫知識有足夠認識,并深入的了解Java的使用和管理系統(tǒng)的相關(guān)知識。在信息時代的今天,人類需要對在政治、經(jīng)濟、軍事、文化、科研、教育等領(lǐng)

26、域產(chǎn)生的大量信息進行管理,并對數(shù)據(jù)進行加工處理,數(shù)據(jù)庫技術(shù)則是信息管理與數(shù)據(jù)處理的先進技術(shù)。隨著信息量的不斷增加,作為計算機的三大主要應(yīng)用(科學(xué)計算、過程控制和數(shù)據(jù)處理)之一的數(shù)據(jù)處理,已迅速上升為計算機應(yīng)用的主要方面,數(shù)據(jù)庫技術(shù)則成為人們?nèi)粘I钪刑幚頂?shù)據(jù)不可缺少的有力工具,并且現(xiàn)代的信息管理系統(tǒng)幾乎都以數(shù)據(jù)庫技術(shù)作為核心。</p><p>  現(xiàn)在大多數(shù)的圖書管理方式為手工處理,重復(fù)勞動多,勞動強度大,而且容

27、易出錯,新系統(tǒng)的使用能否可以很好的解決這些問題要看系統(tǒng)的可行性,可行性研究的目的是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。系統(tǒng)的可行性分析有以下幾個方面:</p><p>  (1)技術(shù)可行性:處理速度快、準確通過權(quán)限的設(shè)置,數(shù)據(jù)的安全性好、方便查詢、借閱管理等。 </p><p>  (2)經(jīng)濟可行性:系統(tǒng)建設(shè)不需要很大的投入、可縮減人力投入。</p>&l

28、t;p>  (3)運行上可行性:本系統(tǒng)作為一個小型的圖書館信息管理系統(tǒng),所耗費的</p><p><b>  資源非常的小。 </b></p><p>  (4)從各種社會因素可行性分析:可降低工作人員工作強度,提高效率,會</p><p>  得到學(xué)校工作人員的一致同意的。</p><p>  綜上所述通過可行性

29、分析認為新系統(tǒng)的開發(fā)方案切實可行,可進行開發(fā)。</p><p>  1.5 系統(tǒng)開發(fā)運行環(huán)境 </p><p>  系統(tǒng)開發(fā)環(huán)境:MyEclipse Java Enterprise 6.5</p><p>  系統(tǒng)開發(fā)語言:Java</p><p>  運行平臺:Windows XP</p><p>  數(shù)據(jù)庫:My

30、SQL5.0</p><p>  Web服務(wù)器: Tomcat6.0</p><p>  2 圖書管理系統(tǒng)開發(fā)相關(guān)技術(shù)的介紹</p><p>  2.1 JAVA的介紹</p><p>  2.1.1 JAVA的優(yōu)勢介紹</p><p>  Java已用動態(tài)的交互應(yīng)用軟件使Web栩栩如生。它使開發(fā)人員具有‘編寫一

31、次到處運行TM”的巨大能力。而且,借助其JavaAPI及其編程語言上的Java虛擬機,它已產(chǎn)生一種分布信息的嶄新模式。這種模式叫做Java企業(yè)計算,正在幫助各企業(yè)以各種不同的方法取得競爭優(yōu)勢。網(wǎng)管和控制已大大簡化。軟件分配基本上是免費的,而且立即可實現(xiàn)。電子貿(mào)易已獲得。占有成本大幅度降低。信息和應(yīng)用軟件到處可存取。Java建立在簡單的前提基礎(chǔ)上,即所有微處理器都應(yīng)講同一種語言——所有內(nèi)部采用芯片的產(chǎn)品都應(yīng)能一起工作,無縫而方便地共享信息

32、。它已經(jīng)改變企業(yè)和個人同Internet大交道的方式?,F(xiàn)在,它正在對消費類產(chǎn)品產(chǎn)生明顯的影響,而且從總體上更加深刻地影響企業(yè)計算。</p><p>  借助Java,您可自由自在地使用您已擁有的硬件和軟件。這是因為Java是獨立于平臺的。它還可使您超越企業(yè)計算,使應(yīng)用軟件在便攜式計算機、信息亭、電視、蜂窩電話和其他大量設(shè)備上運行。</p><p>  全世界的公司都已發(fā)現(xiàn)Java數(shù)不勝數(shù)的

33、用途。所有用途可從其無可比擬的能力,即提高可靠性、安全性和簡化各種不同計算產(chǎn)品和環(huán)境的能力中受益非淺,而且節(jié)省的時間和費用十分可觀。</p><p>  Java無處不在。它已擁有幾百萬個用戶,其發(fā)展速度要快于在它以前的其他任何一種計算機產(chǎn)品。它可位于任何地方,而且能到處運行。Java正在迅速被用做傳播信息的事實上標準,這是因為它既可給企業(yè),也可給最終用戶帶來似乎數(shù)不清的好處。</p><p&

34、gt;  2.1.2 JAVA的特點</p><p>  面向?qū)ο螅浩鋵嵤乾F(xiàn)實世界模型的自然延伸?,F(xiàn)實世界中任何實體都可以看作是對象。對象之間通過消息相互作用。另外,現(xiàn)實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的實例。如果說傳統(tǒng)的過程式編程語言是以過程為中心以算法為驅(qū)動的話,面向?qū)ο蟮木幊陶Z言則是以對象為中心以消息為驅(qū)動。用公式表示,過程式編程語言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為:程序=

35、對象+消息。 所有面向?qū)ο缶幊陶Z言都支持三個概念:封裝、多態(tài)性和繼承,Java也不例外。現(xiàn)實世界中的對象均有屬性和行為,映射到計算機程序上,屬性則表示對象的數(shù)據(jù),行為表示對象的方法(其作用是處理數(shù)據(jù)或同外界交互)。所謂封裝,就是用一個自主式框架把對象的數(shù)據(jù)和方法聯(lián)在一起形成一個整體??梢哉f,對象是支持封裝的手段,是封裝的基本單位。Java語言的封裝性較強,因為Java無全程變量,無主函數(shù),在Java中絕大部分成員是對象,只有簡單的數(shù)字類

36、型、字符類型和布爾類型除外。而對于這些類型,Java也提供了相應(yīng)的對象類型以便與其他對象交互操作。 </p><p>  可移植性:就是在這個系統(tǒng)上作的程序經(jīng)過一次編譯后可以移植到別的系統(tǒng)上解釋執(zhí)行,只要經(jīng)過簡單的粘貼和復(fù)制就行了,不影響程序的效果</p><p>  安全性:在 iSeries 服務(wù)器上運行的大多數(shù) Java(TM) 程序是應(yīng)用程序,而不是 applet,所以“砂箱”安全

37、性模型對它們不起限制作用。從安全性的觀點看,Java 應(yīng)用程序所受的安全性限制與 iSeries 服務(wù)器上的任何其它程序相同。要在 iSeries 服務(wù)器上運行 Java 程序,您必須對集成文件系統(tǒng)中的類文件具有權(quán)限。程序一旦啟動,它就在該用戶權(quán)限控制下運行。 您可以使用沿用權(quán)限來訪問具有運行程序的用戶的權(quán)限和程序擁有者權(quán)限的對象。沿用權(quán)限臨時地將用戶原先無權(quán)訪問的對象的權(quán)限授予用戶。</p><p>  并發(fā)性

38、:JAVA支持多線程技術(shù),就是多個線程并行機制,多線程是Java的一個重要方法,特別有利于在程序中實現(xiàn)并發(fā)任務(wù).Java提供Thread線程類,實現(xiàn)了多線程的并發(fā)機制.然而,程序的并發(fā)執(zhí)行必定會出現(xiàn)多個線程互斥訪問臨界資源的局面,因而并發(fā)系統(tǒng)解決的關(guān)鍵就是對臨界資源的管理和分配問題,而在進行臨界資源分配時有兩方面需要考慮,即安全性和公平性.文中首先討論了多線程并發(fā)系統(tǒng)中的安全性與公平性問題,指出安全性與公平性在并發(fā)系統(tǒng)中訪問臨界資源時的

39、重要性.并通過火車行駛單行隧道的實例,演示各種條件下的行駛情況來進一步說明該問題. </p><p>  SQL Server 2005 概述</p><p>  MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購.對于Mysql的前途,沒有任何人抱樂觀的態(tài)度.目前MySQL被廣泛地應(yīng)

40、用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。</p><p><b>  它具有以下特點:</b></p><p>  (1).使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性。 </p><p>

41、  (2).支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。 </p><p>  (3).為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 </p><p>  (4).支持多

42、線程,充分利用CPU資源。 </p><p>  (5).優(yōu)化的SQL查詢算法,有效地提高查詢速度。 </p><p>  (6).既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。</p><p>  (7

43、).提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。 </p><p>  (8).提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。 </p><p>  (9).可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。</p><p>  2.3 Web技術(shù)</p><p>  2.3.1 瀏覽器/服務(wù)器(Browser/Server)結(jié)構(gòu)<

44、;/p><p>  隨著Web和Internet計算環(huán)境的發(fā)展,將使企業(yè)能夠以更快的速度、更低的費用去創(chuàng)建和布置企業(yè)的應(yīng)用系統(tǒng),因而,普遍認為C/S架構(gòu)將會被B/S結(jié)構(gòu)取代。Internet為數(shù)據(jù)庫應(yīng)用系統(tǒng)提供了新的機會,采用B/S結(jié)構(gòu),客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explores;中間層采用Web服務(wù)器,它接受客戶端的請求,將其轉(zhuǎn)換為SQL

45、語句,通過ODBC或其他手段傳給數(shù)據(jù)庫服務(wù)器,并將數(shù)據(jù)庫服務(wù)器返回的結(jié)果用HTML文件格式傳回給客戶機??蛻魴C的要求大大降低,大部分程序在服務(wù)器端執(zhí)行。采用3層體系結(jié)構(gòu)的Web應(yīng)用程序由Web瀏覽器、Web服務(wù)器和數(shù)據(jù)庫3部分組成,如圖2-1所示。Web瀏覽器與Web服務(wù)器之間的通信仍然遵循HTTP,Web服務(wù)器與數(shù)據(jù)庫之間的通信遵守CGI(Common Gateway Interface)或者Server API規(guī)范。在采用三層體系結(jié)

46、構(gòu)的Web應(yīng)用程序中,Web瀏覽器向Web服務(wù)器請求某個HTML文檔或者請求執(zhí)行某個CGI腳本程序。Web服務(wù)器根據(jù)Web瀏覽器請求的是某個CGI程序或者API</p><p>  2.3.2 IIS服務(wù)器技術(shù)</p><p>  Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun

47、和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因為Tomcat 技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是6.0。</p><p>  Tomcat 很

48、受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。 </p><p>  Tomcat是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個初學(xué)者來說,可以這樣認為,當在一臺機器上配置好Apache 服

49、務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務(wù)器的擴展,但它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。 </p><p>  這里的訣竅是,當配置正確時,Apache 為HTML頁面服務(wù),而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HT

50、ML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。</p><p>  3 系統(tǒng)總體設(shè)計分析</p><p>  3.1 系統(tǒng)需求分析</p><p>  隨著互聯(lián)網(wǎng)的爆炸性發(fā)展,人們越來越習(xí)慣于利用網(wǎng)絡(luò)來實現(xiàn)所需的服務(wù),網(wǎng)絡(luò)已深深影響到人們生

51、活的各個方面。另外,傳統(tǒng)的圖書館不能滿足一部分現(xiàn)代人的需要,而電子閱覽室,由于其不受時間與空間的限制同時又具有傳統(tǒng)圖書館的大部分功能,能夠滿足各類用戶的常規(guī)與特殊需求,而且其方便快捷,實現(xiàn)技術(shù)又比較成熟,因此受到當代人的喜愛。</p><p>  該系統(tǒng)主要分為兩部分:讀者部分和管理員部分。為了方便讀者查找自己感興趣的主題進行閱讀,要將圖書按照內(nèi)容進行分類。讀者可以按照類別進行查找,逐級瀏覽、可以查看自己的信息。

52、本系統(tǒng)還可對用戶的賬號和書目的閱讀權(quán)限進行管理。管理員需要給用戶分配用戶名和密碼,及設(shè)定用戶的級別,還為用戶提供圖書的排行榜讓用戶能知道那些圖書受到大家的歡迎。</p><p>  3.2 系統(tǒng)實現(xiàn)的目標 </p><p>  學(xué)校圖書管理系統(tǒng)的開發(fā)主要要實現(xiàn)的目標有以下幾個方面:</p><p>  (1)界面設(shè)計友好、美觀。</p><p&

53、gt;  (2)數(shù)據(jù)存儲安全、可靠。</p><p>  (3)信息分類清晰、準確。</p><p>  (4)強大的查詢功能,保證數(shù)據(jù)查詢的靈活性。</p><p>  (5)實現(xiàn)對圖書借閱和歸還過程的全程數(shù)據(jù)信息跟蹤。</p><p>  (6)提供圖書借閱排行榜,為圖書管理員提供了真實的數(shù)據(jù)信息。</p><p>

54、;  (7)提供靈活、方便的權(quán)限設(shè)置功能,使整個系統(tǒng)的管理分工明確。</p><p>  (8)具有易維護性和易操作性。</p><p>  3.3 系統(tǒng)功能模塊設(shè)計</p><p>  (1)系統(tǒng)設(shè)置模塊:添加刪除管理員、設(shè)置管理員的權(quán)限、說明圖書存放書架信息添加刪除書架信息。</p><p>  (2)讀者管理模塊:添加刪除不同類型的讀

55、者及注明可借圖書的數(shù)量、添加刪除讀者的檔案。</p><p>  (3)圖書管理模塊:添加刪除不同類型的的圖書及注明圖書可借的天數(shù)庫存數(shù)量、添加刪除圖書的檔案。</p><p>  (4)圖書借還模塊:可查詢讀者借閱和歸還圖書的信息及圖書的現(xiàn)有庫存量。</p><p>  (0035)系統(tǒng)查詢模塊:可根據(jù)不同的條件(條形碼、書名、類別、作者、書架、出版社)查詢讀者需

56、要的圖書、讀者可根據(jù)不同的條件(圖書條形碼、圖書名稱、讀者編號、讀者名字、到期時間)查詢自己借閱圖書信息。</p><p>  (6)排行榜模塊:可以讓讀者知道圖書借閱的排行榜及讀者借閱的排行榜。</p><p>  3.4 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  根據(jù)圖書管理系統(tǒng)的實際需求,可以將圖書管理系統(tǒng)劃分為系統(tǒng)設(shè)置、圖書管理、讀者管理、圖書借還、系統(tǒng)查詢、排

57、行榜6個部分各個部分的具體功能的系統(tǒng)功能結(jié)構(gòu)圖如圖3-1所示。</p><p>  圖3-1 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  (1)圖書借閱系統(tǒng)完成用戶的借書過程其數(shù)據(jù)流圖如圖3-2所示。</p><p>  圖3-2 借閱系統(tǒng)的數(shù)據(jù)流圖</p><p>  (2)還書系統(tǒng)完成圖書的歸還過程其數(shù)據(jù)流圖如圖3-3所示。</p>

58、;<p>  圖3-3 歸還系統(tǒng)的數(shù)據(jù)流圖</p><p> ?。?)圖書檔案管理系統(tǒng)為用戶提供圖書檔案信息其數(shù)據(jù)流圖如圖3-4所示。</p><p>  圖3-4 圖書檔案管理數(shù)據(jù)流圖</p><p> ?。?)讀者檔案系統(tǒng)用于記錄讀者的詳細信息其數(shù)據(jù)流圖如圖3-5所示。</p><p>  圖3-5 讀者檔案管理數(shù)據(jù)流

59、圖</p><p>  3.5 系統(tǒng)流程圖</p><p>  圖書管理系統(tǒng)的流程是用戶先輸入自己的帳號密碼及系統(tǒng)顯示的驗證碼進入系統(tǒng)如有一項不符合則不能進入系統(tǒng),成功登陸系統(tǒng)后系統(tǒng)根劇登陸的帳號信息從數(shù)據(jù)庫中的數(shù)據(jù)進行對比判斷是讀者還是管理員,如果是讀者則能進行信息查詢,及修改自己的相關(guān)信息,查詢到自己所需要的圖書就能通過管理員進行借閱圖書、歸還圖書也是通過管理員完成的。如果不是讀者而

60、是管理員,那管理員可以進行相關(guān)信息的查詢、添加刪除圖書及讀者的所有信息、設(shè)置相應(yīng)的權(quán)限、為圖書更新排行榜的信息、以及完成讀者的圖書借閱與歸還。圖書管理系統(tǒng)的系統(tǒng)流程圖如圖3-6所示。</p><p>  圖3-6 圖書管理系統(tǒng)的流程圖</p><p>  4 數(shù)據(jù)總體結(jié)構(gòu)設(shè)計</p><p>  4.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p&g

61、t;  數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計是在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。這個階段不用考慮所采用的數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)類型、機器類型等問題。這階段可用的工具很多。用的最多的是E-R圖(Entity-Relation,實體-關(guān)系圖),另外還有許多計算機輔助工具(Computer Aided Software Engineering, CASE)可以幫助進行設(shè)計。本系統(tǒng)采用了E-

62、R圖的方法進行數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計。E-R圖是描述數(shù)據(jù)實體關(guān)系的一種直觀描述工具。這種圖中有:</p><p>  (1)實體:用方框表示,方框內(nèi)為實體的名稱。</p><p>  (2)實體的各種屬性:用橢圓表示,橢圓內(nèi)為屬性名稱。使用線段將其和響應(yīng)的實體連接起來。</p><p>  (3)實體之間的聯(lián)系:用菱形表示,菱形內(nèi)為聯(lián)系的名稱。</p>&

63、lt;p>  實體和實體之間的聯(lián)系較多,比較常見的聯(lián)系有l(wèi):1,l:N和M:N這三種。</p><p>  4.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p>  概念結(jié)構(gòu)是獨立于實際數(shù)據(jù)模型的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進行數(shù)據(jù)庫應(yīng)用的設(shè)計。也就是要將概念上的結(jié)構(gòu)轉(zhuǎn)化為數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)模型。</p><p>  第一種轉(zhuǎn)化是將實體轉(zhuǎn)化為關(guān)系表。

64、這種轉(zhuǎn)化較簡單,需要將實體的屬性定義為表的屬性即可。</p><p>  第二種轉(zhuǎn)化是聯(lián)系的轉(zhuǎn)化。即將各個實體之間的聯(lián)系轉(zhuǎn)化為表格之間的關(guān)系,如外部鍵的定義。</p><p>  在上面工作的基礎(chǔ)上歸納出人員管理數(shù)據(jù)庫表格的組成之間的聯(lián)系等等。該數(shù)據(jù)庫系統(tǒng)具有以下方面的特點:</p><p>  結(jié)構(gòu)合理,對一個人員建立多條記錄。</p><p&

65、gt;  所建立的數(shù)據(jù)冗余度小,獨立性強。</p><p>  建檔、修改、查詢、統(tǒng)計快速而準確。</p><p>  保密性好、可靠性好。 </p><p>  圖書管理系統(tǒng)中要有圖書,圖書是圖書管理系統(tǒng)中密不可分的部分,因此要創(chuàng)建一圖書信息實體,用來保存圖書的詳細信息。圖書信息實體屬性圖如圖4-1所示。</p><p>  圖4-1 圖

66、書信息實體屬性圖</p><p>  讀者是圖書管理系統(tǒng)重要組成部分,這里創(chuàng)建了一個讀者信息實體,用來存儲讀者的詳細信息。讀者信息實體E-R圖如圖4.2所示。</p><p>  圖4-2 讀者信息實體屬性圖</p><p>  圖書的借閱和歸還是圖書管理系統(tǒng)中的一項重要的環(huán)節(jié),開發(fā)圖書管理系統(tǒng)就是為了方便讀者對圖書的借閱和歸還,因此要建立一個圖書借還實體,用來保

67、存讀者對圖書的借閱和歸還的詳細信息。圖書的借閱和歸還實體屬性圖如圖4-3所示。</p><p>  圖4-3 讀者借還實體屬性圖</p><p>  圖書管理系統(tǒng)為了增加系統(tǒng)的安全性,管理員只有在系統(tǒng)登陸模塊驗證通過后才能進入管理員的操作界面,因此套在數(shù)據(jù)庫中創(chuàng)建一個存放登錄用戶信息的管理員實體。管理員實體屬性圖如圖4-4所示。</p><p>  圖4-4 管

68、理員實體屬性圖</p><p>  4.3 圖書管理系統(tǒng)的系統(tǒng)E-R圖</p><p>  圖書管理系統(tǒng)的系統(tǒng)E-R圖如圖4-5所示。</p><p>  圖4-5 圖書管理系統(tǒng)的系統(tǒng)E-R圖</p><p>  4.4 數(shù)據(jù)表設(shè)計</p><p>  本系統(tǒng)使用的數(shù)據(jù)庫管理系統(tǒng)為MySQL5.0。數(shù)據(jù)庫中的表有

69、管理員信息表、圖書信息表、讀者信息表、管理員權(quán)限表、圖書借閱歸還表等。</p><p>  圖書管理員基本信息表tb_admin,如表4-6所示。</p><p>  表4-6 tb_admin(管理員)表 </p><p>  讀者詳細信息表tb_reader,如表4-7所示。</p><p>  表4-7 tb_reader(讀者信息

70、)表</p><p>  圖書詳細信息表tb_bookkifo,如表4-8所示。</p><p>  表4-8 tb_bookkifo(圖書信息)表</p><p>  圖書借閱和歸還信息表tb_borrowandback,如表4-9所示。</p><p>  表4-9 tb_borrowandback(圖書借閱和歸還信息)表</p

71、><p>  權(quán)限信息表tb_purview,如表4-10所示。</p><p>  表4-10 tb_purview(權(quán)限信息)表</p><p>  5 圖書管理系統(tǒng)詳細設(shè)計</p><p>  5.1 系統(tǒng)流程分析</p><p>  根據(jù)開發(fā)圖書管理系統(tǒng)的需求分析,本系統(tǒng)設(shè)計了三種用戶,分別為系統(tǒng)管理員、教師

72、和學(xué)生。</p><p>  系統(tǒng)要求有系統(tǒng)管理員用戶,我們設(shè)定系統(tǒng)管理員,當系統(tǒng)管理員使用帳戶登錄后,需要查看有關(guān)圖書的一系列的信息,管理員可以通過系統(tǒng)導(dǎo)航菜單進入讀者管理界面、圖書管理界面、圖書借還界面、系統(tǒng)查詢界面、排行榜界面,在讀者界面中,管理員添加和修改學(xué)生或教師信息、用戶可以查看自己信息,在圖書管理界面管理員可以添加和修改圖書信息、用戶可查看圖書,在圖書借還界面完成讀者借書還書的操作,系統(tǒng)查詢界面管理

73、員可以查看借出去的圖書信息及庫存的信息、用戶可以查找自己的所需的圖書,排行榜界面主要是可以讓用戶知道哪些圖書受到讀者的喜愛。讀者(老師和學(xué)生)使用讀者帳號登陸系統(tǒng)后,可以查詢自己所需要的圖書的信息、也可以查詢自己個人的基本信息及圖書的借還信息,還能查看排行榜的信息。讀者的借書和還書過程是通過管理員完成的。</p><p>  5.2 主要模塊的運行</p><p>  5.2.1 登陸

74、界面</p><p>  當用戶輸入用戶名、密碼,系統(tǒng)自動將輸入的信息和相關(guān)數(shù)據(jù)表中的內(nèi)容進行比較,如果該用戶輸入的內(nèi)容和數(shù)據(jù)表中的內(nèi)容相符,則通過驗證,此次登錄成功;否則登錄失敗。比較的過程是由瀏覽器將指令,數(shù)據(jù)發(fā)送到Web服務(wù)器,Web服務(wù)器通過對數(shù)據(jù)庫進行查詢將結(jié)果返回到瀏覽器,從而端顯示成功的消息,用戶只有成功登陸系統(tǒng)后才能進行一系列的操作,如下圖5-1所示。</p><p>  

75、5-1 圖書管理系統(tǒng)登陸界面</p><p>  5.2.2 圖書信息管理模塊</p><p>  圖書信息管理模塊主要分為查看圖書信息頁面和添加修改圖書信息頁面,用戶可以在查看圖書信息頁面查看圖書的基本信息,管理員也可以看這些信息,并且可以通過單擊“添加圖書信息”這個超級鏈接或集合列表中的“詳情”超級鏈接轉(zhuǎn)到添加或刪除圖書信息界面,并在該頁中添家或修改圖書信息,如圖5-2與5-3所示

76、。</p><p>  圖5-2 查看圖書信息界面</p><p>  圖5-3 添家或修改圖書信息界面</p><p>  圖書信息管理模塊的實現(xiàn),主要是使用了Hibernate框架操作數(shù)據(jù)庫技術(shù)。</p><p>  Hibernate,通過對jdbc進行封裝,對 java類和關(guān)系數(shù)據(jù)庫進行mapping,實現(xiàn)了對關(guān)系數(shù)據(jù)庫的面向?qū)ο?/p>

77、方式的操作,改變了傳統(tǒng)的jdbc + sql操作數(shù)據(jù)的方式,從而使開發(fā)人員可以話更多精力進行對象方面的開發(fā)。其優(yōu)點并不只是簡化了數(shù)據(jù)庫操作,更有價值的是對不同的數(shù)據(jù)庫提供了統(tǒng)一操作的接口,使應(yīng)用程序的跨數(shù)據(jù)庫開發(fā)成為可能。</p><p>  5.2.3 圖書借還信息模塊</p><p>  圖書借還管理模塊主要分為圖書借閱頁面和圖書歸還頁面,用戶可以在通過這個模塊查看圖書的借閱和歸還信

78、息。管理員可以在圖書通過這個模塊來完成讀者借和還書的操作,如圖5-4與5-5所示。</p><p>  圖5-4 圖書的借閱管理</p><p>  圖5-5 圖書歸還管理</p><p>  5.3 系統(tǒng)開發(fā)的遇到的相關(guān)問題及解決</p><p>  5.3.1 圖書管理系統(tǒng)索引 </p><p>  圖書管

79、理系統(tǒng)開發(fā)中存在大量的數(shù)據(jù)和信息檢索,怎樣更好的檢索數(shù)據(jù)和信息操作是保證檢索速度的提高和數(shù)據(jù)的分頁顯示,主要考慮了以下幾個方面:</p><p>  (1)設(shè)計邏輯結(jié)構(gòu)時充分考慮冗余量和可處理性兩方面的要求,在接受冗余量的提下,盡量減少表的連接操作。</p><p>  (2)關(guān)系的大小對查詢的影響也是很大的,因此為了提高數(shù)據(jù)庫的查詢速度,減小系的大小和數(shù)據(jù)量也是必要的。</p>

80、;<p>  (3)建立合理的索引結(jié)構(gòu)。索引相當于一個映射機構(gòu),將鍵值轉(zhuǎn)換成相對應(yīng)的</p><p>  記錄地址,形成索引文件。</p><p>  索引設(shè)計是數(shù)據(jù)庫物理設(shè)計的基本問題,也是較困難的問題,建立索引可以極大地提高系統(tǒng)的查詢速度,但是同時做Insert、Update、Delete操作時會降低速度,因為做這些操作的同時需要更新索引,所以不能對數(shù)據(jù)庫中所有的表都建立

81、索引。比如滿足下列條件之一的不易建立索引:不出現(xiàn)或很少出現(xiàn)的屬性或表、屬性分布嚴重不均的屬性、經(jīng)常更新的屬性或表、過長的屬性、太小的表等。</p><p>  滿足下列條件之一的可以考慮建立索引:主鍵和外鍵都建立索引、對于以讀為主或只讀的表,只要需要,且存儲空間允許,可以減少連接開銷、對于等值查詢(即查詢條件以等號為比較符),最好建立索引、對查詢范圍(即查詢條件>,<,≤,≥為比較符),最好建立索引、

82、有些查詢可以由檢索直接得到結(jié)果,不必訪問數(shù)據(jù)塊。</p><p>  根據(jù)實際需要,讀者信息表,圖書信息表,圖書借還信息表,權(quán)限信息,管理員信息表等都建立索引,合理使用緩沖區(qū)。</p><p>  5.3.2 如何驗證輸入的字符串</p><p>  在圖書管理系統(tǒng)的開發(fā)過程中,需要對一些輸入的字符串進行驗證,例如金額、電話號碼、E-mail等,由于許多模塊都需要

83、用到這些驗證,因此可以將其寫入到一個公共JS腳本中然后在其他的頁面中直接調(diào)用即可。JS中對字符串進行驗證時,十分的方便快捷,減少服務(wù)器與客戶端交互的過程,在客戶端輕松的解決,要使用正則表達式驗證輸入的字符串,如驗證輸入的字符串是否為E-mail的地址格式的實現(xiàn)方法。代碼如下:</p><p>  驗證輸入為Email</p><p>  if(formname.email.value!=f

84、ormname.email.value.match(/^\w +[@]\w +[.][\w.] +$/)) </p><p><b>  {</b></p><p>  alert("您的電子郵件格式錯誤!"); </p><p>  formname.email.focus(); </p><p>

85、  return false; </p><p><b>  }</b></p><p>  5.3.3 自動計算圖書歸還日期</p><p>  在圖書管理系統(tǒng)運行中會常常遇到這樣的問題:在借閱圖書時,需要自動計算圖書的歸還日期,而這個日期又不是固定不變的,它是需要根據(jù)系統(tǒng)日期和數(shù)據(jù)表中保存的各類圖書的最多借閱天數(shù)來計算的,即圖書歸還

86、日期=“系統(tǒng)日期”+“最多借閱天數(shù)”。因此本系統(tǒng)是這樣解決問題的:首先獲取系統(tǒng)時間,然后從數(shù)據(jù)表中查詢出該類圖書最多借閱天數(shù),最后計算歸還日期。計算方法如下:</p><p>  首先取出所借圖書的最多借閱天數(shù),然后根據(jù)圖書的最多借閱天數(shù),使用getMaxDay()方法返回一個int值,最后使用當前時間與先返回的Timespan時間間隔相加。</p><p>  自動計算圖書歸還日期的關(guān)鍵

87、代碼如下:</p><p><b>  //獲得當前日期</b></p><p>  SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-dd");</p><p>  Calendar c = Calendar.getInstance();</p><

88、p>  //獲得最多借閱天數(shù)</p><p>  int days = getMaxDay();</p><p>  //增加圖書借閱天數(shù)</p><p>  c.add(Calendar.DAY_OF_MONTH, days);</p><p>  //獲得圖書歸還日期</p><p>  String bor

89、rowandbackmanage = time.format(c.getTime());</p><p>  5.3.4 系統(tǒng)登陸驗證碼的實現(xiàn)</p><p>  在學(xué)校圖書管理系統(tǒng)的開發(fā)過程中,怎么樣防止某些人利用某些惡意的軟件對圖書管理系統(tǒng)進行惡意的登陸來攻擊系統(tǒng),增加圖書管理系統(tǒng)的安全性是一個重要的問題。在圖書管理系統(tǒng)的登陸模塊中加入一個驗證碼的功能,即用戶除了要輸入帳號和密碼還要

90、輸入系統(tǒng)為用戶提供的驗證碼。驗證碼可以很好的解決了怎樣防止惡意用戶利用惡意軟件對系統(tǒng)頁面的瘋狂提交、以及暴力破解密碼進行登陸的問題。因此,設(shè)置一個隨機函數(shù)在數(shù)字0~9和英文字母A~Z中隨機抽取四個,在用戶打開登陸界面的時候,系統(tǒng)通過隨機生成器隨機生成4個數(shù)字或字母或數(shù)字加字母存放在緩存內(nèi),并出現(xiàn)在界面上順序是隨機的,當用戶登陸時輸入的驗證碼要與緩存中的進行對比符合就進入,不符合就不能登陸。系統(tǒng)在提供驗證碼時候要加入一些干擾的條件的,不過

91、這些人的肉眼是很容易分辨,但機器人程序不能分辨,很好的防止某人利用機器人程序?qū)ο到y(tǒng)的惡意操作增加了系統(tǒng)的安全性。驗證碼實現(xiàn)的關(guān)鍵代碼如下:</p><p>  <input name="rand" type="text" style="width:40px; height:20px;" onkeydown="if(event.keyCod

92、e==13)MM_submit();" /> <img src="image.jsp" border="1" align="absmiddle" /></p><p>  Image.jsp頁面</p><p>  <%@ page contentType="image/jpeg&quo

93、t;%></p><p>  <%@page import="javax.imageio.*,com.lilosoft.util.VerifyImage"%></p><p><b>  <%</b></p><p>  response.setDateHeader("Expires&quo

94、t;,-1000);</p><p>  //response.setContentType("image/jpeg");</p><p>  response.setHeader("Pragma","No-cache");</p><p>  response.setHeader("Cache-

95、Control","no-cache");</p><p>  response.setDateHeader("Expires",0);</p><p>  VerifyImage vb=VerifyImage.creatInstance();</p><p>  ImageIO.write(vb.image,&qu

96、ot;JPEG",response.getOutputStream());</p><p>  session.setAttribute(VerifyImage.VerifyNo,vb.sRand);</p><p>  response.flushBuffer();</p><p>  out.clear();</p><p> 

97、 out = pageContext.pushBody();</p><p><b>  %></b></p><p>  //VerifyImage 驗證碼類文件</p><p>  import java.awt.Color;</p><p>  import java.awt.Font;</p>

98、<p>  import java.awt.Graphics;</p><p>  import java.awt.Image;</p><p>  import java.awt.image.BufferedImage;</p><p>  import java.util.Random;</p><p><b> 

99、 /**</b></p><p>  * @author To change the template for this generated type comment go to</p><p>  * Window>Preferences>Java>Code Generation>Code and Comments</p>

100、<p><b>  */</b></p><p>  public class VerifyImage{</p><p>  public String sRand="";</p><p>  public BufferedImage image=null;</p><p>  publ

101、ic String getSRand(){</p><p>  return sRand;</p><p><b>  }</b></p><p>  public BufferedImage getImage(){</p><p>  return image;</p><p><b>

102、;  }</b></p><p>  private VerifyImage(){</p><p><b>  }</b></p><p>  public static final String VerifyNo="VerifyNo";</p><p>  public static

103、 VerifyImage creatInstance(){</p><p>  VerifyImage vi=new VerifyImage();</p><p>  // 在內(nèi)存中創(chuàng)建圖象</p><p>  int width=40,height=17;</p><p>  vi.image=new BufferedImage(width

104、,height,BufferedImage.TYPE_INT_RGB);</p><p>  // 獲取圖形上下文</p><p>  Graphics g=vi.image.getGraphics();</p><p><b>  // 生成隨機類</b></p><p>  Random random=new Ran

105、dom();</p><p><b>  // 設(shè)定背景色</b></p><p>  g.setColor(getRandColor(200,250));</p><p>  g.fillRect(0,0,width,height);</p><p><b>  // 設(shè)定字體</b></p

106、><p>  g.setFont(new Font("Times New Roman",Font.PLAIN,12));</p><p><b>  // 畫邊框</b></p><p>  // g.setColor(new Color());</p><p>  //g.drawRect(0,0,wi

107、dth-1,height-1);</p><p>  // 隨機產(chǎn)生155條干擾線,使圖象中的認證碼不易被其它程序探測到</p><p>  g.setColor(getRandColor(160,200));</p><p>  for(int i=0;i<155;i++){</p><p>  int x=random.nextIn

108、t(width);</p><p>  int y=random.nextInt(height);</p><p>  int xl=random.nextInt(12);</p><p>  int yl=random.nextInt(12);</p><p>  g.drawLine(x,y,x+xl,y+yl);</p>

109、<p><b>  }</b></p><p>  // 取隨機產(chǎn)生的認證碼(4位數(shù)字)</p><p>  for(int i=0;i<4;i++){</p><p>  String rand=String.valueOf(random.nextInt(10));</p><p>  vi.sRand

110、=vi.sRand+""+rand;</p><p>  // 將認證碼顯示到圖象中</p><p>  g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));// 調(diào)用函數(shù)出來的顏色相同,可能是因為種子太接近,所以只能直接生成</p&

111、gt;<p>  g.drawString(rand,9*i+3,14);</p><p><b>  }</b></p><p><b>  // 圖象生效</b></p><p>  g.dispose();</p><p>  // com.et.util.Log.write(&

112、quot;sRand======"+sRand);</p><p>  return vi;</p><p><b>  }</b></p><p>  private static Color getRandColor(int fc,int bc){// 給定范圍獲得隨機顏色</p><p>  Random

113、 random=new Random();</p><p>  if(fc>255)</p><p><b>  fc=255;</b></p><p>  if(bc>255)</p><p><b>  bc=255;</b></p><p>  int r=

114、fc+random.nextInt(bc-fc);</p><p>  int g=fc+random.nextInt(bc-fc);</p><p>  int b=fc+random.nextInt(bc-fc);</p><p>  return new Color(r,g,b);</p><p><b>  }</b&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論