版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)論文(設計)</b></p><p> 論文題目: 新聞發(fā)布管理系統(tǒng)設計 </p><p> 系 別: </p><p> 專 業(yè): </p><p> 班 級:
2、 </p><p> 學 號: </p><p> 學生姓名: </p><p> 指導教師: </p><p><b> 目 錄</b></p><p><b> 1概述1</b
3、></p><p><b> 1.1引言1</b></p><p> 1.2開發(fā)工具簡介1</p><p> 1.2.1 JDK簡介1</p><p> 1.2.2 Tomcat簡介2</p><p> 1.2.3 Adobe DreamweaverCS4簡介2</
4、p><p> 1.2.4 Microsoft Office Access2003簡介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)濟可行性分析3</p>
5、;<p> 2.1.2技術可行性分析3</p><p> 2.2系統(tǒng)流程分析3</p><p> 3 系統(tǒng)概要設計5</p><p> 3.1系統(tǒng)開發(fā)的目標5</p><p> 3.2系統(tǒng)的功能結構圖5</p><p> 3.3系統(tǒng)流程圖6</p><p>
6、 3.4數(shù)據(jù)庫概念結構設計6</p><p><b> 4 系統(tǒng)設計8</b></p><p> 4.1網(wǎng)站目錄結構8</p><p> 4.2數(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新聞內容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> 總結30</b></p><p><b> 致謝31</b></p><p><b> 參考文獻32</b&
9、gt;</p><p> 新聞發(fā)布管理系統(tǒng)設計</p><p> 摘 要: 新聞發(fā)布管理系統(tǒng),是將每天在世界上發(fā)生的新聞等其他最新信息集中管理,并通過這些信息某方面的共性進行分類,最后系統(tǒng)化、標準化發(fā)布到網(wǎng)站上。本系統(tǒng)是由動態(tài)網(wǎng)頁和數(shù)據(jù)庫結合起來的,可進行新聞信息的添加、刪除、修改等操作,且符合新聞管理的一般規(guī)定,能夠滿足新聞網(wǎng)站日常更新,并達到操作過程中的直觀、方便、實用、安全等要
10、求。</p><p> 關鍵字: 新聞管理 更新 檢索 </p><p><b> 1概述</b></p><p><b> 1.1引言</b></p><p> 伴隨著網(wǎng)絡的出現(xiàn),網(wǎng)頁逐漸融入人們的生活??焖偌皶r的新聞瀏覽,五彩繽紛的網(wǎng)上信息,使網(wǎng)絡與人們的生活息
11、息相關,于是世界上又出現(xiàn)了第三媒體——Internet。它打破了地域限制,真正使信息得以共享,改變了人們的工作和生活方式。制作網(wǎng)頁是企業(yè)和個人的宣傳自己的重要手段,同時也是學習者獲取學習信息的重要手段。尤其是在教育領域,在素質教育與終身教育成為必然的今天,人們對信息的需求有了更新,更高的要求,而網(wǎng)頁由于本身所具有的信息量大,傳遞快速,沒有時空限制等特點恰好滿足這種要求。所以網(wǎng)頁也逐漸成為一種新興的教育資源。也正是由于網(wǎng)絡實現(xiàn)網(wǎng)站的數(shù)據(jù)信
12、息能夠進行實時交互,保證網(wǎng)站數(shù)據(jù)的實時性。</p><p> 網(wǎng)絡媒體在人們心中的地位逐步提高,新聞發(fā)布系統(tǒng)做為網(wǎng)絡媒體的核心系統(tǒng),其重要性是越來越重要:一方面,它提供一個新聞管理和發(fā)布的功能;另一方面,現(xiàn)在的新聞發(fā)布要求實現(xiàn)與普通的用戶實現(xiàn)交互,用戶可以很方便地參加一些調查和相關新聞的評論,這一點也是其他一些媒體現(xiàn)在無法做到的(電視、電臺等),同時,Internet發(fā)展到當今,可以說,只要你上Internet
13、,你就會接觸到新聞發(fā)布系統(tǒng),新聞發(fā)布系統(tǒng)的用戶是相當驚人的,其重要性是不容置疑的,當然這也對新聞發(fā)布系統(tǒng)的開發(fā)提出了更高的要求。</p><p><b> 1.2開發(fā)工具簡介</b></p><p> 我本次制作的畢業(yè)設計主要是應用JDK、Tomcat6.0 、Adobe DreamweaverCS4、和Microsoft Office Access2003數(shù)據(jù)庫
14、完成的。</p><p> 1.2.1 JDK簡介</p><p> JDK(Java Development Kit)是Sun Microsystems(已被甲骨文公司收購)針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環(huán)境,Java工具和Java基礎的類庫。JDK是學好Java的第一步。而
15、專門運行在x86平臺的Jrocket在服務端運行效率也要比Sun JDK好很多。從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本也不斷更新,運行效率得到了非常大的提高。</p><p> 1.2.2 Tomcat簡介</p><p> Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由A
16、pache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因為Tomcat 技術先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web 應用服務器。目前最新版本是7.0。</p><p>
17、 1.2.3 Adobe DreamweaverCS4簡介</p><p> Adobe DreamweaverCS4是個原本由Macromedia公司所開發(fā)的著名網(wǎng)站開發(fā)工具。它使用所見即所得的接口,亦有HTML編輯的功能。它現(xiàn)在有Mac和Windows系統(tǒng)的版本。隨Macromedia被Adobe收購后,Adobe也開始計劃開發(fā)Linux版本的Dreamweaver了。 Dreamweaver自MX版本開
18、始,使用了Opera的排版引擎 “Presto” 作為網(wǎng)頁預覽。目前最新版本是Adobe DreamweaverCS5</p><p> 1.2.4 Microsoft Office Access2003簡介</p><p> Access 是微軟公司推出的基于Windows的桌面關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS,即Relational Database Management Syste
19、m),是Office系列應用軟件之一。它提供了表、查詢、窗體、報表、頁、宏、模塊7種用來建立數(shù)據(jù)庫系統(tǒng)的對象;提供了多種向導、生成器、模板,把數(shù)據(jù)存儲、數(shù)據(jù)查詢、界面設計、報表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了方便,也使得普通用戶不必編寫代碼,就可以完成大部分數(shù)據(jù)管理的任務。目前已有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ù)庫使用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> 內存:512M以上。 </p><p> 硬盤空間:300M的閑置空間。</p><p><b> 2系統(tǒng)分析</b></p><p> 本系統(tǒng)主要實現(xiàn)的功能如下:</p><p> (1)將新聞進行分類,分為四類:科技、財經(jīng)、娛樂、數(shù)碼。</p&g
22、t;<p> ?。?)可根據(jù)相應的類別輸入關鍵字對新聞進行檢索</p><p> (3)實現(xiàn)了“熱點新聞”,“近期新聞”的功能</p><p> ?。?)管理員可對新聞進行修改,刪除操作。</p><p> ?。?)管理員可登陸后臺發(fā)布新聞</p><p> ?。?)管理員能了解各類新聞的條數(shù),數(shù)據(jù)庫中的新聞總條數(shù),還有每條新
23、聞的屬于哪個類別的。</p><p> ?。?)檢索頁面實現(xiàn)了對新聞的分頁功能</p><p><b> 2.1可行性分析</b></p><p> 可行性分析也稱可行性研究,是決策部門在采取一項重大改革或投資行動之前,對該項目的必要性和可能性進行分析與論證的活動??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內確定問題是否能夠解決。&l
24、t;/p><p> 2.1.1經(jīng)濟可行性分析</p><p> 此系統(tǒng)開發(fā)時間短,一個開發(fā)人員即可。所用到的軟件均可從互聯(lián)網(wǎng)上免費下載使用,并且此系統(tǒng)對運行的環(huán)境要求低,從經(jīng)濟角度上說,是完全可以開發(fā)的。</p><p> 2.1.2技術可行性分析</p><p> 此系統(tǒng)由本人完成,此系統(tǒng)有用到JSP程序設計、網(wǎng)頁設計與開發(fā)、數(shù)據(jù)庫原理
25、及應用等知識。還有通過網(wǎng)上學習,實現(xiàn)了分頁功能,熱點新聞和近期新聞的標示。</p><p><b> 2.2系統(tǒng)流程分析</b></p><p> 訪客通過“查看新聞”,來瀏覽新聞的標題以及新聞的作者和新聞的發(fā)布時間,根據(jù)新聞標題后面是否有“HOT”,“NEW”圖標來了解新聞是否為“熱點新聞”或者“近期新聞”。點擊“韻妍彥殤”來瀏覽本系統(tǒng)的作者信息。通過點擊新聞的
26、標題來瀏覽新聞的內容,還可以根據(jù)不同類別的查詢來檢索相應的新聞。</p><p> 登陸管理員頁面后,管理員可以通過“發(fā)布新聞”,來發(fā)布新聞。通過“管理新聞”,可以對新聞進行刪除和編輯。并可瀏覽新聞的標題、新聞的作者、新聞的發(fā)布時間、新聞被瀏覽的次數(shù),新聞的類別以及新聞的總數(shù)和各類別新聞的條數(shù)。</p><p><b> 3 系統(tǒng)概要設計</b></p>
27、;<p> 3.1系統(tǒng)開發(fā)的目標</p><p> 訪客可以通過前臺瀏覽以及檢索新聞,將新聞分成了熱點新聞、近期新聞和普通新聞,新聞分四類,科技,財經(jīng),娛樂,數(shù)碼。管理員可以通過登錄后臺對新聞進行管理,包括修改新聞,刪除新聞。還可以實時發(fā)布新聞。并能瀏覽到各類(科技,財經(jīng),娛樂,數(shù)碼)新聞的條數(shù)。</p><p> 3.2系統(tǒng)的功能結構圖 </p><
28、;p> 新聞發(fā)布管理系統(tǒng)的功能結構圖,如圖1-1所示:</p><p> 圖1-1新聞發(fā)布管理系統(tǒng)組織結構圖</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ù)庫概念結構設計</p><p> 由于本系統(tǒng)對數(shù)據(jù)庫的需求比較小,所以本系統(tǒng)使用的是Microsoft Office Access 2003作為系統(tǒng)數(shù)據(jù)庫,Microsoft Office Access 2003已完全滿足本系統(tǒng)的需求,且簡單好用。系統(tǒng)所涉及到的主要實體有兩個:</p><p> ?。?)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)詳細設計</b></p>
31、;<p><b> 4.1網(wǎng)站目錄結構</b></p><p> 網(wǎng)站總目錄如圖4-1所示:</p><p><b> 圖4-1網(wǎng)站總目錄</b></p><p> 4.2數(shù)據(jù)庫表結構設計 </p><p> admin表結構如表4-1所示:</p><p
32、> 表4-1后臺管理員表admin</p><p> news表結構如表4-2所示:</p><p> 表4-2新聞基本表news</p><p><b> 4.3主頁功能模塊</b></p><p><b> 4.3.1主頁頭部</b></p><p>
33、主頁頭部有三個鏈接。如圖4-2所示:</p><p> 圖4-2主頁頭部鏈接</p><p> ?。?)“韻妍彥殤”:鏈接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> (3)“新聞管理”:鏈接manage.jsp。登陸后臺對新聞進行管理等操作。</p><p><b> 4.3.2檢索功能</b></p><p> 選擇相應的查詢類別(標題、內容、作者、日期)以及輸入關鍵字后,便可檢索該類別中包括關鍵字的新聞。若關鍵字為空,是查詢所有的新
35、聞。信息提交給index0.jsp頁面進行處理。如圖4-5所示:</p><p><b> 圖4-5檢索功能</b></p><p><b> 4.3.3主頁主體</b></p><p> 相應類別(科技、財經(jīng)、娛樂、數(shù)碼)的新聞在相應的表格中排布,如圖4-6所示:</p><p> 圖4-
36、6新聞按類別排布</p><p><b> 4.3.4新聞信息</b></p><p> 瀏覽每個類別的新聞信息都包括新聞的標題、新聞的作者、新聞的發(fā)布日期,還可以根據(jù)標題后面是否有“HOT”或者“NEW”圖標來了解此新聞是否是“熱點新聞”或者為“近期新聞”?!盁狳c新聞”是指相應類別新聞瀏覽次數(shù)最多的前三條新聞?!敖谛侣劇笔侵赴l(fā)布時間不超過一周的新聞。如圖4-7
37、所示:</p><p> 圖4-7瀏覽新聞信息</p><p> 代碼中的printRow(ResultSet rs ,int newsid1,int newsid2,int newsid3)方法的作用:處理哪些新聞是熱點新聞,哪些又是近期新聞,并最終形成表格,在表格中顯示新聞的標題,作者,日期。方法中的四個參數(shù)分別表示:某類別新聞在數(shù)據(jù)庫中的所有字段的結果集。后三個參數(shù)代表這個類別當
38、中被瀏覽次數(shù)最多的三條新聞的id字段。新聞信息實現(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ù)庫中的時間字段</p><p> String Jasj="";//截取數(shù)據(jù)庫中的時間字段,格式:yyyyMMdd</p><p> long Aczx,Jczx,Zczx;</p><p> SimpleDateFormat sj
40、gs=new SimpleDateFormat("yyyyMMdd");//設置系統(tǒng)時間的格式</p><p> String Jxsj=sjgs.format(Calendar.getInstance().getTime());//獲取系統(tǒng)時間</p><p> int GETid=0;//獲得數(shù)據(jù)庫的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ù)庫中的字符串類型的時間字段轉換成長整型</p><p> Jczx=Long.parseLong(Jxsj);//將系統(tǒng)的字符串類型的時間字段轉換成長整型</p><p> Zczx=Jczx-Aczx;//系統(tǒng)時間減數(shù)據(jù)庫時間,旨在:求出的數(shù)值與7比
44、較,與實現(xiàn)近期新聞有關(近期新聞:發(fā)布時間在一周之內的新聞,后面有NEW圖標)</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> </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">標題</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ù)庫里jishu字段,以選擇排序法對數(shù)據(jù)庫里的新聞進行排序,選出點擊次數(shù)最多的三個新聞id*/</p><p> rs1=conn.executeQuery(sql31);</p><p> rs2=conn.executeQuery(sql21);</p><p> newstotalrecord1=0;//旨在:科技新聞的總條數(shù),為了限定
61、數(shù)組的長度</p><p> if(rs2.next())</p><p> newstotalrecord1=rs2.getInt(1);</p><p> int pxjishu1[]=new int[newstotalrecord1];//旨在;將數(shù)據(jù)庫里的jishu字段進行排序,為了確定點擊次數(shù)最多的前三條新聞的id</p><p&
62、gt; int pxid1[]=new int[newstotalrecord1];//旨在;依據(jù)pxjishu[]數(shù)組的排序對數(shù)據(jù)庫中的id字段進行排序,選出點擊次數(shù)最多的前三條新聞的id</p><p> /*將數(shù)據(jù)庫里的id,jishu兩個字段的值放入相應的數(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ù)庫里的id,jishu兩個字段的值放入相應的數(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ù)庫里jishu字段,以選擇排序法對數(shù)據(jù)庫里的新聞進行排序,選出點擊次數(shù)最多的三個新聞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新聞內容</b></p><p&
71、gt; 在主頁index.jsp點擊相應新聞的標題鏈接后,將打開detail.jsp頁面。此頁面實現(xiàn)查看具體的新聞內容。并實現(xiàn)記錄新聞瀏覽次數(shù)的功能。效果如圖4-8所示:</p><p><b> 圖4-8新聞內容</b></p><p> 通過每點擊一次detail.jsp頁面使參數(shù)jishu相應增加1并更新數(shù)據(jù)庫來實現(xiàn):記錄新聞瀏覽次數(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("對不起,沒有相關的新聞!");</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頁面進行處理,index
80、0.jsp的功能實現(xiàn)了瀏覽檢索的新聞。index0.jsp如圖4-9所示:</p><p> 圖4-9 index0.jsp</p><p> 代碼中的printPage()方法是定位作用,讓表格輸出的是當前頁號(參數(shù)為P)的新聞。每頁八條新聞。檢索頁面index0.jsp實現(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> //將訪問游標定位到頁號為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ù)庫中的時間字段</p><p> String Jasj="";//截取數(shù)據(jù)庫中的時間字
87、段,格式:yyyyMMdd</p><p> long Aczx,Jczx,Zczx;</p><p> SimpleDateFormat sjgs=new SimpleDateFormat("yyyyMMdd");//設置系統(tǒng)時間的格式</p><p> String Jxsj=sjgs.format(Calendar.getInstan
88、ce().getTime());//獲取系統(tǒng)時間</p><p> int GETid=0;//獲得數(shù)據(jù)庫的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ù)庫中的字符串類型的時間字段轉換成長整型</p><p> Jczx=Long.pa
91、rseLong(Jxsj);//將系統(tǒng)的字符串類型的時間字段轉換成長整型</p><p> Zczx=Jczx-Aczx;//系統(tǒng)時間減數(shù)據(jù)庫時間,旨在:求出的數(shù)值與7比較,與實現(xiàn)近期新聞有關(近期新聞:發(fā)布時間在一周之內的新聞,后面有NEW圖標)</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">標題</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);//作用:返回數(shù)
105、據(jù)庫里每一列的總和</p><p> int totalrecord=0;//新聞的總條數(shù)</p><p> if(temp.next())</p><p> totalrecord = temp.getInt(1);//獲取數(shù)據(jù)庫里id列的總行數(shù),即新聞的總條數(shù)</p><p> // 如果是當前頁碼的整數(shù)倍</p>
106、<p> if(totalrecord % size ==0) totalPage = totalrecord / size; </p><p> /* 如果最后還空余一頁 </p><p> Math.floor()方法:求一個最接近它的整數(shù),它的值小于或等于這個浮點數(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ù)庫里jishu字段,以選擇排序法對數(shù)據(jù)庫里的新聞進行排序,選出點擊次數(shù)最多的三個新聞id*/<
113、/p><p> rs1=conn.executeQuery(sql3);</p><p> rs2=conn.executeQuery(sql4);</p><p> int newstotalrecord=0;//旨在:新聞的總條數(shù),為了限定數(shù)組的長度</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ù)庫里的jishu字段進行排序,為了確定點擊次數(shù)最多的前三條新聞的id</p>
115、;<p> int pxid[]=new int[newstotalrecord];//旨在;依據(jù)pxjishu[]數(shù)組的排序對數(shù)據(jù)庫中的id字段進行排序,選出點擊次數(shù)最多的前三條新聞的id</p><p> /*將數(shù)據(jù)庫里的id,jishu兩個字段的值放入相應的數(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ù)庫里的id,jishu兩個字段的值放入相應的數(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ù)庫里jishu字段,以選擇排序法對數(shù)據(jù)庫里的新聞進行排序,選出點擊次數(shù)最多的三個新聞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頁面中,每頁顯示八條新聞信息,對新聞進行分頁瀏覽。點擊相應的頁數(shù)或輸入相應的頁數(shù),都能瀏覽相應頁的新聞。有一點需要注意,當輸入的數(shù)值超過最大頁數(shù)時,顯示的為最后的一頁新聞,當輸入
124、的數(shù)值小于1以及為非數(shù)值時,顯示的為第一頁新聞。分頁如圖4-10所示:</p><p><b> 圖4-10演示圖</b></p><p> 代碼中P代表當前頁號,totalPage代表全部頁數(shù)。分頁功能實現(xiàn)代碼如下:</p><p><b> <%</b></p><p> temp
125、 = conn.executeQuery(sql2);//作用:返回數(shù)據(jù)庫里每一列的總和</p><p> int totalrecord=0;//新聞的總條數(shù)</p><p> if(temp.next())</p><p> totalrecord = temp.getInt(1);//獲取數(shù)據(jù)庫里id列的總行數(shù),即新聞的總條數(shù)</p>&l
126、t;p> // 如果是當前頁碼的整數(shù)倍</p><p> if(totalrecord % size ==0) totalPage = totalrecord / size; </p><p> /* 如果最后還空余一頁 </p><p> Math.floor()方法:求一個最接近它的整數(shù),它的值小于或等于這個浮點數(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> &
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> 點擊新聞管理進入管理員登陸頁面,管理員賬號有兩個admin和fy。密碼與賬號一致。如圖4-11所示。</p><p> 圖4-11管理員登陸頁面</p><p> 信息提交給verify.jsp頁面進行處理。若有此賬號且密碼正確,則登陸管理員界面manage.jsp,若賬號或密碼不正確,則登陸不了
137、。</p><p> 判斷是否可登陸實現(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機畢業(yè)論文---關于新聞發(fā)布系統(tǒng)的設計
- 計算機畢業(yè)論文---基于web的個人網(wǎng)站新聞發(fā)布系統(tǒng)
- 計算機黨務管理系統(tǒng)畢業(yè)論文
- 計算機畢業(yè)論文--網(wǎng)吧管理系統(tǒng)
- 計算機畢業(yè)論文--- 超市管理系統(tǒng)
- 計算機畢業(yè)論文--網(wǎng)吧管理系統(tǒng)
- 計算機專業(yè)畢業(yè)論文-考勤管理系統(tǒng)設計
- 計算機信息管理系統(tǒng)畢業(yè)論文(設計)
- 計算機信息管理畢業(yè)論文---計算機圖書管理系統(tǒng)
- 畢業(yè)論文——新聞發(fā)布及管理系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 計算機圖書管理系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 計算機圖書管理系統(tǒng)畢業(yè)論文
- 計算機畢業(yè)論文---bbs論壇管理系統(tǒng)
- 計算機畢業(yè)論文——人事管理系統(tǒng)
- 計算機圖書管理系統(tǒng)畢業(yè)論文
- 計算機圖書管理系統(tǒng)畢業(yè)論文
- 計算機專業(yè)畢業(yè)論文---考勤管理系統(tǒng)
- 計算機畢業(yè)論文---工資管理系統(tǒng)
評論
0/150
提交評論