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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  第1章 緒論</b></p><p><b>  1.1 引言</b></p><p>  Internet已經(jīng)成為人們生活、工作、學習越來越離不開的平臺。Web技術已經(jīng)不在局限于單純地提供信息服務,而是日益成為一個操作平臺,為用戶提供強大的服務功能。例如網(wǎng)上電子商務、社會信息數(shù)據(jù)庫等。網(wǎng)絡實現(xiàn)了遠程通訊,人們能夠通

2、過計算機網(wǎng)絡進行電子郵件的發(fā)送,召開網(wǎng)絡會議,網(wǎng)上購物,甚至坐在家里就可以上大學(網(wǎng)上教育)。網(wǎng)絡有巨大的潛力待我們去開發(fā)與探索。因此,基于B/S體系架構創(chuàng)建這個校友網(wǎng)站,緊跟行業(yè)發(fā)展,滿足人們生活、學習的需要。</p><p>  建立一個基于B/S架構的校友錄,實現(xiàn)信息網(wǎng)絡化。通過較豐富的功能將 Web的技術特點體現(xiàn)出來。該系統(tǒng)可供包括在校、離校、以及游客登錄使用。登錄者可以查詢信息或者發(fā)布信息,也可以通過此

3、網(wǎng)站與朋友聯(lián)系,并且還能夠創(chuàng)建虛擬班級等功能。系統(tǒng)中班級管理為必不可少的模塊項,主要是為了安全有效地存儲和管理登錄網(wǎng)站的用戶的信息,賦予管理員特定的權限,可以對用戶進行分類,添加,刪除,修改等。方便網(wǎng)站的管理與維護。</p><p>  要實現(xiàn)這樣的功能,離不開后臺數(shù)據(jù)庫的支持。用戶驗證信息,收集到的用戶點擊信息,分析得出的關聯(lián)規(guī)則表等大量的數(shù)據(jù)都由數(shù)據(jù)庫管理系統(tǒng)管理。本文中數(shù)據(jù)庫服務器端采用了Oracle作為后

4、臺數(shù)據(jù)庫,以先進的JDBC技術與數(shù)據(jù)庫連接,結合SQL語句處理對用戶分類,添加,刪除,修改等操作,使Web與數(shù)據(jù)庫緊密聯(lián)系起來。</p><p>  整個個性化頁面生成系統(tǒng)主要由使用JSP技術開發(fā)實現(xiàn)個性化Web頁面生成和JS結合JavaBeans技術實現(xiàn)組件重用兩部分組成。</p><p>  整個系統(tǒng)結構如圖1-1所示。</p><p>  圖1-1 系統(tǒng)結構圖

5、 </p><p>  本文作者主要完成客戶端,Web服務器端應用程序和數(shù)據(jù)庫的制作,實現(xiàn)網(wǎng)上虛擬班級的創(chuàng)建,管理員注冊/登陸、班級管理員對用戶進行分類,添加,刪除,修改等功能。實現(xiàn)與完善整個基于B/S校友錄網(wǎng)站的組織建立和測試工作。</p><p><b>  1.2 背景</b></p><p>  1.2.1 B/S模型的優(yōu)點</p

6、><p>  幾乎沒有限制的客戶端訪問和極其簡單化的應用程序部署和管理是B/S模型的優(yōu)勢所在。它和C/S模型比較優(yōu)點極為突出。</p><p>  兩層技術模型(Two-Tier Architecture)是指客戶機直接與服務器交流,沒有其他服務介入的技術模型。對用戶量在12—100的局域網(wǎng)環(huán)境中,兩層模型的確是個不錯的方案。由于該模型中,所有的用戶連接都是被保持的,也就是說即使在空閑狀態(tài),連

7、接依然存在。所以,用戶的并發(fā)請求數(shù)量有限的。為了解決這個限制,使得成千上萬的用戶可以被無顧慮地添加,我們最好選用三層模型。</p><p>  B/S結構,即Browser/Server(瀏覽器/服務器)結構,是隨著Internet技術的興起,對C/S結構的一種變化或者說是改進的結構。用戶界面完全通過瀏覽器實現(xiàn),一部分事務邏輯在前端實現(xiàn),但是主要事務邏輯在服務器端實現(xiàn),形成三層結構,是一種全新的軟件系統(tǒng)構造技術。

8、B/S模型結構圖如下所示:</p><p>  圖1-2 B/S模型結構圖</p><p>  從上圖可見 這種結構的一個重要的特點是,用戶可以完全不需要安裝客戶端軟件,當然也不需要擔心任何軟件升級和不兼容等任何客戶端所遇到的問題。</p><p>  相比之下,B/S模型的優(yōu)點顯而易見,更適合這個網(wǎng)站的構建,有利于網(wǎng)站的維護和擴充。</p><

9、;p>  1.2.2 JSP技術發(fā)展背景</p><p>  Web技術的迅猛發(fā)展正推動Internet上信息服務類的進步。WWW服務的基礎是HTML語言。這個系統(tǒng)模塊中用到的JSP技術是在HTML語言的基礎上使用腳本語言對網(wǎng)頁的對象模型進行編程。JSP全稱JavaServerPages,它是由Sun Microsystems公司提出、許多公司參與建立的一種動態(tài)網(wǎng)頁技術標準。它誕生在1999年6月1日。目前

10、國內外已經(jīng)在廣泛地使用JSP。隨著JAVA語言得到普及,越來越多的公司開始關注JSP的前景。</p><p>  傳統(tǒng)的動態(tài)網(wǎng)頁制作包括CGI、ASP、JSP三種,而JSP具有明顯的優(yōu)勢。使用CGI-BINJ接口是一個最早的動態(tài)WEB頁面問題的解決方案。缺點,CGI程序必須從CGI接口讀入一長串的字符串,再從字符串中取得所需要的數(shù)據(jù)并加以處理。過程十分繁瑣。另一個缺點,除了Perl是解釋語言外,其他都是編譯式的語

