




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
俄文主頁信息管理系統(tǒng)第一章 緒論1.1 jsp簡介1.1.1 jsp介紹jsp技術(shù)是用java語言作為腳本語言的,jsp網(wǎng)頁為整個服務(wù)器端的java庫單元提供了一個接口來服務(wù)于http的應(yīng)用程序。jsp(javaserverpages)是由sunmicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),網(wǎng)址為/products/jsp。該技術(shù)為創(chuàng)建顯示動態(tài)生成內(nèi)容的web頁面提供了一個簡捷而快速的方法。jsp技術(shù)的設(shè)計目的是使得構(gòu)造基于web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種web服務(wù)器,應(yīng)用服務(wù)器,瀏覽器和開發(fā)工具共同工作。jsp規(guī)范是web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。在傳統(tǒng)的網(wǎng)頁html文件(*htm,*.html)中加入java程序片段(scriptlet)和jsp標(biāo)記(tag),就構(gòu)成了jsp網(wǎng)頁(*.jsp)。web服務(wù)器在遇到訪問jsp網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以html格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求最低,可以實現(xiàn)無plugin,無activex,無javaapplet,甚至無frame。1.1.2 jsp的特點1將內(nèi)容的生成和顯示進行分離 使用jsp技術(shù),web頁面開發(fā)人員可以使用html或者xml標(biāo)識來設(shè)計和格式化最終頁面。使用jsp標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識和javabeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運行。如果核心邏輯被封裝在標(biāo)識和beans中,那么其他人,如web管理人員和頁面設(shè)計者,能夠編輯和使用jsp頁面,而不影響內(nèi)容的生成。 在服務(wù)器端,jsp引擎解釋jsp標(biāo)識和小腳本,生成所請求的內(nèi)容(例如,通過訪問javabeans組件,使用jdbctm技術(shù)訪問數(shù)據(jù)庫,或者包含文件),并且將結(jié)果以html(或者xml)頁面的形式發(fā)送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于html的web瀏覽器的完全可用性。 2強調(diào)可重用的組件 絕大多數(shù)jsp頁面依賴于可重用的,跨平臺的組件(javabeans或者enterprise javabeans組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團體所使用?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 3采用標(biāo)識簡化頁面開發(fā) web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。javaserver page技術(shù)封裝了許多功能,這些功能是在易用的、與jsp相關(guān)的xml標(biāo)識中進行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的jsp標(biāo)識能夠訪問和實例化javabeans組件,設(shè)置或者檢索組件屬性,下載applet,以及執(zhí)行用其他方法更難于編碼和耗時的功能。 通過開發(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ù)家族的一部分,以及java 2(企業(yè)版體系結(jié)構(gòu))的一個組成部分,jsp技術(shù)能夠支持高度復(fù)雜的基于web的應(yīng)用。 由于jsp頁面的內(nèi)置腳本語言是基于java編程語言的,而且所有的jsp頁面都被編譯成為java servlet,jsp頁面就具有java技術(shù)的所有好處,包括健壯的存儲管理和安全性。 作為java平臺的一部分,jsp擁有java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應(yīng)商將jsp支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。1.2新聞發(fā)布系統(tǒng)簡介 隨著社會的發(fā)展和信息技術(shù)的進步,全球信息化的趨勢越來越明顯?;ミB網(wǎng)以前所未有的速度發(fā)展,成為與報紙、廣播、電視并肩的第四媒體,同時正以其便捷的信息傳輸形式改變著人們的消費模式。在過去,新聞傳媒渠道僅僅限于報紙、廣播等,現(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è)界動態(tài)等信息集中起來發(fā)布、管理、查詢等的一種網(wǎng)站應(yīng)用程序。無論管理人員身處何地,只要能夠上網(wǎng)就能對網(wǎng)站信息進行更新及維護。所有的操作可以通過瀏覽器完成,不需要掌握其他應(yīng)用軟件,用戶不需培訓(xùn)。新聞發(fā)布系統(tǒng)(news release system)是上個世紀(jì)九十年代互連網(wǎng)技術(shù)發(fā)展以后才出現(xiàn)的技術(shù),最初表現(xiàn)是解決一些網(wǎng)站的信息動態(tài)發(fā)布而開發(fā),最初只是簡單的發(fā)布和顯示,應(yīng)用對于各種不同的站點需要構(gòu)建不同的系統(tǒng)來滿足需要,而且功能十分單一,在九十年代后期,互連網(wǎng)技術(shù)進一步發(fā)展,網(wǎng)絡(luò)作為新起的新聞媒介工具,其用戶大大增加,對系統(tǒng)的要求也越來越高,新聞發(fā)布系統(tǒng)在這樣的一個環(huán)境中提出、開發(fā)、并改進,到現(xiàn)在,新聞系統(tǒng)開發(fā)的成功案例已經(jīng)不計其數(shù),而且已經(jīng)應(yīng)用到各種站點上,可以說,各行各業(yè)的絕大部分的網(wǎng)站都使用到了新聞系統(tǒng),大量的用戶引發(fā)了新聞系統(tǒng)功能的進一步擴大和深化,給新聞系統(tǒng)提出了更高的要求。1.3 新聞發(fā)布系統(tǒng)功能 本新聞發(fā)布系統(tǒng)所完成的主要功能有以下幾點。1 前臺客戶界面部分l 首頁界面設(shè)計。l 界面一級欄目顯示。l 界面二級欄目顯示。l 界面三級欄目顯示。l 單條新聞的顯示。l 相關(guān)新聞的顯示。l 新聞搜索。2 后臺管理界面部分l 管理員登錄。l 用戶管理。l 一級欄目管理。l 二級欄目管理。l 三級欄目管理。l 添加新聞。1.4新聞發(fā)布系統(tǒng)特點本系統(tǒng)具有以下特點:l 頁面模塊化:本系統(tǒng)在界面設(shè)計上都采用了模塊化處理思想,把很多模塊共有的部分集成一個模塊,例如頁面的頭和尾,數(shù)據(jù)庫的連接等,這樣在開發(fā)時遇到這些相似的頁面部分,就不需要從新編寫,重用這部分即可,大大提高了開發(fā)效率。l 新聞內(nèi)容的格式轉(zhuǎn)換:系統(tǒng)在進行新聞錄入時,為了便于在新聞瀏覽中顯示方便,將錄入的新聞內(nèi)容進行了格式轉(zhuǎn)換,將普通新聞內(nèi)容轉(zhuǎn)變成了網(wǎng)頁形式的新聞內(nèi)容,而在新聞修改中又進行了相反的轉(zhuǎn)換,在保存修改信息時又進行了同樣的轉(zhuǎn)換。這樣做的目的是為了能在新聞瀏覽中顯示出更多的信息,包括回車,空格,圖片等在數(shù)據(jù)庫中不能直接保存的信息。第二章 需求分析2.1背景 新聞發(fā)布系統(tǒng)(news release system)是上個世紀(jì)九十年代互連網(wǎng)技術(shù)發(fā)展以后才出現(xiàn)的技術(shù),最初表現(xiàn)是解決一些網(wǎng)站的信息動態(tài)發(fā)布而開發(fā),最初只是簡單的發(fā)布和顯示,應(yīng)用對于各種不同的站點需要構(gòu)建不同的系統(tǒng)來滿足需要,而且功能十分單一,在九十年代后期,互連網(wǎng)技術(shù)進一步發(fā)展,網(wǎng)絡(luò)作為新起的新聞媒介工具,其用戶大大增加,對系統(tǒng)的要求也越來越高,新聞發(fā)布系統(tǒng)在這樣的一個環(huán)境中提出、開發(fā)、并改進,到現(xiàn)在,新聞系統(tǒng)開發(fā)的成功案例已經(jīng)不計其數(shù),而且已經(jīng)應(yīng)用到各種站點上,可以說,各行各業(yè)的絕大部分的網(wǎng)站都使用到了新聞系統(tǒng),大量的用戶引發(fā)了新聞系統(tǒng)功能的進一步擴大和深化,給新聞系統(tǒng)提出了更高的要求。2.2 需求分析2.2.1 對結(jié)構(gòu)的規(guī)定:新聞快遞 - 校情總覽 . . 院系介紹 . . 國際交流 . 留學(xué)黑大 . . 科學(xué)研究 校園生活 . 咨詢信箱 . 黑大視頻 .國際交流 二級目錄:l 國際交流項目 l 外籍教師聘請 l 校際合作 留學(xué)黑大 二級目錄:l 招生簡章 l 博士生申請 l 碩士生申請 l 本科生申請 l 語言生申請 l 專業(yè)進修 l 研究學(xué)者 l 短期班 l 獎學(xué)金 l 申請表下載 l 留學(xué)咨詢 2.2.2對性能的規(guī)定1、操作應(yīng)該方便、靈活。2、系統(tǒng)應(yīng)有較高的穩(wěn)定性。3、系統(tǒng)應(yīng)有較高的安全性。4、系統(tǒng)應(yīng)有較高的容錯性。5、速度上要求前臺要能夠很快地反應(yīng)用戶,后臺操作不能出現(xiàn)超時現(xiàn)象。2.2.3數(shù)據(jù)管理能力要求1、能處理大量的新聞數(shù)據(jù)。2、安全指數(shù)高,防止黑客攻擊。3、負荷能力強,防止數(shù)據(jù)量過大,而影響速度。4、采用日志備份,追查非法用戶5、遵循數(shù)據(jù)完整性規(guī)則,保證數(shù)據(jù)實際有效。6、保證發(fā)送數(shù)據(jù)庫引擎的數(shù)據(jù)得以可靠存儲。7、密碼管理,為了保證系統(tǒng)數(shù)據(jù)的安全性,系統(tǒng)對用戶登陸進行了加密限定(md5)。2.2.4 運行環(huán)境1.硬件要求:cpu:p3或者以上;內(nèi)存:64mb或者以上硬盤:500m或者以上2.軟件要求:數(shù)據(jù)庫環(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ù)庫管理: sqlyog enterprise第三章 概要設(shè)計3.1 系統(tǒng)的體系結(jié)構(gòu)javabeanweb browserclientclientmysqlserverdb server本新聞系統(tǒng)根據(jù)后臺管理員設(shè)置的欄目和模板自動生成前臺新聞主頁、欄目瀏覽頁面和新聞瀏覽頁面,同時后臺提供了欄目、模板、新聞的編輯、修改、和刪除功能,完成了新聞系統(tǒng)的所有功能。圖3-1:系統(tǒng)結(jié)構(gòu)圖本新聞系統(tǒng)設(shè)計采用典型的三層結(jié)構(gòu)模式:第一層jsp頁面主要實現(xiàn)對管理界面的顯示和解釋、中間層javabean組件實現(xiàn)對數(shù)據(jù)庫的操作和前臺頁面的生成工作,第三層數(shù)據(jù)庫服務(wù)器主要對系統(tǒng)提高數(shù)據(jù)服務(wù)。中間層的javabean組件主要封裝了對數(shù)據(jù)庫的查詢、修改、刪除以及頁面生成工作,實現(xiàn)了本系統(tǒng)的全部中間業(yè)務(wù)邏輯,在系統(tǒng)中起關(guān)鍵作用。mysqlserver db server新聞錄入javabeanjavabean生成靜態(tài)頁面前臺瀏覽用戶圖3-1:系統(tǒng)設(shè)計方案本系統(tǒng)欄目管理-文章管理-模板管理-生成html頁面形成一個完整的新聞發(fā)布過程,主要通過java類庫中的java.sql.*和java.io.*2個包內(nèi)的相關(guān)類實現(xiàn)了數(shù)據(jù)庫的管理和靜態(tài)文件的生成操作。web browser數(shù)據(jù)庫服務(wù)器管理用戶登錄登錄驗證失敗失敗提示&日志記錄權(quán)限驗證權(quán)限驗證文章管理生成管理賬號管理系統(tǒng)數(shù)據(jù)添加文章編輯文章刪除文章菜單級別所屬菜單審批管理生成主頁生成所有欄目生成所有文章賬號管理修改密碼系統(tǒng)設(shè)置系統(tǒng)空間占用數(shù)據(jù)庫備份數(shù)據(jù)庫恢復(fù)數(shù)據(jù)庫收縮sql語句執(zhí)行日志管理前臺新聞瀏覽用戶瀏覽 檢索圖3-2:系統(tǒng)業(yè)務(wù)流圖3.2 系統(tǒng)業(yè)務(wù)流圖后臺管理員通過登錄驗證獲得后臺管理權(quán)限,可以通過:設(shè)置欄目-添加文章-菜單級別-所屬菜單-審批-生成文件等一系列的系統(tǒng)業(yè)務(wù)來完成一個新聞系統(tǒng)的設(shè)置和新聞的發(fā)布,圖3-2為本系統(tǒng)的業(yè)務(wù)流程圖。3.3 數(shù)據(jù)流程圖數(shù)據(jù)庫服務(wù)器欄目模板新聞添加欄目添加新聞添加模板生成靜態(tài)頁面圖3-3:系統(tǒng)數(shù)據(jù)流程圖3.4系統(tǒng)模塊以及功能設(shè)計模塊詳細功能描述文章管理添加文章:主要是用于發(fā)布新聞。編輯文章:對已發(fā)布的新聞進行審核、修改、刪除等操作。欄目管理:對新聞的欄目進行增加、修改、刪除。生成管理生成所有文章 :生成所有新聞的瀏覽頁面。生成各欄目主頁:生成所有欄目的瀏覽頁面。模板綁定:對主頁、欄目、新聞瀏覽分別綁定html模板,便于生成。模板管理:修改、刪除html模板(已經(jīng)綁定模板不能刪除)。賬號管理賬號管理:增加、刪除。修改密碼:修改當(dāng)前管理員的登錄密碼日志管理日志管理:對系統(tǒng)的一些重要操作的記錄第四章 數(shù)據(jù)庫設(shè)計4.1 數(shù)據(jù)庫類型:mysql server 4.14.2 數(shù)據(jù)庫簡介:mysql由瑞典的t.c.x公司負責(zé)開發(fā)和維護,是一個精巧的sql數(shù)據(jù)庫管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強大功能、靈活性、豐富的應(yīng)用編程接口(api)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與apache和php/perl結(jié)合,為建立基于數(shù)據(jù)庫的動態(tài)網(wǎng)站提供了強大動力。 mysql是一個真正的多用戶、多線程sql數(shù)據(jù)庫服務(wù)器。sql(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫語言。mysql是以一個客戶機/服務(wù)器結(jié)構(gòu)的實現(xiàn),它由一個服務(wù)器守護程序mysqld和很多不同的客戶程序和庫組成。sql是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用sql語言為一個網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時mysql也足夠快和靈活以允許你存儲記錄文件和圖像。mysql 主要目標(biāo)是快速、健壯和易用。最初是因為我們需要這樣一個sql服務(wù)器,它能處理與任何可不昂貴硬件平臺上提 供數(shù)據(jù)庫的廠家在一個數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,mysql就開發(fā)出來。mysql數(shù)據(jù)庫服務(wù)器是一個客戶/服務(wù)器系統(tǒng),它由多線程sql服務(wù)器組成,支持不同的后端、多個不同的客戶程序和庫、管理工具和廣泛的應(yīng)用程序接口(apis)。 mysql也可以是一個嵌入的多線程庫,你可以把它連接到你的應(yīng)用中而得到一個小、快且易于管理的產(chǎn)品。 從此可以看出本數(shù)據(jù)庫的有點所在,因此本系統(tǒng)中選用了該數(shù)據(jù)庫。4.3 數(shù)據(jù)庫設(shè)計原則4.3.1 數(shù)據(jù)文件結(jié)構(gòu)的設(shè)置應(yīng)滿足管理上的要求設(shè)計數(shù)據(jù)文件結(jié)構(gòu)時應(yīng)考慮到管理的要求和實際處理的方便將某一層次、某一方面的管理所要處理的數(shù)據(jù)相對集中的組織在一起,以簡化后續(xù)工作對實際問題的處理過程。4.3.2 數(shù)據(jù)記錄要反映各級管理的需要數(shù)據(jù)的存儲是為了管理的需要,如果記錄的內(nèi)容不足以反映管理上的需要,那么這個文件的記錄是不完善的。所以在設(shè)計數(shù)據(jù)庫結(jié)構(gòu)時,不但要保證事務(wù)各個方面的信息,而且要盡量使同一方面,同一管理層次上的內(nèi)容要相對集中的組織在一起,既全面反映客觀事物,又集中反映出它的每一個側(cè)面。4.3.3 使得數(shù)據(jù)的冗余度盡量減少數(shù)據(jù)冗余度是衡量數(shù)據(jù)的結(jié)構(gòu)的指標(biāo)之一,這個指標(biāo)與上述相對集中的在同一文件結(jié)構(gòu)中反映事物的各個側(cè)面是相矛盾的,因為從整體上來看,反映這些側(cè)面的數(shù)據(jù)集合會存在交叉的情況,不可避免地出現(xiàn)數(shù)據(jù)的冗余,所以我們所考慮的是在二者折中的情況下選擇最優(yōu)解或滿意解。4.3.4 保持數(shù)據(jù)的獨立性在添加、修改、刪除數(shù)據(jù)時,數(shù)據(jù)的結(jié)構(gòu)、相互關(guān)系和屬性保持不變,并且應(yīng)用程序不依賴于數(shù)據(jù)庫中數(shù)據(jù)的組織方式和存儲位置,也就是說不同的應(yīng)用程序可按其所需的數(shù)據(jù)結(jié)構(gòu)去訪問數(shù)據(jù)庫中的數(shù)據(jù)。當(dāng)數(shù)據(jù)的組織方式發(fā)生變更時,不需要重新編寫或修改應(yīng)有程序4.3.5 保證數(shù)據(jù)的完整性和安全性系統(tǒng)對數(shù)據(jù)庫中的數(shù)據(jù)的進行訪問,采取設(shè)置訪問權(quán)限、身份驗證、數(shù)據(jù)流加密等措施,防止無關(guān)的用戶對數(shù)據(jù)的非法訪問和破壞,并提過各種保護手段,以防止各種破壞數(shù)據(jù)完整性的行為發(fā)生。4.3.6 維護方便有不斷擴充和更新的能力設(shè)計好的數(shù)據(jù)庫要想永遠使用,一成不變是不現(xiàn)實的。因為事物總是發(fā)展變化的,因此設(shè)計好的數(shù)據(jù)庫系統(tǒng)不僅能滿足用戶目前的需求,還要對遠期的需求又一定的擴充和更新能力,有相應(yīng)的處理方案。4.4數(shù)據(jù)庫需求分析本數(shù)據(jù)庫要求保存以下信息:一級欄目信息、二級欄目信息、三級欄目信息、新聞信息、用戶信息等;根據(jù)需要設(shè)計如下數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):一級欄目信息表:唯一編號、欄目名稱、登陸頁中的鏈接地址、登陸頁中的圖片、二級欄目圖片、審批通過則使用;二級欄目信息表:唯一編號、欄目名稱、一級欄目編號、鏈接地址、審批通過則使用;三級欄目信息表: 唯一編號、欄目名稱、二級欄目編號、鏈接地址、審批通過則使用;新聞信息表:唯一編號、名稱、審批通過則使用、所屬欄目、欄目級別、發(fā)表時間、修改時間、新聞標(biāo)題、新聞副標(biāo)題、新聞作者、新聞記者、新聞來源、文件名、操作人;用戶信息表:唯一編號、用戶名、密碼、備注、鎖定.第五章 系統(tǒng)主要功能演示5.1 管理登錄模塊該模塊訪問頁面login.jsp該模塊登錄時進行用戶名和密碼的有效性驗證.查詢用戶表,如果該用戶存在,則進入后臺主頁面 index.jsp;如果不能通過,則不給予提示.該校驗過程使用servlet.java組件,存儲該用戶的編號在session中,以便維持該用戶的有效性連接.圖5-1: 系統(tǒng)登錄效果圖5.2 后臺用戶管理模塊后臺用戶管理模塊的設(shè)計是對人員數(shù)據(jù)的維護.系統(tǒng)有個默認的后臺管理員,該用戶登陸后臺管理模塊后,負責(zé)新建后臺的系統(tǒng)用戶.新建的用戶如果狀態(tài)為”使用狀態(tài)”則使用該新用戶登陸后可以使用后臺的系統(tǒng),如果狀態(tài)為”掛起狀態(tài)”,則該用戶不能登陸直到系統(tǒng)管理員修改該用戶的狀態(tài)為”使用狀態(tài)”時方有效. 該模塊訪問頁面是user.jsp.5.2圖: 后臺用戶管理模塊5.3 后臺管理模塊該模塊分類中有用戶管理,主頁管理,退出等功能.實現(xiàn)了對前臺新聞信息和各級欄目的增加,修改,刪除等功能. 該模塊訪問頁面是menu.jsp.5.3圖: 后臺管理模塊5.4 文章管理模塊該模塊用于維護前臺中的新聞內(nèi)容,是系統(tǒng)的主要模塊,該模塊的基礎(chǔ)是上面的三個欄目模塊,可以增加,修改,刪除新聞, 該模塊訪問頁面是list.jsp.其主界面如圖:5.4圖: 文章管理模塊5.5 前臺生成頁面效果圖系統(tǒng)的前臺為新聞發(fā)布系統(tǒng)的完全表現(xiàn)層,后臺維護的模塊設(shè)計都是根據(jù)前臺的實際需要來進行的.后臺的部分主要表現(xiàn)在欄目,新聞.其中一級欄目不一定有二級欄目,二級欄目不一定有三級欄目,這種設(shè)計也是為了靈活方便,滿足升級的需要.5.5圖: 前臺生成頁面效果圖第六章 關(guān)鍵技術(shù)設(shè)計詳解及源代碼6.1系統(tǒng)公用代碼 6.1.1 數(shù)據(jù)庫連接javabean 數(shù)據(jù)庫生成后就要與網(wǎng)頁建立動態(tài)鏈接.系統(tǒng)為了方便起見,將數(shù)據(jù)庫接口語句寫在了一個bean文件里面,凡是涉及數(shù)據(jù)庫操作的bean只要繼承這個bean就行了.其數(shù)據(jù)庫接口語句的源代碼如下: /*取得連接池*/public void getconnpool()trycontext initctx = new initialcontext();context ctx = (context)initctx.lookup(java:comp/env);/*獲取連接池對象*/object obj = (object)ctx.lookup(jdbc/oracledb);/*類型轉(zhuǎn)換*/javax.sql.datasource ds = (javax.sql.datasource)obj;conn = ds.getconnection();/*測試連接計數(shù)*/parentbean.curnum+;/parentbean.sumnum+;parentbean.showconnnum(true);catch(namingexception e)system.out.println(從數(shù)據(jù)池取得數(shù)據(jù)庫連接時出錯;rn錯誤為: + e);catch(sqlexception e)system.out.println(從數(shù)據(jù)池取得數(shù)據(jù)庫連接時出錯;rn錯誤為: + e);有了數(shù)據(jù)庫接口語句,我們對數(shù)據(jù)庫進行增加,刪除,修改,檢查等的操作都封裝在bean里,只要繼承database.java這個父類就可以了.在其他涉及數(shù)據(jù)庫操作的網(wǎng)頁文件中加上”就可以建立網(wǎng)頁與數(shù)據(jù)庫的連接了.6.1.2 系統(tǒng)字符串處理javabean 該函數(shù)類為常用的字符串處理類,進行字符串的輸入輸出處理.因為一般的程序使用的數(shù)據(jù)表現(xiàn)形式都為字符串,對數(shù)字和時間等的正確處理和顯示,以及字符編碼的處理是十分重要的功能,對不同的系統(tǒng)有不同的要求,這個問題常常成為各個系統(tǒng)的通用需要,所以本系統(tǒng)專門設(shè)計了該類,方便了系統(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();/*取得兩個日期的天數(shù)之差*/public long getdaysinterval(date d1,date d2)return (d2.gettime()-d1.gettime()/86400000;/*將字符串格式化為固定長度*/public string tolengthstr(string instr,int len)int n = instr.length();for(int i=0;i(len-n);i+)instr = +instr;return instr;/*將字符串格式化為固定長度(右邊補空格)*/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 生成主頁javabean該類的功能用于為系統(tǒng)主頁提供服務(wù)功能.需要提取一級欄目的新聞列表時調(diào)用函數(shù)getmenu1list(),需要提取二級欄目的新聞列表時調(diào)用函數(shù)getmenu2list(),需要提取三級欄目的新聞列表時調(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 生成一級欄目javabean該類的功能用于對系統(tǒng)前臺的一級欄目名稱進行維護.添加欄目時調(diào)用函數(shù)add(),修改欄目屬性時調(diào)用函數(shù)mod(),刪除一個欄目時調(diào)用函數(shù)del().在每一次進行調(diào)用函數(shù)之前,需要使用函數(shù)setid()來設(shè)置接下來的操作是對哪一個欄目進行操作.另外,該組件提供查詢功能,如果需要查詢一個欄目的相關(guān)屬性,則調(diào)用函數(shù)getonedate();如果需要查詢所有的欄目列表,則調(diào)用函數(shù)getonepage(),該函數(shù)為分頁函數(shù),負責(zé)提取第幾頁的數(shù)據(jù),并且接受每一頁顯示行數(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 生成二級欄目javabean該類的功能用于對系統(tǒng)前臺的二級欄目名稱進行維護.添加欄目時調(diào)用函數(shù)add(),修改欄目屬性時調(diào)用函數(shù)mod(),刪除一個欄目時調(diào)用函數(shù)del().在每一次進行調(diào)用函數(shù)之前,需要使用函數(shù)setid()來設(shè)置接下來的操作是對哪一個欄目進行操作.另外,該組件提供查詢功能,如果需要查詢一個欄目的相關(guān)屬性,則調(diào)用函數(shù)getonedate();如果需要查詢所有的欄目列表,則調(diào)用函數(shù)getonepage(),該函數(shù)為分頁函數(shù),負責(zé)提取第幾頁的數(shù)據(jù),并且接受每一頁顯示行數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司假期薪資管理制度
- 外出打卡簽到管理制度
- 農(nóng)村醫(yī)生備案管理制度
- 公司資金項目管理制度
- 完善單位公寓管理制度
- 關(guān)于人事考勤管理制度
- 外包單位用水管理制度
- 單位員工午休管理制度
- 公司研發(fā)加班管理制度
- 值班用品采購管理制度
- 湖北省武漢市2025屆高三年級五月模擬訓(xùn)練試題數(shù)學(xué)試題及答案(武漢五調(diào))
- 2025年湖北省襄陽市襄州區(qū)中考數(shù)學(xué)二模試卷
- 2024年浙江省單獨考試招生文化考試語文試卷真題(含答案詳解)
- 《汽車電工電子基礎(chǔ)》課程標(biāo)準(zhǔn)
- 諾和諾德制藥
- 長三角地區(qū)地圖(可以隨意更改顏色、轉(zhuǎn)動、組合))
- UB-7PH計操作規(guī)程
- SIDEL吹瓶機原理ppt課件
- 公司解散清算專項法律服務(wù)工作方案
- 轉(zhuǎn)發(fā)省局《關(guān)于加強非煤礦山安全生產(chǎn)班組建設(shè)的指導(dǎo)意見》的通知
- 第四節(jié)SS4改型電力機車常見故障處理
評論
0/150
提交評論