畢業(yè)論文---基于java新聞發(fā)布系統(tǒng)_第1頁
已閱讀1頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)設計(論文)</b></p><p>  題目:基于Java新聞發(fā)布系統(tǒng) </p><p>  摘要:隨著計算機科學的發(fā)展,數(shù)據庫技術在Internet中的應用越來越廣泛,為廣大網絡用戶提供了更加周到和人性化的服務。個性化已逐漸成為當今Web應用的潮流。利用JSP技術開發(fā)的網站新聞管理系統(tǒng),實現(xiàn)了網站新聞的動態(tài)管理,因為可以用來動態(tài)

2、發(fā)布新聞信息,所以使得對信息的管理更加及時、高效,提高了工作效率</p><p>  關鍵詞:Struts組建編程模型、樣式層、持久層、服務層、控制層。</p><p>  Abstract: With the rapid development of computer technology, database technology of the Internet is applied m

3、ore and more widely, for the majority of Internet users with a more thoughtful and human services. Personalized has gradually become the current Web application. The use of JSP technology news site management system, rea

4、lize the dynamic management of the news site, because the dynamic can be used to publish news and information, it makes the management of information more timely, efficien</p><p>  Keywords: The Struts progr

5、amming model, style layer, persistence layer, service,control layer.</p><p><b>  目錄</b></p><p><b>  引言- 1 -</b></p><p>  第一章 系統(tǒng)分析- 2 -</p><p>

6、;  1.1 需求分析- 2 -</p><p>  1.2 可行性分析- 2 -</p><p>  1.3 硬件配置- 3 -</p><p>  第二章 總體設計- 4 -</p><p>  2.1項目規(guī)劃- 4 -</p><p>  2.2界面設計- 4 -</p><p&

7、gt;  2.3系統(tǒng)功能結構圖- 4 -</p><p>  第三章 系統(tǒng)設計- 6 -</p><p>  3.1設計目標- 6 -</p><p>  3.2開發(fā)及運行環(huán)境- 6 -</p><p>  3.3邏輯結構設計- 6 -</p><p>  3.4文件命名規(guī)則- 8 -</p>

8、<p>  第四章 網站總體架構- 10 -</p><p>  4.1網站首頁的運行結果- 10 -</p><p>  4.2類的分布- 11 -</p><p>  4.3新聞類型管理- 12 -</p><p>  4.3.1新聞詳細類型管理- 13 -</p><p>  4.3.2

9、新聞信息管理- 13 -</p><p>  4.3.3連接管理- 15 -</p><p>  第五章 網站前臺主要功能模塊設計- 17 -</p><p>  5.1今日新聞的顯示- 17 -</p><p>  5.1.1持久層的新聞顯示方法- 17 -</p><p>  5.1.2服務層的新聞顯示

10、方法- 18 -</p><p>  5.1.3 控制層的新聞顯示方法- 18 -</p><p>  5.2 輸入新聞的關鍵字查找新聞- 19 -</p><p>  第六章 網站前后主要功能模塊設計- 21 -</p><p>  6.1后臺登錄模塊設計- 21 -</p><p>  6.1.1 樣式

11、層的類- 21 -</p><p>  6.1.2 持久層的類- 22 -</p><p>  6.1.3 服務層的類- 22 -</p><p>  6.1.4 管理員登錄控制層的方法- 23 -</p><p>  6.1.5 管理員登錄jsp頁面說明- 24 -</p><p>  6.2管理員模塊設計

12、- 24 -</p><p>  6.2.1 管理員登錄操作- 24 -</p><p>  6.2.2 管理員查詢操作- 26 -</p><p>  6.2.3 修改條件查詢操作- 27 -</p><p>  6.2.4 管理員更改密碼操作- 28 -</p><p>  6.2.5 普通管理員操作-

13、 29 -</p><p>  6.2.6添加新的管理員- 29 -</p><p>  6.3總結- 30 -</p><p>  結束語- 31 -</p><p>  致 謝- 32 -</p><p>  參考文獻- 33 -</p><p><b>  引言<

14、/b></p><p>  Internet的蓬勃發(fā)展,使新聞的傳播方式發(fā)生了巨大的變化,傳統(tǒng)的信息傳播媒體電視、廣播、報紙已經不再是人們茶余飯后的主要精神甜點,人們更多的開始關注網絡新聞。由于互聯(lián)網所容納的信息量大、內容豐富、信息及時、準確,更有相關信息的全面的介紹與比較,大大地方便了人們的閱讀,因此在短短幾年的時間里,互聯(lián)網便濟身于眾多媒體之間,并具有相當一部分媒體人群。借此東風,新聞網也迅速發(fā)展起來,