11、言。每次修改后,都必須重新編譯一次,這給開發(fā)人員帶來麻煩,增加了工作量。ASP和JSP都能取代CGI使網(wǎng)站建設和發(fā)展變得簡單快捷。盡管JSP技術和ASP在許多方面都有相似的,但仍然存在很多不同之處,其中最本質上的區(qū)別在于:兩者是來源于不同的技術規(guī)范組織,其實現(xiàn)的基礎,WEB服務器平臺要求不相同。</p><p>  1)作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。一次寫入,之

12、后,可以運行在任何具有符合JavaTM語法結構的環(huán)境。取代之過去單一平臺開發(fā)。 </p><p>  ASP主要工作環(huán)境是微軟的IIS應用程序結構,又因Activex對象具有平臺特性,所以ASP技術不能很容易地實現(xiàn)在跨平臺的WEB服務器的工作。</p><p>  2)從開發(fā)人員的角度來看其區(qū)別在于:ASP僅支持組件對象模型COM,而JSP技術提供的組件都是基于JavabeansTM技術或

13、JSP標簽庫。</p><p>  3)JSP標簽可擴充性。JSP技術能夠使用開發(fā)者擴展JSP標簽,JSP開發(fā)者能定制標簽庫,減少對腳本語言的依賴</p><p>  4)生成可重用的組件。JSP基于組件的技術方法加速了總體開發(fā)過程。 JSP組件(Javabeans,或定制的JSP標簽)是跨平臺可重用的。Javabeans組件可以訪問數(shù)據(jù)庫,并能以分布式系統(tǒng)模式工作于UNIX和WINDOW

14、S平臺。</p><p>  5)易于維護性。 基于JSP技術的應用程序比基于ASP的應用程序易于維護和管理。JSP突出的組件技術使修改內容而不影響邏輯或修改邏輯而不影響內容變得很容易實現(xiàn)。</p><p>  如上的比較不難看出,JSP技術編寫的程序運用要更加靈活,可擴展性更強。</p><p><b>  第2章 需求分析</b></

15、p><p><b>  2.1 任務描述</b></p><p>  系統(tǒng)模塊的設計應該遵循整個系統(tǒng)總體設計思路。即基于B/S模型構建校友錄。系統(tǒng)的總體設計應該是提供給上網(wǎng)瀏覽者一個效率高,能容豐富的網(wǎng)絡空間。包括用戶可以在線聊天,上傳下載圖片,網(wǎng)上購物等種種功能。</p><p>  其中校友錄中必不可少的主體模塊之一就是網(wǎng)上虛擬班級的創(chuàng)建,它將

16、提供的是一個互動的虛擬空間。班級作為一個整體包含了許多的個體,用戶作為班級的個體可以在班級范圍能有自己的行為。與其相關涉及到班級的長期維護和管理等功能。班級管理員充當維護者這個角色,他可以將班級成員組織在一起,而且擁有班級管理功能的使用權。而針對用戶將使用到的功能和特點,將此系統(tǒng)模塊劃分為班級注冊、管理員信息注冊、管理員權限操作(包括:班級成員的刪除、班級的刪除、更改班級名稱、添加班級管理員、班級留言等),數(shù)據(jù)庫設計等幾個子模塊。那么系

17、統(tǒng)功能的使用者應該是班級管理員,所有的功能設計都應該以管理員的權限為核心。此處管理員權限的功能設計定要引用到大量的數(shù)據(jù)庫操作,這就需要考慮到為虛擬班級分配系統(tǒng)存儲空間,建立數(shù)據(jù)庫表。那么,選擇數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫用戶和表,建立與數(shù)據(jù)庫的連接,使用SQL語言操作數(shù)據(jù)庫就是系統(tǒng)后臺設計圍繞的主體。能否將系統(tǒng)的前后臺合理有效的關聯(lián)是整體系統(tǒng)模塊成功的關鍵。</p><p><b>  2.2 用戶特點</

18、b></p><p>  系統(tǒng)應該圍繞著用戶特點設計。管理員有權將普通班級成員升級為班級管理員,協(xié)調日常工作。有權將班級管理員降級為普通班級成員,將違反網(wǎng)站用戶協(xié)議的,對班級造成不良影響的普通班級成員從本班級中除名。有權將班級的名稱進行合理更改,使其更容易查詢。有義務定期維護班級校友錄,發(fā)展班級成員,使舊時的班級重新成為一個整體。以便參加網(wǎng)站為校友們不定期舉辦的豐富多彩的活動,發(fā)布班級通知等。遵守網(wǎng)站用戶協(xié)

19、議,管理班級成員不傳播任何非法的、傷害性的、淫穢等信息資料。有義務作為班級成員與網(wǎng)站之間的溝通紐帶,及時將雙方所需的信息進行溝通??梢詫⒆约旱乃袡嗬平唤o另一位班級成員。</p><p><b>  2.3 條件與限制</b></p><p>  此系統(tǒng)模塊的設計主要突出班級管理員的功能和特點,它與普通的用戶有很大的區(qū)別。系統(tǒng)雖然對所有用戶開放,但部分資料和功能只針

20、對班級管理員開放;新增用戶需要通過申請、注冊等方式獲得希望得到的權限和信息;如果不遵守網(wǎng)站用戶協(xié)議,或傳播任何非法的、淫穢等信息資料,將立即取消用戶服務帳號,并視情節(jié)的嚴重性付諸于法律。數(shù)據(jù)庫中要以班級名稱和用戶名為主鍵,這就要求用戶創(chuàng)建初始信息是必須填寫這兩項。為了確保用戶輸入數(shù)據(jù)的有效性并與數(shù)據(jù)庫字段設計相符,所以對用戶輸入的表單項也要做相應的約束。</p><p><b>  2.4 系統(tǒng)配置&l

