畢業(yè)設(shè)計(jì)(論文)-JSP俄文主頁(yè)信息管理系統(tǒng).doc_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-JSP俄文主頁(yè)信息管理系統(tǒng).doc_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-JSP俄文主頁(yè)信息管理系統(tǒng).doc_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-JSP俄文主頁(yè)信息管理系統(tǒng).doc_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-JSP俄文主頁(yè)信息管理系統(tǒng).doc_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

俄文主頁(yè)信息管理系統(tǒng)第一章 緒論1.1 jsp簡(jiǎn)介1.1.1 jsp介紹jsp技術(shù)是用java語(yǔ)言作為腳本語(yǔ)言的,jsp網(wǎng)頁(yè)為整個(gè)服務(wù)器端的java庫(kù)單元提供了一個(gè)接口來(lái)服務(wù)于http的應(yīng)用程序。jsp(javaserverpages)是由sunmicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),網(wǎng)址為/products/jsp。該技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的web頁(yè)面提供了一個(gè)簡(jiǎn)捷而快速的方法。jsp技術(shù)的設(shè)計(jì)目的是使得構(gòu)造基于web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種web服務(wù)器,應(yīng)用服務(wù)器,瀏覽器和開(kāi)發(fā)工具共同工作。jsp規(guī)范是web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開(kāi)發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。在傳統(tǒng)的網(wǎng)頁(yè)html文件(*htm,*.html)中加入java程序片段(scriptlet)和jsp標(biāo)記(tag),就構(gòu)成了jsp網(wǎng)頁(yè)(*.jsp)。web服務(wù)器在遇到訪問(wèn)jsp網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以html格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送email等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無(wú)plugin,無(wú)activex,無(wú)javaapplet,甚至無(wú)frame。1.1.2 jsp的特點(diǎn)1將內(nèi)容的生成和顯示進(jìn)行分離 使用jsp技術(shù),web頁(yè)面開(kāi)發(fā)人員可以使用html或者xml標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用jsp標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和javabeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和beans中,那么其他人,如web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用jsp頁(yè)面,而不影響內(nèi)容的生成。 在服務(wù)器端,jsp引擎解釋jsp標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過(guò)訪問(wèn)javabeans組件,使用jdbctm技術(shù)訪問(wèn)數(shù)據(jù)庫(kù),或者包含文件),并且將結(jié)果以html(或者xml)頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于html的web瀏覽器的完全可用性。 2強(qiáng)調(diào)可重用的組件 絕大多數(shù)jsp頁(yè)面依賴于可重用的,跨平臺(tái)的組件(javabeans或者enterprise javabeans組件)來(lái)執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開(kāi)發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用?;诮M件的方法加速了總體開(kāi)發(fā)過(guò)程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開(kāi)發(fā)努力中得到平衡。 3采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開(kāi)發(fā) web頁(yè)面開(kāi)發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。javaserver page技術(shù)封裝了許多功能,這些功能是在易用的、與jsp相關(guān)的xml標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的jsp標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化javabeans組件,設(shè)置或者檢索組件屬性,下載applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。 通過(guò)開(kāi)發(fā)定制化標(biāo)識(shí)庫(kù),jsp技術(shù)是可以擴(kuò)展的。今后,第三方開(kāi)發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得web頁(yè)面開(kāi)發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來(lái)工作。 jsp技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用java技術(shù)家族的一部分,以及java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,jsp技術(shù)能夠支持高度復(fù)雜的基于web的應(yīng)用。 由于jsp頁(yè)面的內(nèi)置腳本語(yǔ)言是基于java編程語(yǔ)言的,而且所有的jsp頁(yè)面都被編譯成為java servlet,jsp頁(yè)面就具有java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。 作為java平臺(tái)的一部分,jsp擁有java編程語(yǔ)言“一次編寫,各處運(yùn)行”的特點(diǎn)。隨著越來(lái)越多的供應(yīng)商將jsp支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。1.2新聞發(fā)布系統(tǒng)簡(jiǎn)介 隨著社會(huì)的發(fā)展和信息技術(shù)的進(jìn)步,全球信息化的趨勢(shì)越來(lái)越明顯?;ミB網(wǎng)以前所未有的速度發(fā)展,成為與報(bào)紙、廣播、電視并肩的第四媒體,同時(shí)正以其便捷的信息傳輸形式改變著人們的消費(fèi)模式。在過(guò)去,新聞傳媒渠道僅僅限于報(bào)紙、廣播等,現(xiàn)在隨著高科技的不斷發(fā)展,傳媒路徑也更加多樣化,其中網(wǎng)上新聞系統(tǒng)已成為目前最快捷、最迅速的傳播途徑之一。網(wǎng)站新聞發(fā)布系統(tǒng),又稱信息管理系統(tǒng),廣泛應(yīng)用于大型專業(yè)網(wǎng)站、政府網(wǎng)站、企業(yè)網(wǎng)站等幾乎所有的網(wǎng)站上,是將新聞、信息欄目和業(yè)界動(dòng)態(tài)等信息集中起來(lái)發(fā)布、管理、查詢等的一種網(wǎng)站應(yīng)用程序。無(wú)論管理人員身處何地,只要能夠上網(wǎng)就能對(duì)網(wǎng)站信息進(jìn)行更新及維護(hù)。所有的操作可以通過(guò)瀏覽器完成,不需要掌握其他應(yīng)用軟件,用戶不需培訓(xùn)。新聞發(fā)布系統(tǒng)(news release system)是上個(gè)世紀(jì)九十年代互連網(wǎng)技術(shù)發(fā)展以后才出現(xiàn)的技術(shù),最初表現(xiàn)是解決一些網(wǎng)站的信息動(dòng)態(tài)發(fā)布而開(kāi)發(fā),最初只是簡(jiǎn)單的發(fā)布和顯示,應(yīng)用對(duì)于各種不同的站點(diǎn)需要構(gòu)建不同的系統(tǒng)來(lái)滿足需要,而且功能十分單一,在九十年代后期,互連網(wǎng)技術(shù)進(jìn)一步發(fā)展,網(wǎng)絡(luò)作為新起的新聞媒介工具,其用戶大大增加,對(duì)系統(tǒng)的要求也越來(lái)越高,新聞發(fā)布系統(tǒng)在這樣的一個(gè)環(huán)境中提出、開(kāi)發(fā)、并改進(jìn),到現(xiàn)在,新聞系統(tǒng)開(kāi)發(fā)的成功案例已經(jīng)不計(jì)其數(shù),而且已經(jīng)應(yīng)用到各種站點(diǎn)上,可以說(shuō),各行各業(yè)的絕大部分的網(wǎng)站都使用到了新聞系統(tǒng),大量的用戶引發(fā)了新聞系統(tǒng)功能的進(jìn)一步擴(kuò)大和深化,給新聞系統(tǒng)提出了更高的要求。1.3 新聞發(fā)布系統(tǒng)功能 本新聞發(fā)布系統(tǒng)所完成的主要功能有以下幾點(diǎn)。1 前臺(tái)客戶界面部分l 首頁(yè)界面設(shè)計(jì)。l 界面一級(jí)欄目顯示。l 界面二級(jí)欄目顯示。l 界面三級(jí)欄目顯示。l 單條新聞的顯示。l 相關(guān)新聞的顯示。l 新聞搜索。2 后臺(tái)管理界面部分l 管理員登錄。l 用戶管理。l 一級(jí)欄目管理。l 二級(jí)欄目管理。l 三級(jí)欄目管理。l 添加新聞。1.4新聞發(fā)布系統(tǒng)特點(diǎn)本系統(tǒng)具有以下特點(diǎn):l 頁(yè)面模塊化:本系統(tǒng)在界面設(shè)計(jì)上都采用了模塊化處理思想,把很多模塊共有的部分集成一個(gè)模塊,例如頁(yè)面的頭和尾,數(shù)據(jù)庫(kù)的連接等,這樣在開(kāi)發(fā)時(shí)遇到這些相似的頁(yè)面部分,就不需要從新編寫,重用這部分即可,大大提高了開(kāi)發(fā)效率。l 新聞內(nèi)容的格式轉(zhuǎn)換:系統(tǒng)在進(jìn)行新聞錄入時(shí),為了便于在新聞瀏覽中顯示方便,將錄入的新聞內(nèi)容進(jìn)行了格式轉(zhuǎn)換,將普通新聞內(nèi)容轉(zhuǎn)變成了網(wǎng)頁(yè)形式的新聞內(nèi)容,而在新聞修改中又進(jìn)行了相反的轉(zhuǎn)換,在保存修改信息時(shí)又進(jìn)行了同樣的轉(zhuǎn)換。這樣做的目的是為了能在新聞瀏覽中顯示出更多的信息,包括回車,空格,圖片等在數(shù)據(jù)庫(kù)中不能直接保存的信息。第二章 需求分析2.1背景 新聞發(fā)布系統(tǒng)(news release system)是上個(gè)世紀(jì)九十年代互連網(wǎng)技術(shù)發(fā)展以后才出現(xiàn)的技術(shù),最初表現(xiàn)是解決一些網(wǎng)站的信息動(dòng)態(tài)發(fā)布而開(kāi)發(fā),最初只是簡(jiǎn)單的發(fā)布和顯示,應(yīng)用對(duì)于各種不同的站點(diǎn)需要構(gòu)建不同的系統(tǒng)來(lái)滿足需要,而且功能十分單一,在九十年代后期,互連網(wǎng)技術(shù)進(jìn)一步發(fā)展,網(wǎng)絡(luò)作為新起的新聞媒介工具,其用戶大大增加,對(duì)系統(tǒng)的要求也越來(lái)越高,新聞發(fā)布系統(tǒng)在這樣的一個(gè)環(huán)境中提出、開(kāi)發(fā)、并改進(jìn),到現(xiàn)在,新聞系統(tǒng)開(kāi)發(fā)的成功案例已經(jīng)不計(jì)其數(shù),而且已經(jīng)應(yīng)用到各種站點(diǎn)上,可以說(shuō),各行各業(yè)的絕大部分的網(wǎng)站都使用到了新聞系統(tǒng),大量的用戶引發(fā)了新聞系統(tǒng)功能的進(jìn)一步擴(kuò)大和深化,給新聞系統(tǒng)提出了更高的要求。2.2 需求分析2.2.1 對(duì)結(jié)構(gòu)的規(guī)定:新聞快遞 - 校情總覽 . . 院系介紹 . . 國(guó)際交流 . 留學(xué)黑大 . . 科學(xué)研究 校園生活 . 咨詢信箱 . 黑大視頻 .國(guó)際交流 二級(jí)目錄:l 國(guó)際交流項(xiàng)目 l 外籍教師聘請(qǐng) l 校際合作 留學(xué)黑大 二級(jí)目錄:l 招生簡(jiǎn)章 l 博士生申請(qǐng) l 碩士生申請(qǐng) l 本科生申請(qǐng) l 語(yǔ)言生申請(qǐng) l 專業(yè)進(jìn)修 l 研究學(xué)者 l 短期班 l 獎(jiǎng)學(xué)金 l 申請(qǐng)表下載 l 留學(xué)咨詢 2.2.2對(duì)性能的規(guī)定1、操作應(yīng)該方便、靈活。2、系統(tǒng)應(yīng)有較高的穩(wěn)定性。3、系統(tǒng)應(yīng)有較高的安全性。4、系統(tǒng)應(yīng)有較高的容錯(cuò)性。5、速度上要求前臺(tái)要能夠很快地反應(yīng)用戶,后臺(tái)操作不能出現(xiàn)超時(shí)現(xiàn)象。2.2.3數(shù)據(jù)管理能力要求1、能處理大量的新聞數(shù)據(jù)。2、安全指數(shù)高,防止黑客攻擊。3、負(fù)荷能力強(qiáng),防止數(shù)據(jù)量過(guò)大,而影響速度。4、采用日志備份,追查非法用戶5、遵循數(shù)據(jù)完整性規(guī)則,保證數(shù)據(jù)實(shí)際有效。6、保證發(fā)送數(shù)據(jù)庫(kù)引擎的數(shù)據(jù)得以可靠存儲(chǔ)。7、密碼管理,為了保證系統(tǒng)數(shù)據(jù)的安全性,系統(tǒng)對(duì)用戶登陸進(jìn)行了加密限定(md5)。2.2.4 運(yùn)行環(huán)境1.硬件要求:cpu:p3或者以上;內(nèi)存:64mb或者以上硬盤:500m或者以上2.軟件要求:數(shù)據(jù)庫(kù)環(huán)境:mysql server 4.1服務(wù)器環(huán)境:windows 2003 server+jdk 1.5.0_01-b08+ tomcat5.0.282.2.5 所用工具:java代碼編寫工具:jcreator le 3.0、ultraedit-32jsp編寫:macromedia dreamweaver mx數(shù)據(jù)庫(kù)管理: sqlyog enterprise第三章 概要設(shè)計(jì)3.1 系統(tǒng)的體系結(jié)構(gòu)javabeanweb browserclientclientmysqlserverdb server本新聞系統(tǒng)根據(jù)后臺(tái)管理員設(shè)置的欄目和模板自動(dòng)生成前臺(tái)新聞主頁(yè)、欄目瀏覽頁(yè)面和新聞瀏覽頁(yè)面,同時(shí)后臺(tái)提供了欄目、模板、新聞的編輯、修改、和刪除功能,完成了新聞系統(tǒng)的所有功能。圖3-1:系統(tǒng)結(jié)構(gòu)圖本新聞系統(tǒng)設(shè)計(jì)采用典型的三層結(jié)構(gòu)模式:第一層jsp頁(yè)面主要實(shí)現(xiàn)對(duì)管理界面的顯示和解釋、中間層javabean組件實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作和前臺(tái)頁(yè)面的生成工作,第三層數(shù)據(jù)庫(kù)服務(wù)器主要對(duì)系統(tǒng)提高數(shù)據(jù)服務(wù)。中間層的javabean組件主要封裝了對(duì)數(shù)據(jù)庫(kù)的查詢、修改、刪除以及頁(yè)面生成工作,實(shí)現(xiàn)了本系統(tǒng)的全部中間業(yè)務(wù)邏輯,在系統(tǒng)中起關(guān)鍵作用。mysqlserver db server新聞錄入javabeanjavabean生成靜態(tài)頁(yè)面前臺(tái)瀏覽用戶圖3-1:系統(tǒng)設(shè)計(jì)方案本系統(tǒng)欄目管理-文章管理-模板管理-生成html頁(yè)面形成一個(gè)完整的新聞發(fā)布過(guò)程,主要通過(guò)java類庫(kù)中的java.sql.*和java.io.*2個(gè)包內(nèi)的相關(guān)類實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的管理和靜態(tài)文件的生成操作。web browser數(shù)據(jù)庫(kù)服務(wù)器管理用戶登錄登錄驗(yàn)證失敗失敗提示&日志記錄權(quán)限驗(yàn)證權(quán)限驗(yàn)證文章管理生成管理賬號(hào)管理系統(tǒng)數(shù)據(jù)添加文章編輯文章刪除文章菜單級(jí)別所屬菜單審批管理生成主頁(yè)生成所有欄目生成所有文章賬號(hào)管理修改密碼系統(tǒng)設(shè)置系統(tǒng)空間占用數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)收縮sql語(yǔ)句執(zhí)行日志管理前臺(tái)新聞瀏覽用戶瀏覽 檢索圖3-2:系統(tǒng)業(yè)務(wù)流圖3.2 系統(tǒng)業(yè)務(wù)流圖后臺(tái)管理員通過(guò)登錄驗(yàn)證獲得后臺(tái)管理權(quán)限,可以通過(guò):設(shè)置欄目-添加文章-菜單級(jí)別-所屬菜單-審批-生成文件等一系列的系統(tǒng)業(yè)務(wù)來(lái)完成一個(gè)新聞系統(tǒng)的設(shè)置和新聞的發(fā)布,圖3-2為本系統(tǒng)的業(yè)務(wù)流程圖。3.3 數(shù)據(jù)流程圖數(shù)據(jù)庫(kù)服務(wù)器欄目模板新聞添加欄目添加新聞添加模板生成靜態(tài)頁(yè)面圖3-3:系統(tǒng)數(shù)據(jù)流程圖3.4系統(tǒng)模塊以及功能設(shè)計(jì)模塊詳細(xì)功能描述文章管理添加文章:主要是用于發(fā)布新聞。編輯文章:對(duì)已發(fā)布的新聞進(jìn)行審核、修改、刪除等操作。欄目管理:對(duì)新聞的欄目進(jìn)行增加、修改、刪除。生成管理生成所有文章 :生成所有新聞的瀏覽頁(yè)面。生成各欄目主頁(yè):生成所有欄目的瀏覽頁(yè)面。模板綁定:對(duì)主頁(yè)、欄目、新聞瀏覽分別綁定html模板,便于生成。模板管理:修改、刪除html模板(已經(jīng)綁定模板不能刪除)。賬號(hào)管理賬號(hào)管理:增加、刪除。修改密碼:修改當(dāng)前管理員的登錄密碼日志管理日志管理:對(duì)系統(tǒng)的一些重要操作的記錄第四章 數(shù)據(jù)庫(kù)設(shè)計(jì)4.1 數(shù)據(jù)庫(kù)類型:mysql server 4.14.2 數(shù)據(jù)庫(kù)簡(jiǎn)介:mysql由瑞典的t.c.x公司負(fù)責(zé)開(kāi)發(fā)和維護(hù),是一個(gè)精巧的sql數(shù)據(jù)庫(kù)管理系統(tǒng),雖然它不是開(kāi)放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(api)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛(ài)好者甚至是商業(yè)軟件用戶的青睞,特別是與apache和php/perl結(jié)合,為建立基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)站提供了強(qiáng)大動(dòng)力。 mysql是一個(gè)真正的多用戶、多線程sql數(shù)據(jù)庫(kù)服務(wù)器。sql(結(jié)構(gòu)化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。mysql是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。sql是一種標(biāo)準(zhǔn)化的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用sql語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,同時(shí)mysql也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。mysql 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個(gè)sql服務(wù)器,它能處理與任何可不昂貴硬件平臺(tái)上提 供數(shù)據(jù)庫(kù)的廠家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫(kù),但速度更快,mysql就開(kāi)發(fā)出來(lái)。mysql數(shù)據(jù)庫(kù)服務(wù)器是一個(gè)客戶/服務(wù)器系統(tǒng),它由多線程sql服務(wù)器組成,支持不同的后端、多個(gè)不同的客戶程序和庫(kù)、管理工具和廣泛的應(yīng)用程序接口(apis)。 mysql也可以是一個(gè)嵌入的多線程庫(kù),你可以把它連接到你的應(yīng)用中而得到一個(gè)小、快且易于管理的產(chǎn)品。 從此可以看出本數(shù)據(jù)庫(kù)的有點(diǎn)所在,因此本系統(tǒng)中選用了該數(shù)據(jù)庫(kù)。4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)原則4.3.1 數(shù)據(jù)文件結(jié)構(gòu)的設(shè)置應(yīng)滿足管理上的要求設(shè)計(jì)數(shù)據(jù)文件結(jié)構(gòu)時(shí)應(yīng)考慮到管理的要求和實(shí)際處理的方便將某一層次、某一方面的管理所要處理的數(shù)據(jù)相對(duì)集中的組織在一起,以簡(jiǎn)化后續(xù)工作對(duì)實(shí)際問(wèn)題的處理過(guò)程。4.3.2 數(shù)據(jù)記錄要反映各級(jí)管理的需要數(shù)據(jù)的存儲(chǔ)是為了管理的需要,如果記錄的內(nèi)容不足以反映管理上的需要,那么這個(gè)文件的記錄是不完善的。所以在設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)時(shí),不但要保證事務(wù)各個(gè)方面的信息,而且要盡量使同一方面,同一管理層次上的內(nèi)容要相對(duì)集中的組織在一起,既全面反映客觀事物,又集中反映出它的每一個(gè)側(cè)面。4.3.3 使得數(shù)據(jù)的冗余度盡量減少數(shù)據(jù)冗余度是衡量數(shù)據(jù)的結(jié)構(gòu)的指標(biāo)之一,這個(gè)指標(biāo)與上述相對(duì)集中的在同一文件結(jié)構(gòu)中反映事物的各個(gè)側(cè)面是相矛盾的,因?yàn)閺恼w上來(lái)看,反映這些側(cè)面的數(shù)據(jù)集合會(huì)存在交叉的情況,不可避免地出現(xiàn)數(shù)據(jù)的冗余,所以我們所考慮的是在二者折中的情況下選擇最優(yōu)解或滿意解。4.3.4 保持?jǐn)?shù)據(jù)的獨(dú)立性在添加、修改、刪除數(shù)據(jù)時(shí),數(shù)據(jù)的結(jié)構(gòu)、相互關(guān)系和屬性保持不變,并且應(yīng)用程序不依賴于數(shù)據(jù)庫(kù)中數(shù)據(jù)的組織方式和存儲(chǔ)位置,也就是說(shuō)不同的應(yīng)用程序可按其所需的數(shù)據(jù)結(jié)構(gòu)去訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。當(dāng)數(shù)據(jù)的組織方式發(fā)生變更時(shí),不需要重新編寫或修改應(yīng)有程序4.3.5 保證數(shù)據(jù)的完整性和安全性系統(tǒng)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的進(jìn)行訪問(wèn),采取設(shè)置訪問(wèn)權(quán)限、身份驗(yàn)證、數(shù)據(jù)流加密等措施,防止無(wú)關(guān)的用戶對(duì)數(shù)據(jù)的非法訪問(wèn)和破壞,并提過(guò)各種保護(hù)手段,以防止各種破壞數(shù)據(jù)完整性的行為發(fā)生。4.3.6 維護(hù)方便有不斷擴(kuò)充和更新的能力設(shè)計(jì)好的數(shù)據(jù)庫(kù)要想永遠(yuǎn)使用,一成不變是不現(xiàn)實(shí)的。因?yàn)槭挛锟偸前l(fā)展變化的,因此設(shè)計(jì)好的數(shù)據(jù)庫(kù)系統(tǒng)不僅能滿足用戶目前的需求,還要對(duì)遠(yuǎn)期的需求又一定的擴(kuò)充和更新能力,有相應(yīng)的處理方案。4.4數(shù)據(jù)庫(kù)需求分析本數(shù)據(jù)庫(kù)要求保存以下信息:一級(jí)欄目信息、二級(jí)欄目信息、三級(jí)欄目信息、新聞信息、用戶信息等;根據(jù)需要設(shè)計(jì)如下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):一級(jí)欄目信息表:唯一編號(hào)、欄目名稱、登陸頁(yè)中的鏈接地址、登陸頁(yè)中的圖片、二級(jí)欄目圖片、審批通過(guò)則使用;二級(jí)欄目信息表:唯一編號(hào)、欄目名稱、一級(jí)欄目編號(hào)、鏈接地址、審批通過(guò)則使用;三級(jí)欄目信息表: 唯一編號(hào)、欄目名稱、二級(jí)欄目編號(hào)、鏈接地址、審批通過(guò)則使用;新聞信息表:唯一編號(hào)、名稱、審批通過(guò)則使用、所屬欄目、欄目級(jí)別、發(fā)表時(shí)間、修改時(shí)間、新聞標(biāo)題、新聞副標(biāo)題、新聞作者、新聞?dòng)浾?、新聞?lái)源、文件名、操作人;用戶信息表:唯一編號(hào)、用戶名、密碼、備注、鎖定.第五章 系統(tǒng)主要功能演示5.1 管理登錄模塊該模塊訪問(wèn)頁(yè)面login.jsp該模塊登錄時(shí)進(jìn)行用戶名和密碼的有效性驗(yàn)證.查詢用戶表,如果該用戶存在,則進(jìn)入后臺(tái)主頁(yè)面 index.jsp;如果不能通過(guò),則不給予提示.該校驗(yàn)過(guò)程使用servlet.java組件,存儲(chǔ)該用戶的編號(hào)在session中,以便維持該用戶的有效性連接.圖5-1: 系統(tǒng)登錄效果圖5.2 后臺(tái)用戶管理模塊后臺(tái)用戶管理模塊的設(shè)計(jì)是對(duì)人員數(shù)據(jù)的維護(hù).系統(tǒng)有個(gè)默認(rèn)的后臺(tái)管理員,該用戶登陸后臺(tái)管理模塊后,負(fù)責(zé)新建后臺(tái)的系統(tǒng)用戶.新建的用戶如果狀態(tài)為”使用狀態(tài)”則使用該新用戶登陸后可以使用后臺(tái)的系統(tǒng),如果狀態(tài)為”掛起狀態(tài)”,則該用戶不能登陸直到系統(tǒng)管理員修改該用戶的狀態(tài)為”使用狀態(tài)”時(shí)方有效. 該模塊訪問(wèn)頁(yè)面是user.jsp.5.2圖: 后臺(tái)用戶管理模塊5.3 后臺(tái)管理模塊該模塊分類中有用戶管理,主頁(yè)管理,退出等功能.實(shí)現(xiàn)了對(duì)前臺(tái)新聞信息和各級(jí)欄目的增加,修改,刪除等功能. 該模塊訪問(wèn)頁(yè)面是menu.jsp.5.3圖: 后臺(tái)管理模塊5.4 文章管理模塊該模塊用于維護(hù)前臺(tái)中的新聞內(nèi)容,是系統(tǒng)的主要模塊,該模塊的基礎(chǔ)是上面的三個(gè)欄目模塊,可以增加,修改,刪除新聞, 該模塊訪問(wèn)頁(yè)面是list.jsp.其主界面如圖:5.4圖: 文章管理模塊5.5 前臺(tái)生成頁(yè)面效果圖系統(tǒng)的前臺(tái)為新聞發(fā)布系統(tǒng)的完全表現(xiàn)層,后臺(tái)維護(hù)的模塊設(shè)計(jì)都是根據(jù)前臺(tái)的實(shí)際需要來(lái)進(jìn)行的.后臺(tái)的部分主要表現(xiàn)在欄目,新聞.其中一級(jí)欄目不一定有二級(jí)欄目,二級(jí)欄目不一定有三級(jí)欄目,這種設(shè)計(jì)也是為了靈活方便,滿足升級(jí)的需要.5.5圖: 前臺(tái)生成頁(yè)面效果圖第六章 關(guān)鍵技術(shù)設(shè)計(jì)詳解及源代碼6.1系統(tǒng)公用代碼 6.1.1 數(shù)據(jù)庫(kù)連接javabean 數(shù)據(jù)庫(kù)生成后就要與網(wǎng)頁(yè)建立動(dòng)態(tài)鏈接.系統(tǒng)為了方便起見(jiàn),將數(shù)據(jù)庫(kù)接口語(yǔ)句寫在了一個(gè)bean文件里面,凡是涉及數(shù)據(jù)庫(kù)操作的bean只要繼承這個(gè)bean就行了.其數(shù)據(jù)庫(kù)接口語(yǔ)句的源代碼如下: /*取得連接池*/public void getconnpool()trycontext initctx = new initialcontext();context ctx = (context)initctx.lookup(java:comp/env);/*獲取連接池對(duì)象*/object obj = (object)ctx.lookup(jdbc/oracledb);/*類型轉(zhuǎn)換*/javax.sql.datasource ds = (javax.sql.datasource)obj;conn = ds.getconnection();/*測(cè)試連接計(jì)數(shù)*/parentbean.curnum+;/parentbean.sumnum+;parentbean.showconnnum(true);catch(namingexception e)system.out.println(從數(shù)據(jù)池取得數(shù)據(jù)庫(kù)連接時(shí)出錯(cuò);rn錯(cuò)誤為: + e);catch(sqlexception e)system.out.println(從數(shù)據(jù)池取得數(shù)據(jù)庫(kù)連接時(shí)出錯(cuò);rn錯(cuò)誤為: + e);有了數(shù)據(jù)庫(kù)接口語(yǔ)句,我們對(duì)數(shù)據(jù)庫(kù)進(jìn)行增加,刪除,修改,檢查等的操作都封裝在bean里,只要繼承database.java這個(gè)父類就可以了.在其他涉及數(shù)據(jù)庫(kù)操作的網(wǎng)頁(yè)文件中加上”就可以建立網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)的連接了.6.1.2 系統(tǒng)字符串處理javabean 該函數(shù)類為常用的字符串處理類,進(jìn)行字符串的輸入輸出處理.因?yàn)橐话愕某绦蚴褂玫臄?shù)據(jù)表現(xiàn)形式都為字符串,對(duì)數(shù)字和時(shí)間等的正確處理和顯示,以及字符編碼的處理是十分重要的功能,對(duì)不同的系統(tǒng)有不同的要求,這個(gè)問(wèn)題常常成為各個(gè)系統(tǒng)的通用需要,所以本系統(tǒng)專門設(shè)計(jì)了該類,方便了系統(tǒng)的編寫,而且可以在以后的系統(tǒng)中復(fù)用該組件.源代碼如下:/*把null轉(zhuǎn)化為*/public string tostring(string str)if(str=null)str = ;if(str.equals(null)str = ;str = str.trim();return str;/*轉(zhuǎn)換編碼*/public string togbk(string str)trystr=new string(str.getbytes(iso-8859-1),gbk);catch (exception e) return str;/*utf8*/public string toutf8string(string src)byte b = src.getbytes();char c = new charb.length;for(int i=0;ib.length;i+)ci = (char)(bi&0x00ff);return new string(c);public string toascii(string str)trystr=new string(str.getbytes(gbk),iso-8859-1);catch (exception e) return str;/*分割字符串*/public string splitstr(string str,char c)str+=c;int n=0;for(int i=0;istr.length();i+)if(str.charat(i)=c)n+;string out = new stringn;for(int i=0;i= 0) output.append(source.substring(posstart, pos);output.append(newstring);posstart = pos + lengthofold;if (posstart lengthofsource) output.append(source.substring(posstart);return output.tostring();/*取得兩個(gè)日期的天數(shù)之差*/public long getdaysinterval(date d1,date d2)return (d2.gettime()-d1.gettime()/86400000;/*將字符串格式化為固定長(zhǎng)度*/public string tolengthstr(string instr,int len)int n = instr.length();for(int i=0;i(len-n);i+)instr = +instr;return instr;/*將字符串格式化為固定長(zhǎng)度(右邊補(bǔ)空格)*/public string tolengthstrright(string instr,int len)int n = instr.length();for(int i=0;i(len-n);i+)instr = instr+ ;return instr;6.2 文件生成javabean6.2.1 生成主頁(yè)javabean該類的功能用于為系統(tǒng)主頁(yè)提供服務(wù)功能.需要提取一級(jí)欄目的新聞列表時(shí)調(diào)用函數(shù)getmenu1list(),需要提取二級(jí)欄目的新聞列表時(shí)調(diào)用函數(shù)getmenu2list(),需要提取三級(jí)欄目的新聞列表時(shí)調(diào)用函數(shù)getmenu3list().主要代碼如下:package com.ideas.bean;import java.lang.*;import java.util.*;import java.sql.*;public class mainbean extends parentbean string id = -1;public void setid(string id) this.id = id; public string login(string loginimg) string sql = select href from menu1 where loginimg=+loginimg+ and isuse=1; string href = ; vector v = getdatabysql(sql); if(v.size()=1) href = (string)(hashtable)v.get(0).get(href); return href; public vector getmenu1list() string sql = select * from menu1 where isuse=1 order by id; return getdatabysql(sql); public vector getmenu2list(string menu1id) string sql = select id,name from menu2 where isuse=1 and id1=+menu1id+ order by id; return getdatabysql(sql); public vector getmenu3list(string menu2id) string sql = select id,name from menu3 where isuse=1 and id2=+menu2id+ order by id; return getdatabysql(sql);6.2.2 生成一級(jí)欄目javabean該類的功能用于對(duì)系統(tǒng)前臺(tái)的一級(jí)欄目名稱進(jìn)行維護(hù).添加欄目時(shí)調(diào)用函數(shù)add(),修改欄目屬性時(shí)調(diào)用函數(shù)mod(),刪除一個(gè)欄目時(shí)調(diào)用函數(shù)del().在每一次進(jìn)行調(diào)用函數(shù)之前,需要使用函數(shù)setid()來(lái)設(shè)置接下來(lái)的操作是對(duì)哪一個(gè)欄目進(jìn)行操作.另外,該組件提供查詢功能,如果需要查詢一個(gè)欄目的相關(guān)屬性,則調(diào)用函數(shù)getonedate();如果需要查詢所有的欄目列表,則調(diào)用函數(shù)getonepage(),該函數(shù)為分頁(yè)函數(shù),負(fù)責(zé)提取第幾頁(yè)的數(shù)據(jù),并且接受每一頁(yè)顯示行數(shù)的設(shè)置參數(shù).主要代碼如下: package com.ideas.bean;import java.lang.*;import java.util.*;import java.sql.*;public class menu1bean extends parentbean string id = -1; public void setid(string id) this.id = id; public vector getcurpage(int cur,int records) return getonepage(select * from menu1,cur,records); /取得數(shù)據(jù)表中的某一條記錄 public vector getonedata() throws exception string sql = select * from menu1 where id= +id; return getresultsetdata(selectrecord(sql); public int add(hashtable hash) throws exception string name = ds.tostring(string)hash.get(name); string href = ds.tostring(string)hash.get(href); string loginimg=ds.tostring(string)hash.get(loginimg); string rect=ds.tostring(string)hash.get(rect); string menu2img=ds.tostring(string)hash.get(menu2img); string isuse= ds.tostring(string)hash.get(isuse); vector vect =new vector(); vect.add(menu1); vect.add(addvector(name,name,char); vect.add(addvector(href,href,char); vect.add(addvector(loginimg,loginimg,char); vect.add(addvector(rect,rect,char); vect.add(addvector(menu2img,menu2img,char); vect.add(addvector(isuse,isuse,char); string sql = select * from menu1 where name=+name+; if(getresultsetdata(selectrecord(sql).size()!=0) return 1; return insertrecord(vect); public int mod(hashtable hash) throws exception string name = ds.tostring(string)hash.get(name); string href = ds.tostring(string)hash.get(href); stringloginimg=ds.tostring(string)hash.get(loginimg); string rect = ds.tostring(string)hash.get(rect); stringmenu2img=ds.tostring(string)hash.get(menu2img); string issue =ds.tostring(string)hash.get(isuse); vector vect =new vector(); vect.add(menu1); vect.add(addvector(name,name,char); vect.add(addvector(href,href,char); vect.add(addvector(loginimg,loginimg,char); vect.add(addvector(rect,rect,char); vect.add(addvector(menu2img,menu2img,char); vect.add(addvector(isuse,isuse,char); vect.add(id=+id+); string sql = select * from menu1 where id!=+id+ and name=+name+; if(getresultsetdata(selectrecord(sql).size()!=0) return 1; return updaterecord(vect); public void del() deleterecord(delete from menu1 where id=+id); ;6.2.3 生成二級(jí)欄目javabean該類的功能用于對(duì)系統(tǒng)前臺(tái)的二級(jí)欄目名稱進(jìn)行維護(hù).添加欄目時(shí)調(diào)用函數(shù)add(),修改欄目屬性時(shí)調(diào)用函數(shù)mod(),刪除一個(gè)欄目時(shí)調(diào)用函數(shù)del().在每一次進(jìn)行調(diào)用函數(shù)之前,需要使用函數(shù)setid()來(lái)設(shè)置接下來(lái)的操作是對(duì)哪一個(gè)欄目進(jìn)行操作.另外,該組件提供查詢功能,如果需要查詢一個(gè)欄目的相關(guān)屬性,則調(diào)用函數(shù)getonedate();如果需要查詢所有的欄目列表,則調(diào)用函數(shù)getonepage(),該函數(shù)為分頁(yè)函數(shù),負(fù)責(zé)提取第幾頁(yè)的數(shù)據(jù),并且接受每一頁(yè)顯示行數(shù)的設(shè)置參數(shù).主要代碼如下:package com.ideas.bean;import java.lang.*;import java.util.*;import java.sql.*;public class menu2bean extends parentbean string id = -1; public void setid(string id) this.id = id; public vector getcurpage(int cur,int records) return getonepage(select menu2.*, as menu1name from menu2,menu1 where menu2.id1=menu1.id order by id1,id,cur,records); /取得數(shù)據(jù)表中的某一條記錄 public vector getonedata() throws exception string sql = select * from menu2 where id= +id; return getresultsetdata(selectrecord(sql); public int add(hashtable hash) throws exception string name = ds.tostring(string)hash.get(name); string id1= ds.tostring(string)hash.get(id1); string href = ds.tostring(string)hash.get(href); string rect= ds.tostring(string)hash.get(rect); string isuse= ds.tostring(string)hash.get(isuse); vector vect =new vector(); vect.add(menu2); vect.add(addvector(name,name,char); vect.add(addvector(id1,id1,num); vect.add(addvector(href,href,char); vect.add(addvector(rect,rect,char); vect.add(addvector(isuse,isuse,char); string sql = select * from menu2 where name=+name+; if(getresultsetdata(selectrecord(sql).size()!=0) return 1; return insertrecord(vect); public int mod(hashtable hash) throws exception string name = ds.tostring(string)hash.get(name); string id1= ds.tostring(string)hash.get(id1)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論