版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE41荊楚理工學(xué)院課程設(shè)計成果學(xué)院:____計算機工程學(xué)院_____________班級:10級軟件一班學(xué)生姓名:張潔朋學(xué)號:2010304040116設(shè)計地點(單位)_______A5-201___________________
設(shè)計題目:_________QQ空間系統(tǒng)_________________________完成日期:2012年11月1指導(dǎo)教師評語:____________________________________________________________________________________________________________________________________________________________________________________________________________________成績(五級記分制):________________教師簽名:_________________________摘要近些年來,隨著計算機的普及與發(fā)展,“Internet”一詞已經(jīng)讓我們不再感到陌生,隨著電子時代的到來,新的理念和結(jié)構(gòu)也在不斷的形成和完善,計算機網(wǎng)絡(luò)技術(shù)的發(fā)展對人類技術(shù)史的發(fā)展產(chǎn)生了不可磨滅的深遠影響。計算機網(wǎng)絡(luò)技術(shù)的發(fā)展推動了人類的科學(xué)技術(shù)的發(fā)展,同時給人們的學(xué)習(xí),工作和生活帶來了諸多的好處,特點主要體現(xiàn)在以下幾個方面:快捷性、自由性、開放性、互動性、創(chuàng)新性。伴隨著計算機網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和廣泛應(yīng)用,人類進入了全新的網(wǎng)絡(luò)經(jīng)濟時代。信息化、數(shù)字化、全球化、網(wǎng)絡(luò)化應(yīng)是21新世紀(jì)人類社會的重要特征,其中,以計算機網(wǎng)絡(luò)迅猛發(fā)展而形成的網(wǎng)絡(luò)化則是推動信息化、數(shù)字化和全球化的基礎(chǔ)和核心。計算機網(wǎng)絡(luò)技術(shù)的發(fā)展將以其融合一切現(xiàn)代先進信息技術(shù)的特殊優(yōu)勢而在21世紀(jì)形成一場嶄新的信息技術(shù)革命,并進一步推動社會信息化和知識經(jīng)濟的發(fā)展。而計算機網(wǎng)絡(luò)系統(tǒng)和相關(guān)技術(shù)也必將在21世紀(jì)社會信息化和知識經(jīng)濟浪潮中更快更大的發(fā)展。基于J2EE的QQ空間系統(tǒng)是在網(wǎng)絡(luò)環(huán)境的支持下,支持用戶進行發(fā)表文章、互相交流、分享個人信息等功能的先進模式,QQ空間系統(tǒng)作為一種簡便、松散、充滿個性的現(xiàn)代電子手段,現(xiàn)在在國內(nèi)得到廣泛的應(yīng)用。QQ空間系統(tǒng)類似于個人的博客是一種很流行的用戶交流分享軟件。QQ空間系統(tǒng)主要為用戶提供了用戶注冊,用戶發(fā)布信息,用戶信息管理查詢用戶信息,評論好友信息、上傳個人音樂等功能。在設(shè)計方面,本系統(tǒng)采用B/S三層結(jié)構(gòu),同時使用JSP技術(shù)進行動態(tài)頁面的設(shè)計。用戶信息驗證使用JavaScript后臺數(shù)據(jù)庫選用Mysql數(shù)據(jù)庫,設(shè)計數(shù)據(jù)庫的工具選用NavicatLiteforMySQL【關(guān)鍵詞】:QQ空間系統(tǒng)、數(shù)據(jù)源、JavaScript、Servlet、JSP目錄摘要 2第一章前言 51.1QQ空間系統(tǒng)概述 51.2系統(tǒng)開發(fā)軟件簡介 6第二章可行性研究報告 102.1引言 102.2要求和目標(biāo) 112.3所建議的系統(tǒng) 122.4投資及效益分析 132.5可行性分析 14第三章利用UML視圖的需求說明書 153.1、引言 15問題描述(1) 15問題描述(2) 15系統(tǒng)概覽 153.2、一般性描述 173.3、功能需求描述 213.4、其它需求描述 23第四章數(shù)據(jù)庫設(shè)計 244.1數(shù)據(jù)庫分析 244.2數(shù)據(jù)庫邏輯設(shè)計 244.3數(shù)據(jù)連接 26第五章詳細設(shè)計與系統(tǒng)實現(xiàn) 275.1用戶登錄與注冊模塊 305.2用戶登錄主界面模塊 365.3個人信息管理與維護模塊 36第六章軟件測試及安裝 376.1軟件測試基礎(chǔ)理論 376.2軟件測試目的 386.3軟件測試方法分類 386.4論壇測試 406.5測試報告 40結(jié)論 40參考文獻 41第一章前言1.1QQ空間系統(tǒng)概述QQ空間系統(tǒng)是一種類似于博客的軟件,是一種十分簡易的傻瓜化個人信息發(fā)布方式。任何人都可以像使用免費電子郵件一樣,完成個人網(wǎng)頁的創(chuàng)建、發(fā)布和更新。QQ空間就是開放的私人空間,可以充分利用超文本鏈接、網(wǎng)絡(luò)互動、動態(tài)更新等特點,在網(wǎng)絡(luò)中,精選并鏈接全球互聯(lián)網(wǎng)中最有價值的信息、知識與資源;也可以將個人工作過程、生活故事、思想歷程、閃現(xiàn)的靈感等及時記錄和發(fā)布,發(fā)揮個人無限的表達力;更可以以文會友,結(jié)識和匯聚朋友,進行深度交流溝通[1]??臻g概念一般包含了三個要素(當(dāng)然,也不需要局限這些定義):(1)網(wǎng)頁主體內(nèi)容由不斷更新的、個性化的眾多日志組成。(2)不同的選擇菜單,可以上傳照片、可以編輯日志、發(fā)表說說等多樣化的操作。(3)內(nèi)容可以是各種主題、各種外觀布局和各種寫作風(fēng)格,但是文章內(nèi)容以“超鏈接”作為重要的表達方式。因此,QQ空間是個人性和公共性的結(jié)合體,其精髓不是主要表達個人思想,不是主要記錄個人日常經(jīng)歷;而是以個人的視角,以整個互聯(lián)網(wǎng)為視野,精選和記錄自己在互聯(lián)網(wǎng)上看到的精彩內(nèi)容,為他人提供幫助,使其具有更高的共享價值。個人空間精神的核心并不是自娛自樂,甚至不是個人表達自由,相反,是體現(xiàn)一種利他的共享精神,為他人提供幫助。個人日記和個人網(wǎng)站主要表現(xiàn)的還是“小我”,而空間表現(xiàn)的是“大我”。相互之間聯(lián)系在一起,你可以訪問我,我可以訪問你,相互之間可以相互評論。1.2系統(tǒng)開發(fā)軟件簡介1.2.1J2EE包含許多組件,主要可簡化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。
J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,導(dǎo)致企業(yè)內(nèi)部或外部難以互通的窘境。
這種基于組件,具有平臺無關(guān)性的J2EE結(jié)構(gòu)使得J2EE程序的編寫十分簡單,因為業(yè)務(wù)邏輯被封裝成可復(fù)用的組件,并且J2EE服務(wù)器以容器的形式為所有的組件類型提供后臺服務(wù).因為你不用自己開發(fā)這種服務(wù),所以你可以集中精力解決手頭的業(yè)務(wù)問題。J2EE為搭建具有可伸縮性、靈活性、易維護性的商務(wù)系統(tǒng)提供了良好的機制:
保留現(xiàn)存的IT資產(chǎn):由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進的(而不是激進的,全盤否定的)方式建立在已有系統(tǒng)之上的服務(wù)器端平臺機制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資,如一些公司使用的BEATuxedo、IBMCICS,IBMEncina,、InpriseVisiBroker以及NetscapeApplicationServer。這之所以成為可能是因為J2EE擁有廣泛的業(yè)界支持和一些重要的’企業(yè)計算’領(lǐng)域供應(yīng)商的參與。每一個供應(yīng)商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領(lǐng)域的升級途徑。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。
高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開發(fā)時間。高級中間件供應(yīng)商提供以下這些復(fù)雜的中間件服務(wù):狀態(tài)管理服務(wù)—讓開發(fā)人員寫更少的代碼,不用關(guān)心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。持續(xù)性服務(wù)—讓開發(fā)人員不用對數(shù)據(jù)訪問邏輯進行編碼就能編寫應(yīng)用程序,能生成更輕巧,與數(shù)據(jù)庫無關(guān)的應(yīng)用程序,這種應(yīng)用程序更易于開發(fā)與維護。分布式共享數(shù)據(jù)對象CACHE服務(wù)—讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。
支持異構(gòu)環(huán)境:J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構(gòu)企業(yè)計算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)也允許客戶訂購與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。
可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺,這種平臺應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新客戶?;贘2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負載平衡策略。能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。
穩(wěn)定的可用性:一個服務(wù)器端平臺必須能全天候運轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因為INTERNET是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴重損失。若是意外停機,那會有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如SunSolaris、IBMOS/390。最健壯的操作系統(tǒng)可達到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業(yè)系統(tǒng)理想的選擇。1.2.2JSP本系統(tǒng)主要用JSP開發(fā)的。JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的,即能在Linux下運行,也能在其他操作系統(tǒng)上運行。
JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。
Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。
JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺。
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。JavaServlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。
自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。
為了快速方便地進行動態(tài)網(wǎng)站的開發(fā),JSP在以下幾個方面做了改進,使其成為快速建立跨平臺的動態(tài)網(wǎng)站的首選方案。(1)、將內(nèi)容的生成和顯示進行分離
用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面,并使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容(內(nèi)容是根據(jù)請求變化的,例如請求賬戶信息或者特定的一瓶酒的價格等)。生成內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運行。由于核心邏輯被封裝在標(biāo)識和JavaBeans中,所以Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。
在服務(wù)器端,JSP引擎解釋JSP標(biāo)識和腳本,生成所請求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這既有助于作者保護自己的代碼,又能保證任何基于HTML的Web瀏覽器的完全可用性。
(2)、可重用組件
絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件(JavaBeans或者EnterpriseJavaBeans組件)來執(zhí)行應(yīng)用程序所要求的復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團體所使用?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。
(3)、采用標(biāo)識
Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識中進行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識能夠訪問和實例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時的功能。
(4)、適應(yīng)平臺
幾乎所有平臺都支持Java,JSP+JavaBeans幾乎可以在所有平臺下通行無阻。從一個平臺移植到另外一個平臺,JSP和JavaBeans甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。
(5)、數(shù)據(jù)庫連接
Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開發(fā)了JDBC-ODBCbridge,利用此技術(shù)Java程序可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動程序,所以Java程序能訪問諸如Oracle、Sybase、MSSQLServer和MSAccess等數(shù)據(jù)庫。
此外,通過開發(fā)標(biāo)識庫,JSP技術(shù)可以進一步擴展。第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識一樣的執(zhí)行特定功能的構(gòu)件來進行工作。
JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且能擴展到支持企業(yè)級的分布式應(yīng)用中。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁面的內(nèi)置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為JavaServlets,所以JSP頁面具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。第二章可行性研究報告2.1引言2.1.1目的不僅如此,擁有自己的空間,可以寫日志,說說,上傳自己喜歡的音樂、記錄自己的想法可以幫助實現(xiàn)如下這些目的:(1)記錄生活,在自己的每一天上留下思考的劃痕。(2)整理思路,固化知識,獲得更多更好的想法。(3)分享,將自己的想法、經(jīng)驗與人分享。(4)交流、提高,通過交流產(chǎn)生更多的思維火花,相互提高。(5)交友,互相鼓勵,一路同行。2.1.2背景 隨著現(xiàn)代社會機械化程度越來越高,人們對機械知識的渴望越來越強烈,而用戶間的交流恰好滿足了這種需要。用戶與用戶之間的互相討論與學(xué)習(xí)會使用戶快速提高自己對于機械知識的了解和認知。針對這種現(xiàn)狀開發(fā)了本系統(tǒng)。QQ空間管理系統(tǒng)是Internet上的一種電子信息服務(wù)系統(tǒng)。它提供一塊公共電子白板,每個用戶都可以在上面書寫,可發(fā)布信息或提出看法。它是一種交互性強,內(nèi)容豐富而及時的Internet電子信息服務(wù)系統(tǒng)。用戶在該站點上可以獲得各種信息服務(wù),發(fā)布信息,進行討論,聊天等等。像日常生活中的黑板報一樣,論壇按不同的主題分為許多版塊,版面的設(shè)立依據(jù)是大多數(shù)用戶的要求和喜好,用戶可以閱讀別人關(guān)于某個主題的看法,也可以將自己的想法毫無保留地貼到自己的空間中來。在網(wǎng)絡(luò)中,精選并鏈接全球互聯(lián)網(wǎng)中最有價值的信息、知識與資源;也可以將個人工作過程、生活故事、思想歷程、閃現(xiàn)的靈感等及時記錄和發(fā)布,發(fā)揮個人無限的表達力;更可以以文會友,結(jié)識和匯聚朋友,進行深度交流溝通[1]。在自己的空間系統(tǒng)里,人們之間的交流打破了空間,時間的限制。在與別人進行交往時,無須考慮自身的年齡,學(xué)歷,知識,社會地位,財富,外貌,健康狀況,也無從知道交談的對方的真實社會身份。這樣,參與討論的人可以處于一個平等的位置與其他人進行機械方面問題的探討。QQ空間管理系統(tǒng)往往是由一些有志于此道的愛好者建立,對所有人都免費開放,只須注冊就可以使用,每個人都有屬于自己的空間,是一種很好的消遣及娛樂場所。如果說網(wǎng)站是一個舞臺,那么所有的個人空間就是其中的舞者,把自己有價值的真實的一面展示在網(wǎng)絡(luò)世界中,相互交流溝通;如果開通自己的空間僅僅為了寫日志,那么QQ空間系統(tǒng)是一面鏡子,鏡子中展現(xiàn)的是真實的自己;如果空間是一個自由媒體,可以把自身感覺有價值的信息通過QQ空間這個工具發(fā)布,與網(wǎng)友共享。系統(tǒng)的名稱:QQ空間管理系統(tǒng);工程組織者:10級軟件一班;產(chǎn)品所有權(quán):開發(fā)小組任務(wù)的詳細信息:a) 任務(wù)提出人:劉珊艷老師b)需求分析人:張潔朋朱冬冬c) 用戶:具有一定特權(quán)的用戶、游客。2.2要求和目標(biāo)2.2.1基本要求(1)功能:用戶登錄功能:并以此來判斷用戶本人和訪客,并且對相應(yīng)的操作權(quán)限進行設(shè)置。用戶日志信息(更新):查看、發(fā)表、評論等信息的導(dǎo)入/導(dǎo)出。用戶相冊信息更新:上傳、查詢,及實現(xiàn)簡單的在線播放。實現(xiàn)用戶留言板功能,每當(dāng)有游客來訪問時,可以進行簡單留言功能。訪客記錄功能:統(tǒng)計、顯示歷史訪問人數(shù),以及當(dāng)日訪問人數(shù)的信息。個人資料管理功能:對個人信息的修改以及實現(xiàn)簡單的注冊功能。查找添加用戶功能:可以方便查找所有好友以及添加好友功能,(2)性能方便數(shù)據(jù)導(dǎo)入和輸出,提高了軟件的使用效率。(3)系統(tǒng)的輸入日志信息、相冊信息、留言信息、訪客信息及其具有特殊權(quán)限用戶的修改信息(4)系統(tǒng)的輸出查詢結(jié)果和數(shù)據(jù)的顯示。(5)數(shù)據(jù)安全系統(tǒng)對不同權(quán)限的用戶提供不同的功能模板,有一定特殊權(quán)限的用戶可以進行相對的操作,一般的游客只能進行信息查看的操作。2.2.2開發(fā)目標(biāo)(1)方便操用戶添加、查詢及其修改相關(guān)信息,減少人力和設(shè)備需求;(2)同時滿足查詢及其修改的要求;(3)促進信息交流規(guī)范化及其多樣化;(4)系統(tǒng)的更新,提高工作效率,打發(fā)無聊的時間;(5)學(xué)生自行開發(fā)降低選課管理創(chuàng)作及其維護費用2.2.3具備條件(1)開發(fā)環(huán)境條件:計算機實驗室所提供的運行環(huán)境下即可開發(fā)。(2)開發(fā)時間:開發(fā)的整個過程必須在16周內(nèi)完成。(3)經(jīng)費問題:經(jīng)費少,學(xué)生開發(fā)的系統(tǒng)。2.3所建議的系統(tǒng)Windowsxp2000以上版本系統(tǒng)2.3.1對所建議系統(tǒng)的說明根據(jù)QQ空間管理信息的特點對數(shù)據(jù)庫進行操作,使用了先進的數(shù)據(jù)庫技術(shù)與數(shù)據(jù)管理技術(shù),使數(shù)據(jù)的準(zhǔn)確性與安全性得到了很大的提高,比如對數(shù)據(jù)的增加、刪除修改等給予了優(yōu)化,且在用戶的并行操作與用戶管理方面也有了極大地改善。QQ空間管理系統(tǒng)可大致分大致實現(xiàn)以下功能:輸入信息管理更新個人的信息記錄,對系統(tǒng)進行實施更新。查看信息管理查看信息記錄;2.3.2采用建議系統(tǒng)與現(xiàn)有系統(tǒng)的差別在上面已所過,在此從不同方面具體說一下:(1)設(shè)備:采用建議系統(tǒng)后,雖然改進了原有系統(tǒng)的性能但對設(shè)備要求不是很高,在現(xiàn)有軟硬件設(shè)備完全可以實現(xiàn)。(2)現(xiàn)有軟件:由于建議系統(tǒng)采用了較先進的數(shù)據(jù)庫技術(shù)以及一系列較高技術(shù)軟件,使得原來系統(tǒng)上的一些軟件無法繼續(xù)使用,不過在新系統(tǒng)開發(fā)過程中將盡量考慮到,對現(xiàn)有軟件的兼容性。(3)用戶:建議系統(tǒng)使用的新技術(shù)是完全基于原有的系統(tǒng)上的,故用戶不必考慮新系統(tǒng)帶來的人員培訓(xùn)等等。(4)經(jīng)費支出:建議系統(tǒng)是為了改善原有系統(tǒng)在經(jīng)費支出過高的缺點的,所以新系統(tǒng)一經(jīng)使用在經(jīng)費支出方面一定會得到很好的改善,用戶在使用了新系統(tǒng)后只需要花一定資金購買一部分計算機與軟件就能實現(xiàn)自動化。2.4投資及效益分析2.4.1支出 該系統(tǒng)是軟件工程老師作為畢業(yè)設(shè)計要求我們做的,所以無支出。2.4.2收益 系統(tǒng)完成后即可交付使用,主要是為了方便個人信息的管理實現(xiàn)簡單的類似博客系統(tǒng)功能,便于人員之間的交流與個人信息的管理,有著重大的利益。2.4.3投資回收周期 即時。2.5可行性分析2.5.1社會因素方面的可行性法律方面的可行性該系統(tǒng)的開發(fā)和研制,將不會侵犯他人、集體和國家的利益,不會違犯國家政策和法律。使用方面的可行性該系統(tǒng)操做簡單,不需要專業(yè)培訓(xùn),一般人員即可勝任。2.5.2其它方面的可行性技術(shù)可行性身為荊楚理工學(xué)院計算機工程學(xué)院軟件班的學(xué)生,通曉一些計算機軟件知識是肯定的,另外參加過一些軟件方面培訓(xùn),所有實現(xiàn)這些基本的功能還是沒問題的。我們這學(xué)期開了J2EE和JSP課程,同時進行過幾個月的專業(yè)學(xué)習(xí),剛好可用到該系統(tǒng)網(wǎng)頁的制作,我們小組有2個人,開發(fā)此程序足以應(yīng)付。當(dāng)然,我們也只是學(xué)生,畢竟在開發(fā)系統(tǒng)上面,經(jīng)驗甚少,但我們遇到困難會找指導(dǎo)老師來解決的。所以技術(shù)方面是可行的。經(jīng)濟可行性由于本系統(tǒng)是為用戶管理信息使用的系統(tǒng),裝上該應(yīng)用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運行后可以為個人節(jié)約大量的時間,方便個人信息的管理。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟上完全可行。操作可行性界面設(shè)計時充分考慮管理人員的習(xí)慣,使得操作簡單;信息錄入迅速、規(guī)范、可靠;統(tǒng)計準(zhǔn)確;使用靈活;適應(yīng)力強。2.6結(jié)論 綜上所述,該項目應(yīng)立即開始進行研發(fā)。從人力資源優(yōu)化角度來說,可以充分利用學(xué)校已有人力資源。第三章利用UML視圖的需求說明書下面是一個QQ空間管理系統(tǒng)的軟件需求規(guī)格說明書,從中我們來學(xué)習(xí)怎樣利用UML的用例分析方法和ROSE建模工具來書寫軟件需求文檔,其中的系統(tǒng)拓撲圖用VISIO繪制,其他圖用ROSE繪制。3.1、引言3.1.1編寫目的編寫本文檔的目的:詳細、準(zhǔn)確和全面定義QQ空間管理系統(tǒng)的用戶需求,指導(dǎo)軟件系統(tǒng)的后續(xù)開發(fā)工作;本文檔所描述的用戶需求將作為該項目最終驗收的標(biāo)準(zhǔn)和依據(jù);說明:該文檔必須經(jīng)用戶方和開發(fā)方簽字確認方可有效。3.1.2讀者對象本文檔的讀者對象包括:(1)用戶(2)需求分析人員(3)軟件設(shè)計人員(4)軟件測試人員3.1.3軟件項目概述問題描述(1)編寫軟件完成QQ空間管理系統(tǒng)編輯和管理信息的自動化:通過用戶登錄,進入個人信息管理科,查看發(fā)表的信息,上傳信息,刪除信息等操作。同時查看游客訪問記錄以及回復(fù)用戶評論。同時用戶可以查找所有好友,并且通過查找添加好友,并且可以對用戶請求添加好友的信息進行回復(fù),同意或者拒絕添加。問題描述(2)用戶登錄自己賬號,可以通過查找自己的好友或者訪客記錄來訪問自己的好友,查看好友的信息,以及對好友的信息做出評論,此時該用戶扮演的是訪客的身份對好友的信息沒有權(quán)限進行管理。系統(tǒng)概覽QQ空間管理系統(tǒng)是類似于bbs論壇的線下交流及信息管理于一體的信息交流平臺,采用先進的計算機技術(shù)和通信技術(shù),實現(xiàn)傳統(tǒng)業(yè)務(wù)的信息化和電子化,并且圍繞電子信息拓展新的業(yè)務(wù)渠道,尋找新的業(yè)務(wù)增長點,為社會提供的新型的、更高水平的信息交流品牌服務(wù)。隨著軟件開發(fā)方法學(xué)的演變和發(fā)展,特別是軟件設(shè)計模式、軟件組件等概念的提出,給軟件重用度、軟件的可擴充性、軟件的魯棒性及軟件開發(fā)效率的提高,提供了一個誘人的前景。我們將采納當(dāng)前軟件工程最新技術(shù),采用統(tǒng)一建模語言UML描述基于網(wǎng)絡(luò)計算平臺的整個項目,在分析、設(shè)計時充分利用軟件模式及組合軟件模式,利用前人的專家級經(jīng)驗,提高開發(fā)效率;最后的產(chǎn)品用軟件組件的形式加以封裝,并用XML來描述軟件組件及各軟件組件間的接口。通過這一課程作業(yè)實踐,一方面能加深我們對軟件模式、軟件組件、XML、UML的認識和理解,使我們就這些新技術(shù)的應(yīng)用,提出更為可行的建議;另一方面,我們也希望能開發(fā)出新的軟件組件,抽出新的軟件模式,進一步充實軟件模式倉庫,繁榮軟件組件市場。該項目為QQ空間管理系統(tǒng)提供服務(wù),用戶可以通過賬號登錄個人賬號,登錄之后可進行個人信息的管理,個人信息的查看,以及個人信息的編輯。系統(tǒng)拓撲圖如下:客戶客戶數(shù)據(jù)庫QQ信息管理系統(tǒng)QQ信息網(wǎng)站網(wǎng)關(guān)網(wǎng)關(guān)Internet前置機QQ信息管理系統(tǒng)拓撲圖3.1.4文檔概述本文檔準(zhǔn)確、一致、全面定義和描述了QQ信息管理系統(tǒng)的軟件需求,文檔的內(nèi)容組織如下:第一章,引言部分,簡要介紹了文檔和項目的概況;第二章,一般性描述,定義了系統(tǒng)與環(huán)境之間的關(guān)系第三章,詳細需求描述,詳細定義了系統(tǒng)的功能需求第四章,其他需求,定義了系統(tǒng)的非功能性需求3.1.5定義概念(1)QQSystem:QQ信息管理系統(tǒng)。(2)用戶:QQ空間管理系統(tǒng)的客戶,主要分為游客和用戶,可以擁有QQ信息管理系統(tǒng)的帳戶。(3)帳戶:用戶登錄QQ空間管理系統(tǒng)的憑證,用戶通過密碼或其它安全認證擁有帳戶的相關(guān)功能。(4)網(wǎng)站:INTERNET上提供WEB服務(wù)的計算機,分為商戶網(wǎng)站和QQ空間網(wǎng)站,它一方面與INTERNET相連,另一方面必須通過可靠的安全認證網(wǎng)關(guān)與QQ空間管理系統(tǒng)連接。3.1.6參考資料略。3.2、一般性描述該系統(tǒng)所涉及的帳戶信息和用戶信息全部存放在銀行數(shù)據(jù)庫服務(wù)器中,數(shù)據(jù)庫服務(wù)器運行在小型機上。本系統(tǒng)采用瀏覽器/服務(wù)器(B/S)的工作方式,系統(tǒng)的用戶主要有:用戶和游客。3.2.1頂層的UseCase如下圖所示:頂層的UseCaseActor定義如下:Adminixtrator:一般用戶。Tourist:游客。對頂層的UseCase進行細化,得到的UseCase圖如下所示。細化UseCase圖各UseCase說明如下:登錄:提供用戶登錄的驗證。Step1:用戶登錄QQ信息管理系統(tǒng)的登錄頁面,輸入用戶名和密碼。Step2:驗證成功則跳轉(zhuǎn)至主頁面,否則重新登錄,本UseCase結(jié)束。
留言;為自己或者他人進行留言Step1:用戶首先進行系統(tǒng)登錄,登錄成功則可執(zhí)行本功能。Step2:本人信息的留言:用戶可以在自己的留言板處,進行個人留言,編輯信息后,點擊提交按鈕,若出現(xiàn)留言成功提示,則說明留言成功,否則留言失敗。Step3:若對好友進行留言,則首先查看自己的好友,跳轉(zhuǎn)至好友的主頁,然后找到對應(yīng)的留言板板塊,再說輸入框進行編輯文本,同樣單擊提交按鈕提交,出現(xiàn)留言成功則表示本次留言成功,本UseCase結(jié)束。
查看:查看自己或好友的信息Step1:用戶首先進行系統(tǒng)登錄,登錄成功則可執(zhí)行本功能。Step2:查看自己本人的信息:登錄成功后則進入個人主頁,在該頁面有日志、說說、相冊、留言板、請求信息、個人信息等模塊。如果查看他人的信息則需要首先進入好友的空間然后選擇相應(yīng)的信息進行查看,但需要注意的是我們在別人空間只能查看而不能操作他人的信息Step3:完成查看后可以返回好友或自己的界面,同時可以退出本系統(tǒng)。
評論:對自己或者好友的信息進行評論Step1:用戶首先進行系統(tǒng)登錄,登錄成功則可執(zhí)行本功能。Step2:用戶登陸成功后,選擇要訪問的好友,進入好友的主頁,選擇好友的說說或者是日志然后在下面的輸入框輸入評論信息,輸入完成后按提交按扭。Step3:提交之后若提交成功,則提示評論成功否則評論失敗。Step4:評論完成后可以跳轉(zhuǎn)好友的主頁面或者是自己的主頁面。發(fā)表信息;該功能是發(fā)表自己的日志,說說,音樂。Step1:用戶首先進行系統(tǒng)登錄,登錄成功則可執(zhí)行本功能。Step2:當(dāng)用戶登陸成功之后,跳轉(zhuǎn)主界面,選擇對應(yīng)的日志或者說說或者音樂功能,然后在每個單摸版中都有提示按鈕,像說說在文本框中輸入要發(fā)表的信息,然后淡季發(fā)表按鈕;若是上傳音樂,則單擊上傳按鈕。Step3:在每次響應(yīng)的操作之后都會出現(xiàn)響應(yīng)的狀態(tài)提示?;貜?fù)評論:用戶對好友發(fā)表的評論進行回復(fù)Step1:用戶首先進行系統(tǒng)登錄,登錄成功則可執(zhí)行本功能。Step2:查看自己的說說或者日志,觀看下面的評論信息。Step3:找到好友對自己信息的評論,在回復(fù)框中輸入回復(fù)信息。Step4:狀態(tài)顯示,回復(fù)成功則提示回復(fù)成功,否則顯示失敗。
(7)添加好友:添加好友,方便查看好友信息。Step1:用戶首先進行系統(tǒng)登錄,登錄成功則可執(zhí)行本功能。Step2:將鼠標(biāo)放到添加好友,會劃出一個文本框,上面列出了所有的好友,單擊右邊的添加好友按鈕,會彈出已發(fā)送添加請求,等待好友回復(fù)。Step3:當(dāng)好友同意添加后,在自己的消息中會提示消息+1,1即為消息數(shù)目。Step4:添加成功后,將鼠標(biāo)放在我的好友處,將劃出一文本框,顯示自己的所有好友。因此,本QQ空間管理系統(tǒng)由以下功能模塊組成:(1)用戶登錄、注冊登錄模塊(2)主界面模塊(3)個人信息管理與維護模塊3.2.2此系統(tǒng)有兩類用戶:普通用戶和游客。功能(1):只有進行登錄并通過身份驗證的用戶,才可以在QQ空間系統(tǒng)頁面發(fā)表日志,并借助個人設(shè)置實現(xiàn)對個人相關(guān)信息的管理維護。對于沒有經(jīng)過身份驗證的網(wǎng)絡(luò)用戶不允許在本系統(tǒng)中發(fā)表日志,更不允許對本系統(tǒng)的頁面信息進行管理維護。該模塊實現(xiàn)QQ空間系統(tǒng)的注冊及登錄驗證功能。注冊成功的用戶登錄時,會隨時根據(jù)頁面輸入的登錄信息進行提示,如用戶名錯誤或者密碼錯誤。功能(2):在該模塊中提供了QQ空間系統(tǒng)頁面統(tǒng)計信息(如訪問量等),日志、評論、音樂盒及留言信息分頁顯示等多種功能,方便用戶操作。功能(3):借助該模塊,用戶可以隨時對個人QQ空間主頁中的內(nèi)容進行增加或修改,包括日志等信息的更新、評論及留言管理等功能,也允許用戶對個人信息進行維護及其管理。對于用戶來說一般都有一定的專業(yè)領(lǐng)域知識,一般有一定的電腦操作能力,但對于一些特殊的顧客來說可能對電腦操作知識了解比較少,因此對于一般使用者來說不需要特殊的理論、知識來支持,也不需要經(jīng)過特殊的訓(xùn)練,用戶只要在計算機上裝有IE或Netscape瀏覽器,并有基本的瀏覽器操作知識,便能方便的使用本系統(tǒng)。3.2.3限制與約束此系統(tǒng)必須滿足以下限制:(1)系統(tǒng)中所有帳戶能夠供用戶隨時使用,并且用戶名唯一性;(2)在同一時刻,一個帳戶不能同時為兩個用戶服務(wù);(3)超過預(yù)定的時間,沒有操作該賬號被自動釋放;(4)該系統(tǒng)必須確保對數(shù)據(jù)進行完全保護,以避免未經(jīng)授權(quán)的訪問;所有的遠程訪問都要登錄,并且每個登錄用戶只能訪問其角色所授的權(quán)限;(4)界面友好、操作簡便;(5)軟件系統(tǒng)開放性好,結(jié)構(gòu)靈活,可擴充,易于維護;(6)安全可靠。3.2.4假設(shè)與前提條件(1)本系統(tǒng)支持帳戶遠程異地登陸,因此只要聯(lián)網(wǎng)的地方就能訪問。(2)用戶只有通過用戶名來識別,同時不允許重復(fù),所以需要謹記個人信息。3.3、功能需求描述3.3.1系統(tǒng)的類圖系統(tǒng)的類圖如下圖所示:系統(tǒng)的類圖
Tourist類:游客類。它是用戶的另一種身份。Adminstrator類:普通用戶類。Account類:賬號類。3.3.2類的說明tourist類屬性Name:用戶名,是確定用戶身份的唯一標(biāo)記物。方法Login:登陸操作。當(dāng)用戶要作為游客的身份出現(xiàn)時,首先要登陸自己的賬號,只有登陸之后才能此操作權(quán)限,登陸完成之后,選擇自己的好友,點擊好友的鏈接進入好友的主頁。adminstrator屬性Name:用戶名,是確定用戶身份的唯一標(biāo)記物,方法Login:登陸操作。用戶想要進入自己的主頁,首先要登陸自己的賬號,只有登陸之后才可以查看自己的主頁信息,以及操作權(quán)限。CreateMessage:發(fā)表信息。當(dāng)用戶登陸自己的賬號之后,會進入到QQ空間管理系統(tǒng)的主頁,在該頁面中有說說、日志、音樂盒等功能,當(dāng)用戶登陸成功之后,選擇任何一個操作,然后根據(jù)相應(yīng)的提示完成相應(yīng)信息的發(fā)布,每當(dāng)發(fā)布成功的時候,會出現(xiàn)相應(yīng)的友好提示,顯示發(fā)表信息成功,否則則發(fā)表失敗。Response:回復(fù)操作。當(dāng)用戶登陸成功之后,會跳轉(zhuǎn)只主頁,用戶可以通過查看自己的的信息,會顯示好友的評論,在下面的回復(fù)框輸入回復(fù)信息便可提交。但注意該操作只有用戶自己可以進行操作,如果當(dāng)時的身份是游客的身份,則根本沒有權(quán)限進行回復(fù)。Delete:刪除操作。當(dāng)用戶登陸成功時,可以管理自己的信息,如刪除說說、日志、音樂等等。同樣該操作只是限于用戶本人,如果是游客的身份根本沒有權(quán)限進行此操作、account屬性Name:用戶名,是確定用戶身份的唯一標(biāo)記物。Password:密碼,是用戶登陸時輸入的密碼。Account:用戶的賬號,用來存取,是注冊賬號的編號,同樣該屬性是唯一的,每個用戶存在一個賬號。方法Login:登陸操作。首先普通用戶和游客首先通過該登陸操作來進行登陸驗證,驗證成功則進入主頁,否則出現(xiàn)錯誤提示。Regist:注冊操作。該操作時用來注冊新的用戶,注冊時等按照相應(yīng)的提示輸入,否則會提示注冊失敗。View:查看操作。對于登陸成功的用戶,可以選擇相應(yīng)的操作,查看自己的信息,如查看日志。說說。上傳的音樂以及自己的個人信息。該操作時不僅普通用戶可以查看,游客也可以查看。Comment:評論操作。當(dāng)用戶登陸成功之后,用戶可以對自己的信息進行相應(yīng)的評論操作,同時用戶本人可以對自己的信息進行評論。Visit:訪問操作。當(dāng)用戶登陸成功進入自己的主頁之后,在主頁面會顯示自己的訪客記錄,同時顯示今天的訪問記錄,以及最忌十天的訪問記錄。同樣當(dāng)訪問他人的主頁時,他人的訪問信息會更改,但需要注意的是同一賬號在一天之內(nèi)訪問的次數(shù)最多是1,增加一次之后及時訪問多次也不會再次增加。LeaveMessage:留言操作。當(dāng)用戶登陸成功之后,在主頁下面會有留言板,用戶可以對自己進行留言,或者訪問好友的空間然后到好友的留言板中進行留言,該操作為普通用戶和游客所共有的操作,同樣操作成功之后會出現(xiàn)相應(yīng)的狀態(tài)提示。.3.4、其它需求描述3.4.1性能要求在用戶登陸系統(tǒng)之后,盡量完成自己的操作,否則30分鐘后,如不進行任何操作,保存在系統(tǒng)中的賬號將會失去作用,需要重新登錄。3.4.2設(shè)計約束開發(fā)工具:要求用Java開發(fā)。運行環(huán)境:該軟件客戶端運行在IE或Netscape瀏覽器下。3.4.3進度要求略。3.4.4交付要求該項目完成后,需向用戶移交以下軟件項:(1)軟件需求規(guī)格說明書,電子版和書面版(2)軟件設(shè)計規(guī)格說明書,電子版和書面版(3)可運行的軟件系統(tǒng)(4)部分或全部模塊的JAVA源代碼第四章數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是當(dāng)前應(yīng)用軟件系統(tǒng)的重要組成部分,如何使基于數(shù)據(jù)庫的應(yīng)用系統(tǒng)安全、可靠、高效的運行一直是軟件開發(fā)技術(shù)研究的難題。所以本系統(tǒng)的數(shù)據(jù)庫設(shè)計基于以下幾點來考慮:(1)數(shù)據(jù)庫規(guī)范化與非規(guī)范化的考慮。(2)數(shù)據(jù)查詢優(yōu)化與索引的建立。(3)存儲過程與視圖。4.1數(shù)據(jù)庫分析為了把用戶的數(shù)據(jù)要求清晰明確地表達出來,通常要建立一個概念性的數(shù)據(jù)模型。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點來對數(shù)據(jù)和信息建模。描述了從用戶角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實環(huán)境。QQ空間系統(tǒng)涉及的表包括:(1)用戶表賬戶、密碼、權(quán)限(好友)年齡地址(2)音樂表編號賬戶歌名上傳時間URL(3)相冊表編號賬戶url上傳時間(4)日志表編號賬戶日志名發(fā)表時間發(fā)表內(nèi)容私密設(shè)置(說說同樣)發(fā)表的類型(跟說說區(qū)分)(5)留言表編號賬戶留言人留言時間留言內(nèi)容發(fā)表的類型(6)評論表編號對應(yīng)評論文章的編號評論的賬戶評論人類型(屬于日志、說說、留言)評論時間內(nèi)容(7)訪問記錄表編號(主鍵)賬戶訪問賬戶訪問時間(8)好友表編號(主鍵)添加人被添加人狀態(tài)特征4.2數(shù)據(jù)庫邏輯設(shè)計1.用戶表_user其設(shè)計結(jié)構(gòu)如下:2音樂表_music其設(shè)計結(jié)構(gòu)如下:3相冊表_photo其設(shè)計結(jié)構(gòu)如下:4日志表_log其設(shè)計結(jié)構(gòu)如下:5留言表_message其設(shè)計結(jié)構(gòu)如下:6評論表_discuss其設(shè)計結(jié)構(gòu)如下:7訪問記錄表_visit其設(shè)計結(jié)構(gòu)如下:8好友表_friend其設(shè)計結(jié)構(gòu)如下:4.3數(shù)據(jù)連接目前流行的數(shù)據(jù)庫連接技術(shù)主要有:JDBC-ODBC橋、JDBC和數(shù)據(jù)連接池技術(shù)。該系統(tǒng)采用數(shù)據(jù)連接池技術(shù),使用連接池的優(yōu)點主要體現(xiàn)在兩個方面:對數(shù)據(jù)庫的連接統(tǒng)一進行配置、管理、監(jiān)控,以及對數(shù)據(jù)庫連接池的參數(shù)進行優(yōu)化調(diào)整,同時對應(yīng)用程序中沒有關(guān)閉或其他原因造成沒有關(guān)閉的數(shù)據(jù)庫連接由連接池統(tǒng)一進行管理。便于程序的移植和后端數(shù)據(jù)庫的切換,因為在應(yīng)用中通過統(tǒng)一的JNDI獲得數(shù)據(jù)庫的連接,而具體連接的是哪一臺機器上的數(shù)據(jù)庫與程序無關(guān)。數(shù)據(jù)庫連接池技術(shù)的思想非常簡單,將數(shù)據(jù)庫連接作為對象存儲在一個Vector對象中,一旦數(shù)據(jù)庫連接建立后,不同的數(shù)據(jù)庫訪問請求就可以共享這些連接。這樣,通過復(fù)用這些已經(jīng)建立的數(shù)據(jù)庫連接,可以克服上述缺點,極大地節(jié)省系統(tǒng)資源和時間。數(shù)據(jù)庫連接池的主要操作如下:(1)建立數(shù)據(jù)庫連接池對象(服務(wù)器啟動)。(2)按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫連接(即:空閑連接數(shù))。(3)對于一個數(shù)據(jù)庫訪問請求,直接從連接池中得到一個連接。如果數(shù)據(jù)庫連接池對象中沒有空閑的連接,且連接數(shù)沒有達到最大(即:最大活躍連接數(shù)),創(chuàng)建一個新的數(shù)據(jù)庫連接。(4)存取數(shù)據(jù)庫。(5)關(guān)閉數(shù)據(jù)庫,釋放所有數(shù)據(jù)庫連接(此時的關(guān)閉數(shù)據(jù)庫連接,并非真正關(guān)閉,而是將其放入空閑隊列中。如實際空閑連接數(shù)大于初始空閑連接數(shù)則釋放連接)。(6)釋放數(shù)據(jù)庫連接池對象(服務(wù)器停止、維護期間,釋放數(shù)據(jù)庫連接池對象,并釋放所有連接)。第五章詳細設(shè)計與系統(tǒng)實現(xiàn)本章主要介紹該系統(tǒng)主要部分的具體實現(xiàn)。由于該系統(tǒng)采用的是MVC模式,本系統(tǒng)主要分為四個文件夾,其中connection文件夾放著連接數(shù)據(jù)庫的文件,而dao是存放的是跟底層數(shù)據(jù)庫的操作類,dto是封裝的javabean類,而servlet則是存放的是該系統(tǒng)的中央控制器,用來接收用戶的所有請求,并且相應(yīng)用戶的請求。數(shù)據(jù)庫連接類ConnectionUtils.java,是用來連接數(shù)據(jù)庫的文件,該文件的具體代碼如下:packagecom.softeem.qqsystem.connection;publicclassConnectionUtils{ privatestaticStringUSER="root";//連接數(shù)據(jù)庫的用戶 privatestaticStringPASSWORD="admin";//密碼 privatestaticStringURL="jdbc:mysql://localhost:3306/qqdatabase";//連接數(shù)據(jù)庫的路徑 privatestaticStringDRIVERNAME="com.mysql.jdbc.Driver";//數(shù)據(jù)庫的驅(qū)動名稱 //在加載類的時候進行注冊驅(qū)動 static{ try{ Class.forName(DRIVERNAME); }catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //連接數(shù)據(jù)庫,返回的是一個連接 publicstaticConnectiongetConnection(){ try{ returnDriverManager.getConnection(URL,USER,PASSWORD); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull;//如果創(chuàng)建連接失敗,則返回的是null } //如果連接不為空,關(guān)閉連接 publicstaticvoidclose(Connectionconn,Statementstat,ResultSetrs){ if(conn!=null){ try{ conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } if(stat!=null){ try{ stat.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } if(rs!=null){ try{ rs.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }}5.1用戶登錄與注冊模塊登錄界面的servlet控制器的部分代碼如下:packagecom.softeem.qqsystem.servlet;publicclasslogInfoMangerextendsHttpServlet{ privateintcount;//總的日志數(shù) privateintpagecount;//共有的頁數(shù) privateinteverypage;//每頁顯示的數(shù)量 privateintcurrentpage;//當(dāng)前的頁數(shù) privatestaticfinallongserialVersionUID=1L; privateLogDAOlogdao=newLogDAO(); publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse){ try{ request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); }catch(UnsupportedEncodingExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringflag=request.getParameter("flag"); if("_showlog_daily".equals(flag)){ this.getAlllog_Daily(request,response); System.out.println("*****"); }elseif("show_daily".equals(flag)){ this.show_daily(request,response); }elseif("_write_daily_log".equals(flag)){//寫日志 this.write_daily_log(request,response); }elseif("_comment".equals(flag)){//進行評論日志 this.createComments(request,response); System.out.println("***********bbbbbbbbbbbbbb****"); }elseif("show_message".equals(flag)){//顯示所有留言信息 this.getAllMessage(request,response); } } //顯示所有的日志,按頁顯示 publicvoidgetAlllog_Daily(HttpServletRequestrequest, HttpServletResponseresponse){ HttpSessionsession=request.getSession();//注意session需要獲取 Stringmainaccount=(String)session.getAttribute("user"); Stringnewaccount=(String)session.getAttribute("newUser"); Stringaccount; if(newaccount!=null){ account=newaccount; }else{ account=mainaccount; System.out.println(account); } //System.out.println(account); everypage=3;//每頁顯示5條數(shù)據(jù) count=logdao.findallpage(account);//總的數(shù)據(jù)量為 if(count%everypage==0){//計算總的頁面數(shù) pagecount=count/everypage; }else{ pagecount=count/everypage+1; } currentpage=Integer.parseInt(request.getParameter("currentpage"));//接受網(wǎng)頁傳來的當(dāng)前頁數(shù) if(currentpage<0){//判斷前一頁后一頁是否超出該范圍 currentpage=0; }elseif(currentpage>=pagecount-1){ currentpage=pagecount-1; } List<Log>dailyloglist=logdao.getalllog_daily(account,currentpage *everypage,everypage); request.setAttribute("List",dailyloglist); request.setAttribute("currentpage",currentpage);//將當(dāng)前頁面?zhèn)鬏數(shù)巾撁嬷?request.setAttribute("pagecount",pagecount);//將總的頁面數(shù)傳輸?shù)巾撁嬷? try{ request.getRequestDispatcher("jsp/log_daily.jsp").forward(request, response); }catch(ServletExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //顯示所要查看的日志 publicvoidshow_daily(HttpServletRequestrequest, HttpServletResponseresponse){ intlog_num=Integer.parseInt(request.getParameter("log_num")); Loglog=logdao.getonedaily(log_num); List<Discuss>discusslist=logdao.getalldiscuss(log_num); request.setAttribute("DiscussList",discusslist); request.setAttribute("Log",log);//將關(guān)于該文章的內(nèi)容發(fā)送到頁面中 try{ request.getRequestDispatcher("jsp/show_daily.jsp").forward(request, response); }catch(ServletExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //發(fā)表日志 publicvoidwrite_daily_log(HttpServletRequestrequest, HttpServletResponseresponse){ HttpSessionsession=request.getSession(); Stringaccount=(String)session.getAttribute("user"); Stringtitle=request.getParameter("title"); Stringcontent=request.getParameter("content"); Loglog=newLog(); log.setAccount_num(account); log.setContent(content); log.setLog_name(title); System.out.println(title); System.out.println(content); intflag=logdao.write_daily_log(log); System.out.println(flag); if(flag>0){ request.setAttribute("message","文章發(fā)表成功!"); }else{ request.setAttribute("message","對不起,文章發(fā)表失?。?); } try{ request.getRequestDispatcher("jsp/writedaily_log.jsp").forward( request,response); }catch(ServletExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }當(dāng)注冊頁面時,會跳入注冊頁面,當(dāng)?shù)顷懗晒髸朐撓到y(tǒng)的主頁面,主頁面的部分代碼如下:<scripttype="text/javascript"> varflag=true; functionshow(){ varodv=document.getElementById("dv"); varcount=odv.offsetTop; if(flag){ vartime=window.setInterval(function(){ count=count+4; odv.style.top=count; if(count==0){ window.clearInterval(time); flag=false; } },30) } } functionhide(){ varodv=document.getElementById("dv"); varcount=odv.offsetTop; if(!flag){ vartime=window.setInterval(function(){ count=count-4; odv.style.top=count; if(count==-400){ window.clearInterval(time); flag=true; } },30) } }</Script>5.2用戶登錄主界面模塊5.3個人信息管理與維護模塊5.3.1該頁面用來用戶的日志管理5.3.2該頁面用來管理用戶上傳的音樂,以及在線播放音樂的操作第六章軟件測試及安裝6.1軟件測試基礎(chǔ)理論6.1.1軟件測試定義軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計的一批測試用例,并利用這些測試用例運行程序以及發(fā)現(xiàn)錯誤的過程,即執(zhí)行測試步驟。軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼實現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。6.1.2軟件測試基本概念1、測試的含義所謂測試,首先是一項活動,在這項活動中某個系統(tǒng)或組成的部分將在特定的條件下運行,結(jié)果將被觀察和記錄,并對系統(tǒng)或組成部分進行評價。測試活動有兩種結(jié)果:找出缺陷和故障,或顯示軟件執(zhí)行正確。測試是一個或多個測試用例的集合。測試用例:所謂測試用例是為特定的目的而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果;測試用例是執(zhí)行測試的最小實體。2、測試的步驟測試步驟詳細規(guī)定了如何設(shè)置、執(zhí)行、評估特定的測試用例。軟件生命周期:一個軟件生命周期包括制定計劃、需求分析定義、軟件設(shè)計、程序編碼、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)說明書樣本
- 整體廚房裝修設(shè)計承包范本
- 2024混凝土道路施工合同樣本
- 2024品牌代理經(jīng)營合同版
- 廣西壯族自治區(qū)七年級上學(xué)期語文期中測試試卷10套【附答案】
- 廣告設(shè)計制作合作方案
- 保健食品委托代理銷售協(xié)議書
- 設(shè)備維修承包合同2024年
- 2023年高考地理第一次模擬考試卷-(湖北B卷)(考試版)
- 2023年高考地理專題復(fù)習(xí)新題典題精練-洋流(解析版)
- 新產(chǎn)品試制流程管理辦法
- 通用橫版企業(yè)報價單模板
- 潛油泵及潛油泵加油機講義
- 物業(yè)服務(wù)公司各崗位規(guī)范用語
- 醫(yī)患溝通內(nèi)容要求記錄模板(入院、入院三日、術(shù)前、術(shù)后、出院)
- 航海學(xué)天文定位第四篇第6章天文定位
- 淺談深度教學(xué)中小學(xué)數(shù)學(xué)U型學(xué)習(xí)模式
- 物理電學(xué)暗箱專題30道
- 裝修公司員工勞動合同
- 江西上饒鉛山汽車駕駛科目三考試線路
- 通過一起放火案件淺析放火案件的移交工作
評論
0/150
提交評論