21、t;/b></p><p>  2.4.1 Hardware (硬件)</p><p>  硬件環(huán)境(訪問者):建議用戶在力所能及的情況下采用較高配置的硬件資源。</p><p>  硬件環(huán)境(開發(fā)者):pentiumIII處理器,256M內存,10G磁盤空間。</p><p>  2.4.2 Software (軟件)</p&g

22、t;<p>  訪問者:IE、Netscape等瀏覽器。最好是IE瀏覽器,本網(wǎng)頁在IE瀏覽器下通過了測試。</p><p><b>  開發(fā)者:</b></p><p>  1)Operating System (操作系統(tǒng)):Windows2000/NT/XP</p><p>  2)Tools (工具):EditPlus 2,

23、DreamweaverMX</p><p>  3)Database (數(shù)據(jù)庫):Oracle8i</p><p>  4) Server (服務器) :ApacheTomcat/WebSphere</p><p>  5)Run Circumstance (運行環(huán)境) :安裝JDK1.4支持Java運行。</p><p>  6)Techn

24、ic (技術):前臺網(wǎng)頁的設計采用JSP技術制作。JSP網(wǎng)頁吸引人的地方之一就是能結合JavaBeans技術來擴充網(wǎng)頁中程序的功能。JSP程序實際上JSP元素、Java程序和HTML文檔的混合體,JSP以Java作為其腳本語言,幾乎繼承了Java語言的所有特點。</p><p><b>  2.5 編碼規(guī)范</b></p><p>  文件名用英文表示其功能,起到一

25、目了然的作用。</p><p>  文件歸類,以不同文件夾存放</p><p>  圖片——Lifeng\Image</p><p>  JSP ——Lifeng\JSP</p><p>  JavaBean——WEB-INF\classes\lifeng\works</p><p>  出錯信息頁的制作。用戶操作錯誤

26、時,返回出錯信息。</p><p><b>  第3章 系統(tǒng)設計</b></p><p><b>  3.1 模塊劃分</b></p><p>  此系統(tǒng)模塊要的功能是創(chuàng)建班級和班級管理員操作權限的實現(xiàn),圍繞著這個目標把系統(tǒng)制作劃分為登錄子模塊、創(chuàng)建班級子模塊、管理員權限子模塊和數(shù)據(jù)庫模塊。如圖3-1所示。首頁可以作為其它

27、功能項的一個向導,起連接的作用,而管理員權限子模塊又被細分為刪除功能子模塊、查詢功能子模塊、管理員班級留言功能塊。</p><p>  圖3-1 模塊劃分結構圖 </p><p>  登錄子模塊和創(chuàng)建班級子模塊在系統(tǒng)中的實現(xiàn)其功能對所有用戶可見,而刪除、查詢、管理員班級留言功能只針對身份被標識為管理員的用戶開放。</p><p><b>  3.2 設計模

28、式</b></p><p>  模塊1:用戶身份驗證設計。用戶進入該系統(tǒng),首先需要進行身份驗證。如果通過了身份驗證,則為合法用戶,同時其帳號和權限等資料將會保存在Session對象,Session對象儲存的信息是局部的,隨用戶不同而不同的。當用戶訪問系統(tǒng)的各個子系統(tǒng)時,系統(tǒng)自動從Session對象中獲取用戶的資料,而無須將用戶的資料作為請求方法、參數(shù)名、參數(shù)值追加到URL中。這樣可以避免用戶惡意修改U

29、RL中的值來非法訪問。</p><p>  Session對象中的變量設置:</p><p>  Session[“UserID”] 用戶帳號 </p><p>  Session[“Roles”] 用戶權限 </p><p>  模塊設計流程如圖3-2所示?!   ?lt;/p><p><b&g

30、t;  是否</b></p><p>  圖3-2 登錄驗證流程圖 </p><p>  用戶登錄這個過程是必須的,因為只有這樣才能從數(shù)據(jù)庫中得到用戶的帳號和權限。</p><p>  模塊2:創(chuàng)建班級功能的設計。通過了注冊后的用戶才可以創(chuàng)建新班。用戶創(chuàng)建時必須輸入合法的班級名稱和基本信息,班級名被設定為數(shù)據(jù)庫Class_table的主鍵,系統(tǒng)將判斷新

31、班級的名稱是否與數(shù)據(jù)庫中現(xiàn)有的記錄重復,如果重復就違反了主鍵唯一的原則,數(shù)據(jù)將不能夠被正確的輸入數(shù)據(jù)庫,所以要返回給用戶一個信息。否則,班級創(chuàng)建成功,創(chuàng)建者還需要補充用戶信息。</p><p>  此模塊的設計流程如圖3-3所示。</p><p><b>  是否</b></p><p><b>  是</b></

32、p><p><b>  否</b></p><p><b>  是</b></p><p>  圖3-3 創(chuàng)建班級流程圖 </p><p>  模塊3:查詢功能設計。提供給用戶查詢功能,方便使用者查找親友同學所屬哪個班級,還可以統(tǒng)計出目前班級擁有多少成員。此項功能是根據(jù)使用者輸入的關鍵字遍歷數(shù)據(jù)庫,查找

33、有無匹配的記錄。如果記錄存在將記錄輸出到用戶瀏覽端,否則返回一條用戶信息。例如,查詢姓名為‘李四’的人。</p><p>  模塊設計流程如圖 3-4所示。</p><p>  接口(否) 接口(是)</p><p>  ,計算機范文網(wǎng) www.jsjfw.net,</p><p>  圖3-4 查詢功能流程圖 </p>

