《新聞發(fā)布系統(tǒng)》論文
《《新聞發(fā)布系統(tǒng)》論文》由會員分享,可在線閱讀,更多相關《《新聞發(fā)布系統(tǒng)》論文(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 新聞發(fā)布系統(tǒng) 學 院 專 業(yè) 班 級 學 號 姓 名 指導教師 教師職稱 年 月 日 – 31 – 摘要 【摘要】 隨著計算機科學的發(fā)展,數(shù)據(jù)庫技術在Internet中的應用越來越廣泛,為廣大網(wǎng)絡用戶提供了更加周到和人性化的服務。個性化已逐漸成為當今Web應用的潮流。利用JSP技術開發(fā)的網(wǎng)站新聞管理系統(tǒng),實現(xiàn)了網(wǎng)站新聞的動態(tài)管理,因為可以用來動態(tài)發(fā)布新聞信息,所以使得對信息的管理更加及時、高效,提高了工作效率。
2、 【關鍵詞】Struts組建編程模型、ActionForm的說明、樣式層、持久層、服務層、控制層。 (下載源碼就到源碼網(wǎng):) 目錄 摘要 1 0 引言 3 1 系統(tǒng)分析 4 1.1 需求分析 4 1.2 可行性分析 4 2 總體設計 4 2.1 項目規(guī)劃 4 2.2 系統(tǒng)功能結構圖 4 3 系統(tǒng)設計 5 3.1 設計目標 5 3.2 開發(fā)及運行環(huán)境 5 3.3 邏輯結構設計 5 4 網(wǎng)站總體架構 6 4.1 文件布局 6 4.2 網(wǎng)站首頁的運行結果 6 4.2 類的分布 8 5 網(wǎng)站后臺主要功能模塊設計 8 5.1 后臺
3、登錄模塊設計 8 5.2 總管理員設置模塊設計 11 5.3 更改總管理員密碼模塊設計 23 5.4 新聞信息管理 27 5.5 總結 32 6 網(wǎng)站前臺主要功能模塊設計 32 6.1 今日新聞的顯示 32 6.2 輸入新聞的關鍵字查找新聞 34 6.3 新聞人物的查看和投票 36 7 小結 39 附錄一 參考文獻 40 附錄二 數(shù)據(jù)表 41 附錄三 文件架構圖 43 0 引言 Internet的蓬勃發(fā)展,使新聞的傳播方式發(fā)生了巨大的變化,傳統(tǒng)的信息傳播媒體電視、廣播、報紙已經不再是人們茶余飯后的主要精神甜點,人們更多的開始關注網(wǎng)絡新聞
4、。由于互聯(lián)網(wǎng)所容納的信息量大、內容豐富、信息及時、準確,更有相關信息的全面的介紹與比較,大大地方便了人們的閱讀,因此在短短幾年的時間里,互聯(lián)網(wǎng)便濟身于眾多媒體之間,并具有相當一部分媒體人群。借此東風,新聞網(wǎng)也迅速發(fā)展起來,它內容豐富,涉及到商業(yè)、工業(yè)、農業(yè)、銀行、財政、教育、娛樂、信息等各個產業(yè),信息量大,不僅有實事新聞,還有相關的行業(yè)信息,同時新聞網(wǎng)具有互聯(lián)網(wǎng)所具備的一切特性。在全球網(wǎng)絡化、信息化的今天,新聞網(wǎng)迅速發(fā)展,大大地豐富了人們的生活,不知不覺中,它已經成為人們生活中不可或缺的重要組成部分。(下載源碼就到源碼網(wǎng):) 1 系統(tǒng)分析 1.1 需求分析 通過相關調查,要求網(wǎng)
5、站具有以下功能; 通過網(wǎng)絡,展示各行業(yè)新聞及相關信息。 提供新聞搜索功能。 設置新聞人物投票功能,并統(tǒng)計投票數(shù)量。 支持其他網(wǎng)站的友情鏈接。 為后臺管理提供管理入口。 1.2 可行性分析 新聞發(fā)布系統(tǒng)后臺對新聞作了詳細的分類,前臺以分類形式顯示新聞的詳細信息,滿足了人們?yōu)g覽新聞網(wǎng)時分類查看新聞信息的要求,同時提供新聞信息查詢功能,方便瀏覽者查找相關的新聞信息。新聞網(wǎng)后臺則通過對總管理員設置和管理員添加等模塊對網(wǎng)站管理員進行管理,保證了網(wǎng)站的安全性。 2 總體設計 2.1 項目規(guī)劃 新聞網(wǎng)是一個功能完善的新聞類網(wǎng)站,由客戶前臺新聞瀏覽和后臺新聞管理兩大部分組成。 前臺
6、功能模塊 前臺主要包括新聞分類、顯示新聞詳細信息、新聞信息查詢、新聞人物投票、友情鏈接、提供后臺登錄口。 后臺管理模塊 后臺主要包括后臺總管理員設置及密碼修改、添加管理員、管理員信息設置、新聞類型管理、新聞詳細類型管理、新聞信息管理、鏈接管理、新聞人物管理、退出后臺。 2.2 系統(tǒng)功能結構圖 新聞發(fā)布系統(tǒng)前臺功能結構,如圖1所示。 新聞網(wǎng)前臺功能結構 新聞分類 新聞詳細信息 新聞信息查詢 新聞人物投票 友情鏈接 后臺登錄口 圖1 新聞網(wǎng)前臺功能結構圖 新聞網(wǎng)后臺功能結構,如圖2所示。 新聞網(wǎng)后臺功能結構 總管理員設置 總管理員修改密碼 添加管理員 管理員
7、信息設置 新聞類型管理 新聞詳細類型管理 新聞信息管理 新聞人物管理 鏈接管理 退出后臺 圖2 新聞網(wǎng)后臺功能結構圖 3 系統(tǒng)設計 3.1 設計目標 本網(wǎng)站是根據(jù)各行業(yè)新聞信息分類進行開發(fā)設計的,主要實現(xiàn)如下目標: 分類展示各行業(yè)新聞。 顯示新聞的詳細信息。 設置新聞搜索功能模塊。 設置新聞人物投票及投票數(shù)統(tǒng)計功能。 提供其他網(wǎng)站的友情鏈接。 3.2 開發(fā)及運行環(huán)境 硬件平臺: CPU:P41.8GHz; 內存:256MB以上。 軟件平臺: 操作系統(tǒng):Windows 2000; 數(shù)據(jù)庫:SQL Server 2000; 開發(fā)工具包:JDK V
8、ersion1.4.1; Web服務器:Tomcat; 瀏覽器:IE5.0,推薦使用IE6.0; 分辨率:最佳效果1024*768像素。 3.3 邏輯結構設計 本系統(tǒng)數(shù)據(jù)庫采用SQL server 2000數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為db_news。數(shù)據(jù)庫db_news中包含7張表。關于數(shù)據(jù)庫中的數(shù)據(jù)表請參見附錄B 4 網(wǎng)站總體架構 4.1 網(wǎng)站首頁的運行結果 網(wǎng)站前臺首頁的運行結果如圖5所示。 3 1 2 圖5 網(wǎng)站前臺首頁運行結果 網(wǎng)站框架圖說明如下: 表`1 網(wǎng)站前臺首頁頁面說明 區(qū)域
9、 名稱 說明 對應文件 1 網(wǎng)站導航 主要展示網(wǎng)站的旗幟廣告和站內導航條 typeNewWatch.do 2 功能模塊 主要用于顯示導航模塊中的功能 linkSelect.do 3 內容顯示 主要用于顯示功能模塊中的內容 dateNews.do?type=今日新聞 網(wǎng)站后臺首頁的運行結果如圖6所示。 3 1 2 圖6 網(wǎng)站后臺首頁運行結果 網(wǎng)站后臺首頁中的各部分說明如表2所示。 表2 網(wǎng)站后臺首頁頁面說明 區(qū)域 名稱 說明 對應文件 1 網(wǎng)站導航 主要展示網(wǎng)站的旗幟廣告
10、和站內導航條 typeTopAction.do 2 功能模塊 主要用于顯示導航模塊中的功能 left_main.jsp 3 內容顯示 主要用于顯示功能模塊中的內容 right_main.jsp 4.2 類的分布 新聞發(fā)布系統(tǒng)是利用Struts框架實現(xiàn)的,新聞發(fā)布系統(tǒng)中類的分布如圖7所示。 樣式層 前臺控制層 服務層 工具層 后臺控制層 持久層 圖7 類的分布 類存放的文件夾功能如表3所示。 表3 類存放的文件夾功能列表 名稱 功能 持久層(dao文件夾) 各種方法(增加、刪除、修改和
11、查詢)的實現(xiàn) 樣式層(domain文件夾) 所存放的類是Actionform類,在類中必須要繼承ActionForm(也就是entends ActionForm) 服務層(server文件夾) 存放的dao層功能的業(yè)務的類 控制層(webtier文件夾) 存放在jsp頁面中存在的方法實現(xiàn)的類 工具層(tool文件夾) 類名為JDBConnection.java(連接數(shù)據(jù)庫的功能)、類名為Chinese.java(字符級轉換的類)、類名為SessionLib(用來存在session變量) 5 網(wǎng)站后臺主要功能模塊設計 5.1 后臺登錄模塊設計 在新聞發(fā)布系統(tǒng)中,后臺管理
12、員分為兩種:一個是普通管理員,他可以對新聞類型進行定義,也可以發(fā)布新聞、設置投票人數(shù)及網(wǎng)站鏈接;另一個是總管理員,他除了可操作以上功能外,還可以對普通管理員進行設置,總管理員和普通管理員都能通過后臺登錄頁面登錄后臺。(下載源碼就到源碼網(wǎng):) 在前臺單擊“進入后臺”超鏈接,即可進入到后臺登錄頁面,如圖8所示。 圖8 后臺登錄頁面 1. 樣式層的類 具體代碼如下 /******************************* ManagerActionForm.java***************************/ package com.victor.domain;
13、 import org.apache.struts.action.*; public class ManagerActionForm extends ActionForm { private Integer managerID; //在數(shù)據(jù)庫中的流水號 private String managerIssueDate; //管理員添加日期 private String managerMark; //管理員的標示 private String managerName; //管理員帳號 private String managerPa
14、ssword; //管理員密碼 private String managerRealName; //管理員的真實姓名 private String managerType; //管理員的權限 public ManagerActionForm() { this.managerID = new Integer( -1); this.managerIssueDate = ""; this.managerMark = ""; this.managerName = ""; this.managerPasswo
15、rd = ""; this.managerRealName = ""; this.managerType = ""; } public Integer getManagerID() { return managerID; } public void setManagerID(Integer managerID) { this.managerID = managerID; } …………………………………………………. 2.持久層的方法 驗證輸入的內容是否正確有很多方法,筆者采用的是利用sql語句的方法進行驗證輸
16、入賬號和密碼。對輸入的賬號及密碼判斷是否正確。 利用接口類的方法實現(xiàn)的代碼如下: /********************************* ManagerDao.java*******************************/ public interface ManagerDao { public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) } 實現(xiàn)接口的方法的代碼如下: /******************************* ManagerDaoImpl.
17、java*****************************/ //核對普通管理員帳號和密碼 public class ManagerDaoImpl implements ManagerDao { //實現(xiàn)接口類中的方法用implements加上接口類名 public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) { ManagerActionForm manager = null; 定義一個Object型的數(shù)據(jù),初使化為null JDBConn
18、ection connection = new JDBConnection(); //連接數(shù)據(jù)庫的方法 String sql = "select * from tb_manager where Name='" + managerActionForm.getManagerName() + "'"; try { ResultSet rs = connection.executeQuery(sql); // 把sql語句傳到JDBConnection類中去 while (rs.next()) { manager =
19、 new ManagerActionForm(); manager.setManagerPassword(rs.getString(3)); //查找過所需要的字段數(shù)據(jù) } } catch (SQLException ex) { } connection.close(); return manager; //把對象返回到方法中去 } } 3.服務層的方法 利用接口類的方法實現(xiàn)的代碼如下: /******************************** ManagerF
20、acade.java*****************************/ public interface ManagerFacade { public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) } 實現(xiàn)接口的方法的代碼如下: /******************************* ManagerFacadeImpl.java**************************/ public class ManagerFacadeImpl implements Man
21、agerFacade { //實現(xiàn)接口類的方法用implements private ManagerDao managerDao; public ManagerFacadeImpl() { this.managerDao = new ManagerDaoImpl(); //實現(xiàn)dao類的方法。 } public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) { return this.managerDao.managerCheck(mana
22、gerActionForm); //調用持久層的方法 } } 4.管理員登陸控制層的方法 /**************************** ManagerCheckAction.java****************************/ package com.victor.webtier.managerAction; //核對帳號和密碼 public class ManagerCheckAction extends Action { private ManagerFacade managerFacade; public ManagerC
23、heckAction() { this.managerFacade = new ManagerFacadeImpl(); } public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) { Chinese chinese = new Chinese(); ManagerActionFor
24、m managerActionForm = (ManagerActionForm) actionForm; managerActionForm.setManagerName(chinese.str(httpServletRequest. getParameter("managerName"))); ManagerActionForm manager = this.managerFacade.managerCheck(managerActionForm); //通過對象調
25、用方法 if (manager == null) { return actionMapping.findForward("managerWrong");//通過manager是空值的話,返回錯誤頁面。 } else if (!manager.getManagerPassword().equals(httpServletRequest.getParameter( "managerPassWord"))) { return actionMapping.findForward("managerWrong");//查找的值與在jsp頁面中的值不一致,返回
26、錯誤頁面。
}
return actionMapping.findForward("managerRight"); //查找的值與在jsp頁面中的值一致,返回正確頁面。
}}
5.struts-config.xml中的配置
在這里主要配置formBean和action動作指向的jsp頁面。代碼如下:
/******************************** struts-config.xml*********************************/
28、ward name="managerRight" path="/jsp/managerBack/managerCheckSuccess.jsp" />
管理員登陸
5.2 總管理員設置模塊設計 總管理員在數(shù)據(jù)庫中是惟一的,總管理員的信息在頁面中不會顯示出來,在此頁面中
31、只能修改自己的密碼及對普通管理員進行設置。 用戶單擊“總管理員設置”超鏈接,進入總管理員設置頁面。系統(tǒng)首先對用戶輸入的賬戶和密碼進行核對。因為并不是所有的管理員都能夠有這個權利,所以在SQL語句中應體現(xiàn)惟一性的條件,樣式層所要調用的類是ActionForm,跟用戶登錄時調用的actionForm是同一個類,在這里就不做介紹了。 1.總管理員的登錄操作 登錄方法主要用于系統(tǒng)管理員進行系統(tǒng)維護時,作為登錄后臺時密碼驗證之用。在用戶輸入用戶賬號和密碼之后,調用該方法即可驗證該用戶是否合法。單擊“總管理員設置”超鏈接,進入到總管理員設置頁面,實現(xiàn)此超鏈接的jsp代碼如下: /*********
32、************************** left_main.jsp*********************************/ 總管理員設置 總管理員頁面的運行結果如圖9所示。 圖9 總管理員頁面運行結果 總管理員頁面所對應的jsp頁面代碼如下: /********************************* adminPass
33、word.jsp******************************/
在上面的jsp頁面代碼中,act35、ion觸發(fā)的是adminAction.do的方法,它與后臺登錄的方法相似,只是調用的SQL語句不同。 在持久層中查詢總管理員的方法的代碼如下: 接口類的方法: /********************************* ManagerDao.java*********************************/ public ManagerActionForm adminCheck(ManagerActionForm managerActionForm) 實現(xiàn)接口類的方法: /*********************************** ManagerDa
36、oImpl.java***************************/ public ManagerActionForm adminCheck(ManagerActionForm managerActionForm) { ManagerActionForm manager = null; //初始化對象 JDBConnection connection = new JDBConnection(); String sql = "select * from tb_manager whe
37、re Name='" + managerActionForm.getManagerName() + "' and mark='" + managerActionForm.getManagerMark() + "'"; try { ResultSet rs = connection.executeQuery(sql); //執(zhí)行查找的方法 while (rs.next()) { manager = new ManagerActionForm(
38、); manager.setManagerPassword(rs.getString(3)); //取出查詢的密碼 } } catch (SQLException ex) { } connection.close(); //關閉數(shù)據(jù)庫 return manager; } 在服務層中實現(xiàn)持久層的方法如下: 接口類的方法: /******************************* ManagerFa
39、cade.java******************************/ public interface ManagerFacade { public ManagerActionForm adminCheck(ManagerActionForm managerActionForm); } 實現(xiàn)接口類的方法: /******************************* ManagerFacadeIm.java****************************/ public class ManagerFacadeImpl implements Manager
40、Facade { private ManagerDao managerDao; public ManagerFacadeImpl() { this.managerDao = new ManagerDaoImpl(); } public ManagerActionForm adminCheck(ManagerActionForm managerActionForm) { return this.managerDao.adminCheck(managerActionForm); //調用持久層的方法 } } 具體在控制層的代碼如下:
41、 /******************************* ManagerDaoImpl.jsp******************************/ package com.victor.webtier.managerAction; import org.apache.struts.action.*; import javax.servlet.http.*; import com.victor.domain.ManagerActionForm; import com.victor.service.ManagerFacade; import com.vi
42、ctor.service.ManagerFacadeImpl; //核對總管理員帳號和密碼 public class AdminCheckAction extends Action { private ManagerFacade managerFacade; public AdminCheckAction() { this.managerFacade = new ManagerFacadeImpl(); } public ActionForward perform(ActionMapping actionMapping, ActionForm a
43、ctionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ManagerActionForm managerActionForm = (ManagerActionForm) actionForm; managerActionForm.setManagerName(httpServletRequest.getParameter("Name"));//從頁面上取值 managerActionForm.setManagerMark("總管
44、理員"); //取固定的名稱 ManagerActionForm manager = this.managerFacade.adminCheck(managerActionForm); if (manager == null) { //if判斷,做比較 return actionMapping.findForward("adminWrong"); } else if (!manager.getManagerPassword().equals(httpServletRequest.getParameter("
45、adminPassWord"))) { return actionMapping.findForward("adminWrong"); } return actionMapping.findForward("adminRight"); } } 上面的類文件中加載了ManagerActionForm類,這個類是屬于ActionForm類,相當于JavaBean,在這里主要實現(xiàn)進行取值和賦值的功能。 struts-config.xml的配置的代碼如下: /********************************* struts-config.
46、xml********************************/
48、****************************** adminPasswordFail .jsp******************************/ <%@ page contentType="text/html; charset=GBK" %>
49、"#ffffc0">
密碼不正確
2秒種后從新輸入密碼
50、.victor.dao; import java.util.List; import com.victor.domain.ManagerActionForm; public interface ManagerDao { public List managerSelect(ManagerActionForm managerActionForm); //在接口類的查詢方法方法 } 實現(xiàn)接口類的代碼: /******************************* ManagerDaoImpl.java******************************/ //查出所
51、有的管理員 public List managerSelect(ManagerActionForm managerActionForm) { JDBConnection connection = new JDBConnection(); //調用連接數(shù)據(jù)庫的方法 List list = new ArrayList(); //定義一個List容器的對象,去實現(xiàn)ArrayList()中的方法 String sql = "select * from tb_manager where mark='" + ma
52、nagerActionForm.getManagerMark() + "'"; //有條件的查詢語句 try { ResultSet rs = connection.executeQuery(sql); //調用JDBConnection查詢的方法 while (rs.next()) { ManagerActionForm manager = new ManagerActionForm(); manager.setManagerID(Integer.valueOf(rs.getS
53、tring(1))); manager.setManagerName(rs.getString(2)); manager.setManagerPassword(rs.getString(3)); manager.setManagerRealName(rs.getString(4)); manager.setManagerIssueDate(rs.getString(5)); manager.setManagerMark(rs.getString(6)); list.add(
54、manager); //l利用對象list的add()方法把查出來的數(shù)據(jù)放在List容器中 } connection.close(); //關閉數(shù)據(jù)庫 } catch (SQLException ex) { } return list; //返回值要與方法的類型要一致 } 調用類的方法如圖11所示: 圖11 調用的方法 服務層的查詢代碼如下: 接口類的代碼: /*******************
55、************** ManagerFacade.java****************************/ public interface ManagerFacade { public List managerSelect(ManagerActionForm managerActionForm); } 實現(xiàn)接口類的代碼: /******************************** ManagerFacade.java*****************************/ public class ManagerFacadeImpl implem
56、ents ManagerFacade { private ManagerDao managerDao; public ManagerFacadeImpl() { this.managerDao = new ManagerDaoImpl(); } public List managerSelect(ManagerActionForm managerActionForm) { return this.managerDao.managerSelect(managerActionForm); //利用對象managerDao調用持久層的方法 }
57、 } 控制層實現(xiàn)的代碼如下: /*********************************ManagerFacade.java****************************/ package com.victor.webtier.managerAction; import org.apache.struts.action.*; import javax.servlet.http.*; import com.victor.domain.ManagerActionForm; import com.victor.service.ManagerFacade; impo
58、rt com.victor.service.ManagerFacadeImpl; import java.io.UnsupportedEncodingException; //加載所需要的類 //總管理員全部查看信息 public class AdminSelectAction extends Action { private ManagerFacade managerFacade; public AdminSelectAction() { this.managerFacade = new ManagerFacadeImpl()
59、; } public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ManagerActionForm managerActionForm = (ManagerActionForm) actionForm; managerActionForm.setManagerMark(
60、"普通管理員");
httpServletRequest.setAttribute("listAdminSelect",managerFacade.managerSelect(managerActionForm));
return actionMapping.findForward("adminSelectAction");
}
}
struts-config.xml的配置:
/******************************* struts-config.xml*********************************/
61、 name="managerActionForm" type="com.victor.webtier.managerAction.AdminSelectAction" validate="true" scope="request" path="/adminSelectAction">
62、***adminSelect.jsp*******************************/ <%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.util.List"%> <%@ page import="java.sql.*"%> <%@ page import="com.victor.domain.ManagerActionForm"%>
查看全部信息
數(shù)據(jù)庫ID | 帳號 | 真實姓名 | 注冊時間 | 管理員類別 | 操作 |
<%=managerActionForm.getManagerID()%> | <%=managerActionForm.getManagerName()%> | <%=managerActionForm.getManagerRealName()%> | <%=managerActionFo
66、rm.getManagerIssueDate()%> |
<%=managerActionForm.getManagerMark()%> | 修改 刪除 |
通過以上的代碼就能夠實現(xiàn)對所有的管理員的查詢功能??偣芾韱T除了具備查詢功能外,還可以修改及刪除管理員的信息。(下載源碼就到源碼網(wǎng):) 3.修改之前的條件查詢操作
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。