版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科生畢業(yè)論文(設(shè)計(jì))</p><p> 題 目: 新聞發(fā)布系統(tǒng) </p><p> 學(xué)生姓名: 馬粒蘋 </p><p> 學(xué) 號: 201317020127 </p><p> 專業(yè)班級: 信息管理與信息系統(tǒng) <
2、/p><p> 指導(dǎo)教師: 丁德鴻 </p><p> 完成時(shí)間: 年 月 </p><p><b> 目錄</b></p><p><b> 緒論1</b></p><p> 1.1 課題背景1&l
3、t;/p><p> 1.2 課題的目的和意義1</p><p> 系統(tǒng)開發(fā)的關(guān)鍵技術(shù)2</p><p> 2.1 運(yùn)行環(huán)境及開發(fā)工具2</p><p> 2.2 JAVA語言簡介2</p><p> 2.3 JAVA的優(yōu)勢與特點(diǎn)2</p><p> 2.5 MVC設(shè)計(jì)模式的簡介
4、4</p><p> 2.6 Servlet和jsp的簡介及優(yōu)勢4</p><p> 2.7 Oracle數(shù)據(jù)庫簡介4</p><p> 2.8 Eclipse neno.3和PLSQL簡介5</p><p> 2.9 Tomcat簡介5</p><p><b> 系統(tǒng)分析6</b
5、></p><p> 3.1 可行性分析6</p><p> 3.1.1 技術(shù)上可行性6</p><p> 3.1.2 操作上可行性6</p><p> 3.1.3 經(jīng)濟(jì)上可行性6</p><p> 3.2系統(tǒng)E-R圖6</p><p> 3.3系統(tǒng)功能分析7<
6、;/p><p><b> 系統(tǒng)設(shè)計(jì)8</b></p><p> 4.1 設(shè)計(jì)思想8</p><p> 4.2 系統(tǒng)功能模塊8</p><p> 4.3 系統(tǒng)流程分析9</p><p> 4.4 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)10</p><p> 4.4.1 系統(tǒng)數(shù)據(jù)庫性
7、能需求10</p><p> 4.4.2數(shù)據(jù)庫需求分析10</p><p> 4.4.3 數(shù)據(jù)字典設(shè)計(jì)及數(shù)據(jù)庫表命名規(guī)則10</p><p> 4.4.4 創(chuàng)建序列13</p><p> 主要功能的實(shí)現(xiàn)14</p><p> 5.1 系統(tǒng)代碼框架15</p><p> 5
8、.2 系統(tǒng)登錄界面15</p><p> 5.3 系統(tǒng)管理16</p><p> 5.3.1 部門管理17</p><p> 5.3.2 權(quán)限角色管理20</p><p> 5.3.3 用戶管理22</p><p> 5.4 新聞版塊管理26</p><p> 5.4.1
9、 版塊基本管理26</p><p> 5.4.2 版塊狀態(tài)管理30</p><p> 5.5 新聞管理32</p><p> 5.5.1 發(fā)布新聞32</p><p> 5.5.3 新聞信息管理34</p><p> 5.6 新聞統(tǒng)計(jì)36</p><p> 5.6.1 新
10、聞統(tǒng)計(jì)報(bào)表36</p><p> 5.6.2 新聞統(tǒng)計(jì)圖37</p><p><b> 結(jié)論38</b></p><p><b> 致謝39</b></p><p><b> 參考文獻(xiàn)39</b></p><p><b>
11、摘要</b></p><p> 隨著互聯(lián)網(wǎng)的快速發(fā)展,傳統(tǒng)的媒介已經(jīng)不能滿足人們及時(shí)獲取新聞信息的要求。一種簡單方便的新方式的出現(xiàn)成為必然的趨勢。而新聞發(fā)布系統(tǒng)作為當(dāng)今主流的獲取新聞的一種渠道,顯得越來越重要。一方面,它能夠提供新聞管理和發(fā)布的功能;另一方面,它可以實(shí)現(xiàn)系統(tǒng)與用戶之間的交互,用戶可以對新聞進(jìn)行閱讀和評論。此次的新聞發(fā)布系統(tǒng)是一個(gè)能夠自動(dòng)發(fā)布各種信息的平臺,可以借助此系統(tǒng)顯示新聞系統(tǒng)的
12、頁面,自動(dòng)生成首頁的新聞鏈接,提供新聞頁面的管理界面,自動(dòng)發(fā)布相關(guān)新聞,且支持圖片等的插入。在當(dāng)今這個(gè)互聯(lián)網(wǎng)信息時(shí)代,新聞發(fā)布系統(tǒng)的開發(fā)也越來越規(guī)范化。此次新聞發(fā)布系統(tǒng)是基于java語言主要采用MVC的設(shè)計(jì)模式和jsp+servlet實(shí)現(xiàn)的系統(tǒng)。</p><p> 關(guān)鍵字:數(shù)據(jù)庫 java servlet jsp Eclipse jdk1.7 Tomcat7</p><p>&
13、lt;b> ABSTRACT</b></p><p> With the rapid development of the Internet, the traditional media can not meet the requirements of people to get news information in time. The emergence of a simple and
14、convenient new way has become an inevitable trend. The news release system, as one of the main channels of obtaining news, becomes more and more important. On the one hand, it can provide the function of news management
15、and publishing; on the other hand, it can realize the interaction between the system and the user, the user can</p><p> KEYWORD:Databasejava servletjspEclipse jdk1.7 Tomcat7</p><p><b&
16、gt; 一、緒論</b></p><p><b> 1.1 課題背景</b></p><p> 現(xiàn)代社會(huì)是一個(gè)互聯(lián)網(wǎng)時(shí)代,人們的生活方式越來越方便快捷。人們的生活也越來越離不開網(wǎng)絡(luò)。互聯(lián)網(wǎng)的時(shí)代也是一個(gè)信息時(shí)代,及時(shí)的獲取信息顯得尤為重要。傳統(tǒng)的媒介已經(jīng)不能夠滿足人們及時(shí)獲取新聞信息的要求。一種簡單方便的新方式的出現(xiàn)成為一種必然的趨勢。新聞發(fā)布系統(tǒng)作
17、為當(dāng)今主流的獲取新聞的渠道,它的重要性日益顯著。</p><p> 1.2 課題的目的和意義</p><p> 新聞發(fā)布系統(tǒng)是一個(gè)便于人們獲取各種信息的平臺,整個(gè)系統(tǒng)涉及六大功能模塊:用戶瀏覽模塊、評論模塊、系統(tǒng)管理、新聞版塊管理、新聞統(tǒng)計(jì)管理、新聞管理。各個(gè)模塊之間又有著一定的聯(lián)系。相互之間的聯(lián)系在后臺進(jìn)行處理,然后將相應(yīng)的頁面在前臺進(jìn)行展示。通過前后臺的相互結(jié)合,用戶可以在前臺進(jìn)行
18、瀏覽,也可以獲取管理員的身份在后臺進(jìn)行相應(yīng)的管理操作。</p><p> 二、系統(tǒng)開發(fā)的關(guān)鍵技術(shù)</p><p> 本系統(tǒng)的開發(fā)是基于JAVA編程語言,采用B/S模式和MVC的設(shè)計(jì)模式。使用的數(shù)據(jù)庫為Oracle數(shù)據(jù)庫,數(shù)據(jù)庫的輔助工具為PLSQL Developer,Web服務(wù)器為Tomcat7.0,編碼工具為Eclipse neon.3。</p><p>
19、 2.1 運(yùn)行環(huán)境及開發(fā)工具</p><p><b> 硬件環(huán)境:</b></p><p><b> pc機(jī)一臺。</b></p><p><b> 軟件環(huán)境:</b></p><p> 操作系統(tǒng):Windows7操作系統(tǒng)</p><p> 數(shù)
20、據(jù)庫:Oracle數(shù)據(jù)庫</p><p> Web 服務(wù)器:Tomcat 7.0</p><p> 開發(fā)工具:Eclipse neon.3、PLSQL Developer</p><p> 2.2 JAVA語言簡介</p><p> Java是由Sun Microsystems 1995年5月開放的一種基于C和C++的一門新的編程語言
21、。它的主要?jiǎng)?chuàng)始人為詹姆斯.高斯林。說到Java語言,最先想到的就是它擁有面向?qū)ο蟮木幊趟枷牒涂缙脚_運(yùn)行。所謂的跨平臺是指程序可以跨越多種平臺運(yùn)行,即編寫一次,到處運(yùn)行。</p><p> Java語言能夠?qū)崿F(xiàn)它的跨平臺性,這得歸功于Java虛擬機(jī)(Java Virtual Machine)的存在。我們知道Java平臺由Java虛擬機(jī)(Java Virtual Machine)和Java應(yīng)用編程接口(Applic
22、ation Programming InterFace,簡稱API)構(gòu)成。于是Java應(yīng)用為我們提供了一個(gè)獨(dú)立于操作系統(tǒng)分為基本部分和擴(kuò)展部分的標(biāo)準(zhǔn)接口?,F(xiàn)在Java平臺已經(jīng)適用于幾乎所有的操作系統(tǒng),當(dāng)我們在硬件或操作系統(tǒng)平臺上安裝了Java平臺之后,Java應(yīng)用程序就能夠?qū)崿F(xiàn)運(yùn)行。這樣Java程序就能夠做到只編譯一次,就能夠在各種系統(tǒng)中運(yùn)行。</p><p> 2.3 JAVA的優(yōu)勢與特點(diǎn)</p>
23、<p> Java語言被稱為是一門入門門檻低的語言,這說明了Java的簡單易學(xué)。對于編程,我們總是說到語言是相通的。Java在語法上與傳統(tǒng)的C語言和C++語言存在很多相似的地方。在一般情況下,有C語言基礎(chǔ)的程序員是比較容易學(xué)習(xí)和使用Java的。在另一方面java也丟棄了一些在C++中很少使用的、很難理解的特性。需要注意的是在java中沒有指針,而且提供了自動(dòng)的垃圾回收機(jī)制。</p><p> J
24、ava語言是一種面向?qū)ο蟮某绦蛘Z言。而所有面向?qū)ο缶幊陶Z言都具有三個(gè)基本特點(diǎn):</p><p> 封裝、繼承、多態(tài)。Java也不例外。對于面向?qū)ο蟮木幊趟枷?,我們最常說的就是“萬事萬物皆對象”,現(xiàn)實(shí)世界中的對象均有屬性和行為,如果將這種關(guān)系反映到計(jì)算機(jī)程序上,那么屬性則表示對象的數(shù)據(jù),行為則代表對象的方法。所謂的封裝就是將類的狀態(tài)信息隱藏在類的內(nèi)部,將其私有化。不允許外部程序直接訪問,提供公有的方法訪問私有化的
25、屬性??梢哉f,對象是支持封裝的手段,是封裝的基本單位。封裝能夠?qū)⒆兓綦x,便于程序的維護(hù)和擴(kuò)展。繼承是面向?qū)ο笞铒@著的一個(gè)特性 。是指一個(gè)對象直接使用另一個(gè)對象的屬性和方法。并且這個(gè)子類還可以擴(kuò)展自己的新的屬性和方法。在java中只支持單一繼承,可以理解為一個(gè)孩子只能有一個(gè)父親。多態(tài)性即多種表現(xiàn)形式,可以用“一個(gè)對外接口,多個(gè)內(nèi)在實(shí)現(xiàn)方法”表示。從一定的角度來說,封裝和繼承是為多態(tài)做準(zhǔn)備的。多態(tài)存在的三個(gè)必要的條件是有繼承、有重寫、父類
26、引用指向子類對象。而在Java中有兩種實(shí)現(xiàn)多態(tài)的形式:繼承和接口。繼承的實(shí)現(xiàn)機(jī)制主要表現(xiàn)在父類和繼承該父類的一個(gè)或多個(gè)子類對某些方法的重寫,多個(gè)子類對同一方法的重寫可以表現(xiàn)出不同的行為。在接口的多態(tài)中,指向接口的引用必須是指定這實(shí)現(xiàn)了該接口的一</p><p> Java語言是可移植的。它的可移植性主要表現(xiàn)在三個(gè)方面:源代碼可移植性、CPU可移植性、操作系統(tǒng)可移植性。源代碼可移植性意味著任意一個(gè)Java程序,無
27、論它運(yùn)轉(zhuǎn)在哪種CPU、操作系統(tǒng)或者Java編譯器上,都將發(fā)生異樣的結(jié)果。Java利用其Java虛擬機(jī)實(shí)現(xiàn)CPU可移植性,Java虛擬機(jī)能掩蓋不同CPU之間的差別,使J-COde能運(yùn)轉(zhuǎn)于任何具有Java虛擬機(jī)的機(jī)器上。Java提供了一套與平臺無關(guān)的庫函數(shù)的方法來處理操作系統(tǒng)可移植性的問題。就像JVM提供了一個(gè)虛擬的CPU一樣,Java庫函數(shù)提供了一個(gè)虛擬的GUI環(huán)境。Java程序僅對Java庫函數(shù)提出調(diào)用,而庫函數(shù)對操作系統(tǒng)公用的調(diào)用由不
28、同的虛擬機(jī)來完成。</p><p> 2.5 MVC設(shè)計(jì)模式的簡介</p><p> MVC全名是Model View Controller,是一種設(shè)計(jì)模式,是模型(model)-視圖(view)-控制器(contronller)的縮寫。用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼。模型包含所有數(shù)據(jù)、狀態(tài)和程序邏輯。視圖是用來表現(xiàn)邏輯,視圖能直接從模型中取得它需要顯示的狀態(tài)與數(shù)據(jù),
29、對于相同的信息能夠以多個(gè)不同的顯示形式或視圖來展現(xiàn)??刂破魑挥谝晥D和模型之間,作用是負(fù)責(zé)接受用戶的輸入,將輸入進(jìn)行解析并反饋給模型。MVC分層有助于管理復(fù)雜的應(yīng)用程序,提高系統(tǒng)的靈活性和復(fù)用性。使用MVC的設(shè)計(jì)模式讓程序員可以在一個(gè)時(shí)間內(nèi)專門關(guān)注一個(gè)方面。MVC強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。最典型的MVC就是JSP+Servlet+JavaBean的模式。</p><p> 2.6 Servlet和
30、jsp的簡介及優(yōu)勢</p><p> Servlet(Servlet Applet),全稱Java Servlet。是用java編寫的服務(wù)器端程序,能夠?qū)崿F(xiàn)交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)web內(nèi)容。狹義的Servlet是指java語言實(shí)現(xiàn)的一個(gè)接口,而廣義上的Servlet是指任何實(shí)現(xiàn)了這個(gè)Servlet接口的類,我們一般理解為后者。</p><p> JSP(Java Server
31、 Pages)是一種基于java語言的動(dòng)態(tài)網(wǎng)頁技術(shù),Jsp頁面部署在Web服務(wù)器端(Server)供客戶端通過瀏覽器(Browser)訪問。一個(gè)Jsp頁面主要構(gòu)成有</p><p> HTML、CSS標(biāo)記、JavaScript腳本代碼等,是由瀏覽器解釋執(zhí)行,屬于頁面的“靜態(tài)”元素;</p><p> Java代碼、JSP指令、JSP標(biāo)記、EL表達(dá)式等,在服務(wù)器端執(zhí)行,屬于頁面的“動(dòng)態(tài)”
32、元素。</p><p> 本次系統(tǒng)設(shè)計(jì)采用JSP+Sverlet+JavaBean的經(jīng)典模式。JSP作為視圖;Svervlet作為控制器,控制程序的流程并調(diào)用業(yè)務(wù)進(jìn)程處理;JavaBean封裝業(yè)務(wù)邏輯。遵循MVC設(shè)計(jì)模式。</p><p> 2.7 Oracle數(shù)據(jù)庫簡介</p><p> Oracle Database,簡稱Oracle,是甲骨文公司的一款關(guān)
33、系型數(shù)據(jù)庫管理系統(tǒng)。Oracle在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位。Oracle系統(tǒng)使用方便、可移植性好、功能強(qiáng),它能夠適用于各類大、中、小、微機(jī)環(huán)境。是一種可靠性好、高效率的、適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。</p><p> 2.8 Eclipse neno.3和PLSQL簡介</p><p> Eclipse是一個(gè)開發(fā)源代碼的、基于java的擴(kuò)展開發(fā)平臺。Eclipse Neon是Ecl
34、ipse最新版,這個(gè)版本的IDE支持Java、JaveScript、C/C++、PHP等多種編程語言。</p><p> PL/SQL Developer也是一個(gè)集成開發(fā)環(huán)境,它是專門開發(fā)面向 Oracle數(shù)據(jù)庫的應(yīng)用。</p><p> 2.9 Tomcat簡介</p><p> Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器。</p>
35、;<p> Tomcat技術(shù)先進(jìn)、性能穩(wěn)定且免費(fèi)。在運(yùn)行時(shí)占用的系統(tǒng)資源小,而且擴(kuò)展性好,還支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能。受到了許多Java愛好者的喜愛并得到部分軟件開發(fā)商的認(rèn)可,Tomcat以其獨(dú)特的優(yōu)勢成為目前比較流行的Web應(yīng)用服務(wù)器。Tomcat是一個(gè)小型的通用性輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)中被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。</p><p><b>
36、 三、系統(tǒng)分析</b></p><p><b> 3.1 可行性分析</b></p><p> 可行性分析,顧名思義就是運(yùn)用合理的分析方法去分析,證明要進(jìn)行的項(xiàng)目、工程、方案等是否可行。并且具有必要性、迫切性、科學(xué)性。判斷原定的系統(tǒng)規(guī)模和目標(biāo)是否現(xiàn)實(shí),系統(tǒng)完成后能否帶來預(yù)期的效益。可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計(jì)的過程,可行
37、性分析是建設(shè)項(xiàng)目決策階段最重要的工作,可行性分析可以讓我們用最小的代價(jià)在盡可能短的時(shí)間內(nèi),確定問題是否能夠解決,從而確定問題是否值得去解決。</p><p> 系統(tǒng)的可行性分析主要包括經(jīng)濟(jì)上的可行性,技術(shù)上的可行性和操作上的可行性。</p><p> 3.1.1 技術(shù)上可行性</p><p> 新聞發(fā)布系統(tǒng)是基于java語言編寫的系統(tǒng),具有java的一次編寫,
38、到處運(yùn)行的優(yōu)點(diǎn),所以此系統(tǒng)可以在不同的操作系統(tǒng)上運(yùn)行,具有較強(qiáng)的移植性、健全性和安全性。新聞發(fā)布系統(tǒng)應(yīng)具備功能完備、易于使用、易于維護(hù)等特點(diǎn),而對于易于維護(hù)這一特點(diǎn)則要求能建立數(shù)據(jù)一致和完整性強(qiáng)、數(shù)據(jù)安全性好的數(shù)據(jù)庫。為符合這些要求,本系統(tǒng)采用Eclipse neno.3作為開發(fā)工具,大大簡化了代碼的編寫過程。數(shù)據(jù)庫采用Oracle數(shù)據(jù)庫,java對Oracle具有良好的支持。所有經(jīng)過以上分析認(rèn)為此系統(tǒng)在技術(shù)上是可行的。</p&g
39、t;<p> 3.1.2 操作上可行性</p><p> 新聞發(fā)布系統(tǒng)具有友好美觀的用戶界面,使用方便,易于維護(hù),操作簡單易于被用戶接受,用戶只需要具有一定的計(jì)算機(jī)操作基礎(chǔ)就可以使用本系統(tǒng)。因此從操作方面看,此系統(tǒng)的開發(fā)是可行的。</p><p> 3.1.3 經(jīng)濟(jì)上可行性</p><p> 本新聞發(fā)布系統(tǒng)運(yùn)行的硬件環(huán)境只需一臺電腦即可,軟件環(huán)
40、境則是安裝Windows系統(tǒng),Eclipse neno.3,Oracle數(shù)據(jù)庫即可。成本支出很小。因此此系統(tǒng)在經(jīng)濟(jì)上、技術(shù)上、操作上的開發(fā)都是可行的。</p><p><b> 3.2系統(tǒng)E-R圖</b></p><p> 圖3-1 系統(tǒng)E-R圖</p><p><b> 3.3系統(tǒng)功能分析</b></p>
41、;<p> 滿足用戶的需求,實(shí)現(xiàn)新聞管理的流程。整個(gè)系統(tǒng)涉及六大功能模塊:用戶瀏覽模塊、評論模塊、系統(tǒng)管理、新聞版塊管理、新聞統(tǒng)計(jì)管理、新聞管理。各個(gè)模塊之間又有著一定的聯(lián)系。相互之間的聯(lián)系在后臺進(jìn)行處理,然后將相應(yīng)的頁面在前臺進(jìn)行展示。通過前后臺的相互結(jié)合,用戶可以在前臺進(jìn)行瀏覽,也可以獲取管理員的身份在后臺進(jìn)行相應(yīng)的管理操作。</p><p> 本系統(tǒng)主要包括前臺的數(shù)據(jù)展示和后臺的業(yè)務(wù)邏輯處
42、理。前臺的系統(tǒng)功能主要包括兩個(gè)模塊:</p><p> (1)用戶瀏覽模塊:用戶可以瀏覽自己感興趣的新聞內(nèi)容。 </p><p> (2)評論模塊:當(dāng)用戶瀏覽完相應(yīng)的新聞后,可以對該新聞發(fā)表自己的看法。</p><p> 后臺系統(tǒng)功能主要包括四個(gè)大模塊(根據(jù)用戶的身份得到相應(yīng)的權(quán)限):</p><
43、;p> (1)系統(tǒng)管理:里面主要包括部門管理、用戶管理、權(quán)限角色管理</p><p> (2)新聞版塊管理:其子菜單為版塊的基本管理,版塊的狀態(tài)管理,其中版塊的基本管理即對版塊進(jìn)行增刪改查的操作。版塊的狀態(tài)管理主要是對版塊是否熱門、是否前臺顯示做相應(yīng)的設(shè)置(3)新聞統(tǒng)計(jì):主要功能是新聞統(tǒng)計(jì)報(bào)表和新聞統(tǒng)計(jì)圖,可根據(jù)新聞統(tǒng)計(jì)功能對社會(huì)新聞做出分析,了解人們的生活狀態(tài)習(xí)慣。</p><p&
44、gt; (4)新聞管理:主要功能包括新聞發(fā)布、新聞狀態(tài)管理、新聞信息管理。其中新聞狀態(tài)管理主要是對新聞是否熱門、是否前臺顯示做相應(yīng)的設(shè)置。</p><p><b> 四、系統(tǒng)設(shè)計(jì)</b></p><p><b> 4.1 設(shè)計(jì)思想</b></p><p> 本系統(tǒng)的用戶角色的分配主要為普通的游客和新聞管理者。普通的
45、游客可以在前臺的頁面進(jìn)行新聞的瀏覽,而新聞的管理者可以在點(diǎn)擊前臺的登錄頁面進(jìn)入后臺的管理頁面,進(jìn)行新聞的管理。</p><p> 4.2 系統(tǒng)功能模塊</p><p><b> 如圖4-1。</b></p><p> 圖4-1 系統(tǒng)功能模塊圖</p><p> 4.3 系統(tǒng)流程分析</p><
46、p> 本系統(tǒng)主要流程如下圖4-2。</p><p> 圖4-2 系統(tǒng)流程圖</p><p> 4.4 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)</p><p> 4.4.1 系統(tǒng)數(shù)據(jù)庫性能需求</p><p> 首先整個(gè)系統(tǒng)應(yīng)當(dāng)設(shè)計(jì)的操作簡便,界面簡潔友好,后期的維護(hù)方便。對于數(shù)據(jù)庫,我們一般要求能夠做到運(yùn)行穩(wěn)定,執(zhí)行速度快,數(shù)據(jù)安全性高。軟件系統(tǒng)本身
47、運(yùn)行對計(jì)算機(jī)硬件平臺和操作系統(tǒng)平臺要求適中。</p><p> 在整個(gè)開發(fā)過程中,數(shù)據(jù)庫技術(shù)是信息資源管理最有效的手段。一個(gè)優(yōu)秀的數(shù)據(jù)庫設(shè)計(jì)能夠在一個(gè)指定的應(yīng)用環(huán)境中,為整個(gè)系統(tǒng)構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),為系統(tǒng)的開發(fā)有效的存儲數(shù)據(jù),實(shí)現(xiàn)用戶信息要求和處理要求。一個(gè)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞可以直接影響應(yīng)用系統(tǒng)的效率及實(shí)現(xiàn)的效果。合理的數(shù)據(jù)庫設(shè)計(jì)可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。本系統(tǒng)采
48、用Oracle數(shù)據(jù)庫,靈活方便。</p><p> 4.4.2數(shù)據(jù)庫需求分析</p><p> 此系統(tǒng)是一個(gè)小型的新聞發(fā)布系統(tǒng),設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</p><p> 用戶信息的輸入包括:登錄賬號、登錄密碼、用戶姓名、用戶角色、用戶所在部門等。</p><p> 部門信息的輸入包括:部門名稱、備注信息等。</p>
49、<p> 權(quán)限信息的輸入包括:權(quán)限名稱、權(quán)限級別、父級權(quán)限、權(quán)限說明、備注信息等。</p><p> 角色信息的輸入包括:角色名稱、角色說明等。</p><p> 新聞版塊信息的輸入包括:新聞版塊名稱、是否熱門、是否前臺顯示、版塊說明等。</p><p> 新聞信息的輸入包括:標(biāo)題、內(nèi)容、是否熱門、是否前臺顯示、所屬版塊、新聞發(fā)布人、發(fā)布時(shí)間等。
50、</p><p> 4.4.3 數(shù)據(jù)字典設(shè)計(jì)及數(shù)據(jù)庫表命名規(guī)則</p><p> 1.部門信息表4-1。</p><p> 表4-1 部門信息表</p><p> 2.權(quán)限信息表4-2。</p><p> 表4-2 權(quán)限信息表</p><p> 3.角色信息表4-3。</p&g
51、t;<p> 表4-3 角色信息表</p><p> 4.角色權(quán)限關(guān)聯(lián)表4-4。</p><p> 表4-4 角色權(quán)限關(guān)聯(lián)表</p><p> 5.用戶信息表4-5。</p><p> 表4-5 用戶信息表</p><p> 6.新聞版塊信息表4-6。</p><p>
52、 表4-6 角色信息表</p><p> 7.新聞信息表4-7。</p><p> 表4-7 新聞信息表</p><p> 4.4.4 創(chuàng)建序列</p><p><b> --創(chuàng)建序列</b></p><p><b> --1.1部門</b></p>
53、<p> create sequenceseq_dept</p><p> increment by 1</p><p> maxvalue 1000000</p><p> minvalue 1</p><p><b> nocycle</b></p><p><b
54、> cache 10;</b></p><p><b> --1.2權(quán)限</b></p><p> create sequence seq_power;</p><p><b> --1.3角色</b></p><p> create sequence seq_role;
55、</p><p><b> --1.4用戶</b></p><p> create sequence seq_user;</p><p><b> --1.5新聞版塊</b></p><p> create sequence seq_tip;</p><p><
56、b> --1.6新聞信息</b></p><p> create sequence seq_news;</p><p> create sequence seq_comment;</p><p><b> 五、主要功能的實(shí)現(xiàn)</b></p><p> 5.1 系統(tǒng)代碼框架</p>
57、<p> 本次系統(tǒng)的核心結(jié)構(gòu)主要是每個(gè)對象的相應(yīng)的Bean類,對象實(shí)現(xiàn)的功能的方法Dao以及方法的實(shí)現(xiàn)類,相應(yīng)的業(yè)務(wù)邏輯,以及業(yè)務(wù)邏輯的實(shí)現(xiàn)類,還有對象實(shí)現(xiàn)功能請求的Servlet。一些工具封裝在工具包util里面。</p><p> 圖5-1 系統(tǒng)代碼框架</p><p> 5.2 系統(tǒng)登錄界面</p><p> 用戶在登陸本新聞管理系統(tǒng)的時(shí)候
58、,只需要輸入正確的用戶名、密碼即可登錄本系統(tǒng)。</p><p> 圖5-2 系統(tǒng)登錄界面</p><p><b> 核心實(shí)現(xiàn)代碼如下:</b></p><p> UserDaoImpl:</p><p><b> @Override</b></p><p> pub
59、lic UserBean findUser(String username, String password) {</p><p><b> try {</b></p><p> String sql = "select *from t_user where loginname = ? and password = ?";</p>
60、<p> return qr.query(sql,new BeanHandler<UserBean>(UserBean.class),username,password);</p><p> } catch (SQLException e) {</p><p> throw new RuntimeException();</p><p>
61、; UserServiceImpl:</p><p><b> @Override</b></p><p> public UserBean findUser(String username, String password) {</p><p> return UserDao.findUser(username, password);
62、</p><p><b> UserServ:</b></p><p> public void login(HttpServletRequest request, HttpServletResponse response) throws Exception{</p><p> String username = request.getP
63、arameter("username");</p><p> String password = request.getParameter("password");</p><p> UserBean user = userService.findUser(username, password);</p><p> if
64、(user != null){</p><p> if(user.getUsername() != null){</p><p> HttpSession session = request.getSession();</p><p> session.setAttribute("curruser", user);</p>&
65、lt;p> List<PowerBean> powerBeans = powerService.findPowerByUserId(user.getUserid());</p><p> request.getServletContext().setAttribute("powerBeans", powerBeans);</p><p> req
66、uest.getRequestDispatcher("jsp/sys/index.jsp").forward(request, response);</p><p><b> }else{</b></p><p> request.getRequestDispatcher("jsp/error/500.jsp").forwa
67、rd(request, response);</p><p><b> }</b></p><p><b> }else{</b></p><p> request.getRequestDispatcher("login.jsp").forward(request, response);</
68、p><p><b> }</b></p><p><b> }}</b></p><p><b> 5.3 系統(tǒng)管理</b></p><p> 5.3.1 部門管理</p><p> 部門管理主要是對部門的曾刪改查。當(dāng)用戶點(diǎn)擊相應(yīng)的按鈕,就能夠?qū)?/p>
69、現(xiàn)相應(yīng)的功能。</p><p> 圖 5-3 部門列表</p><p><b> 實(shí)現(xiàn)代碼:</b></p><p> DeptDaoImpl:</p><p><b> @Override</b></p><p> public List<DeptBean&
70、gt; findAllDept() {</p><p><b> try {</b></p><p> StringBuilder sql = new StringBuilder();</p><p> sql.append(" SELECT");</p><p> sql.
71、append("HUAS.T_DEPT.DEPTID, ");</p><p> sql.append("HUAS.T_DEPT.DEPTNAME, ");</p><p> sql.append("HUAS.T_DEPT.MEMO ");</p><p> sql.append(
72、" FROM ");</p><p> sql.append("HUAS.T_DEPT ");</p><p> return qr.query(sql.toString(), new BeanListHandler<DeptBean>(DeptBean.class));<
73、;/p><p> } catch (SQLException e) {</p><p> throw new RuntimeException(e);</p><p> DeptServiceImpl:</p><p><b> @Override</b></p><p> public L
74、ist<DeptBean> findAllDept() {</p><p> return DeptDao.findAllDept();</p><p><b> }</b></p><p> DeptServ:</p><p> public void findAllDept(HttpServle
75、tRequest request, HttpServletResponse response) throws Exception{</p><p> List<DeptBean> depts = deptService.findAllDept();</p><p> request.getServletContext().setAttribute("depts&q
76、uot; , depts);</p><p> request.getRequestDispatcher("jsp/sys/dept/deptList.jsp").forward(request, response);</p><p><b> }</b></p><p><b> }</b>&l
77、t;/p><p><b> 添加部門</b></p><p> 添加部門的頁面包括部門名稱和部門備注信息的填寫,信息填寫完整后點(diǎn)擊添加就可以將數(shù)據(jù)添加到數(shù)據(jù)庫中,點(diǎn)擊返回可以返回部門列表頁面。</p><p><b> 圖5-4 添加部門</b></p><p><b> 實(shí)現(xiàn)代碼如下
78、:</b></p><p> DeptDaoImpl:</p><p><b> @Override</b></p><p> public void save(String deptname, String momo) {</p><p> StringBuilder sql = new Strin
79、gBuilder();</p><p> sql.append("insert into t_dept values(seq_dept.nextval,?,?)");</p><p><b> try {</b></p><p> qr.update(sql.toString(), deptname,momo);<
80、;/p><p> } catch (Exception e) {</p><p> throw new RuntimeException(e);</p><p><b> }</b></p><p><b> } </b></p><p> DeptServiceImp
81、l:</p><p><b> @Override</b></p><p> public void save(String deptname, String momo) {</p><p> DeptDao.save(deptname, momo);</p><p><b> } </b>
82、;</p><p><b> DeptServ:</b></p><p> private void add(HttpServletRequest request, HttpServletResponse response) throws Exception{</p><p> String deptname = request.getP
83、arameter("deptname");</p><p> String momo = request.getParameter("memo");</p><p> deptService.save(deptname,momo);</p><p> findAllDept(request, response);<
84、/p><p><b> }</b></p><p><b> }</b></p><p><b> 修改部門信息</b></p><p> 在部門列表點(diǎn)擊修改就會(huì)進(jìn)入修改部門的頁面中,可以在頁面中修改部門名稱和部門備注。信息填寫完整后點(diǎn)擊修改就可以將修改后的數(shù)據(jù)添加到數(shù)據(jù)庫
85、中,點(diǎn)擊返回可以返回部門列表頁面。</p><p> 圖5-5 修改部門信息</p><p><b> 實(shí)現(xiàn)代碼:</b></p><p> DeptDaoImpl:</p><p><b> @Override</b></p><p> public void u
86、pdate(int deptid, String deptname, String memo) {</p><p><b> try {</b></p><p> String sql ="UPDATE t_dept SET deptname=?,memo=? where deptid=?";</p><p> qr.
87、update(sql,deptname,memo,deptid);</p><p> } catch (Exception e) {</p><p> throw new RuntimeException(e);</p><p><b> }</b></p><p><b> }</b>&l
88、t;/p><p> DeptServiceImpl:</p><p><b> @Override</b></p><p><b> @Override</b></p><p> public void update(int deptid, String deptname, String mem
89、o) {</p><p> DeptDao.update(deptid,deptname,memo);</p><p><b> }</b></p><p><b> DeptServ:</b></p><p> private void update(HttpServletRequest
90、request, HttpServletResponse response) throws Exception {</p><p> int deptid = Integer.parseInt(request.getParameter("deptid"));</p><p> String deptname = request.getParameter("
91、deptname");</p><p> String memo = request.getParameter("memo");</p><p> deptService.update(deptid,deptname,memo);</p><p> findAllDept(request, response);</p>
92、<p><b> }</b></p><p><b> 刪除部門</b></p><p> 點(diǎn)擊刪除,就會(huì)把數(shù)據(jù)在數(shù)據(jù)庫中刪除,列表頁面也將不在出現(xiàn)刪除的那個(gè)部門的數(shù)據(jù)。</p><p><b> 實(shí)現(xiàn)代碼:</b></p><p><b>
93、DeptDao:</b></p><p><b> @Override</b></p><p> public void delete(int deptid) {</p><p> DeptDao.delete(deptid);</p><p><b> }</b></
94、p><p> DeptDaoImpl:</p><p><b> @Override</b></p><p> public void delete(int deptid) {</p><p><b> try {</b></p><p> StringBuilder
95、sql = new StringBuilder();</p><p> sql.append(" delete from t_dept where deptid = ? ");</p><p> qr.update(sql.toString(),deptid);</p><p> } catch (SQLException e) {<
96、/p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> DeptService:</p><p> void delete(int deptid);</p>&
97、lt;p> DeptServiceImpl:</p><p><b> @Override</b></p><p> public void delete(int deptid) {</p><p> DeptDao.delete(deptid);</p><p><b> }</b&
98、gt;</p><p><b> DeptServ:</b></p><p> private void delete(HttpServletRequest request, HttpServletResponse response) throws Exception {</p><p> int deptid = Integer.par
99、seInt(request.getParameter("deptid"));</p><p> deptService.delete(deptid);</p><p> findAllDept(request, response);</p><p><b> }</b></p><p> 5.
100、3.2 權(quán)限角色管理</p><p> 權(quán)限角色管理可以查看所有的權(quán)限。包括權(quán)限名稱、權(quán)限等級、父級權(quán)限、權(quán)限地址、權(quán)限描述等。</p><p> 圖 5-6 權(quán)限列表</p><p><b> 實(shí)現(xiàn)代碼:</b></p><p> PowerDaoImpl:</p><p> publ
101、ic List<PowerBean> findAllPower() {</p><p><b> try {</b></p><p> StringBuilder sql = new StringBuilder();</p><p> sql.append(" SELECT");<
102、/p><p> sql.append("HUAS.T_POWER.POWERID, ");</p><p> sql.append("HUAS.T_POWER.POWERNAME, ");</p><p> sql.append("HUAS.T_POWER. LEVELS, ");</
103、p><p> sql.append("HUAS.T_POWER.PPOWERID, ");</p><p> sql.append("HUAS.T_POWER.URL, ");</p><p> sql.append("HUAS.T_POWER.MEMO ");</p
104、><p> sql.append(" FROM ");</p><p> sql.append("HUAS.T_POWER ");</p><p> return qr.query(sql.toString(), new BeanListHandler<
105、PowerBean>(PowerBean.class));</p><p> } catch (SQLException e) {</p><p> throw new RuntimeException(e);</p><p><b> }</b></p><p><b> }</b>
106、</p><p><b> @Override</b></p><p> public PowerBean findCurrPower(int powerid) {</p><p> String sql = "";</p><p> return null;</p><p
107、><b> }</b></p><p> PowerServiceImpl:</p><p> public List<PowerBean> findAllPower() {</p><p> return powerDao.findAllPower();</p><p><b>
108、}</b></p><p><b> }</b></p><p> PowerServ:</p><p> public void findAllPower(HttpServletRequest request, HttpServletResponse response) throws Exception{</p>
109、;<p> List<PowerBean> powerBeans = powerService.findAllPower();</p><p> request.getServletContext().setAttribute("powerBeans", powerBeans);</p><p> request.getRequestDi
110、spatcher("jsp/sys/power/powerList.jsp").forward(request, response);</p><p><b> }</b></p><p><b> }</b></p><p> 5.3.3 用戶管理</p><p> 用
111、戶管理包括對用戶的增刪改查。</p><p> 圖 5-7 用戶列表</p><p><b> 實(shí)現(xiàn)代碼:</b></p><p> UserDaoImpl:</p><p><b> @Override</b></p><p> public List<Us
112、erBean> findAllUser() {</p><p><b> try {</b></p><p> StringBuilder sql = new StringBuilder();</p><p> sql.append(" SELECT" );</p><p&
113、gt; sql.append("HUAS.T_USER.USERID, " );</p><p> sql.append("HUAS.T_USER.LOGINNAME, " );</p><p> sql.append("HUAS.T_USER. PASSWORD, " );</p>&
114、lt;p> sql.append("HUAS.T_USER.USERNAME, " );</p><p> sql.append("HUAS.T_USER.ROLEID, " );</p><p> sql.append("HUAS.T_USER.DEPTID " );</p&g
115、t;<p> sql.append(" FROM " );</p><p> sql.append("HUAS.T_USER " );</p><p> sql.append("" );</p><p> retu
116、rn qr.query(sql.toString(), new BeanListHandler<UserBean>(UserBean.class));</p><p> } catch (SQLException e) {</p><p> throw new RuntimeException(e);</p><p><b> }<
117、/b></p><p> UserServiceImpl:</p><p><b> @Override</b></p><p> public List<UserBean> findAllUser() {</p><p> // TODO Auto-generated method stub&
118、lt;/p><p> return UserDao.findAllUser();</p><p><b> }</b></p><p><b> UserServ:</b></p><p> public void findAllUser(HttpServletRequest request,
119、HttpServletResponse response) throws Exception{</p><p> List<UserBean> users = userService.findAllUser();</p><p> request.getServletContext().setAttribute("users", users);</
120、p><p> request.getRequestDispatcher("jsp/sys/user/userList.jsp").forward(request, response);</p><p><b> }</b></p><p><b> 添加用戶</b></p><p&
121、gt; 點(diǎn)擊用戶列表左下方的添加按鈕,進(jìn)入添加用戶的頁面,填寫用戶姓名、登錄名稱、密碼、角色、部門等信息。點(diǎn)擊添加就可以將創(chuàng)建一個(gè)新的用戶。</p><p> 圖 5-8 添加用戶</p><p><b> 實(shí)現(xiàn)代碼:</b></p><p> UserDaoImpl:</p><p><b> @O
122、verride</b></p><p> public void add(String username, String loginname, String password, int roleid, int deptid) {</p><p><b> try {</b></p><p> String sql ="
123、;insert into t_user values(seq_user.nextval,?,?,?,?,?)";</p><p> qr.update(sql, username, loginname, password, roleid, deptid);</p><p> } catch (Exception e) {</p><p> throw
124、 new RuntimeException(e);</p><p><b> }</b></p><p><b> }</b></p><p> UserServiceImpl:</p><p><b> @Override</b></p><p&g
125、t; public void add(String username, String loginname, String password, int roleid, int deptid) {</p><p> UserDao.add(username, loginname, password, roleid, deptid);</p><p><b> }</b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新聞發(fā)布系統(tǒng)
- jsp新聞發(fā)布課程設(shè)計(jì)---新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng) (2)
- 《新聞發(fā)布系統(tǒng)》論文
- 新聞發(fā)布更新系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)設(shè)計(jì)
- 新聞發(fā)布系統(tǒng)課程設(shè)計(jì)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)課程設(shè)計(jì)
- 新聞發(fā)布系統(tǒng)(畢業(yè)論文)
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)課程設(shè)計(jì)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)課程設(shè)計(jì)
- 《新聞發(fā)布系統(tǒng)》畢業(yè)設(shè)計(jì)
- 基于.net的新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
評論
0/150
提交評論