34、<p>  模塊4:刪除功能設計。作為班級管理員應該有管理班級的能力,刪除功能的設計正是為班級管理員設置的管理功能之一。其中包括兩部分,一是刪除班級成員,二是刪除整個班級。這個功能的實現(xiàn)需要使用SQL語言判斷管理員所在的班級,遍歷數(shù)據(jù)庫中有無使用者欲刪除的記錄。如果記錄存在,將記錄刪除。否則,返回信息到用戶瀏覽端。例如把姓名為‘李四’的人刪除或刪除班級‘計算機一班’。</p><p>  模塊設計流程如

35、圖3-5所示。</p><p>  接口(否) 接口(是)</p><p>  圖3-5 刪除功能流程圖 </p><p>  3.3 數(shù)據(jù)庫安全及設計描述</p><p>  數(shù)據(jù)庫設計無疑是以上功能實現(xiàn)的基礎。制作數(shù)據(jù)庫表首先要確定實體的屬性和實體間的關系。數(shù)據(jù)庫要存儲所有的班級信息和用戶信息,這些信息是班級的屬性和用戶的屬性。一個班

36、級可以有若干的成員,也可以有一個以上的管理員。一個管理員只屬于一個班級。</p><p>  實體間關系如圖3-6所示。</p><p><b>  圖3-6 E-R圖</b></p><p>  角色設計初步將系統(tǒng)中的用戶角色分成三級,如表3-1所示 。</p><p><b>  表3-1 角色劃分<

37、/b></p><p>  權限設置使不同用戶對不同模塊有不同的操作權限。如表3-2所示。</p><p><b>  表3-2 權限設置</b></p><p>  學校名稱錄入用于錄入班級的名稱、類型,并自動生成唯一的ID號。ID號為長整型數(shù)字類型。 ID將根據(jù)班級錄入的順序,自動從1遞加上去。</p><p>

38、;<b>  3.4頁面設計</b></p><p>  客戶端頁面是用戶和服務器之間實現(xiàn)人機交互的一個介質。對它的制作要求簡潔大方,色彩搭配要協(xié)調。</p><p><b>  第4章 系統(tǒng)實現(xiàn)</b></p><p>  4.1模塊的詳細設計</p><p>  4.1.1 登錄機制</p

39、><p>  網(wǎng)頁中建立用戶登錄機制,為的是限制未經(jīng)過登錄的瀏覽者不能創(chuàng)建班級。讓用戶以帳號方式登錄網(wǎng)頁是一種可行的網(wǎng)頁管理方法。在這個系統(tǒng)模塊的后臺數(shù)據(jù)庫中建立USER_TABLE表,用來對用戶的登錄帳號和密碼加以保存。此處設置了用戶對象的session值。通過獲取session值,遍歷數(shù)據(jù)庫,可以確定用戶屬于哪個班級和用戶在班級中的身份。結構圖如 4-1所示。</p><p><b&

40、gt;  圖4-1 登錄機制</b></p><p>  表4-1是這個模塊的實現(xiàn)文件。</p><p><b>  表4-1 實現(xiàn)文件</b></p><p>  用戶若成功登錄,將把登錄的帳號和密碼寫入session對象。Session.setPutValue(“userName”,userName); Session.setP

41、utValue(“userPassword”,Password);</p><p>  4.1.2 創(chuàng)建班級</p><p>  班級創(chuàng)建是這個系統(tǒng)模塊的核心功能之一。系統(tǒng)通過在數(shù)據(jù)庫中遍歷用戶輸入的班級名來判斷班級的建立是否有效。使用腳本語言限制表單內的輸入方式,如果表單值為空,在用戶端輸出“班級名不能為空”。如下圖所示;</p><p>  圖4-2 創(chuàng)建班級頁

42、</p><p>  為了保證不重復創(chuàng)建班級,同時也防止數(shù)據(jù)庫沖突,在得到request.getParameter(“class_name”)時必須對數(shù)據(jù)庫遍歷。如果班級名已經(jīng)存在,返回信息“班級已經(jīng)存在”。此處將bean文件引入,做數(shù)據(jù)庫的連接工作,通過Insert語句把班級的屬性插入到數(shù)據(jù)庫中。</p><p>  <%@ page contentType="text/

43、html;charset=gb2312"%></p><p>  <%@ page import="java.sql.*"%></p><p>  <jsp:useBean id="RegisterBean" scope="page" class="lifeng.works.linkDB

44、 " /></p><p>  SQL條件查詢語句檢查表單中輸入的班級信息是否與數(shù)據(jù)庫中重復。</p><p>  String sql="select * from CLASS_TABLE where class_name='" + name1 + "'";</p><p>  ResultS