15、它內容豐富,涉及到商業(yè)、工業(yè)、農業(yè)、銀行、財政、教育、娛樂、信息等各個產業(yè),信息量大,不僅有實事新聞,還有相關的行業(yè)信息,同時新聞網具有互聯(lián)網所具備的一切特性。在全球網絡化、信息化的今天,新聞網迅速發(fā)展,大大地豐富了人們的生活,不知不覺中,它已經成為人們生活中不可或缺的重要組成部分。</p><p><b>  第一章 系統(tǒng)分析</b></p><p><b&

16、gt;  1.1 需求分析</b></p><p>  通過相關調查,要求網站具有以下功能;</p><p>  通過網絡,展示各行業(yè)新聞及相關信息。</p><p><b>  提供新聞搜索功能。</b></p><p>  設置新聞人物投票功能,并統(tǒng)計投票數(shù)量。</p><p> 

17、 支持其他網站的友情鏈接。</p><p>  為后臺管理提供管理入口。</p><p><b>  1.2 可行性分析</b></p><p><b>  當今時代背景</b></p><p>  因特網在中國的發(fā)展速度已經超乎人們的想象,人們已經從一開始覺得網絡遙不可及到現(xiàn)在轉變?yōu)轭l繁從網絡獲取

18、信息。表明隨著計算機技術的日漸成熟,其強大的功能已經為人們深刻認識,它已經在人類社會個個領域發(fā)揮著越來越重要的作用。</p><p>  因特網也沖擊著傳統(tǒng)的傳媒,已有調查報告指出:60%的人已經習慣從網上獲取新聞等及時的信息,20%的人發(fā)覺自己看電視的時間減少了。相比電視和報紙,人們更愿意花更多的時間在網上沖浪。</p><p><b>  開發(fā)本項目的必要性</b>

19、;</p><p>  結合當今的時代背景,網絡上人們最關心的是事實新聞消息的及時公布和及時的刷新新聞頁面,讓網絡的消息速度總是搶在其他媒介之前。因此,網絡新聞方面存在很多的市場。我們應開發(fā)一套結合時代的新聞開發(fā)系統(tǒng),搶占市場。本系統(tǒng)并不單純的是發(fā)布新聞,它可以應用于各種領域,可變?yōu)橥ㄖ陌l(fā)布,公告的發(fā)布。例如政府的信息透明化工程;校園內部網站的學校公告頁面;甚至可以是結合到任意一個網站中,充當其功能的一部分。還

20、可以提供例如廣告等附帶服務,獲取更大的利益。</p><p>  使用JAVA開發(fā)本項目的可行性</p><p>  JAVA語言的各種特點:簡單的語法、完全面向對象的機制、跨平臺、完善的技術體系等等使它在企業(yè)應用、網絡的應用程序的開發(fā)等領域都占據主導地位。</p><p><b>  1.3 硬件配置</b></p><p

21、>  (1) 硬件設備及操作系統(tǒng)</p><p> ?、俜掌鳎篜entium4以上配置的高性能PC機,內存應在256M以上,硬盤在40G以上。確認該計算機已經安裝數(shù)據庫軟件Jdk1.6及Myeclipse。</p><p> ?、诓僮飨到y(tǒng):Windows 9x/Me、Windows 2000、Windows XP、Windows NT,分辨率:1024*768。</p>

22、<p> ?、劭蛻舳耍篜entium233(或與此相當?shù)腃PU)以上配置的PC機,內存應在32M以上,硬盤在1G以上。Windows 9x以上操作系統(tǒng)。確認已安裝BDE。</p><p>  (2) 開發(fā)平臺前臺開發(fā)工具:Myeclipse</p><p> ?、偾芭_開發(fā)工具:Myeclipse</p><p> ?、诤笈_數(shù)據庫:SQL2005<

23、/p><p><b>  第二章 總體設計</b></p><p><b>  2.1項目規(guī)劃</b></p><p>  新聞網是一個功能完善的新聞類網站,由客戶前臺新聞瀏覽和后臺新聞管理兩大部分組成。</p><p><b>  前臺功能模塊</b></p>&

24、lt;p>  前臺主要包括新聞分類、顯示新聞詳細信息、新聞信息查詢、新聞人物投票、友情鏈接、提供后臺登錄口。</p><p><b>  后臺管理模塊</b></p><p>  后臺主要包括后臺總管理員設置及密碼修改、添加管理員、管理員信息設置、新聞類型管理、新聞詳細類型管理、新聞信息管理、鏈接管理、新聞人物管理、退出后臺。</p><p&

