計(jì)算機(jī)畢業(yè)論文-- 新聞發(fā)布管理系統(tǒng)設(shè)計(jì)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)論文(設(shè)計(jì))</b></p><p>  論文題目: 新聞發(fā)布管理系統(tǒng)設(shè)計(jì) </p><p>  系 別:   </p><p>  專 業(yè): </p><p>  班 級(jí):  

2、 </p><p>  學(xué) 號(hào):    </p><p>  學(xué)生姓名:   </p><p>  指導(dǎo)教師:        </p><p><b>  目 錄</b></p><p><b>  1概述1</b

3、></p><p><b>  1.1引言1</b></p><p>  1.2開發(fā)工具簡(jiǎn)介1</p><p>  1.2.1 JDK簡(jiǎn)介1</p><p>  1.2.2 Tomcat簡(jiǎn)介2</p><p>  1.2.3 Adobe DreamweaverCS4簡(jiǎn)介2</

4、p><p>  1.2.4 Microsoft Office Access2003簡(jiǎn)介2</p><p>  1.3軟件和硬件開發(fā)環(huán)境2</p><p><b>  2系統(tǒng)分析3</b></p><p>  2.1可行性分析3</p><p>  2.1.1經(jīng)濟(jì)可行性分析3</p>

5、;<p>  2.1.2技術(shù)可行性分析3</p><p>  2.2系統(tǒng)流程分析3</p><p>  3 系統(tǒng)概要設(shè)計(jì)5</p><p>  3.1系統(tǒng)開發(fā)的目標(biāo)5</p><p>  3.2系統(tǒng)的功能結(jié)構(gòu)圖5</p><p>  3.3系統(tǒng)流程圖6</p><p>

6、  3.4數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)6</p><p><b>  4 系統(tǒng)設(shè)計(jì)8</b></p><p>  4.1網(wǎng)站目錄結(jié)構(gòu)8</p><p>  4.2數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)9</p><p>  4.3主頁功能模塊9</p><p>  4.3.1主頁頭部9</p><

7、p>  4.3.2檢索功能10</p><p>  4.3.3主頁主體11</p><p>  4.3.4新聞信息11</p><p>  4.3.5新聞內(nèi)容15</p><p>  4.4檢索新聞17</p><p>  4.5管理員登陸頁面24</p><p>  4.6新

8、聞管理25</p><p>  4.6.1新聞管理頭部28</p><p>  4.6.2編輯刪除新聞29</p><p><b>  總結(jié)30</b></p><p><b>  致謝31</b></p><p><b>  參考文獻(xiàn)32</b&

9、gt;</p><p>  新聞發(fā)布管理系統(tǒng)設(shè)計(jì)</p><p>  摘 要: 新聞發(fā)布管理系統(tǒng),是將每天在世界上發(fā)生的新聞等其他最新信息集中管理,并通過這些信息某方面的共性進(jìn)行分類,最后系統(tǒng)化、標(biāo)準(zhǔn)化發(fā)布到網(wǎng)站上。本系統(tǒng)是由動(dòng)態(tài)網(wǎng)頁和數(shù)據(jù)庫(kù)結(jié)合起來的,可進(jìn)行新聞信息的添加、刪除、修改等操作,且符合新聞管理的一般規(guī)定,能夠滿足新聞網(wǎng)站日常更新,并達(dá)到操作過程中的直觀、方便、實(shí)用、安全等要

10、求。</p><p>  關(guān)鍵字: 新聞管理 更新 檢索  </p><p><b>  1概述</b></p><p><b>  1.1引言</b></p><p>  伴隨著網(wǎng)絡(luò)的出現(xiàn),網(wǎng)頁逐漸融入人們的生活??焖偌皶r(shí)的新聞瀏覽,五彩繽紛的網(wǎng)上信息,使網(wǎng)絡(luò)與人們的生活息

11、息相關(guān),于是世界上又出現(xiàn)了第三媒體——Internet。它打破了地域限制,真正使信息得以共享,改變了人們的工作和生活方式。制作網(wǎng)頁是企業(yè)和個(gè)人的宣傳自己的重要手段,同時(shí)也是學(xué)習(xí)者獲取學(xué)習(xí)信息的重要手段。尤其是在教育領(lǐng)域,在素質(zhì)教育與終身教育成為必然的今天,人們對(duì)信息的需求有了更新,更高的要求,而網(wǎng)頁由于本身所具有的信息量大,傳遞快速,沒有時(shí)空限制等特點(diǎn)恰好滿足這種要求。所以網(wǎng)頁也逐漸成為一種新興的教育資源。也正是由于網(wǎng)絡(luò)實(shí)現(xiàn)網(wǎng)站的數(shù)據(jù)信

12、息能夠進(jìn)行實(shí)時(shí)交互,保證網(wǎng)站數(shù)據(jù)的實(shí)時(shí)性。</p><p>  網(wǎng)絡(luò)媒體在人們心中的地位逐步提高,新聞發(fā)布系統(tǒng)做為網(wǎng)絡(luò)媒體的核心系統(tǒng),其重要性是越來越重要:一方面,它提供一個(gè)新聞管理和發(fā)布的功能;另一方面,現(xiàn)在的新聞發(fā)布要求實(shí)現(xiàn)與普通的用戶實(shí)現(xiàn)交互,用戶可以很方便地參加一些調(diào)查和相關(guān)新聞的評(píng)論,這一點(diǎn)也是其他一些媒體現(xiàn)在無法做到的(電視、電臺(tái)等),同時(shí),Internet發(fā)展到當(dāng)今,可以說,只要你上Internet