45、et rs = RegisterBean.executeQuery(sql);</p><p>  如果用戶輸入的班級名稱在數(shù)據(jù)庫中已存在,那么返回到register.jsp頁,得到session值。</p><p>  if(搜索到相同記錄) </p><p><b>  { </b></p><p><b&

46、gt;  關閉數(shù)據(jù)庫;</b></p><p>  session.putValue("register_message","班級已存在!");//設置返回信息。</p><p>  從新導回到創(chuàng)建頁面<% </p><p><b>  } else</b></p><

47、;p><b>  { </b></p><p>  創(chuàng)建成功,記錄存入數(shù)據(jù)庫;</p><p><b>  } </b></p><p>  此處從表單中取出客戶端的輸入值必須被轉換成與數(shù)據(jù)庫中字段類型相一致的類型,否則不能夠將出客戶端的輸入值正確存入數(shù)據(jù)庫。此子模塊使用的文件如下表所示。</p>&l

48、t;p><b>  表4-2 實現(xiàn)文件</b></p><p>  4.1.3 班級管理員的生成</p><p>  班級管理員這個角色起到對班級日常工作的維護和管理的作用,角色權限高于普通的班級成員,那么需要特定的屬性來標識管理員的身份。系統(tǒng)表中增加Admi字段,若為管理員此列不為空,否則此列為空。從圖4-3可以看出ADMI列不為空的都是班級管理員。</

49、p><p>  圖4-3 user_table表結構</p><p>  班級管理員也屬于這個班級的一個成員,將他們存放在一個表中可以節(jié)省系統(tǒng)表空間,減少數(shù)據(jù)冗余和表之間復雜的關聯(lián)。首位班級的創(chuàng)建者被系統(tǒng)默認成為該班級的管理員,他的session值被保留,班級建立成功的同時把他的登錄名存入class_table表的Admi字段中。</p><p>  4.1.4 刪除功

50、能的實現(xiàn)</p><p>  主要技術環(huán)節(jié)是如何有效地與數(shù)據(jù)庫連接,并通過使用SQL語句對數(shù)據(jù)庫進行操作。刪除班級成員和班級是管理員權限的一項重要功能。設計的實施如下所述。</p><p>  從表單中取得字符串,然后查詢數(shù)據(jù)庫有無與其相等的記錄。如果有,按下刪除鍵可以將其刪除,如果記錄不存在,返回用戶信息,并可以繼續(xù)重新操作。具體流程:if(表單為空)</p><p&

51、gt;<b>  { </b></p><p>  輸出班級成員數(shù)據(jù)庫表</p><p>  }else(不為空)</p><p><b>  { </b></p><p>  查詢數(shù)據(jù)庫中有無匹配的記錄</p><p>  String strSQL="sele

52、ct * from individual where zm='"+new String(zm.getBytes("8859_1"))+"'";</p><p>  rs=st.executeQuery(strSQL);</p><p><b>  輸出結果集</b></p><p&g

53、t;  if(!rs.next())//遍歷到數(shù)據(jù)庫末沒有匹配記錄</p><p><b>  { </b></p><p>  返回給用戶信息:沒找到“” </p><p><b>  }</b></p><p>  else(記錄存在)</p><p><b>

54、;  { </b></p><p>  執(zhí)行刪除,并刷新數(shù)據(jù)庫。</p><p>  String strDel="delete from individual where zm='"+new String(zm.getBytes("8859_1"))+"'";</p><p>

55、;  st.executeUpdate(strDel);</p><p>  rs=st.executeQuery("select * from individual");</p><p>  }//刪除后更新數(shù)據(jù)庫;查詢語句的執(zhí)行</p><p>  繼續(xù)操作:<A href=delete3.jsp>繼續(xù)刪除</A>&l

56、t;/p><p>  //自身連接,刷新后返回到自身。</p><p><b>  }</b></p><p><b>  關閉數(shù)據(jù)庫。</b></p><p>  刪除班級是判斷管理員屬與那個班級,通過user_table表中class_name屬性和class_table表中class_name屬性

57、把兩個表關聯(lián)起來。這樣班級管理員就只能刪除與他班級屬性相同的班級名和班級成員了。</p><p>  此處從表單中取出客戶端的輸入值必須被轉換成與數(shù)據(jù)庫中字段類型相匹配的類型,否則不能夠正確的進行數(shù)據(jù)庫遍歷。</p><p><b>  圖4-4 刪除頁</b></p><p>  4.1.5 查詢功能的實現(xiàn)</p><p&

58、gt;  主要技術環(huán)節(jié)是如何有效地與數(shù)據(jù)庫連接,并通過使用SQL語句對數(shù)據(jù)庫進行操作。如果用戶想要查找某人的信息或者想尋找某個班級中是否存在某人,那么這項功能正好滿足使用者的需要。設計思路是從表單中提取用戶輸入的字符,連接并查詢數(shù)據(jù)庫,如果查找到數(shù)據(jù)庫中存在相匹配的記錄,將其記錄輸出,否則返回一條用戶信息“不存在”。</p><p>  具體流程:if(表單為空)</p><p><

59、b>  { </b></p><p><b>  查詢數(shù)據(jù)庫表</b></p><p>  }else(不為空)</p><p><b>  { </b></p><p>  查詢數(shù)據(jù)庫中有無匹配的記錄</p><p>  String strSQL=&qu

60、ot;select * from individual where zm='"+new String(zm.getBytes("8859_1"))+"'";</p><p>  rs=st.executeQuery(strSQL);</p><p>  if(!rs.next())//遍歷到數(shù)據(jù)庫末沒有匹配記錄</p&

61、gt;<p><b>  { </b></p><p>  返回給用戶信息:沒找到“” </p><p><b>  }</b></p><p>  else(記錄存在)</p><p><b>  { </b></p><p>  執(zhí)行

62、查詢語句,并刷新數(shù)據(jù)庫。</p><p>  strSQL="select * from individual where zm='"+new String(zm.getBytes("8859_1"))+"'";</p><p>  ResultSet rs10 = st.executeQuery(strSQL);

63、//輸出結果集。</p><p><b>  }</b></p><p>  繼續(xù)操作:<A href=query.jsp>繼續(xù)查找</A></p><p>  //自身連接,刷新后返回到自身。</p><p><b>  } 關閉數(shù)據(jù)庫。</b></p>&l

64、t;p>  4.1.6 留言功能的實現(xiàn)</p><p>  此模塊中通過獲取管理員的session值來確定數(shù)據(jù)庫操作的對象。班級管理員可以使用這個功能在本班能留言。</p><p><b>  具體實現(xiàn):</b></p><p>  <%@ page contentType="text/html;charset=gb231

65、2"%></p><p>  <%@ page import="java.sql.*"%></p><p>  <%@ page import="java.io.*"%></p><p><b>  <%</b></p><p><

66、;b>  連接數(shù)據(jù)庫對象;</b></p><p>  String user_name2=(String)session.getValue("username");</p><p>  //取得管理員的session值;</p><p>  String Mytear= new </p><p>  S

67、tring(request.getParameter("MyTeAr").getBytes("8859_1"));</p><p><b>  //獲取表單值;</b></p><p>  st.executeUpdate("update user_table set talk='"+Mytear+&

68、quot;' where user_name='"+user_name2+"'");</p><p>  //將獲得的表單信息存儲到與session值對應的數(shù)據(jù)庫記錄中,獲取數(shù)據(jù)庫中user_name等于session值的留言記錄值;</p><p>  將結果集輸出到客戶端。</p><p><b>

69、  %></b></p><p>  此系統(tǒng)模塊使用的文件如表4-3所示。</p><p><b>  表4-3 實現(xiàn)文件</b></p><p>  4.1.7用戶權限確認</p><p>  當用戶點擊進入一個班級時,他是普通成員還是管理員,他應該有哪些操作權限,此時識別用戶身份具有非常重要的意義,

70、只有認清用戶的身份之后才能確定該用戶能夠執(zhí)行哪些操作。這也是本系統(tǒng)模塊設計的重要環(huán)節(jié)之一。功能實現(xiàn)使用了數(shù)據(jù)庫表關聯(lián)操作。首先取得用戶Session值,然后執(zhí)行如下語句:</p><p>  ResultSet rs=st.executeQuery("select class_table.class_name from class_table,user_table where</p>&l

71、t;p>  class_table.class_name='"+class_name+"'and class_table.admi=user_table.user_name");</p><p>  通過圖4-5和圖4-6的比較可以看到同一個用戶以不同身份進入兩個班級時,頁面的效果是不同的。被標識為管理員者才有使用刪除、留言等功能的特權。</p>

72、<p>  圖4-5 管理員登錄</p><p><b>  圖4-6 普通成員</b></p><p>  4.1.8 JSP對象的使用</p><p>  此系統(tǒng)實現(xiàn)多處使用了JSP的對象,如表4-4。</p><p>  表4-4 jsp對象</p><p>  4.1.9 技術要

73、點</p><p><b>  1)引用bean</b></p><p>  各功能模塊中需要頻繁的進行數(shù)據(jù)庫操作,如果每遇到要使用數(shù)據(jù)庫便建立一次鏈接將在一定程度上增大系統(tǒng)開銷,加大程序員的工作量,我們這里有效利用了JavaBean文件,使服務器事先建立數(shù)據(jù)庫鏈接對象,所有的數(shù)據(jù)操作都使用該鏈接,從而提高了服務器效率。具體做法以下將做描述。</p>&

74、lt;p><b>  2)操作數(shù)據(jù)庫</b></p><p>  表空間是數(shù)據(jù)庫得邏輯存儲設備,它把數(shù)據(jù)庫信息組織成物理存儲空間。每一個數(shù)據(jù)庫用戶都可以設置一個缺省空間。缺省表空間用于在用戶創(chuàng)建數(shù)據(jù)庫對象時(表或索引),如果沒有指定表空間時存放數(shù)據(jù)庫對象。創(chuàng)建用戶時,如果不加指定,用戶的缺省表空間為SYSTEM表空間。JSP與數(shù)據(jù)庫連接的時候,需要使用一個合法的用戶登錄數(shù)據(jù)庫。此系統(tǒng)模

75、塊在數(shù)據(jù)庫</p><p>  中建立用戶名為JSPUSER。使用控制命令:create user JSPUSER identified by JSPUSER; grant connect,resource to JSPUSER.建立并授予用戶JSPUSER權限。密碼為JSPUSER。</p><p>  一個訪問數(shù)據(jù)庫的程序段,對于不同的行為,要其執(zhí)行的SQL語句是不同的,其不同主要

76、表現(xiàn)在查詢、插入或更新時的參數(shù)不同,于是我們引用JAVA類:</p><p>  <%@page import= java.sql.*%> 將數(shù)據(jù)庫的查詢、更新方法定義在Bean中。</p><p>  在系統(tǒng)模塊中通過設置session值來確定應該操作數(shù)據(jù)庫中的哪條記錄,而且通過兩個表之間相同字段的關聯(lián)提高操作效率。</p><p>  4.1.10

77、Bean的使用</p><p>  JavaBean的價值體現(xiàn)在它的一系列屬性里,使用這些屬性可以訪問JavaBean的設置。用一個人來做類比,如果這個人是一個JavaBean,那么他的姓名、身份證號碼和地址就是這些屬性。JavaBean已經(jīng)做好了,你要做的事就是告訴JSP頁面它將要使用的bean的名稱,這可以通過<jsp:useBean>標記來實現(xiàn): <jsp:useBean id="

78、;localName" class=" lifeng.works.linkDB "" scope="application" />。 </p><p>  在這個系統(tǒng)模塊的設計過程中,把連接數(shù)據(jù)庫時需要多次復用連接驅動命令,數(shù)據(jù)庫操作的方法引入Bean中。實踐中真正體現(xiàn)了JSP與Bean結合的優(yōu)勢。Bean中定義了查詢(executeQuery),

79、更新方法(executeUpdate)。當JSP中執(zhí)行SQL語言操作數(shù)據(jù)庫時,將自動調用這兩個方法。</p><p>  4.2 數(shù)據(jù)庫的詳細設計</p><p>  4.2.1安裝驅動程序</p><p>  本系統(tǒng)模塊用JSP技術編寫,那么就必須借助與JDBC(Java DataBase Connectivity)來操作數(shù)據(jù)庫。JDBC是一組API(Applic

80、ation Programming Interface),即應用程序設計接口。JDBC共有四種類型:</p><p>  類型一,利用橋連接器(Bridge)的概念連接數(shù)據(jù)庫。類型二,運用由數(shù)據(jù)庫廠商提供的用于操作數(shù)據(jù)庫的API函數(shù)。類型三,這類驅動程序通過網(wǎng)絡協(xié)議與中間件連通,中間件負責轉換數(shù)據(jù)庫操作信息。類型四,這類驅動不通過任何中間件,而直接以Java數(shù)據(jù)庫驅動程序來執(zhí)行數(shù)據(jù)庫的訪問。</p>

81、<p>  相比之下,此系統(tǒng)選擇第三種類型的數(shù)據(jù)庫驅動。它的優(yōu)點更適合這個系統(tǒng)創(chuàng)建與數(shù)據(jù)庫的連接。</p><p>  Oracle自帶的JDBC驅動程序放在Oracle安裝目錄\Oracle81\jdbc\lib中。Java環(huán)境并不能自動找到該驅動程序。應用時可以在AUTOEXEC.BAT中設置如下:</p><p>  set classpath=c:\oracle\ora

82、81\jdbc\lib\classes111.zip;c:\oracle\ora81\jdbc\lib\classes12.zip;或者把驅動程序壓縮包復制到Apache Tomcat服務器下的class目錄中。</p><p><b>  4.2.2建立用戶</b></p><p>  JSP與數(shù)據(jù)庫連接的時候,需要使用一個合法的用戶登錄數(shù)據(jù)庫。此系統(tǒng)模塊在數(shù)據(jù)庫&

83、lt;/p><p>  中建立用戶名為JSPUSER。使用控制命令:create user JSPUSER identified by JSPUSER; grant connect,resource to JSPUSER.建立并授予用戶JSPUSER權限。密碼為JSPUSER。</p><p>  用戶的缺省表空間為SYSTEM表空間。</p><p>  4.2.

84、3 系統(tǒng)表結構</p><p>  本系統(tǒng)模塊建立兩個數(shù)據(jù)庫基本表。表CLASS_TABLE存放用戶創(chuàng)建班級時輸入的基本信息。包括字段:、學校、班級名稱、年級、Admi(管理員);表中字段class_name,class_year,Admi,設class_name為主鍵。表USER_TABLE存放管理員的注冊信息。包括字段:用戶登錄名、真實姓名、生日、工作單位、工作地、Email,Tel,Admi。如圖4-7、4

85、-8所示</p><p>  圖4-7 user_table表結構</p><p>  圖4-8 class_table表結構</p><p>  考慮到節(jié)省表空間,防止數(shù)據(jù)冗余和表之間關聯(lián)過于復雜,決定將所有的班級成員存放在一張表中,用字段ADMI標識管理員的屬性。</p><p>  4.2.4 操作數(shù)據(jù)庫</p><

86、p>  在執(zhí)行查詢動作之前,必須在程序中使用Connection對象的createStatement方法,建立Statement對象,以代表執(zhí)行的SQL語句。</p><p>  連接驅動,用戶登錄數(shù)據(jù)庫</p><p>  Class.forName("oracle.jdbc.driver.OracleDriver");</p><p>

87、  String m_url="jdbc:oracle:thin:@localhost:1521:lifengDB";</p><p>  String m_user="JSPUser"; //JSPUser為數(shù)據(jù)庫用戶名。</p><p>  String m_password="JSPUser"; //數(shù)據(jù)庫密碼JSPUs

88、er。</p><p>  Connection conDB=DriverManager.getConnection(m_url,m_user,m_password);</p><p>  建立Statement對象</p><p>  Statement st=conDB.createStatement();</p><p>  執(zhí)行查詢動

89、作,并將查詢結果以Resultset對象返回。</p><p>  Resultset rs = st.executeQuery("select * from banjizhuce");</p><p>  取得字段數(shù)據(jù)。使用ResultSet類的get方法,可以從ResultSet對象中,取得當前記錄中各個字段的數(shù)據(jù)。</p><p>  利

90、用while取得記錄集中的所有記錄。在程序中執(zhí)行數(shù)據(jù)庫查詢動作所得到 的查詢結果,相當于在程序中建立了一個虛擬數(shù)據(jù)工作表,既記錄集。當需要從</p><p>  這個虛擬數(shù)據(jù)工作表中取得記錄時,必須先將記錄指針移到該記錄上,然后利用ResultSet對象的get方法取得。此時必須利用ResultSet . next()方法,配合while循環(huán)移動記錄指針,逐條將數(shù)據(jù)從記錄中取出。當next()方法將指針移動到最后

91、一條之后時,返回false值。</p><p>  while (rs.next())</p><p><b>  { <tr></b></p><p>  <td><%=rs.getString("banjimingcheng")%></td></p><

92、p>  <td><%=rs.getString("nianji")%></td></p><p><b>  </tr> }</b></p><p>  關閉數(shù)據(jù)對象和鏈接對象</p><p>  public void jspDestroy()</p>&

93、lt;p><b>  {</b></p><p><b>  try</b></p><p>  {st.close();</p><p>  conDB.close();</p><p>  rs.close();</p><p><b>  }&l

94、t;/b></p><p>  catch(Exception ex)</p><p><b>  { </b></p><p>  System.out.println(ex.toString());</p><p><b>  }</b></p><p><

95、;b>  }</b></p><p>  4.2.5數(shù)據(jù)庫接口</p><p>  JDBC驅動程序連接數(shù)據(jù)庫是通過表4-5中的接口來完成的。所有的驅動程序提供java.sql.*的實現(xiàn)</p><p>  表4-5 JDBC驅動程序接口</p><p><b>  第5章 總結</b></p&g

96、t;<p>  經(jīng)過三個多月的調查、學習、研究和設計,系統(tǒng)的制作接近了尾聲。在這里我將系統(tǒng)設計做如下總結。</p><p>  1)本系統(tǒng)的功能已經(jīng)達到設計的要求。系統(tǒng)中各個模塊的功能均已實現(xiàn),為整體系統(tǒng)的構建奠定了基礎。</p><p>  2)系統(tǒng)模塊的功能可以被進一步擴展。例如,系統(tǒng)中還可以增加個人名片夾等類似的功能。系統(tǒng)的頁面可以設計的更加精美。</p>

97、<p>  3)系統(tǒng)中模塊劃分明確,模塊功能設計有較強的針對性。</p><p>  4)系統(tǒng)的設計遵循軟件開發(fā)的全過程,使我對軟件系統(tǒng)的開發(fā)過程有了更深刻的認識。</p><p>  5)設計體現(xiàn)出了所使用的編程技術的優(yōu)點,設計中結合了JavaBean。</p><p>  6)在系統(tǒng)的設計中能夠靈活運用JSP的對象技術,并且使用有效的SQL語言操作后