25、gt;<b>  2.2界面設計</b></p><p>  界面總體風格與系統(tǒng)其他界面是一致的,體現(xiàn)出流行的IE游覽器界面形式,突出新聞網站辦公的特點。</p><p>  便于管理員進行操作。程序管理首頁、分頁面如下:</p><p>  管理首頁顯示所有操作對象,包括管理新聞、管理廣告、管理編輯。點擊管理首頁的一級欄目,出現(xiàn)分頁面的二級欄

26、目和三級欄目,點擊三級欄目,出現(xiàn)主操作頁面。</p><p>  2.3系統(tǒng)功能結構圖</p><p>  新聞發(fā)布系統(tǒng)前臺功能結構,如圖1所示。</p><p>  圖1 新聞網前臺功能結構圖</p><p>  新聞網后臺功能結構,如圖2所示</p><p>  圖2 新聞網后臺功能結構圖</p>

27、<p><b>  第三章 系統(tǒng)設計</b></p><p><b>  3.1設計目標</b></p><p>  本網站是根據各行業(yè)新聞信息分類進行開發(fā)設計的,主要實現(xiàn)如下目標:</p><p>  分類展示各行業(yè)新聞。</p><p>  顯示新聞的詳細信息。</p>

28、<p>  設置新聞搜索功能模塊。</p><p>  設置新聞人物投票及投票數(shù)統(tǒng)計功能。</p><p>  提供其他網站的友情鏈接。</p><p>  3.2開發(fā)及運行環(huán)境</p><p><b>  硬件平臺:</b></p><p>  CPU:P41.8GHz;</p

29、><p>  內存:256MB以上。</p><p><b>  軟件平臺:</b></p><p>  操作系統(tǒng):Windows 2000;</p><p>  數(shù)據庫:SQL Server 2000;</p><p>  開發(fā)工具包:JDK Version1.4.1;</p><

30、;p>  Web服務器:Tomcat;</p><p>  瀏覽器:IE5.0,推薦使用IE6.0;</p><p>  分辨率:最佳效果1024*768像素</p><p><b>  3.3邏輯結構設計</b></p><p>  本系統(tǒng)數(shù)據庫采用SQL server 2000數(shù)據庫,系統(tǒng)數(shù)據庫名稱為db_ne

31、ws。數(shù)據庫db_news中包含7張表。關于數(shù)據庫中的數(shù)據表請參見附錄B</p><p> ?。?)tb_Link(鏈接其他網站表)</p><p>  鏈接其他網站表主要用于保存其他網站信息。表tb_Link的結構如表B.1所示。</p><p>  表B.1 表tb_Link的結構</p&g

32、t;<p> ?。?)manager(后臺管理員設置表)</p><p>  后臺管理員設置表主要用于保存后臺管理員信息。表manager的結構如表B.2所示。</p><p>  表B.2 表manager的結構</p><p>  (3)tb_news(新聞管理表)</p>

33、<p>  新聞管理表主要用于保存各類新聞信息內容。表tb_news的結構如表B.3所示。</p><p>  表B.3 表tb_news的結構</p><p> ?。?)tb_newsType(新聞類別表)</p><p>  新聞類別表主要用于保存新聞類別信息。表tb_newsType的結構

34、如表B.4所示。</p><p>  表B.4 tb_newsType的結構</p><p>  (5)tb_Vote(新聞人物投票表)</p><p>  新聞人物投票表主要用于保存新聞人物投票信息。表tb_Vote的結構如表B.5所示。</p><p>  表B.5

35、 表tb_Vote的結構</p><p><b>  3.4文件命名規(guī)則</b></p><p><b>  文件命名規(guī)則:</b></p><p>  文件命名必須指明模塊名,文件用途,如xwfb_mbbj_tjmb.java(新聞發(fā)布-模版編輯-添加模版)。<

36、;/p><p><b>  文件命名規(guī)則:</b></p><p>  以最少的字母達到最容易理解的意義。</p><p>  (1)每一個目錄中應該包含一個缺省的html文件,文件名統(tǒng)一用index.html。</p><p> ?。?)文件名稱統(tǒng)一用小寫的字母、數(shù)字和下劃線的組合。</p><p>

37、;  (3)盡量按單詞的英語翻譯為名稱,結合漢語拼音的聲母組合。</p><p> ?。?)在每個功能模塊的文件夾下都必須有以下文件夾: </p><p>  public 本功能模塊公用的JSP文件</p><p>  script 本功能模塊公用的客戶端函數(shù)文件</p><p&g