13、,你就會(huì)接觸到新聞發(fā)布系統(tǒng),新聞發(fā)布系統(tǒng)的用戶是相當(dāng)驚人的,其重要性是不容置疑的,當(dāng)然這也對(duì)新聞發(fā)布系統(tǒng)的開發(fā)提出了更高的要求。</p><p><b>  1.2開發(fā)工具簡(jiǎn)介</b></p><p>  我本次制作的畢業(yè)設(shè)計(jì)主要是應(yīng)用JDK、Tomcat6.0 、Adobe DreamweaverCS4、和Microsoft Office Access2003數(shù)據(jù)庫(kù)

14、完成的。</p><p>  1.2.1 JDK簡(jiǎn)介</p><p>  JDK(Java Development Kit)是Sun Microsystems(已被甲骨文公司收購(gòu))針對(duì)Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類庫(kù)。JDK是學(xué)好Java的第一步。而

15、專門運(yùn)行在x86平臺(tái)的Jrocket在服務(wù)端運(yùn)行效率也要比Sun JDK好很多。從SUN的JDK5.0開始,提供了泛型等非常實(shí)用的功能,其版本也不斷更新,運(yùn)行效率得到了非常大的提高。</p><p>  1.2.2 Tomcat簡(jiǎn)介</p><p>  Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由A

16、pache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。目前最新版本是7.0。</p><p>

17、  1.2.3 Adobe DreamweaverCS4簡(jiǎn)介</p><p>  Adobe DreamweaverCS4是個(gè)原本由Macromedia公司所開發(fā)的著名網(wǎng)站開發(fā)工具。它使用所見即所得的接口,亦有HTML編輯的功能。它現(xiàn)在有Mac和Windows系統(tǒng)的版本。隨Macromedia被Adobe收購(gòu)后,Adobe也開始計(jì)劃開發(fā)Linux版本的Dreamweaver了。 Dreamweaver自MX版本開

18、始,使用了Opera的排版引擎 “Presto” 作為網(wǎng)頁預(yù)覽。目前最新版本是Adobe DreamweaverCS5</p><p>  1.2.4 Microsoft Office Access2003簡(jiǎn)介</p><p>  Access 是微軟公司推出的基于Windows的桌面關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS,即Relational Database Management Syste

19、m),是Office系列應(yīng)用軟件之一。它提供了表、查詢、窗體、報(bào)表、頁、宏、模塊7種用來建立數(shù)據(jù)庫(kù)系統(tǒng)的對(duì)象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢、界面設(shè)計(jì)、報(bào)表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫(kù)管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。目前已有Microsoft Office Access2007</p><p>  1.3軟件和硬件開發(fā)環(huán)境</p

20、><p>  軟件系統(tǒng)環(huán)境 :操作系統(tǒng)是Windows XP、主要編程工具是Adobe DreamweaverCS4、數(shù)據(jù)庫(kù)使用Microsoft Office Access2003。</p><p><b>  硬件系統(tǒng)環(huán)境:</b></p><p>  最低要求配置:英特爾 Intel(R) Celeron(R) CPU 430 @ 1.80G

21、Hz以上。 </p><p>  內(nèi)存:512M以上。 </p><p>  硬盤空間:300M的閑置空間。</p><p><b>  2系統(tǒng)分析</b></p><p>  本系統(tǒng)主要實(shí)現(xiàn)的功能如下:</p><p> ?。?)將新聞進(jìn)行分類,分為四類:科技、財(cái)經(jīng)、娛樂、數(shù)碼。</p&g

22、t;<p> ?。?)可根據(jù)相應(yīng)的類別輸入關(guān)鍵字對(duì)新聞進(jìn)行檢索</p><p>  (3)實(shí)現(xiàn)了“熱點(diǎn)新聞”,“近期新聞”的功能</p><p> ?。?)管理員可對(duì)新聞進(jìn)行修改,刪除操作。</p><p> ?。?)管理員可登陸后臺(tái)發(fā)布新聞</p><p> ?。?)管理員能了解各類新聞的條數(shù),數(shù)據(jù)庫(kù)中的新聞總條數(shù),還有每條新

23、聞的屬于哪個(gè)類別的。</p><p>  (7)檢索頁面實(shí)現(xiàn)了對(duì)新聞的分頁功能</p><p><b>  2.1可行性分析</b></p><p>  可行性分析也稱可行性研究,是決策部門在采取一項(xiàng)重大改革或投資行動(dòng)之前,對(duì)該項(xiàng)目的必要性和可能性進(jìn)行分析與論證的活動(dòng)??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。&l

24、t;/p><p>  2.1.1經(jīng)濟(jì)可行性分析</p><p>  此系統(tǒng)開發(fā)時(shí)間短,一個(gè)開發(fā)人員即可。所用到的軟件均可從互聯(lián)網(wǎng)上免費(fèi)下載使用,并且此系統(tǒng)對(duì)運(yùn)行的環(huán)境要求低,從經(jīng)濟(jì)角度上說,是完全可以開發(fā)的。</p><p>  2.1.2技術(shù)可行性分析</p><p>  此系統(tǒng)由本人完成,此系統(tǒng)有用到JSP程序設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)與開發(fā)、數(shù)據(jù)庫(kù)原理