98、臺數(shù)據(jù)庫。</p><p>  軟件的設計沒有完美無缺的,這個系統(tǒng)在某些地方可能存在不足,還需要我們進一步的改進和完善。</p><p>  在這段時間里,我獲益非淺,不僅將所學的知識運用到實踐,而且更進一步學習了軟件開發(fā)技術,增強了JSP開發(fā)技術的語法基礎,能夠將其比較靈活地使用。以下是我個人制作中得出的一點見解</p><p>  如果查詢語句中有多個Selec

99、t且嵌套,如 </p><p>  public String getS(Statement stmt,String sql1,String sql2)</p><p><b>  {</b></p><p>  ResultSet rs=null;</p><p><b>  Try</b><

100、;/p><p><b>  {</b></p><p>  rs=stmt.executeQuery(sql1);</p><p>  while(rs.next())</p><p><b>  {</b></p><p>  ResultSet rs1=stmt.execut

101、eQuery(sql2)</p><p>  If(rs1.next())</p><p><b>  {</b></p><p>  String s1=rs.getString(1);</p><p>  String s2=rs1.getString(1);</p><p>  ......

102、........</p><p><b>  }}}</b></p><p>  catch(SQLException e){}</p><p>  return rs;</p><p><b>  }</b></p><p>  如果如上所述,兩個以上的Select 語句使