38、t;  images 本功能模塊圖片文件</p><p>  style 本功能模塊CSS樣式表文件</p><p>  (5)在根目錄和每個文件夾下都必須有一個說明該目錄下文件和文件夾用途的文本文件:該目錄名稱+下劃線+name,例如在流程管理文件夾下命名為lcgl_name.txt。</p><p><b> ?。?)標簽設計:</b>&l

39、t;/p><p>  標 簽 參 數(shù) 描 述 類 型</p><p>  [NewsId] 無 新聞編號 新聞</p><p>  [NewsTitle,x] x(數(shù)字;表示調用多少個字\0不限制) 新聞標題 新聞</p><p>  [NewsTime] 無 新聞添加時間 新聞</p><p>  [NewsConten

40、t,x] x(數(shù)字;表示調用多少個字\0不限制) 新聞內容 新聞</p><p>  [NewsKeyword] 無 新聞關鍵字 新聞</p><p>  [ProgramId] 無 欄目編號 欄目</p><p>  [ProgramName] 無 欄目名稱 欄目</p><p>  [Adyer,x] x(數(shù)字;廣告編號) 廣告 廣告&l

41、t;/p><p>  [News,x,y,z] x(數(shù)字;欄目號)y(數(shù)字;調用新聞條數(shù))z(字符串;顯示內容) 新聞 </p><p>  第四章 網站總體架構</p><p>  4.1網站首頁的運行結果</p><p>  網站前臺首頁的運行結果如圖5所示</p><p>  圖5 網站前臺首頁運行結果</

