新聞網(wǎng)、新聞網(wǎng)信息管理系統(tǒng)方案_第1頁(yè)
新聞網(wǎng)、新聞網(wǎng)信息管理系統(tǒng)方案_第2頁(yè)
新聞網(wǎng)、新聞網(wǎng)信息管理系統(tǒng)方案_第3頁(yè)
新聞網(wǎng)、新聞網(wǎng)信息管理系統(tǒng)方案_第4頁(yè)
新聞網(wǎng)、新聞網(wǎng)信息管理系統(tǒng)方案_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、WORDPAGE- 37 - / NUMPAGES39WORD大學(xué)華軟軟件學(xué)院2012年第六學(xué)期企業(yè)級(jí)JAVA課程設(shè)計(jì)題 目:新聞網(wǎng)、新聞網(wǎng)信息管理系統(tǒng)專 業(yè):網(wǎng)絡(luò)應(yīng)用軟件開發(fā)班 級(jí):IB01組 長(zhǎng):鄧?yán)戆步M員:方泓清遞交日期:2012年6月4日目錄TOC o 1-2 h z uHYPERLINK l _Toc327188549新聞網(wǎng)信息管理系統(tǒng)(后臺(tái)) PAGEREF _Toc327188549 h - 1 -HYPERLINK l _Toc327188550一、系統(tǒng)執(zhí)行原理 PAGEREF _Toc327188550 h - 2 -HYPERLINK l _Toc327188551二、系統(tǒng)

2、功能需求 PAGEREF _Toc327188551 h - 2 -HYPERLINK l _Toc3271885521、系統(tǒng)功能描述 PAGEREF _Toc327188552 h - 2 -HYPERLINK l _Toc327188553三、數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc327188553 h - 4 -HYPERLINK l _Toc3271885541、數(shù)據(jù)庫(kù)使用MY SQL。2、相關(guān)各數(shù)據(jù)庫(kù)表: PAGEREF _Toc327188554 h - 4 -HYPERLINK l _Toc3271885561、公共模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc327188556 h -

3、 5 -HYPERLINK l _Toc3271885572.系統(tǒng)各功能模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc327188557 h - 13 -HYPERLINK l _Toc327188558新聞聯(lián)播新聞網(wǎng)(前臺(tái)) PAGEREF _Toc327188558 h - 29 -HYPERLINK l _Toc327188559一、系統(tǒng)執(zhí)行原理 PAGEREF _Toc327188559 h - 29 -HYPERLINK l _Toc327188560二、系統(tǒng)功能需求 PAGEREF _Toc327188560 h - 30 -HYPERLINK l _Toc327188561三、數(shù)據(jù)庫(kù)設(shè)

4、計(jì) PAGEREF _Toc327188561 h - 31 -HYPERLINK l _Toc3271885621、數(shù)據(jù)庫(kù)使用MY SQL。 2、相關(guān)各數(shù)據(jù)庫(kù)表: PAGEREF _Toc327188562 h - 31 -HYPERLINK l _Toc327188563四、系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc327188563 h - 33 -HYPERLINK l _Toc3271885641、公共模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc327188564 h - 33 -HYPERLINK l _Toc327188565系統(tǒng)各功能模塊設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc32718856

5、5 h - 38 -HYPERLINK l _Toc327188566五、附錄 PAGEREF _Toc327188566 h - 60 -新聞網(wǎng)信息管理系統(tǒng)(后臺(tái))上課班級(jí):IB01 學(xué)號(hào):0940111147 :方泓清 學(xué)號(hào):0940111145 :鄧?yán)戆惨弧⑾到y(tǒng)執(zhí)行原理1.客戶機(jī)將 請(qǐng)求發(fā)送給Web服務(wù)器2.Web服務(wù)器將該請(qǐng)求轉(zhuǎn)發(fā)給struts.xml3.在struts.xml中的action的type實(shí)現(xiàn)spring的請(qǐng)求代理4.在spring的配置文件中對(duì)action類進(jìn)行注入5.action類中注入sevice,service中注入dao,當(dāng)服務(wù)器啟動(dòng)時(shí),spring對(duì)類自動(dòng)設(shè)置