103、用一個Statment ,那么將出錯或者得出的結果不正確??梢允褂迷黾覵tatement 參數(shù)的方法解決,,以實現(xiàn)上述查詢功能,但是使用增加Statement 參數(shù)的方法畢竟是有局限的,如果嵌套層數(shù)增加,Statement 參數(shù)也許也得跟著增加,這樣對于程序的可擴展是不利的。</p><p>  另外,在獲取表單中值時,經(jīng)常需要進行字符串轉換,否則數(shù)據(jù)庫不能識別,只將字符存儲為亂碼。有時候還需要設置一個中間變量來

104、傳遞字符串的轉換。</p><p>  將這個作品投入使用是我們的期望,系統(tǒng)功能會在實踐中不斷的摸索,達到最佳的使用效果。</p><p><b>  第6章 展望</b></p><p>  本系統(tǒng)構建成功后將是一個非常實用的作品。隨著一屆畢業(yè)生即將離開校門,又一屆新生將走進大學。無論是在學校的學生,還是離校畢業(yè)生,他們都可以通過這個網(wǎng)絡虛擬

105、的世界重溫學生時代美好的時光。 正是類似此系統(tǒng)類型的網(wǎng)站的設計才拉近了人們的距離。人們的溝通娛樂不在局限在現(xiàn)實的世界。我們會繼續(xù)努力,爭取將作品投入使用。希望它能夠給用戶一個完美的使用空間。</p><p>  另外可擴展性也很強。因為這個作品是以JavaBean和JSP技術相結合制作的,它的優(yōu)點不言而預。JSP的標簽的可擴展性和Java的可重用、可擴展,移植性好的諸多特點奠定了這個作品擁有很大的擴充的潛力。這個