42、p><p>  網站框架圖說明如下:</p><p>  表`1 網站前臺首頁頁面說明</p><p>  網站后臺首頁的運行結果如圖6所示。</p><p>  圖6 網站后臺首頁運行結果</p><p>  網站后臺首頁中的各部分說明如表2所示</

43、p><p>  表2 網站后臺首頁頁面說明</p><p><b>  4.2類的分布</b></p><p>  新聞發(fā)布系統(tǒng)是利用Struts框架實現(xiàn)的,新聞發(fā)布系統(tǒng)中類的分布如圖7所示</p><p><b>  圖7 類的分布</b>

44、;</p><p>  類存放的文件夾功能如表3所示</p><p>  表3 類存放的文件夾功能列表</p><p><b>  4.3新聞類型管理</b></p><p>  單擊【新聞類型管理】按鈕,界面右側自動顯示相關的界面,如圖1.14所示。</p

45、><p>  圖1.14 新聞類型管理-查看全部新聞類別</p><p><b> ?。?)添加類別名稱</b></p><p>  單擊【添加類別名稱】按鈕,系統(tǒng)自動彈出如圖1.15所示的界面,單擊“名稱”的文本框,輸入相應的名稱,最后單擊【提交】按鈕即添加成功。</p><p>  圖1.15 添加類別名稱</

46、p><p> ?。?)修改及刪除類別名稱</p><p>  單擊相應類別名稱后面的【修改】按鈕,在系統(tǒng)彈出的界面中單擊“名稱”文本框即可進行修改,最后單擊【提交】按鈕即修改成功。</p><p>  單擊相應類別名稱后面的【刪除】按鈕,系統(tǒng)彈出的提示信息進行確認后即刪除成功。</p><p>  4.3.1新聞詳細類型管理</p>

47、<p>  單擊【新聞詳細類型管理】按鈕,界面右側自動顯示相關的界面,如圖1.16所示。</p><p>  圖1.16 新聞詳細類型管理</p><p>  新聞詳細類別的添加、修改及刪除和新聞類型管理的操作方法相同,這里不作重復講解,請參照1.2.5新聞類型管理。</p><p>  4.3.2新聞信息管理</p><p>

48、  單擊【新聞信息管理】按鈕,界面右側自動顯示相關的界面,如圖1.17所示。</p><p>  圖1.17 新聞信息管理</p><p><b>  添加新聞</b></p><p>  單擊【添加新聞】按鈕,系統(tǒng)彈出如圖1.18所示的界面,單擊任意一種新聞類型,即可進入如圖1.19所示的信息添加界面。</p><p&g

49、t;  圖1.18 新聞類型選擇界面</p><p>  圖1.19 添加新聞</p><p>  單擊“新聞標題”和“新聞內容”文本框,輸入相應的標題及內容,單擊“詳細類別”下拉按鈕,選擇相應的類別,最后單擊【提交】按鈕即添加成功。</p><p> ?。?)查看、修改及刪除新聞</p><p>  單擊相應信息后的【查看新聞具體內容】

50、按鈕,可顯示新聞的具體內容。</p><p>  單擊相應信息后的【修改】按鈕,在彈出的界面中單擊各文本框即可進行修改,最后單擊【提交】按鈕即修改成功。</p><p>  單擊相應信息后的【刪除】按鈕,系統(tǒng)彈出的提示信息進行確認后即刪除成功。</p><p><b>  4.3.3連接管理</b></p><p>  

51、單擊【鏈接管理】按鈕,界面右側自動顯示相關的界面,如圖1.20所示。</p><p>  圖1.20 鏈接管理</p><p><b> ?。?)添加連接信息</b></p><p>  單擊【添加鏈接信息】按鈕,系統(tǒng)自動進入如圖1.21所示的界面。</p><p>  圖1.21 添加鏈接</p>&

52、lt;p>  單擊“鏈接網站名稱”及“鏈接的地址”文本框,輸入鏈接的網站名稱及地址,最后單擊【提交】按鈕即添加成功。</p><p><b>  修改及刪除連接信息</b></p><p>  單擊相應網站名稱后的【修改】按鈕,在系統(tǒng)彈出的界面中單擊各文本框,進行修改之后單擊【提交】按鈕即修改成功。</p><p>  單擊相應網站名稱后

53、的【刪除】按鈕,系統(tǒng)彈出的提示信息進行確認后即刪除成功。</p><p>  第五章 網站前臺主要功能模塊設計</p><p>  5.1今日新聞的顯示</p><p>  這個功能就是當天的新聞的查看,主要用到了sql語句中的select語句,查詢的條件是以時間為主,所用到的actionForm是后臺新聞中的樣式層的代碼。</p><p>

54、;  5.1.1持久層的新聞顯示方法</p><p>  取系統(tǒng)時間的方法很多,可以通過類中的java.util.Date的對象取系統(tǒng)時間,也可以通過sql語句中的getDate()方法取時間。具體的代碼如下:</p><p>  DeleteNewsAction.java****************************/</p><p>  public

55、class NewsDaoImpl implements NewsDao {</p><p><b>  //當天新聞的查找</b></p><p>  public List dateNews() {</p><p>  JDBConnection connection = new JDBConnection();</p>&l

56、t;p>  NewsActionForm newsForm = null;</p><p>  List list = new ArrayList();</p><p>  java.util.Date datetime = new java.util.Date();</p><p>  int year=datetime.getYear()+1900;

57、 </p><p>  int month=datetime.getMonth() +1; </p><p>  String date = "" + year + "-" + month+</p><p>  "-" + datetime.getDate() + &qu

58、ot; "+00+":"+00+":"+00+"";</p><p>  String sql = "select * from tb_news where IssDate between '"+date+"' and getDate()";</p><p>  R

59、esultSet rs = connection.executeQuery(sql); //執(zhí)行查詢的sql語句,返回到結果集中</p><p><b>  try {</b></p><p>  while (rs.next()) {</p><p>  newsForm = new NewsActionForm();&

60、lt;/p><p>  newsForm.setNewID(Integer.valueOf(rs.getString(1)));</p><p>  newsForm.setNewTitle(rs.getString(2));</p><p>  newsForm.setNewContent(rs.getString(3));</p><p> 

61、 newsForm.setNewsType(rs.getString(4));</p><p>  newsForm.setNewsStyle(rs.getString(5));</p><p>  newsForm.setNewIssueDate(rs.getString(6)); //按順序取字段中的數(shù)據</p><p>  list.

62、add(newsForm);</p><p><b>  } }</b></p><p>  catch (NumberFormatException ex) {</p><p><b>  }</b></p><p>  catch (SQLException ex) {</p>

63、<p><b>  }</b></p><p>  return list;</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.1.2服務層的新聞顯示方法</p><p>  public

64、class NewsFacadeImpl implements NewsFacade {</p><p>  private NewsDao newsDao;</p><p>  public NewsFacadeImpl() {</p><p>  this.newsDao = new NewsDaoImpl(); //實現(xiàn)的方法</p&g

65、t;<p><b>  }</b></p><p>  public List dateNews() {</p><p>  return this.newsDao.dateNews(); //調用持久層的方法</p><p><b>  }</b></p><p>

66、;<b>  }</b></p><p>  5.1.3 控制層的新聞顯示方法</p><p>  package com.victor.frontStage.newsAction;</p><p>  import org.apache.struts.action.*;</p><p>  import javax.s

67、ervlet.http.*;</p><p>  import com.victor.service.NewsFacadeImpl;</p><p>  import com.victor.service.NewsFacade;</p><p>  import java.util.List;</p><p>  public class D

68、ateNews extends Action {</p><p>  private NewsFacade newsFacade;</p><p>  public DateNews() {</p><p>  this.newsFacade = new NewsFacadeImpl(); </p><p><b>

69、  }</b></p><p>  public ActionForward perform(ActionMapping actionMapping,ActionForm actionForm,</p><p>  HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) {&l

70、t;/p><p>  List list=this.newsFacade.dateNews(); //調用服務層的方法</p><p>  httpServletRequest.setAttribute("listNew",list); //創(chuàng)建sql值對象</p><p>  return actionMapping.fin

71、dForward("dateNews");</p><p><b>  }</b></p><p><b> ?。?lt;/b></p><p>  5.2 輸入新聞的關鍵字查找新聞</p><p>  關鍵字查找新聞就是在文本框中輸入新聞的相關內容,執(zhí)行SQL語句,查找相關新聞信息,

72、其中的下拉列表框是一個查詢的動作,實現(xiàn)過程與前面的后臺新聞相似,這里就不做介紹了。新聞查找運行結果如圖20所示</p><p>  圖20 關鍵字查詢</p><p>  關鍵字查找新聞控制層代碼實現(xiàn)如下:</p><p>  package com.victor.frontStage.newsAction;</p><p>  impor

73、t org.apache.struts.action.*;</p><p>  import javax.servlet.http.*;</p><p>  import com.victor.domain.NewsActionForm;</p><p>  import com.victor.service.NewsFacade;</p><p

74、>  import com.victor.service.NewsFacadeImpl;</p><p>  import com.victor.tool.Chinese;</p><p>  import java.util.List;</p><p>  //以新聞類型和新聞題目的模糊查詢進行的前臺操作</p><p>  publ

75、ic class KeyNewsWatch extends Action {</p><p>  private NewsFacade newsFacade;</p><p>  public KeyNewsWatch() {</p><p>  this.newsFacade = new NewsFacadeImpl();</p><p>

76、<b>  }</b></p><p>  public ActionForward perform(ActionMapping actionMapping,ActionForm actionForm,</p><p>  HttpServletRequest httpServletRequest,HttpServletResponse httpServletResp

77、onse) {</p><p>  Chinese chinese = new Chinese();</p><p>  NewsActionForm newsActionForm = (NewsActionForm) actionForm;</p><p>  String key = chinese.str(httpServletRequest.getParam

78、eter("key")); //取得新聞的關鍵字</p><p>  newsActionForm.setNewsType(chinese.str(httpServletRequest.getParameter(</p><p>  "type")));

79、//取得新聞的類型</p><p>  List list = this.newsFacade.keyNewsWatch(key, newsActionForm);</p><p>  httpServletRequest.setAttribute("listContent", list);</p><p>  return actionMapp

80、ing.findForward("keyNewsWatch");</p><p><b>  }</b></p><p><b>  }</b></p><p>  第六章 網站前后主要功能模塊設計</p><p>  6.1后臺登錄模塊設計</p><p&

81、gt;  在新聞發(fā)布系統(tǒng)中,后臺管理員分為兩種:一個是普通管理員,他可以對新聞類型進行定義,也可以發(fā)布新聞、設置投票人數(shù)及網站鏈接;另一個是總管理員,他除了可操作以上功能外,還可以對普通管理員進行設置,總管理員和普通管理員都能通過后臺登錄頁面登錄后臺。</p><p>  在前臺單擊“進入后臺”超鏈接,即可進入到后臺登錄頁面,如圖8所示</p><p><b>  圖8 后臺登錄

82、頁面</b></p><p>  6.1.1 樣式層的類</p><p><b>  代碼如下:</b></p><p>  package com.victor.domain;</p><p>  import org.apache.struts.action.*;</p><p>

83、  public class ManagerActionForm extends ActionForm {</p><p>  private Integer managerID; //在數(shù)據庫中的流水號</p><p>  private String managerIssueDate; //管理員添加日期</p><p>  private Str

84、ing managerMark; //管理員的標示</p><p>  private String managerName; //管理員帳號</p><p>  private String managerPassword; //管理員密碼</p><p>  private String managerRealName; //管理員的真

85、實姓名</p><p>  private String managerType; //管理員的權限 </p><p>  public ManagerActionForm() {</p><p>  this.managerID = new Integer( -1);</p><p>  this.managerIssueDa

86、te = "";</p><p>  this.managerMark = "";</p><p>  this.managerName = "";</p><p>  this.managerPassword = "";</p><p>  this.manag

87、erRealName = "";</p><p>  this.managerType = "";</p><p><b>  }</b></p><p>  public Integer getManagerID() { </p><p>  return managerID;&

88、lt;/p><p><b>  }</b></p><p>  public void setManagerID(Integer managerID) {</p><p>  this.managerID = managerID;</p><p><b>  }</b></p><p

89、>  6.1.2 持久層的類</p><p>  驗證輸入的內容是否正確有很多方法,筆者采用的是利用sql語句的方法進行驗證輸入賬號和密碼,對輸入的賬號及密碼判斷是否正確。</p><p><b>  代碼如下:</b></p><p>  public class ManagerDaoImpl implements ManagerDao

90、 { //實現(xiàn)接口類中的方法用implements加上接口類名</p><p>  public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) { </p><p>  ManagerActionForm manager = null; 定義一個Object型的數(shù)據,

91、初使化為null</p><p>  JDBConnection connection = new JDBConnection(); //連接數(shù)據庫的方法</p><p>  String sql = "select * from tb_manager where Name='" + managerActionForm.getManagerName() + &

92、quot;'"; </p><p><b>  try {</b></p><p>  ResultSet rs = connection.executeQuery(sql); // 把sql語句傳到JDBConnection類中去</p><p>  while (rs.next()) {</p>

93、<p>  manager = new ManagerActionForm(); </p><p>  manager.setManagerPassword(rs.getString(3)); //查找過所需要的字段數(shù)據</p><p><b>  }</b></p><p><b>  }</

94、b></p><p>  catch (SQLException ex) {</p><p><b>  }</b></p><p>  connection.close();</p><p>  return manager; //把對象返回到方法中去</p><p><b>

95、;  }</b></p><p><b>  }</b></p><p>  6.1.3 服務層的類</p><p><b>  代碼如下:</b></p><p>  ManagerFacadeImpl.java**************************/</p>

96、<p>  public class ManagerFacadeImpl implements ManagerFacade { //實現(xiàn)接口類的方法用implements</p><p>  private ManagerDao managerDao;</p><p>  public ManagerFacadeImpl() {</p><p&

97、gt;  this.managerDao = new ManagerDaoImpl(); //實現(xiàn)dao類的方法。</p><p><b>  }</b></p><p>  public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) {</p>&

98、lt;p>  return this.managerDao.managerCheck(managerActionForm); //調用持久層的方法</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.1.4 管理員登錄控制層的方法</p>&l

99、t;p><b>  代碼如下:</b></p><p>  package com.victor.webtier.managerAction;</p><p><b>  //核對帳號和密碼</b></p><p>  public class ManagerCheckAction extends Action {&

100、lt;/p><p>  private ManagerFacade managerFacade;</p><p>  public ManagerCheckAction() {</p><p>  this.managerFacade = new ManagerFacadeImpl();</p><p><b>  }</b>

101、;</p><p>  public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm,</p><p>  HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) {</p>&

102、lt;p>  Chinese chinese = new Chinese();</p><p>  ManagerActionForm managerActionForm = (ManagerActionForm) actionForm;</p><p>  managerActionForm.setManagerName(chinese.str(httpServletRequest

103、.</p><p>  getParameter("managerName")));</p><p>  ManagerActionForm manager = this.managerFacade.managerCheck(managerActionForm);</p><p>  //通過對象調用方法</p><p>

104、  if (manager == null) {</p><p>  return actionMapping.findForward("managerWrong");//通過manager是空值的話,返回錯誤頁面。</p><p><b>  }</b></p><p>  else if (!manager.getMan

105、agerPassword().equals(httpServletRequest.getParameter( "managerPassWord")))</p><p><b>  {</b></p><p>  return actionMapping.findForward("managerWrong");//查找的值與在js

106、p頁面中的值不一致,返回錯誤頁面。</p><p><b>  }</b></p><p>  return actionMapping.findForward("managerRight"); //查找的值與在jsp頁面中的值一致,返回正確頁面。</p><p><b>  }</b></p&

107、gt;<p><b>  }</b></p><p>  6.1.5 管理員登錄jsp頁面說明</p><p>  <p>管理員登陸</p></p><p>  <p>&nbsp;</p></p><p>  <form name="f

108、orm" method="post" action="../../managerCheckAction.do" ></p><p>  <table width="287" height="77" border="2" cellpadding="3" cellspacing

109、="3"></p><p><b>  <tr></b></p><p>  <td width="90" height="32"><span >帳號:</span></td></p><p>  <td widt

110、h="168"><input type="text" name="managerName"></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p&g

111、t;  <td height="32"><span >密碼:</span></td></p><p>  <td><input type="password" name="managerPassWord"></td></p><p><b&g

112、t;  </tr></b></p><p><b>  </table></b></p><p>  <input type="submit" name="Submit2" value="提交"></p><p>  &nbsp;

113、&nbsp;&nbsp;&nbsp;</p><p>  <input type="reset" name="Submit" value="重置"></p><p><b>  </form></b></p><p>  6.2管理員模塊

114、設計</p><p>  管理員在數(shù)據庫中是惟一的,總管理員的信息在頁面中不會顯示出來,在此頁面中只能修改自己的密碼及對普通管理員進行設置。</p><p>  用戶單擊“總管理員設置”超鏈接,進入總管理員設置頁面。系統(tǒng)首先對用戶輸入的賬戶和密碼進行核對。因為并不是所有的管理員都能夠有這個權利,所以在SQL語句中應體現(xiàn)惟一性的條件,樣式層所要調用的類是ActionForm,跟用戶登錄時調用

115、的actionForm是同一個類。</p><p>  6.2.1 管理員登錄操作</p><p>  登錄方法主要用于系統(tǒng)管理員進行系統(tǒng)維護時,作為登錄后臺時密碼驗證之用。在用戶輸入用戶賬號和密碼之后,調用該方法即可驗證該用戶是否合法。擊“總管理員設置”超鏈接,進入到總管理員設置頁面方法如下:</p><p>  單擊【總管理員設置】按鈕,界面右側自動顯示相關的界

116、面,如圖1.7所示。</p><p>  圖1.7 總管理員設置</p><p>  單擊“請輸入賬戶”和“請輸入密碼”的文本框,輸入賬戶及密碼,最后單擊【提交】按鈕,界面右側自動顯示管理員的全部信息。如下圖1.8所示。</p><p>  圖1.8 查看全部信息</p><p>  單擊相應管理員后面的【修改】按鈕,在系統(tǒng)彈出的更改管理

117、員性質的界面中即可進行修改,最后單擊【修改】按鈕即完成修改操作。</p><p>  單擊相應管理員后面的【刪除】按鈕,系統(tǒng)彈出的提示框進行確認后即刪除該管理員信息。</p><p>  總管理員頁面所對應的jsp頁面代碼如下:</p><p>  /********************************* adminPassword.jsp*******

118、***********************/</p><p>  <form name="form" method="post" action="../../../adminAction.do" "></p><p>  <table width="382" border=&qu

119、ot;2" cellspacing="3" cellpadding="3"></p><p><b>  <tr></b></p><p>  <td width="110">請輸入帳戶:</td></p><p>  <td

120、width="243"><input type="text" name="Name"></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p> 

121、 <td width="110">請輸入密碼:</td></p><p>  <td width="243"><input type="password" name="adminPassWord"></td></p><p><b>  &l

122、t;/tr></b></p><p><b>  </table></b></p><p>  <input type="submit" name="Submit" value="提交"></p><p>  &nbsp;&nb

123、sp;&nbsp;</p><p>  <input type="reset" name="Submit2" value="重置"></p><p><b>  </form></b></p><p>  在上面的jsp頁面代碼中,action觸發(fā)的是a

124、dminAction.do的方法,它與后臺登錄的方法相似,只是調用的SQL語句不同。</p><p>  6.2.2 管理員查詢操作</p><p>  總管理員登錄成功后,系統(tǒng)將對除了總管理員以外的所有普通管理員和其他的一些信息進行查詢操作。此時頁面運行結果如圖10所示。</p><p>  圖10 總管理員查詢其他管理員功能</p><p&

125、gt;  圖 11總管理員查詢查看新聞人物</p><p>  總管理員對其他管理員查詢的代碼如下:</p><p><b>  實現(xiàn)接口類的代碼:</b></p><p>  /******************************* ManagerDaoImpl.java******************************/&

126、lt;/p><p>  //查出所有的管理員</p><p>  public List managerSelect(ManagerActionForm managerActionForm) {</p><p>  JDBConnection connection = new JDBConnection(); //調用連接數(shù)據庫的方法</p><

127、p>  List list = new ArrayList(); //定義一個List容器的對象,去實現(xiàn)ArrayList()中的方法</p><p>  String sql = "select * from tb_manager where mark='" +</p><p>  managerActionForm.

溫馨提示

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

評論

0/150

提交評論