25、及應(yīng)用等知識(shí)。還有通過網(wǎng)上學(xué)習(xí),實(shí)現(xiàn)了分頁功能,熱點(diǎn)新聞和近期新聞的標(biāo)示。</p><p><b>  2.2系統(tǒng)流程分析</b></p><p>  訪客通過“查看新聞”,來瀏覽新聞的標(biāo)題以及新聞的作者和新聞的發(fā)布時(shí)間,根據(jù)新聞標(biāo)題后面是否有“HOT”,“NEW”圖標(biāo)來了解新聞是否為“熱點(diǎn)新聞”或者“近期新聞”。點(diǎn)擊“韻妍彥殤”來瀏覽本系統(tǒng)的作者信息。通過點(diǎn)擊新聞的

26、標(biāo)題來瀏覽新聞的內(nèi)容,還可以根據(jù)不同類別的查詢來檢索相應(yīng)的新聞。</p><p>  登陸管理員頁面后,管理員可以通過“發(fā)布新聞”,來發(fā)布新聞。通過“管理新聞”,可以對(duì)新聞進(jìn)行刪除和編輯。并可瀏覽新聞的標(biāo)題、新聞的作者、新聞的發(fā)布時(shí)間、新聞被瀏覽的次數(shù),新聞的類別以及新聞的總數(shù)和各類別新聞的條數(shù)。</p><p><b>  3 系統(tǒng)概要設(shè)計(jì)</b></p>

27、;<p>  3.1系統(tǒng)開發(fā)的目標(biāo)</p><p>  訪客可以通過前臺(tái)瀏覽以及檢索新聞,將新聞分成了熱點(diǎn)新聞、近期新聞和普通新聞,新聞分四類,科技,財(cái)經(jīng),娛樂,數(shù)碼。管理員可以通過登錄后臺(tái)對(duì)新聞進(jìn)行管理,包括修改新聞,刪除新聞。還可以實(shí)時(shí)發(fā)布新聞。并能瀏覽到各類(科技,財(cái)經(jīng),娛樂,數(shù)碼)新聞的條數(shù)。</p><p>  3.2系統(tǒng)的功能結(jié)構(gòu)圖 </p><

28、;p>  新聞發(fā)布管理系統(tǒng)的功能結(jié)構(gòu)圖,如圖1-1所示:</p><p>  圖1-1新聞發(fā)布管理系統(tǒng)組織結(jié)構(gòu)圖</p><p><b>  3.3系統(tǒng)流程圖</b></p><p>  新聞發(fā)布管理系統(tǒng)流程如圖3-1所示:</p><p>  圖3-1新聞發(fā)布管理系統(tǒng)流程</p><p>

29、  3.4數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</p><p>  由于本系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的需求比較小,所以本系統(tǒng)使用的是Microsoft Office Access 2003作為系統(tǒng)數(shù)據(jù)庫(kù),Microsoft Office Access 2003已完全滿足本系統(tǒng)的需求,且簡(jiǎn)單好用。系統(tǒng)所涉及到的主要實(shí)體有兩個(gè):</p><p>  (1)admin信息:id,name,password。如圖3-2所示:&l

30、t;/p><p>  圖3-2 admin信息E-R圖</p><p> ?。?)news信息:id,title,content,author,pubdate,jishu,newsfl。如圖3-2所示:</p><p>  圖3-3 news信息E-R圖</p><p><b>  4 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p>

31、;<p><b>  4.1網(wǎng)站目錄結(jié)構(gòu)</b></p><p>  網(wǎng)站總目錄如圖4-1所示:</p><p><b>  圖4-1網(wǎng)站總目錄</b></p><p>  4.2數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì) </p><p>  admin表結(jié)構(gòu)如表4-1所示:</p><p

32、>  表4-1后臺(tái)管理員表admin</p><p>  news表結(jié)構(gòu)如表4-2所示:</p><p>  表4-2新聞基本表news</p><p><b>  4.3主頁功能模塊</b></p><p><b>  4.3.1主頁頭部</b></p><p>  

33、主頁頭部有三個(gè)鏈接。如圖4-2所示:</p><p>  圖4-2主頁頭部鏈接</p><p>  (1)“韻妍彥殤”:鏈接ainf.jsp,瀏覽本系統(tǒng)的作者信息。如圖4-3所示:</p><p>  圖4-3 ainf.jsp</p><p> ?。?)“查看新聞”:鏈接index.jsp,主頁。如圖4-4所示:</p>&l

34、t;p>  圖4-4 index.jsp</p><p> ?。?)“新聞管理”:鏈接manage.jsp。登陸后臺(tái)對(duì)新聞進(jìn)行管理等操作。</p><p><b>  4.3.2檢索功能</b></p><p>  選擇相應(yīng)的查詢類別(標(biāo)題、內(nèi)容、作者、日期)以及輸入關(guān)鍵字后,便可檢索該類別中包括關(guān)鍵字的新聞。若關(guān)鍵字為空,是查詢所有的新

35、聞。信息提交給index0.jsp頁面進(jìn)行處理。如圖4-5所示:</p><p><b>  圖4-5檢索功能</b></p><p><b>  4.3.3主頁主體</b></p><p>  相應(yīng)類別(科技、財(cái)經(jīng)、娛樂、數(shù)碼)的新聞在相應(yīng)的表格中排布,如圖4-6所示:</p><p>  圖4-