6、。6.執(zhí)行順序從action servicedao,然后返回。7.action將響應(yīng)發(fā)送給Web服務(wù)器8.Web服務(wù)器將響應(yīng)轉(zhuǎn)發(fā)給客戶機(jī)二、系統(tǒng)功能需求系統(tǒng)功能描述 角色:管理員 功能描述:(1)身份驗(yàn)證功能:管理員只有成功登錄后才可進(jìn)入系統(tǒng)管理新聞以與相關(guān)信息。其流程圖如圖1-1-1所示: 圖1-1-1(2)管理員:可增加、修改、刪除、查詢新聞信息;可修改密碼、增加管理員。 其流程圖如圖1-1-2所示: 圖1-1-2三、數(shù)據(jù)庫(kù)設(shè)計(jì)1、數(shù)據(jù)庫(kù)使用MY SQL。 2、相關(guān)各數(shù)據(jù)庫(kù)表:管理員表admin(如圖1-2-1) 圖1-2-1新聞信息表news(如圖2-2) 圖1-2-2四、系統(tǒng)實(shí)現(xiàn)1、公

7、共模塊設(shè)計(jì)與實(shí)現(xiàn)applicationContext.xml(位于NewsManage/WebRoot/WEB-INF目錄下)用于管理數(shù)據(jù)庫(kù)連接、Hibernate的sessionFactory、事務(wù)管理以與struts2的action。/sise/s2sh/po/Admin.hbm.xml/sise/s2sh/po/News.hbm.xmlorg.hibernate.dialect.MySQLDialecttrueupdate20PROPAGATION_REQUIRED,readOnlyPROPAGATION_REQUIREDadminServicenewsServicetransactio

8、nInterceptorstruts.xml(位于NewsManage/src目錄下)用于管理應(yīng)用中的action映射,以與action包含的result定義等。主要配置struts項(xiàng)目的一些全局屬性,用戶和響應(yīng)action之間的對(duì)應(yīng)關(guān)系,以與配置action中可能用到的參數(shù)、處理結(jié)果返回頁(yè)面,還有攔截器的配置等。/sessionNull.jsp/login.jsplogin/index.jsp/login.jsp/newsSystem/newsManage/news_add.jspnewNewsfindNews.action/newsSystem/newsManage/news_add.js

9、p/newsSystem/newsManage/news_add.jsp/newsSystem/newsManage/news_m.jsp/newsSystem/newsManage/news_m.jsp/newsSystem/newsManage/news_m.jsp/newsSystem/newsManage/news_m.jsp/newsSystem/newsManage/news_m.jsp/newsSystem/newsManage/news_edit.jsp/newsSystem/newsManage/news_see.jsp/newsSystem/newsManage/news_

10、edit.jspupdateNewsfindNews.action/newsSystem/newsManage/news_edit.jspfindNews.actionfindNews/newsSystem/adminManage/pwd_change.jspchangepwd/newsSystem/adminManage/pwd_changesuccess.jsp/newsSystem/adminManage/pwd_change.jsp/newsSystem/adminManage/admin_add.jspcreateadmin/newsSystem/adminManage/admin_

11、addsuccess.jsp/newsSystem/adminManage/admin_add.jsp/login.jspweb.xml(位于NewsManage/WebRoot/WEB-INF目錄下)web容器的配置文件。用于指定應(yīng)用程序的開始頁(yè)面、注冊(cè)和指定任何應(yīng)用程序的過濾器filter、監(jiān)聽器listener、指定應(yīng)用上下文初始參數(shù)的名/值、為servlet注冊(cè)和創(chuàng)建URL等。/login.jsporg.springframework.web.context.ContextLoaderListenerstruts2org.apache.struts2.dispatcher.Filter