106、作品要想真正投入使用還有一點距離,系統(tǒng)功能的完善必須在實踐中不斷的摸索,還要根據(jù)使用中真實的需要和軟件開發(fā)所能達到的程度。</p><p>  網(wǎng)站中的功能還有很多可以擴充,例如,遠程通訊,個人的記事簿,等等。</p><p><b>  致謝</b></p><p><b> ??!</b></p><

107、p><b>  參考資料</b></p><p>  [1] 飛思科技產品研發(fā)中心 編著;《JSP應用開發(fā)祥解》電子工業(yè)出版社,2001年7月。</p><p>  [2] 楊鈺、盧銀娟、趙昊彤 等編著;《JSP網(wǎng)絡開發(fā)技術》人民郵電出版社,2002年1月。</p><p>  [3] Hans Bergsten 著;何健輝、許俊娟 譯;

108、《JSP設計》中國電力出版社,2001年1月。</p><p>  [4] 徐進明編著;《JSP網(wǎng)站開發(fā)技術》清華大學出版社,2002年6月。</p><p>  [5] 吳建平、尹霞、馮曉冬 編著;《JAVA程序設計語言》清華大學出版社。</p><p>  [6] [美]Herbert Schildt 著 張玉清、尚勇 等譯;《JAVA2參考大全》清華大學出版社

109、,2000年2月。</p><p>  [7] 北京博彥科技發(fā)展有限責任公司編著;《JAVA編程高手》北京大學出版社。</p><p>  [8] Cay S.Horstmann、Gary Cornell 著;李如豹、剛冬梅等譯?!禞AVA核心技術 I》2000年4月。</p><p>  [9] Joseph J.Bambara、Paul R.Allen著;《J2

110、EE技術內幕 》劉芳等譯;機械工業(yè)出版社。</p><p>  [10] 薩師煊、王珊編著;《數(shù)據(jù)庫系統(tǒng)概論》高等教育出版社。</p><p>  [11] 張瞿、張青、范穎、王繼誠 編著;《Oracle9i中文版基礎教程》清華大學出版社,2001年2月。</p><p>  [12] Java和JSP技術的中文教學網(wǎng)站。http://www.ibm.com.cn

溫馨提示

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

評論

0/150

提交評論