36、6新聞按類別排布</p><p><b>  4.3.4新聞信息</b></p><p>  瀏覽每個(gè)類別的新聞信息都包括新聞的標(biāo)題、新聞的作者、新聞的發(fā)布日期,還可以根據(jù)標(biāo)題后面是否有“HOT”或者“NEW”圖標(biāo)來了解此新聞是否是“熱點(diǎn)新聞”或者為“近期新聞”。“熱點(diǎn)新聞”是指相應(yīng)類別新聞瀏覽次數(shù)最多的前三條新聞。“近期新聞”是指發(fā)布時(shí)間不超過一周的新聞。如圖4-7

37、所示:</p><p>  圖4-7瀏覽新聞信息</p><p>  代碼中的printRow(ResultSet rs ,int newsid1,int newsid2,int newsid3)方法的作用:處理哪些新聞是熱點(diǎn)新聞,哪些又是近期新聞,并最終形成表格,在表格中顯示新聞的標(biāo)題,作者,日期。方法中的四個(gè)參數(shù)分別表示:某類別新聞在數(shù)據(jù)庫(kù)中的所有字段的結(jié)果集。后三個(gè)參數(shù)代表這個(gè)類別當(dāng)

38、中被瀏覽次數(shù)最多的三條新聞的id字段。新聞信息實(shí)現(xiàn)的代碼如下:</p><p>  public String printRow( ResultSet rs ,int newsid1,int newsid2,int newsid3) </p><p><b>  {</b></p><p>  String temp = ""

39、;;</p><p>  String Asj="";//獲取數(shù)據(jù)庫(kù)中的時(shí)間字段</p><p>  String Jasj="";//截取數(shù)據(jù)庫(kù)中的時(shí)間字段,格式:yyyyMMdd</p><p>  long Aczx,Jczx,Zczx;</p><p>  SimpleDateFormat sj

40、gs=new SimpleDateFormat("yyyyMMdd");//設(shè)置系統(tǒng)時(shí)間的格式</p><p>  String Jxsj=sjgs.format(Calendar.getInstance().getTime());//獲取系統(tǒng)時(shí)間</p><p>  int GETid=0;//獲得數(shù)據(jù)庫(kù)的id字段值</p><p><b

41、>  try</b></p><p><b>  {</b></p><p>  Asj=rs.getString("pubdate");</p><p>  GETid=rs.getInt("id");</p><p>  }catch(SQLException

42、 e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  Jasj=Asj.substring(0,4);</p><p>  Jasj+=Asj.substring(5,7);</p><p>  Jasj+=Asj.su

43、bstring(8,10);</p><p>  Aczx=Long.parseLong(Jasj);//將數(shù)據(jù)庫(kù)中的字符串類型的時(shí)間字段轉(zhuǎn)換成長(zhǎng)整型</p><p>  Jczx=Long.parseLong(Jxsj);//將系統(tǒng)的字符串類型的時(shí)間字段轉(zhuǎn)換成長(zhǎng)整型</p><p>  Zczx=Jczx-Aczx;//系統(tǒng)時(shí)間減數(shù)據(jù)庫(kù)時(shí)間,旨在:求出的數(shù)值與7比

44、較,與實(shí)現(xiàn)近期新聞?dòng)嘘P(guān)(近期新聞:發(fā)布時(shí)間在一周之內(nèi)的新聞,后面有NEW圖標(biāo))</p><p><b>  try {</b></p><p>  if(i%2==1)</p><p>  temp+="<tr bgcolor='#99CCFF'>";</p><p>&l

45、t;b>  else</b></p><p>  temp+="<tr bgcolor='#f7f7f7'>";</p><p>  if(Zczx<=7&&(newsid1==GETid||newsid2==GETid||newsid3==GETid))</p><p><

46、;b>  {</b></p><p>  temp+="<td><a href=javascript:detail("+GETid+")>"+rs.getString("title")+"</a><img src='NEW.gif' alt='new'&

47、gt;<img src='HOT.jpg' alt='HOT'></td>";</p><p><b>  }</b></p><p>  else if(Zczx<=7&&newsid1!=GETid&&newsid2!=GETid&&newsid

48、3!=GETid)</p><p><b>  {</b></p><p>  temp+="<td><a href=javascript:detail("+GETid+")>"+rs.getString("title")+"</a><img src=

49、9;NEW.gif' alt='new'></td>";</p><p><b>  }</b></p><p>  else if(Zczx>7&&(newsid1==GETid||newsid2==GETid||newsid3==GETid))</p><p><

50、;b>  {</b></p><p>  temp+="<td><a href=javascript:detail("+GETid+")>"+rs.getString("title")+"</a><img src='HOT.jpg' alt='HOT'&

51、gt;</td>";</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  temp+="<td><a href=javascript:

52、detail("+GETid+")>"+rs.getString("title")+"</a></td>";</p><p><b>  }</b></p><p>  temp+="<td>"+rs.getString("au

53、thor")+"</td>";</p><p>  temp+="<td>"+Asj+"</td>";</p><p>  temp += "</tr>";</p><p><b>  i++;</b><

54、;/p><p><b>  }</b></p><p>  catch(SQLException e) { }</p><p>  return temp;</p><p><b>  }</b></p><p><b>  %></b></

55、p><p>  <table width="100%" border="0" cellspacing="25"></p><p><b>  <tr></b></p><p>  <td align="center"></p&g

56、t;<p>  <p><img src="bt1.jpg" width="425" height="28" alt="bt1" align="left"></p></p><p>  <p>&nbsp;</p></p>

57、<p><b>  <p></b></p><p>  <table border="1" borderColorDark="#ffffec" borderColorLight="#5e5e00" width="100%"></p><p>  <t

58、r bgcolor="#66CCFF" align="center"></p><p>  <th width="40%" bgcolor="#66CCFF">標(biāo)題</th></p><p>  <th width="30%" bgcolor="

59、#66CCFF">作者</th></p><p>  <th bgcolor="#66CCFF">日期</th></p><p><b>  <%</b></p><p>  rs=conn.executeQuery(sql5);</p><p&g

60、t;  /*根據(jù)數(shù)據(jù)庫(kù)里jishu字段,以選擇排序法對(duì)數(shù)據(jù)庫(kù)里的新聞進(jìn)行排序,選出點(diǎn)擊次數(shù)最多的三個(gè)新聞id*/</p><p>  rs1=conn.executeQuery(sql31);</p><p>  rs2=conn.executeQuery(sql21);</p><p>  newstotalrecord1=0;//旨在:科技新聞的總條數(shù),為了限定

61、數(shù)組的長(zhǎng)度</p><p>  if(rs2.next())</p><p>  newstotalrecord1=rs2.getInt(1);</p><p>  int pxjishu1[]=new int[newstotalrecord1];//旨在;將數(shù)據(jù)庫(kù)里的jishu字段進(jìn)行排序,為了確定點(diǎn)擊次數(shù)最多的前三條新聞的id</p><p&

62、gt;  int pxid1[]=new int[newstotalrecord1];//旨在;依據(jù)pxjishu[]數(shù)組的排序?qū)?shù)據(jù)庫(kù)中的id字段進(jìn)行排序,選出點(diǎn)擊次數(shù)最多的前三條新聞的id</p><p>  /*將數(shù)據(jù)庫(kù)里的id,jishu兩個(gè)字段的值放入相應(yīng)的數(shù)組中*/</p><p>  for(int i=0;i<newstotalrecord1;i++)</p&g

63、t;<p><b>  {</b></p><p>  if(rs1.next())</p><p><b>  {</b></p><p>  pxjishu1[i]=rs1.getInt("jishu");</p><p>  pxid1[i]=rs1.getI

64、nt("id");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*將數(shù)據(jù)庫(kù)里的id,jishu兩個(gè)字段的值放入相應(yīng)的數(shù)組中*/</p><p>  for(int i=pxjishu1.length-1;i>0;i-

65、-)</p><p><b>  {</b></p><p>  max1=0;max2=0;</p><p>  for(int j=1;j<=i;j++)</p><p><b>  {</b></p><p>  if(pxjishu1[max1]<pxji

66、shu1[j])</p><p><b>  {</b></p><p><b>  max1=j;</b></p><p><b>  max2=j;</b></p><p><b>  }</b></p><p><b&g

67、t;  }</b></p><p>  temp1=pxjishu1[max1];</p><p>  pxjishu1[max2]=pxjishu1[i];</p><p>  pxjishu1[i]=temp1;</p><p>  temp2=pxid1[max2];</p><p>  pxid1[

68、max2]=pxid1[i];</p><p>  pxid1[i]=temp2;</p><p><b>  }</b></p><p>  newsid1=pxid1[pxid1.length-1];</p><p>  newsid2=pxid1[pxid1.length-2];</p><p&

69、gt;  newsid3=pxid1[pxid1.length-3];</p><p>  /*根據(jù)數(shù)據(jù)庫(kù)里jishu字段,以選擇排序法對(duì)數(shù)據(jù)庫(kù)里的新聞進(jìn)行排序,選出點(diǎn)擊次數(shù)最多的三個(gè)新聞id*/</p><p><b>  i=1;</b></p><p>  while(rs.next())</p><p>  ou

70、t.println(printRow(rs,newsid1,newsid2,newsid3));</p><p><b>  %></b></p><p><b>  </table></b></p><p><b>  4.3.5新聞內(nèi)容</b></p><p&

71、gt;  在主頁index.jsp點(diǎn)擊相應(yīng)新聞的標(biāo)題鏈接后,將打開detail.jsp頁面。此頁面實(shí)現(xiàn)查看具體的新聞內(nèi)容。并實(shí)現(xiàn)記錄新聞瀏覽次數(shù)的功能。效果如圖4-8所示:</p><p><b>  圖4-8新聞內(nèi)容</b></p><p>  通過每點(diǎn)擊一次detail.jsp頁面使參數(shù)jishu相應(yīng)增加1并更新數(shù)據(jù)庫(kù)來實(shí)現(xiàn):記錄新聞瀏覽次數(shù)的功能。實(shí)現(xiàn)代碼如下:

72、</p><p><b>  <%!</b></p><p>  long jishu=0;</p><p>  StringBuffer fragment(StringBuffer c)</p><p><b>  {</b></p><p>  for(int i=

73、0;i<c.length();i++)</p><p><b>  {</b></p><p>  if(c.charAt(i)=='\n')</p><p><b>  {</b></p><p>  c.delete(i,i+1);</p><p>

74、  c.insert(i,"<p>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return c;</b></p><p><b>  }</b><

75、/p><p><b>  %></b></p><p><b>  <%</b></p><p>  request.setCharacterEncoding("gb2312");</p><p>  String id=request.getParameter(&quo

76、t;id");</p><p>  ResultSet rs=null;</p><p>  String sql="select * from news where id="+id;</p><p>  rs=conn.executeQuery(sql);</p><p>  if(!rs.next())&l

77、t;/p><p>  out.println("對(duì)不起,沒有相關(guān)的新聞!");</p><p><b>  else</b></p><p><b>  {</b></p><p>  jishu=rs.getLong("jishu")+1;</p>

78、<p>  StringBuffer content=new StringBuffer(rs.getString("content"));</p><p>  content=fragment(content);</p><p>  sql="update news set jishu='"+jishu+"' w

79、here id="+id;</p><p>  conn.executeUpdate(sql);</p><p><b>  %></b></p><p><b>  4.4檢索新聞</b></p><p>  在主頁檢索新聞,將信息提交給index0.jsp頁面進(jìn)行處理,index

80、0.jsp的功能實(shí)現(xiàn)了瀏覽檢索的新聞。index0.jsp如圖4-9所示:</p><p>  圖4-9 index0.jsp</p><p>  代碼中的printPage()方法是定位作用,讓表格輸出的是當(dāng)前頁號(hào)(參數(shù)為P)的新聞。每頁八條新聞。檢索頁面index0.jsp實(shí)現(xiàn)分頁顯示新聞的代碼如下:</p><p><b>  <%!<

81、/b></p><p>  public String printPage(ResultSet rs, int p, int size,int newsid1,int newsid2,int newsid3) </p><p><b>  {</b></p><p><b>  str = "";</b

82、></p><p>  //將訪問游標(biāo)定位到頁號(hào)為p的頁要顯示的第一條記錄的位置</p><p><b>  try {</b></p><p>  for(int k=0;k<(p-1)*size;k++)</p><p>  rs.next();</p><p><b>

83、;  }</b></p><p>  catch(SQLException e) { }</p><p>  for(int iPage=1; iPage<=size; iPage++) {</p><p>  str += printRow(rs,iPage,p,newsid1,newsid2,newsid3);</p><

84、;p><b>  try {</b></p><p>  if(!rs.next()) break;</p><p><b>  }</b></p><p>  catch(Exception e) { }</p><p><b>  }</b></p>

85、<p>  return str;</p><p><b>  }</b></p><p><b>  //顯示單行記錄</b></p><p>  public String printRow( ResultSet rs ,int i,int p,int newsid1,int newsid2,int ne

86、wsid3) </p><p><b>  {</b></p><p>  String temp = "";</p><p>  String Asj="";//獲取數(shù)據(jù)庫(kù)中的時(shí)間字段</p><p>  String Jasj="";//截取數(shù)據(jù)庫(kù)中的時(shí)間字

87、段,格式:yyyyMMdd</p><p>  long Aczx,Jczx,Zczx;</p><p>  SimpleDateFormat sjgs=new SimpleDateFormat("yyyyMMdd");//設(shè)置系統(tǒng)時(shí)間的格式</p><p>  String Jxsj=sjgs.format(Calendar.getInstan

88、ce().getTime());//獲取系統(tǒng)時(shí)間</p><p>  int GETid=0;//獲得數(shù)據(jù)庫(kù)的id字段值</p><p><b>  try</b></p><p><b>  {</b></p><p>  Asj=rs.getString("pubdate")

89、;</p><p>  GETid=rs.getInt("id");</p><p>  }catch(SQLException e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  Jasj=Asj.

90、substring(0,4);</p><p>  Jasj+=Asj.substring(5,7);</p><p>  Jasj+=Asj.substring(8,10);</p><p>  Aczx=Long.parseLong(Jasj);//將數(shù)據(jù)庫(kù)中的字符串類型的時(shí)間字段轉(zhuǎn)換成長(zhǎng)整型</p><p>  Jczx=Long.pa

91、rseLong(Jxsj);//將系統(tǒng)的字符串類型的時(shí)間字段轉(zhuǎn)換成長(zhǎng)整型</p><p>  Zczx=Jczx-Aczx;//系統(tǒng)時(shí)間減數(shù)據(jù)庫(kù)時(shí)間,旨在:求出的數(shù)值與7比較,與實(shí)現(xiàn)近期新聞?dòng)嘘P(guān)(近期新聞:發(fā)布時(shí)間在一周之內(nèi)的新聞,后面有NEW圖標(biāo))</p><p><b>  try {</b></p><p>  if(i%2==1)<

92、;/p><p>  temp+="<tr bgcolor='#99CCFF'>";</p><p><b>  else</b></p><p>  temp+="<tr bgcolor='#f7f7f7'>";</p><p>

93、  if(Zczx<=7&&(newsid1==GETid||newsid2==GETid||newsid3==GETid))</p><p><b>  {</b></p><p>  temp+="<td><a href=javascript:detail("+GETid+")>"

94、;+rs.getString("title")+"</a><img src='NEW.gif' alt='new'><img src='HOT.jpg' alt='HOT'></td>";</p><p><b>  }</b></p&

95、gt;<p>  else if(Zczx<=7&&newsid1!=GETid&&newsid2!=GETid&&newsid3!=GETid)</p><p><b>  {</b></p><p>  temp+="<td><a href=javascript:det

96、ail("+GETid+")>"+rs.getString("title")+"</a><img src='NEW.gif' alt='new'></td>";</p><p><b>  }</b></p><p>  el

97、se if(Zczx>7&&(newsid1==GETid||newsid2==GETid||newsid3==GETid))</p><p><b>  {</b></p><p>  temp+="<td><a href=javascript:detail("+GETid+")>"

98、;+rs.getString("title")+"</a><img src='HOT.jpg' alt='HOT'></td>";</p><p><b>  }</b></p><p><b>  else</b></p>

99、<p><b>  {</b></p><p>  temp+="<td><a href=javascript:detail("+GETid+")>"+rs.getString("title")+"</a></td>";</p><p&

100、gt;<b>  }</b></p><p>  temp+="<td>"+rs.getString("author")+"</td>";</p><p>  temp+="<td>"+Asj+"</td>";</p

101、><p>  temp += "</tr>";</p><p><b>  }</b></p><p>  catch(SQLException e) { }</p><p>  return temp;</p><p><b>  }</b>

102、</p><p><b>  %></b></p><p>  <table border="1" borderColorDark="#ffffec" borderColorLight="#5e5e00" width="95%"></p><p>

103、  <tr bgcolor="#66CCFF" align="center"></p><p>  <th width="50%" bgcolor="#66CCFF">標(biāo)題</th></p><p>  <th width="20%" bgcolor

104、="#66CCFF">作者</th></p><p>  <th bgcolor="#66CCFF">日期</th></p><p><b>  <%</b></p><p>  temp = conn.executeQuery(sql2);//作用:返回?cái)?shù)

105、據(jù)庫(kù)里每一列的總和</p><p>  int totalrecord=0;//新聞的總條數(shù)</p><p>  if(temp.next())</p><p>  totalrecord = temp.getInt(1);//獲取數(shù)據(jù)庫(kù)里id列的總行數(shù),即新聞的總條數(shù)</p><p>  // 如果是當(dāng)前頁碼的整數(shù)倍</p>

106、<p>  if(totalrecord % size ==0) totalPage = totalrecord / size; </p><p>  /* 如果最后還空余一頁 </p><p>  Math.floor()方法:求一個(gè)最接近它的整數(shù),它的值小于或等于這個(gè)浮點(diǎn)數(shù)</p><p>  Math.floor(0.60) -- 0</p

107、><p>  Math.floor(0.40) -- 0</p><p>  Math.floor(5) -- 5</p><p>  Math.floor(5.1) -- 5</p><p>  Math.floor(-5.1) -- -6</p><p>  Math.floor(-5.9) -- -6</p

108、><p><b>  */</b></p><p>  else totalPage = (int) Math.floor( totalrecord / size ) + 1; </p><p>  if(totalPage == 0) totalPage = 1;</p><p>  temp.close();</

109、p><p>  /*旨在:捕獲用戶從瀏覽器地址攔直接輸入非數(shù)字信息而引起的異常*/</p><p><b>  try {</b></p><p>  if(request.getParameter("p")==null || request.getParameter("p").equals("&q

110、uot;)) </p><p><b>  p = 1;</b></p><p><b>  else</b></p><p>  p = Integer.parseInt(request.getParameter("p"));</p><p><b>  } <

111、/b></p><p>  catch(NumberFormatException e) { </p><p><b>  p = 1;</b></p><p><b>  }</b></p><p>  if(p < 1) p = 1;</p><p>  

112、if(p > totalPage) p = totalPage;</p><p>  /*旨在:捕獲用戶從瀏覽器地址攔直接輸入非數(shù)字信息而引起的異常*/</p><p>  rs=conn.executeQuery(sql1);</p><p>  /*根據(jù)數(shù)據(jù)庫(kù)里jishu字段,以選擇排序法對(duì)數(shù)據(jù)庫(kù)里的新聞進(jìn)行排序,選出點(diǎn)擊次數(shù)最多的三個(gè)新聞id*/<

113、/p><p>  rs1=conn.executeQuery(sql3);</p><p>  rs2=conn.executeQuery(sql4);</p><p>  int newstotalrecord=0;//旨在:新聞的總條數(shù),為了限定數(shù)組的長(zhǎng)度</p><p>  int max1,max2,newsid1,newsid2,new

114、sid3,temp1,temp2;</p><p>  if(rs2.next())</p><p>  newstotalrecord=rs2.getInt(1);</p><p>  int pxjishu[]=new int[newstotalrecord];//旨在;將數(shù)據(jù)庫(kù)里的jishu字段進(jìn)行排序,為了確定點(diǎn)擊次數(shù)最多的前三條新聞的id</p>

115、;<p>  int pxid[]=new int[newstotalrecord];//旨在;依據(jù)pxjishu[]數(shù)組的排序?qū)?shù)據(jù)庫(kù)中的id字段進(jìn)行排序,選出點(diǎn)擊次數(shù)最多的前三條新聞的id</p><p>  /*將數(shù)據(jù)庫(kù)里的id,jishu兩個(gè)字段的值放入相應(yīng)的數(shù)組中*/</p><p>  for(int i=0;i<newstotalrecord;i++)&l

116、t;/p><p><b>  {</b></p><p>  if(rs1.next())</p><p><b>  {</b></p><p>  pxjishu[i]=rs1.getInt("jishu");</p><p>  pxid[i]=rs1.

117、getInt("id");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*將數(shù)據(jù)庫(kù)里的id,jishu兩個(gè)字段的值放入相應(yīng)的數(shù)組中*/</p><p>  for(int i=pxjishu.length-1;i>0

118、;i--)</p><p><b>  {</b></p><p>  max1=0;max2=0;</p><p>  for(int j=1;j<=i;j++)</p><p><b>  {</b></p><p>  if(pxjishu[max1]<px

119、jishu[j])</p><p><b>  {</b></p><p><b>  max1=j;</b></p><p><b>  max2=j;</b></p><p><b>  }</b></p><p><b&

120、gt;  }</b></p><p>  temp1=pxjishu[max1];</p><p>  pxjishu[max2]=pxjishu[i];</p><p>  pxjishu[i]=temp1;</p><p>  temp2=pxid[max2];</p><p>  pxid[max2]

121、=pxid[i];</p><p>  pxid[i]=temp2;</p><p><b>  }</b></p><p>  newsid1=pxid[pxid.length-1];</p><p>  newsid2=pxid[pxid.length-2];</p><p>  newsid

122、3=pxid[pxid.length-3];</p><p>  /*根據(jù)數(shù)據(jù)庫(kù)里jishu字段,以選擇排序法對(duì)數(shù)據(jù)庫(kù)里的新聞進(jìn)行排序,選出點(diǎn)擊次數(shù)最多的三個(gè)新聞id*/</p><p>  if(rs.next())</p><p>  out.println(printPage(rs,p,size,newsid1,newsid2,newsid3));</p

123、><p><b>  %></b></p><p><b>  </table></b></p><p>  在index0.jsp頁面中,每頁顯示八條新聞信息,對(duì)新聞進(jìn)行分頁瀏覽。點(diǎn)擊相應(yīng)的頁數(shù)或輸入相應(yīng)的頁數(shù),都能瀏覽相應(yīng)頁的新聞。有一點(diǎn)需要注意,當(dāng)輸入的數(shù)值超過最大頁數(shù)時(shí),顯示的為最后的一頁新聞,當(dāng)輸入

124、的數(shù)值小于1以及為非數(shù)值時(shí),顯示的為第一頁新聞。分頁如圖4-10所示:</p><p><b>  圖4-10演示圖</b></p><p>  代碼中P代表當(dāng)前頁號(hào),totalPage代表全部頁數(shù)。分頁功能實(shí)現(xiàn)代碼如下:</p><p><b>  <%</b></p><p>  temp

125、 = conn.executeQuery(sql2);//作用:返回?cái)?shù)據(jù)庫(kù)里每一列的總和</p><p>  int totalrecord=0;//新聞的總條數(shù)</p><p>  if(temp.next())</p><p>  totalrecord = temp.getInt(1);//獲取數(shù)據(jù)庫(kù)里id列的總行數(shù),即新聞的總條數(shù)</p>&l

126、t;p>  // 如果是當(dāng)前頁碼的整數(shù)倍</p><p>  if(totalrecord % size ==0) totalPage = totalrecord / size; </p><p>  /* 如果最后還空余一頁 </p><p>  Math.floor()方法:求一個(gè)最接近它的整數(shù),它的值小于或等于這個(gè)浮點(diǎn)數(shù)</p><

127、p>  Math.floor(0.60) -- 0</p><p>  Math.floor(0.40) -- 0</p><p>  Math.floor(5) -- 5</p><p>  Math.floor(5.1) -- 5</p><p>  Math.floor(-5.1) -- -6</p><

128、p>  Math.floor(-5.9) -- -6</p><p><b>  */</b></p><p>  else totalPage = (int) Math.floor( totalrecord / size ) + 1; </p><p>  if(totalPage == 0) totalPage = 1;</p

129、><p>  temp.close();</p><p>  /*旨在:捕獲用戶從瀏覽器地址攔直接輸入非數(shù)字信息而引起的異常*/</p><p><b>  try {</b></p><p>  if(request.getParameter("p")==null || request.getParam

130、eter("p").equals("")) </p><p><b>  p = 1;</b></p><p><b>  else</b></p><p>  p = Integer.parseInt(request.getParameter("p"));<

131、;/p><p><b>  } </b></p><p>  catch(NumberFormatException e) { </p><p><b>  p = 1;</b></p><p><b>  }</b></p><p>  if(p <

132、; 1) p = 1;</p><p>  if(p > totalPage) p = totalPage; </p><p><b>  %></b></p><p>  <form Action="index0.jsp" Method="GET"></p>&l

133、t;p><b>  <%</b></p><p>  for(int i=1;i<=totalPage;i++) {</p><p>  out.println("<a href=index0.jsp?p=" + i +">" + i + "</a>&nbsp;&

134、;nbsp;");</p><p><b>  }</b></p><p><b>  %></b></p><p>  <p>輸入頁數(shù):<input type="text" name="p" size="3"> </

135、p><p>  頁數(shù):<font color="red"><%=p%>/<%=totalPage%></font> </p><p><b>  </p></b></p><p><b>  </form></b></p>

136、<p>  4.5管理員登陸頁面</p><p>  點(diǎn)擊新聞管理進(jìn)入管理員登陸頁面,管理員賬號(hào)有兩個(gè)admin和fy。密碼與賬號(hào)一致。如圖4-11所示。</p><p>  圖4-11管理員登陸頁面</p><p>  信息提交給verify.jsp頁面進(jìn)行處理。若有此賬號(hào)且密碼正確,則登陸管理員界面manage.jsp,若賬號(hào)或密碼不正確,則登陸不了

137、。</p><p>  判斷是否可登陸實(shí)現(xiàn)代碼如下:</p><p>  <%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%></p><p>  <jsp:useBean id="conn" class

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論