12、Dispatcherstruts2/*safecode.sise.s2sh.util.SafeCodesafecode/safecode2.系統(tǒng)各功能模塊設(shè)計(jì)與實(shí)現(xiàn)登錄功能管理員訪問登錄頁(yè)面(login.jsp)進(jìn)入登錄界面并輸入用戶名、密碼和驗(yàn)證碼,由系統(tǒng)進(jìn)行 判斷(首先判斷驗(yàn)證碼是否正確,若正確則進(jìn)一步判斷用戶名和密碼,否則提示相應(yīng)信息),如果為合法用戶則進(jìn)入系統(tǒng)界面,否則提示相應(yīng)信息。登錄同時(shí)將保存當(dāng)前管理員信息到session對(duì)象中,如果管理員直接訪問系統(tǒng)主頁(yè)面(index.jsp)將獲取不到用戶名,此時(shí)會(huì)跳轉(zhuǎn)回登錄頁(yè)面并提示相應(yīng)信息。運(yùn)行界面如圖1-3-1: 圖1-3-1關(guān)鍵代碼如下

13、:Overridepublic String execute() throws Exception Session session = ServletActionContext.getRequest().getSession();if (session.getAttribute(rand) = null) returnERROR;/ 獲得圖形校驗(yàn)碼String sf = (String) session.getAttribute(rand);/ 如果圖形校驗(yàn)碼正確,判斷、密碼是否正確if (sf.equals(safecode) Admin admin = adminService.findA

14、dmin(name, password);if (admin = null) addActionError(getText(loginerror);returnERROR; else / 將admin信息存入sessionsession.setAttribute(admin, admin);session.setAttribute(name, admin.getName();session.setAttribute(previousLogintime, admin.getLogintime();/ 獲得當(dāng)前系統(tǒng)時(shí)間并格式化,存入管理員登錄時(shí)間Date date = Calendar.getIn

15、stance().getTime();SimpleDateFormat formatter = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String dateString = formatter.format(date);admin.setLogintime(dateString);/ 更新管理員登錄時(shí)間信息adminService.updatelogintime(admin);returnSUCCESS; else addActionError(getText(codeerror);returnERROR;其中,各表單域均有對(duì)應(yīng)的表單驗(yàn)證,后臺(tái)使用

16、struts2表單驗(yàn)證框架。驗(yàn)證返回信息統(tǒng)一由項(xiàng)目src目錄下的Mperties保存。系統(tǒng)主頁(yè)面管理員通過登錄進(jìn)入系統(tǒng),運(yùn)行界面如圖1-3-2: 圖1-3-2系統(tǒng)界面分上、下、左、右四個(gè)部分。右上方顯示登錄折系統(tǒng)管理員用戶名以與上次登錄時(shí)間,在安全方面有一定作用。右上角為退出按鈕,可安全退出系統(tǒng)。左方為選擇列表欄,可選擇相應(yīng)模塊進(jìn)行管理。右方為歡迎界面,顯示一些基本信息。關(guān)鍵代碼如下:(實(shí)現(xiàn)管理員用戶名以與上次登錄時(shí)間代碼請(qǐng)看上方登錄功能代碼) 顯示管理員、管理員上次登錄時(shí)間關(guān)鍵代碼:(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/WebRoot/admin_top.jsp)歡迎!您上次登錄時(shí)間:

17、安全退出系統(tǒng)關(guān)鍵代碼:(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.admin/Logout.java)public String execute() throws Exception Session session = ServletActionContext.getRequest().getSession();session.invalidate();returnSUCCESS;管理員管理模塊(修改密碼)選擇管理員管理修改密碼,運(yùn)行界面如圖1-3-3: 圖1-3-3關(guān)鍵代碼如下:實(shí)現(xiàn)功能關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.si

18、se.s2sh.action.admin/ChangePwd.java和NewsManage/src/.sise.s2sh.dao.impl /AdminDaoImpl.java)public String execute() throws Exception Session session = ServletActionContext.getRequest().getSession();/從session獲得當(dāng)前登錄管理員信息Admin admin = (Admin)session.getAttribute(admin);/判斷舊密碼是否正確if (admin.getPassword().e

19、quals(password) admin.setPassword(newpwd1);/更新管理員密碼信息adminService.changepwd(admin);returnSUCCESS;elseaddActionError(getText(oldpswerror);returnPWDERROR;publicvoid changepwd(Admin admin) hibernateTemplate.update(password, admin);此模塊同樣擁有由struts2表單驗(yàn)證框架實(shí)現(xiàn)的表單驗(yàn)證,只有在舊密碼輸入正確,兩次輸入的新密碼一樣時(shí)修改密碼操作才能成功。管理員管理模塊(創(chuàng)建

20、新管理員)選擇管理員管理新管理員,運(yùn)行界面如圖1-3-4: 圖1-3-4關(guān)鍵代碼如下:實(shí)現(xiàn)功能關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.admin/Createadmin.java和NewsManage/src/.sise.s2sh.dao.impl /AdminDaoImpl.java)public String execute() throws Exception /通過用戶名查找管理員信息Admin a = adminService.findAdminByName(name);/如果不為空,說明已經(jīng)存在if (a != null) ad

21、dActionError(getText(adminexist);returnCREATEADMINERROR; else Date date = Calendar.getInstance().getTime();SimpleDateFormat formatter = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String dateString = formatter.format(date);Admin admin = new Admin();admin.setName(name);admin.setPassword(newpwd1);admin.

22、setLogintime(dateString);adminService.addAdmin(admin);returnSUCCESS;SuppressWarnings(unchecked)public Admin findAdminByName(String name) String sql = from Admin as admin where =?;List list = hibernateTemplate.find(sql, name);if (list != null & list.size() 0)return list.get(0);elsereturnnull;publicvo

23、id addAdmin(Admin admin) hibernateTemplate.save(admin);此模塊同樣擁有由struts2表單驗(yàn)證框架實(shí)現(xiàn)的表單驗(yàn)證,只有在各表單域輸入容符合要求時(shí)新建管理員操作才能成功。如果管理員已經(jīng)存在,則操作無(wú)效。通過查找指定管理員用戶名,如果不為空說明新建的管理員暫未存在,此時(shí)操作可進(jìn)行。新聞常規(guī)管理模塊(新增新聞)選擇新聞常規(guī)管理新增新聞,運(yùn)行界面如圖1-3-5: 圖1-3-5關(guān)鍵代碼如下:實(shí)現(xiàn)功能關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/NewNews.java和NewsManage/s

24、rc/.sise.s2sh.dao.impl /NewsDaoImpl.java)privatestaticfinal String ADDNEWSERROR = addnewsError;SuppressWarnings(unchecked)public String execute() throws Exception Session session = ServletActionContext.getRequest().getSession();/ 獲得當(dāng)前系統(tǒng)時(shí)間并格式化,存入創(chuàng)建新聞時(shí)間Date date = Calendar.getInstance().getTime();News

25、 news = new News();news.setTitle(title);news.setSource(source);news.setContent(content);news.setType(type);news.setAdminName(Admin) session.getAttribute(admin).getName();news.setIssue_time(date);List list = newsService.findNewsByTitle(news);if (list != null) addActionError(getText(newsexist);returnA

26、DDNEWSERROR; else newsService.addNews(news);returnSUCCESS;SuppressWarnings(unchecked)public List findNewsByTitle(News news) String title = news.getTitle();String hql = from News as news where news.title like % + title+ %;List list = hibernateTemplate.find(hql);if (list.size() 0 & list != null) retur

27、n list; elsereturnnull;publicvoid addNews(News news) hibernateTemplate.save(news);此模塊同樣擁有由struts2表單驗(yàn)證框架實(shí)現(xiàn)的表單驗(yàn)證,只有在各表單域輸入容符合要求時(shí)新建管理員操作才能成功。如果新聞已經(jīng)存在,則新增失敗并返回newsexist提示信息。此功能實(shí)現(xiàn)方法:存入數(shù)據(jù)庫(kù)前查找數(shù)據(jù)庫(kù)中新聞標(biāo)題為輸入標(biāo)題的新聞并返回結(jié)果賦給list,再進(jìn)行判斷。若list不為空則新聞存在,反之則將新聞數(shù)據(jù)插入數(shù)據(jù)庫(kù)。新聞常規(guī)管理模塊(新聞管理)此模塊包含以下功能:1、按時(shí)間圍查詢新聞;2、按新聞?lì)愋筒樵冃侣劊?按時(shí)間圍和

28、新聞?lì)愋筒樵冃侣劊?、修改指定新聞;5、刪除指定新聞;6、查看新聞詳細(xì)信息;7翻頁(yè)功能;8添加新聞。選擇新聞常規(guī)管理新聞管理,運(yùn)行界面如圖1-3-6: 圖1-3-6關(guān)鍵代碼如下:顯示所有新聞功能實(shí)現(xiàn)的關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/findNews.java和NewsManage/src/.sise.s2sh.dao.impl /NewsDaoImpl.java)public String execute() throws Exception List list = new ArrayList();/查出所有新聞信息并賦給

29、listpaging = new Paging();int count = newsService.pageCount(paging, null);previousPage = false;/記錄數(shù)少于等于10時(shí)if (count = 10) nextPage = false; else nextPage = true;list = newsService.findNews(count);list2 = new ArrayList();for (int i = 0; i list.size(); i+) NewsInfo nInfo = new NewsInfo();/ 根據(jù)新聞信息中的typ

30、e值,顯示新聞?lì)愋蚷f (list.get(i).getType() = 1) nInfo.setType(國(guó)新聞); elseif (list.get(i).getType() = 2) nInfo.setType(國(guó)際新聞); elseif (list.get(i).getType() = 3) nInfo.setType(軍事新聞); elseif (list.get(i).getType() = 4) nInfo.setType(財(cái)經(jīng)新聞); elseif (list.get(i).getType() = 5) nInfo.setType(體育新聞); elseif (list.get

31、(i).getType() = 6) nInfo.setType(汽車新聞); elseif (list.get(i).getType() = 7) nInfo.setType(房產(chǎn)新聞); elseif (list.get(i).getType() = 8) nInfo.setType(娛樂新聞); elseif (list.get(i).getType() = 9) nInfo.setType(時(shí)尚新聞); elseif (list.get(i).getType() = 10) nInfo.setType(游戲新聞); else nInfo.setType(其它新聞);nInfo.setN

32、ewsId(list.get(i).getNewsId();nInfo.setTitle(list.get(i).getTitle();nInfo.setSource(list.get(i).getSource();nInfo.setContent(list.get(i).getContent();nInfo.setAdminName(list.get(i).getAdminName();nInfo.setIssue_time(list.get(i).getIssue_time();/ 將查找出的新聞信息封裝到list2list2.add(nInfo);setList2(list2);retu

33、rnSUCCESS;public List findNews(Integer count) if (count = 10) count = 10;List news = hibernateTemplate.find(from News).subList(0, count);return news;選擇時(shí)間圍以與新聞?lì)愋筒樵冎付▏侣勑畔ⅲú樵冮_始至2012-06-03且類別為國(guó)新聞的新聞信息),運(yùn)行界面如圖1-3-7: 圖1-3-7關(guān)鍵代碼如下:顯示指定圍新聞功能實(shí)現(xiàn)的關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/findRangeNe

34、ws.java)public String execute() throws Exception / Session session = ServletActionContext.getRequest().getSession();List list = new ArrayList();NewsRoot newsRoot = new NewsRoot();paging = new Paging();Date date = endDate;if (endDate != null) long temp_1 = date.getTime();long temp_2 = (1 * 24 * 3600

35、* 1000 - 1);date = new Date(temp_1 + temp_2);newsRoot.setBeginDate(beginDate);newsRoot.setEndDate(date);newsRoot.setType(type);/session.setAttribute(newsRange, newsRoot);int count = newsService.pageCount(paging, newsRoot);previousPage = false;if (count = 10) /記錄數(shù)小于等于10時(shí)nextPage = false; else nextPag

36、e = true;/ 查出所有新聞信息并賦給listlist = newsService.findNewsByDateAndType(newsRoot, count);list2 = new ArrayList();if (list = null) returnSUCCESS; else for (int i = 0; i list.size(); i+) NewsInfo nInfo = new NewsInfo();/ 根據(jù)新聞信息中的type值,顯示新聞?lì)愋蚷f (list.get(i).getType() = 1) nInfo.setType(國(guó)新聞); elseif (list.ge

37、t(i).getType() = 2) nInfo.setType(國(guó)際新聞); elseif (list.get(i).getType() = 3) nInfo.setType(軍事新聞); elseif (list.get(i).getType() = 4) nInfo.setType(財(cái)經(jīng)新聞); elseif (list.get(i).getType() = 5) nInfo.setType(體育新聞); elseif (list.get(i).getType() = 6) nInfo.setType(汽車新聞); elseif (list.get(i).getType() = 7)

38、nInfo.setType(房產(chǎn)新聞); elseif (list.get(i).getType() = 8) nInfo.setType(娛樂新聞); elseif (list.get(i).getType() = 9) nInfo.setType(時(shí)尚新聞); elseif (list.get(i).getType() = 10) nInfo.setType(游戲新聞); else nInfo.setType(其它新聞);nInfo.setNewsId(list.get(i).getNewsId();nInfo.setTitle(list.get(i).getTitle();nInfo.s

39、etSource(list.get(i).getSource();nInfo.setContent(list.get(i).getContent();nInfo.setAdminName(list.get(i).getAdminName();nInfo.setIssue_time(list.get(i).getIssue_time();/ 將查找出的新聞信息封裝到list2list2.add(nInfo);setList2(list2);returnSUCCESS;點(diǎn)擊任何新聞的修改,對(duì)新聞進(jìn)行修改。運(yùn)行界面如圖1-3-8: 圖1-3-8關(guān)鍵代碼如下:修改指定新聞功能實(shí)現(xiàn)的關(guān)鍵代碼(詳細(xì)代碼請(qǐng)

40、查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/UpdateNews.java)public String execute() throws Exception Session session = ServletActionContext.getRequest().getSession();/ 從session中獲取新聞信息News news = (News) session.getAttribute(news);/ 如果頁(yè)面請(qǐng)求中的新聞信息與數(shù)據(jù)庫(kù)中的信息一樣,則不做操作if (news.getTitle().equals(title) & news.ge

41、tSource().equals(source)& news.getContent().equals(content)& news.getType().equals(type) System.out.println(新聞未更改,不更新.);returnSUCCESS; else / 否則,將頁(yè)面請(qǐng)求息更新到數(shù)據(jù)庫(kù)news.setTitle(title);news.setSource(source);news.setContent(content);news.setType(type);newsService.updateNews(news);System.out.println(新聞?dòng)懈模?/p>

42、更新.);returnSUCCESS;此模塊同樣擁有由struts2表單驗(yàn)證框架實(shí)現(xiàn)的表單驗(yàn)證。提交之后進(jìn)行表單域的驗(yàn)證,之后再寫入數(shù)據(jù)庫(kù)。按返回按鈕可返回上一步。點(diǎn)擊任何新聞的刪除,可刪除新聞。運(yùn)行界面如圖1-3-9:圖1-3-9關(guān)鍵代碼如下:刪除指定新聞功能實(shí)現(xiàn)的關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/DeleteOneNews.java)privatestaticfinal String DELETENEWSERROR = deletenewsError;Overridepublic String execute()thro

43、ws Exception News news = new News();news.setNewsId(newsId);News news2 = newsService.findNewsById(newsId);if (news2 != null) newsService.deleteOneNews(news2);returnSUCCESS;addActionError(getText(deletenewsFail);returnDELETENEWSERROR;點(diǎn)擊新聞的標(biāo)題或操作欄目下的新聞詳細(xì),可查看新聞詳細(xì)信息。運(yùn)行界面如圖1-3-10: 圖1-3-10此功能的返回按鈕可實(shí)現(xiàn)返回跳轉(zhuǎn)到此頁(yè)

44、面前的新聞信息頁(yè)面。關(guān)鍵代碼如下:查看指定新聞詳細(xì)信息功能實(shí)現(xiàn)的關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/findOneNews.java)public String execute() throws Exception News news2 = newsService.findNewsById(newsId); Session session = ServletActionContext.getRequest().getSession();session.setAttribute(news, news2);returnSUCCES

45、S;點(diǎn)擊新聞管理頁(yè)面中的的首頁(yè)、上一頁(yè)、下一頁(yè)、尾頁(yè)、第頁(yè)可實(shí)現(xiàn)翻頁(yè)。運(yùn)行界面如圖1-3-11: 圖1-3-11此功能實(shí)現(xiàn)翻頁(yè):如果當(dāng)前頁(yè)為第1頁(yè),則不顯示首頁(yè)與上一頁(yè)的超;如果當(dāng)前頁(yè)為最后一頁(yè),則不顯示尾頁(yè)和下一頁(yè)的超;只有不為首頁(yè)和尾頁(yè)的時(shí)候才會(huì)顯示所有翻頁(yè)超。同時(shí),實(shí)現(xiàn)頁(yè)數(shù)、當(dāng)前頁(yè)的結(jié)果。關(guān)鍵代碼如下:翻頁(yè)功能實(shí)現(xiàn)的關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NewsManage/src/.sise.s2sh.action.news/FirstNewsPage.java、PreviousOrNextNewsPage.java、LastNewsPage.java)以下以PreviousOrNextNews

46、Page.java為例:public String execute() throws Exception List list = new ArrayList();paging = new Paging();SuppressWarnings(unused)int count = newsService.pageCount(paging, null);paging.setCurrentPage(currentPage);list = newsService.previousOrNextPage(paging, null);if (currentPage = paging.getTotalPage(

47、) previousPage = true;nextPage = false; else previousPage = true;nextPage = true;list2 = new ArrayList();if (list = null) returnSUCCESS; else for (int i = 0; i list.size(); i+) NewsInfo nInfo = new NewsInfo();/ 根據(jù)新聞信息中的type值,顯示新聞?lì)愋蚷f (list.get(i).getType() = 1) nInfo.setType(國(guó)新聞); elseif (list.get(i

48、).getType() = 2) nInfo.setType(國(guó)際新聞); elseif (list.get(i).getType() = 3) nInfo.setType(軍事新聞); elseif (list.get(i).getType() = 4) nInfo.setType(財(cái)經(jīng)新聞); elseif (list.get(i).getType() = 5) nInfo.setType(體育新聞); elseif (list.get(i).getType() = 6) nInfo.setType(汽車新聞); elseif (list.get(i).getType() = 7) nIn

49、fo.setType(房產(chǎn)新聞); elseif (list.get(i).getType() = 8) nInfo.setType(娛樂新聞); elseif (list.get(i).getType() = 9) nInfo.setType(時(shí)尚新聞); elseif (list.get(i).getType() = 10) nInfo.setType(游戲新聞); else nInfo.setType(其它新聞);nInfo.setNewsId(list.get(i).getNewsId();nInfo.setTitle(list.get(i).getTitle();nInfo.setS

50、ource(list.get(i).getSource();nInfo.setContent(list.get(i).getContent();nInfo.setAdminName(list.get(i).getAdminName();nInfo.setIssue_time(list.get(i).getIssue_time();/ 將查找出的新聞信息封裝到list2list2.add(nInfo);setList2(list2);returnSUCCESS;int count = Integer.parseInt(hibernateTemplate.find(select count(*)

51、from News).get(0).toString();paging.setTotalPage(count);return count;SuppressWarnings(unchecked)public List PreviousOrNextPage(Paging paging, NewsRoot newsRoot) String hql;List list;int current = paging.getCurrentPage();int total = paging.getTotalPage();intcount = paging.getAllRow();if (current 0 &

52、list != null) return list; else returnnull;此功能通過查詢數(shù)據(jù)庫(kù)所有新聞?dòng)涗洈?shù)并返回進(jìn)行計(jì)算,再進(jìn)行判斷來(lái)確定是否為首頁(yè)、尾頁(yè)并正確顯示結(jié)果。新聞聯(lián)播新聞網(wǎng)(前臺(tái)) 上課班級(jí):IB01 學(xué)號(hào):0940111145:鄧?yán)戆?學(xué)號(hào):0940111147:方泓清一、系統(tǒng)執(zhí)行原理 1.客戶機(jī)將 請(qǐng)求發(fā)送給Web服務(wù)器 2.Web服務(wù)器將該請(qǐng)求轉(zhuǎn)發(fā)給struts.xml 3.在struts.xml中的action的type實(shí)現(xiàn)spring的請(qǐng)求代理4.在spring的配置文件中對(duì)action類進(jìn)行注入5.action類中注入sevice,service中注入da

53、o,當(dāng)服務(wù)器啟動(dòng)時(shí),spring對(duì)類自動(dòng)設(shè)置。6.執(zhí)行順序從action servicedao,然后返回。 7.action將響應(yīng)發(fā)送給Web服務(wù)器8.Web服務(wù)器將響應(yīng)轉(zhuǎn)發(fā)給客戶機(jī)二、系統(tǒng)功能需求1、系統(tǒng)功能描述 角色:游客、會(huì)員 功能描述: (1)游客權(quán)限和功能:游客可瀏覽所有信息,包括新聞、新聞評(píng)論等。也可注冊(cè)成為會(huì)員。 會(huì)員注冊(cè)流程如圖2-1-1所示:圖2-1-1 (2)會(huì)員權(quán)限和功能:會(huì)員擁有游客所具有的權(quán)限,也可對(duì)新聞進(jìn)行評(píng)論,發(fā)送和刪除留言。 同時(shí)可管理個(gè)人信息。會(huì)員登錄流程如圖2-1-2所示:圖2-1-2三、數(shù)據(jù)庫(kù)設(shè)計(jì)1、數(shù)據(jù)庫(kù)使用MY SQL。 2、相關(guān)各數(shù)據(jù)庫(kù)表:用戶表us

54、er(如圖2-2-1) 圖2-2-1評(píng)論表comment(如圖2-2-2) 圖2-2-2留言表message(如圖2-2-3) 圖2-2-3新聞?lì)愋驼f明表(如圖2-2-4) 圖2-2-4四、系統(tǒng)實(shí)現(xiàn)1、公共模塊設(shè)計(jì)與實(shí)現(xiàn)applicationContext.xml(位于NEWS/src目錄下)用于管理數(shù)據(jù)庫(kù)連接、Hibernate的sessionFactory、以與struts2的action。/sise/news/s2sh/po/User.hbm.xml/sise/news/s2sh/po/Message.hbm.xml/sise/news/s2sh/po/Comment.hbm.xml/s

55、ise/news/s2sh/po/News.hbm.xml/sise/news/s2sh/po/Introduction.hbm.xmlorg.hibernate.dialect.MySQLDialectupdatetruetruestruts.xml(位于NEWS/src目錄下)用于管理應(yīng)用中的action映射,以與action包含的result定義等。主要配置struts項(xiàng)目的一些全局屬性,用戶和響應(yīng)action之間的對(duì)應(yīng)關(guān)系,以與配置action中可能用到的參數(shù)、處理結(jié)果返回頁(yè)面,還有攔截器的配置等。/login.jsp$nextURL$lastURL/Reg/Reg.jsp/Reg/R

56、egSuccess.jsp/UserCenter/ModifyPassword.jsp/UserCenter/ModifyPassword_Success.jsp/UserCenter/PasswordSafe.jsp/UserCenter/BasicInformation.jsp/UserCenter/FindPassword.jsp/NEWS/ANewsComment.jspmessage_redcomment$commentErrorURL/NEWS/ANewsComment.jsp/NEWS/Messages.jspmessage_jumpMessageAddcomment/index

57、.jsp/NEWS/ADetailedNews.jsp/NEWS/NewsCatalog.jsp/NEWS/NewsCatalog.jsp/NEWS/SearchNewsCatalog.jsp/authImgweb.xml(位于NEWS/WebRoot/WEB-INF目錄下)web容器的配置文件。用于指定應(yīng)用程序的開始頁(yè)面、注冊(cè)和指定任何應(yīng)用程序的過濾器filter、監(jiān)聽器listener、指定應(yīng)用上下文初始參數(shù)的名/值、為servlet注冊(cè)和創(chuàng)建URL等。NEWS.jspauthImg.sise.news.s2sh.dao.impl.AuthImgauthImg/authImgstruts2

58、org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*contextConfigLocationclasspath:applicationContext.xmlorg.springframework.web.context.ContextLoaderListener系統(tǒng)各功能模塊設(shè)計(jì)與實(shí)現(xiàn)瀏覽功能用戶(游客/會(huì)員)訪問新聞網(wǎng)主頁(yè)(:8080/NEWS/),進(jìn)入新聞聯(lián)播。 最上方是常規(guī)信息,包括時(shí)間、天氣、搜索欄等。導(dǎo)航有各類型新聞,可直接轉(zhuǎn)到相應(yīng)頁(yè)面。導(dǎo)航下為登錄、注冊(cè)、留言以與其它超鏈。主體

59、為各類型新聞的模 塊,用于區(qū)分各類型新聞。 接。運(yùn)行界面如圖2-3-1: 圖2-3-1關(guān)鍵代碼如下: 讀取所有新聞功能關(guān)鍵代碼(詳細(xì)代碼請(qǐng)查看項(xiàng)目NEWS/src/.sise.news/s2sh.action /NewsAction.java)/* * 讀取新聞所有評(píng)論 * * param newss類(傳title、issue_time、news_id) * method getAllNewsTitle:獲取所有新聞的題目 * method getSumTitleByType:通過類型Type獲取同類型新聞?lì)}目的總和(0:返回1條;1:返回8條;2:返回10條;3:返回20條) */publ

60、ic String getAllNews() Session session = ServletActionContext.getRequest().getSession();newss0=new ArrayList();/焦點(diǎn)新聞for(int i=1;i=8)break;/大于等于8條數(shù)據(jù),停止讀取session.setAttribute(newss0, newss0);newss1=newsService.getAllNewsTitle(1,newsService.getSumTitleByType(1,2);/國(guó)newss2=newsService.getAllNewsTitle(2,

溫馨提示

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