版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p><b> 第一章 緒論2</b></p><p> 1.1 開(kāi)發(fā)背景2</p><p> 1.2 開(kāi)發(fā)工具的選用及介紹2</p><p
2、> 1.2.1 Hibernate2</p><p> 1.2.2 Dreamweaver簡(jiǎn)介3</p><p> 1.2.3 Microsoft SQL Server 2000簡(jiǎn)介3</p><p> 1.2.4 Struts標(biāo)簽庫(kù)4</p><p> 第二章 系統(tǒng)分析5</p><p>
3、 2.1 系統(tǒng)目標(biāo)5</p><p> 2.2 功能需求5</p><p> 2.2.1 功能劃分5</p><p> 2.2.2 系統(tǒng)功能結(jié)構(gòu)圖6</p><p> 2.3 性能需求7</p><p> 2.3.1 數(shù)據(jù)精確度7</p><p> 2.3.2 時(shí)間特性
4、7</p><p> 2.3.3 適應(yīng)性7</p><p> 2.4 軟件屬性需求7</p><p> 2.4.1 正確性7</p><p> 2.4.2 可靠性7</p><p> 2.4.3 效率7</p><p> 2.4.5 完整性7</p><
5、;p> 2.4.6 易使用性7</p><p> 2.4.7 可維護(hù)性8</p><p> 2.4.8 可測(cè)試性8</p><p> 2.4.9 復(fù)用性8</p><p> 2.4.10 安全保密性8</p><p> 2.5 外部接口需求8</p><p> 2
6、.5.1 用戶界面8</p><p> 2.5.2 硬件接口9</p><p> 2.5.3 軟件接口9</p><p> 2.5.4 通信接口9</p><p> 2.5.5 故障處理9</p><p> 第三章 系統(tǒng)設(shè)計(jì)10</p><p> 3.1 前臺(tái)系統(tǒng)架構(gòu)1
7、0</p><p> 3.2 數(shù)據(jù)庫(kù)表設(shè)計(jì)10</p><p> 3.3 公共模塊設(shè)計(jì)11</p><p> 3.3.1 編寫(xiě)獲取系統(tǒng)時(shí)間操作類11</p><p> 3.3.2 編寫(xiě)字符串自動(dòng)處理類12</p><p> 3.3.3 編寫(xiě)文件刪除類12</p><p>
8、3.3.4 編寫(xiě)Hibernate數(shù)據(jù)庫(kù)配置文件13</p><p> 3.3.5 編寫(xiě)數(shù)據(jù)持久化類14</p><p> 3.4 新聞查詢功能模塊15</p><p> 3.4.1 新聞查詢功能模塊總體架構(gòu)15</p><p> 3.4.2 新聞功能模塊的ActionForm類與配置文件15</p><
9、p> 3.4.3 首頁(yè)面新聞查詢實(shí)現(xiàn)過(guò)程18</p><p> 3.4.4 新聞關(guān)鍵字查詢實(shí)現(xiàn)過(guò)程18</p><p> 3.4.5 新聞詳細(xì)查詢實(shí)現(xiàn)過(guò)程19</p><p> 3.5 后臺(tái)系統(tǒng)架構(gòu)19</p><p> 3.5.1 后臺(tái)首頁(yè)面架構(gòu)19</p><p> 3.6 管理員模塊管
10、理20</p><p> 3.6.1 管理員模塊總體架構(gòu)20</p><p> 3.6.2 管理員登錄的實(shí)現(xiàn)過(guò)程21</p><p> 3.7 新聞管理模塊22</p><p> 3.7.1 新聞管理模塊總體架構(gòu)22</p><p> 3.7.2新聞?lì)悇e的實(shí)現(xiàn)類22</p><
11、p> 3.7.3 新聞?lì)悇e查詢的實(shí)現(xiàn)過(guò)程23</p><p> 3.7.4 新聞?lì)悇e添加的實(shí)現(xiàn)過(guò)程24</p><p> 3.7.5 新聞查詢的實(shí)現(xiàn)過(guò)程26</p><p> 3.7.6 新聞添加的實(shí)現(xiàn)過(guò)程27</p><p><b> 第四章 總結(jié)29</b></p><p
12、><b> 致 謝29</b></p><p><b> 參考文獻(xiàn)29</b></p><p><b> 摘 要</b></p><p> 隨著Internet技術(shù)的發(fā)展,人們的日常生活已經(jīng)離不開(kāi)網(wǎng)絡(luò)。未來(lái)社會(huì)人們的生活和工作將越來(lái)越依賴于數(shù)字技術(shù)的發(fā)展,越來(lái)越數(shù)字化、網(wǎng)絡(luò)化、
13、電子化、互聯(lián)網(wǎng)在中國(guó)逐步普及,人們對(duì)網(wǎng)絡(luò)的需求也日益增長(zhǎng),利用計(jì)算機(jī)實(shí)現(xiàn)信息的操作勢(shì)在必行。當(dāng)前系統(tǒng)從初步調(diào)查開(kāi)始,詳細(xì)介紹了需求分析、流程和數(shù)據(jù)分析,并進(jìn)行了系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì). 系統(tǒng)采用MyEclipse進(jìn)行項(xiàng)目開(kāi)發(fā),SQL SERVER 2000建立數(shù)據(jù)庫(kù),Dreamweaver編寫(xiě)ajax和javascript腳本程序及css樣式,從界面簡(jiǎn)潔實(shí)用的角度出發(fā),完成對(duì)新聞信息及用戶信息的增、刪、改、查等功能,盡量使之成為一
14、個(gè)實(shí)用性強(qiáng)的新聞管理系統(tǒng)。</p><p> 關(guān)鍵字: Dreamweaver,SQL Server 2000,新聞管理,網(wǎng)絡(luò)化 </p><p><b> 第一章 緒論</b></p><p> 當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,計(jì)算機(jī)被廣泛應(yīng)用于B/S系統(tǒng)環(huán)境。計(jì)算機(jī)的好處在于它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行
15、信息控制,提高了工作效率.</p><p> 對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。當(dāng)前系統(tǒng)就是為了管理好新聞信息而設(shè)計(jì)的。 </p><p><b> 1.1 開(kāi)發(fā)背景</b></p><p> Internet的蓬勃發(fā)展,使新聞的傳播方式發(fā)生了巨大的變化,傳統(tǒng)
16、的信息傳播媒體電視、廣播、報(bào)紙已經(jīng)不再是人們茶余飯后的主要精神甜點(diǎn),人們更多的開(kāi)始關(guān)注網(wǎng)絡(luò)新聞。由于互聯(lián)網(wǎng)所容納的信息量大、內(nèi)容豐富、信息及時(shí)、準(zhǔn)確,更有相關(guān)信息的全面的介紹與比較,大大地方便了人們的閱讀,因此在短短幾年的時(shí)間里,互聯(lián)網(wǎng)便濟(jì)身于眾多媒體之間,并具有相當(dāng)一部分媒體人群。借此東風(fēng),新聞管理系統(tǒng)也迅速發(fā)展起來(lái),它內(nèi)容豐富,涉及到商業(yè)、工業(yè)、農(nóng)業(yè)、銀行、財(cái)政、教育、娛樂(lè)、信息等各個(gè)產(chǎn)業(yè),信息量大,不僅有實(shí)事新聞,還有相關(guān)的行業(yè)信
17、息,同時(shí)新聞管理系統(tǒng)具有互聯(lián)網(wǎng)所具備的一切特性。在全球網(wǎng)絡(luò)化、信息化的今天,新聞管理系統(tǒng)迅速發(fā)展,大大地豐富了人們的生活,不知不覺(jué)中,它已經(jīng)成為人們生活中不可或缺的重要組成部分。</p><p> 基于此,建立一個(gè)完備的新聞管理系統(tǒng),使人們對(duì)新聞信息的分類管理、查閱變得更加方便快捷勢(shì)在必行。</p><p> 1.2 開(kāi)發(fā)工具的選用及介紹</p><p> 1
18、.2.1 Hibernate</p><p> Hibernate框架是操作數(shù)據(jù)庫(kù)的持久化框架,它的值對(duì)象本質(zhì)上是持久化對(duì)象的前身,也就是說(shuō),在Hibernate框架中,值對(duì)象就能夠表示一條數(shù)據(jù)表中的記錄。Hibernate之所以是優(yōu)秀的框架,就是在于它所用持久化類的對(duì)象其本身是一個(gè)簡(jiǎn)單Java類的值對(duì)象。這樣的有點(diǎn)是在純粹Java類的情況下,持久化累的對(duì)象直接就可以在業(yè)務(wù)邏輯層和服務(wù)器端表示層被使用,不涉及高
19、耦合的問(wèn)題,因此在業(yè)務(wù)邏輯層中只要對(duì)值對(duì)象進(jìn)行操作,然后返回這個(gè)對(duì)象即可。</p><p> 1.2.2 Dreamweaver簡(jiǎn)介</p><p> Dreamweaver是Macromedia公司最新推出的主頁(yè)編輯工具。這是一個(gè)所見(jiàn)即所得主頁(yè)編輯器,并帶有站點(diǎn)管理功能,讓你方便地設(shè)計(jì)和管理多個(gè)站點(diǎn)。而它最棒的地方就是支持最新的DHTML和CSS標(biāo)準(zhǔn), 你可以用它設(shè)計(jì)出生動(dòng)的DHTM
20、L動(dòng)畫(huà)、多層次的頁(yè)面(layer)以及CSS樣式表。 </p><p> 1.2.3 Microsoft SQL Server 2000簡(jiǎn)介</p><p> SQL是英文(Structured Query Language)的縮寫(xiě),意思為結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通。SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句可以用來(lái)執(zhí)
21、行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL語(yǔ)言標(biāo)準(zhǔn)。</p><p> SQL語(yǔ)言有以下幾個(gè)優(yōu)點(diǎn):</p><p> 1. 非過(guò)程化語(yǔ)言 SQL是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。S
22、QL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集,所有SQL 語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。</p><p> SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法, 這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索
23、引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。</p><p><b> 2. 統(tǒng)一的語(yǔ)言</b></p><p> SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL 命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握。</p>&
24、lt;p> 3. 所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言</p><p> 由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫(xiě)的程序都是可以移植的。</p><p> 1.2.4 Struts標(biāo)簽庫(kù)</p><p> Struts框架提供了相當(dāng)強(qiáng)大的標(biāo)簽庫(kù),根據(jù)這些標(biāo)簽庫(kù)的內(nèi)容
25、,程序員在編寫(xiě)網(wǎng)頁(yè)中的代碼時(shí),可以大大的減少代碼的編寫(xiě)量,從而使網(wǎng)頁(yè)中的代碼更加簡(jiǎn)潔。Struts提供了5種標(biāo)簽庫(kù)文件,它們分別為HTML標(biāo)簽、Bean標(biāo)簽、Logic標(biāo)簽、Nested標(biāo)簽和Title標(biāo)簽。</p><p><b> 第二章 系統(tǒng)分析</b></p><p><b> 2.1 系統(tǒng)目標(biāo)</b></p><
26、p> 新聞發(fā)布系統(tǒng)網(wǎng)站實(shí)現(xiàn)的功能目標(biāo)為:</p><p> 1.展示各類別信息;</p><p> 2.提供信息搜索功能;</p><p> 3.設(shè)置信息公告查詢;</p><p> 4.設(shè)置焦點(diǎn)導(dǎo)讀查詢;</p><p> 5.為后臺(tái)管理提供管理入口;</p><p> 6
27、.通過(guò)網(wǎng)站的后臺(tái),可以對(duì)新聞的各個(gè)類別實(shí)現(xiàn)不同的操作。必要性分析:</p><p> 新聞發(fā)布系統(tǒng)后臺(tái)能夠?qū)W(wǎng)站的新聞作詳細(xì)的分類,前臺(tái)以分類形式顯示新聞的詳細(xì)信息,滿足了用戶瀏覽新聞時(shí)分類查看新聞信息的需求,同時(shí)提供新聞信息查詢功能,方便用戶快速查找相關(guān)的新聞信息,系統(tǒng)后臺(tái)通過(guò)“管理員設(shè)置”和“管理員添加”等模塊對(duì)網(wǎng)站管理員進(jìn)行管理,保證的網(wǎng)站的安全性。</p><p>&
28、lt;b> 2.2 功能需求</b></p><p> 2.2.1 功能劃分</p><p><b> 1.前臺(tái)功能模塊</b></p><p> 前臺(tái)功能模塊主要包括新聞分類、新聞詳細(xì)信息、新聞信息查詢、新聞搜索、信息公告查詢、信息導(dǎo)讀查詢及后臺(tái)登入口。</p><p><b>
29、2.后臺(tái)模塊管理</b></p><p> 后臺(tái)管理主要包括后臺(tái)總管理員設(shè)置及密碼修改、添加管理員、管理員信息設(shè)置、新聞?lì)愋凸芾?、信息公告管理、焦點(diǎn)導(dǎo)讀管理及后臺(tái)退出等。</p><p> 2.2.2 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 圖 2-1 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 圖 2-2 后臺(tái)功能結(jié)構(gòu)圖</p&g
30、t;<p><b> 2.3 性能需求</b></p><p> 2.3.1 數(shù)據(jù)精確度</p><p> 查詢時(shí)應(yīng)保證查全率,所有相應(yīng)域包含查詢關(guān)鍵字的記錄都應(yīng)能查到。查詢時(shí)應(yīng)保證查準(zhǔn)率,查到的記錄應(yīng)與給定的單項(xiàng)或組合查詢條件完全匹配。</p><p> 2.3.2 時(shí)間特性</p><p>
31、一般操作的響應(yīng)時(shí)間應(yīng)在1~2秒內(nèi),對(duì)軟磁盤(pán)和打印機(jī)的操作。</p><p><b> 2.3.3 適應(yīng)性</b></p><p> 滿足所有用戶使用的需求。對(duì)前面提到的運(yùn)行環(huán)境要求不應(yīng)存在困難。</p><p> 2.4 軟件屬性需求</p><p><b> 2.4.1 正確性</b>&l
32、t;/p><p> 要求發(fā)布的軟件達(dá)到用戶的預(yù)期目標(biāo),運(yùn)行時(shí)基本無(wú)錯(cuò)誤。</p><p><b> 2.4.2 可靠性</b></p><p> 在一般條件下,應(yīng)不出故障。</p><p><b> 2.4.3 效率</b></p><p> 對(duì)于查詢、增加、刪除、更新
33、和密碼設(shè)置等一般操作,要求及時(shí)響應(yīng),在1~2秒內(nèi)。</p><p><b> 2.4.5 完整性</b></p><p> 要求能在發(fā)生意外的情況下,保證不丟失數(shù)據(jù)。</p><p> 2.4.6 易使用性</p><p> 要求盡量為用戶的使用提供方便,軟件的界面符合目前流行的界面規(guī)范。</p>
34、<p> 2.4.7 可維護(hù)性</p><p> 要求本軟件在運(yùn)行中發(fā)現(xiàn)錯(cuò)誤時(shí),能快速、準(zhǔn)確對(duì)其進(jìn)行定位,診斷和修改。</p><p> 2.4.8 可測(cè)試性</p><p> 設(shè)計(jì)時(shí)盡可能減少測(cè)試本軟件的各項(xiàng)功能所需的工作量。</p><p><b> 2.4.9 復(fù)用性</b></p>
35、<p> 設(shè)計(jì)時(shí)應(yīng)采取模塊化方法進(jìn)行設(shè)計(jì),對(duì)系統(tǒng)內(nèi)各模塊接口盡可能達(dá)到高內(nèi)聚、低耦合的程度,以提高各模塊的復(fù)用性。</p><p> 2.4.10 安全保密性</p><p> 要求提供身份驗(yàn)證的用戶使用本軟件。</p><p> 2.5 外部接口需求</p><p> 2.5.1 用戶界面</p>&l
36、t;p> 采用Windows 的通用圖形界面,對(duì)用戶友好,且必須對(duì)鼠標(biāo)和鍵盤(pán)提供支持,界面的設(shè)計(jì)應(yīng)遵循如下規(guī)則:</p><p> a. 界面友好美觀,可以通過(guò)手機(jī)下載所需要的服務(wù);</p><p> b. 具備錯(cuò)誤處理頁(yè)面,出錯(cuò)時(shí)不會(huì)使用戶手足無(wú)措;</p><p> c. 設(shè)計(jì)良好的聯(lián)機(jī)幫助;</p><p> d. 提供
37、可逆反饋,用多種信息提示用戶當(dāng)前軟件運(yùn)行狀態(tài)、軟件界面元件的功能;</p><p> e. 顯示啟動(dòng)畫(huà)面,畫(huà)面簡(jiǎn)潔明快,富有現(xiàn)代氣息。</p><p><b> 截圖如下:</b></p><p> 圖 2-3 新聞首頁(yè)</p><p> 2.5.2 硬件接口</p><p> 支持一般
38、的PentiumⅡ或更高檔微機(jī)、筆記本電腦。</p><p> 2.5.3 軟件接口</p><p> 運(yùn)行于Windows 98/200/NT/XP、且具有WIN32、 API的操作系統(tǒng)之上。</p><p> 2.5.4 通信接口</p><p> 本軟件應(yīng)提供對(duì)電子郵件、Web瀏覽器、電話撥號(hào)等的支持。</p>&
39、lt;p> 2.5.5 故障處理</p><p> 正常使用不應(yīng)出錯(cuò),若運(yùn)行時(shí)遇到不可恢復(fù)的系統(tǒng)錯(cuò)誤,也必須保證數(shù)據(jù)庫(kù)完好無(wú)損</p><p><b> 第三章 系統(tǒng)設(shè)計(jì)</b></p><p> 3.1 前臺(tái)系統(tǒng)架構(gòu)</p><p> 在新聞系統(tǒng)的前臺(tái)首頁(yè)中,用戶可以按類別、按今日新聞和按關(guān)鍵字查詢新聞
40、。除了對(duì)新聞的查看外,還可以對(duì)站內(nèi)公告和焦點(diǎn)導(dǎo)讀進(jìn)行查看。</p><p> 主要界面的各個(gè)說(shuō)明以列表的形式給出。</p><p> 表 3-1 新聞前臺(tái)首頁(yè)說(shuō)明</p><p> 3.2 數(shù)據(jù)庫(kù)表設(shè)計(jì)</p><p><b> 表 3-2 公告表</b></p><p> 表 3-3
41、焦點(diǎn)導(dǎo)讀表</p><p> 表 3-4 后臺(tái)管理員表</p><p><b> 表 3-5 新聞表</b></p><p> 表 3-6 新聞詳細(xì)類別表</p><p> 3.3 公共模塊設(shè)計(jì)</p><p> 3.3.1 編寫(xiě)獲取系統(tǒng)時(shí)間操作類</p><p>
42、; 當(dāng)前系統(tǒng)對(duì)系統(tǒng)時(shí)間操作類的名稱為:TimeShow。該類的主要作用是在后臺(tái)管理維護(hù)新聞信息時(shí),獲取系統(tǒng)時(shí)間來(lái)記錄系統(tǒng)數(shù)據(jù)的時(shí)間,并且利用系統(tǒng)時(shí)間判斷維護(hù)的信息是否是最新的數(shù)據(jù)。除了獲取系統(tǒng)時(shí)間外,TimeShow類還將系統(tǒng)的時(shí)間轉(zhuǎn)換成格林威治標(biāo)準(zhǔn)時(shí),作為維護(hù)數(shù)據(jù)的靜態(tài)頁(yè)面的名稱保存在服務(wù)器相對(duì)應(yīng)的文件夾中,在新聞前臺(tái)頁(yè)面中直接調(diào)用該文件夾中的靜態(tài)頁(yè)面就可以對(duì)新聞的詳細(xì)內(nèi)容進(jìn)行查詢,TimeShow類文件的關(guān)鍵代碼如下:</p
43、><p> package com.tools;</p><p> import java.text.DateFormat;</p><p> import java.util.Date;</p><p> public class TimeShow {</p><p> public static String
44、 cuttentMonthDate() {</p><p> Date date = new Date();</p><p> DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);</p><p> return dateFormat.format(date);</p&g
45、t;<p><b> }</b></p><p> public static String autoNumber(){</p><p> Date date= new Date();</p><p> String autonumber=String.valueOf(date.getTime());</p>
46、<p> return autonumber+".html";</p><p><b> }</b></p><p><b> } </b></p><p> 3.3.2 編寫(xiě)字符串自動(dòng)處理類</p><p> 當(dāng)前系統(tǒng)使用的字符串自動(dòng)處理類的名稱為Self
47、RequestProcessor,該類繼承了Struts框架中的RequestProcessor類,實(shí)現(xiàn)RequestProcessor類中的RequestProcessor()方法,該方法作用是將從form表單中獲取的字符串編碼格式轉(zhuǎn)換成gb2312。代碼如下:</p><p> package com.tools;</p><p> import java.io.Unsupport
48、edEncodingException;</p><p> import javax.servlet.http.HttpServletRequest;</p><p> import javax.servlet.http.HttpServletResponse;</p><p> import org.apache.struts.action.RequestP
49、rocessor;</p><p> public class SelfRequestProcessor extends RequestProcessor {</p><p> public SelfRequestProcessor() {</p><p><b> }</b></p><p> protecte
50、d boolean processPreprocess(HttpServletRequest request,</p><p> HttpServletResponse response) {</p><p> super.processPreprocess(request, response);</p><p><b> try {</b&g
51、t;</p><p> request.setCharacterEncoding("gb2312");</p><p> } catch (UnsupportedEncodingException ex) {</p><p> ex.printStackTrace();</p><p><b> }<
52、;/b></p><p> return true;</p><p><b> }</b></p><p><b> }</b></p><p> 3.3.3 編寫(xiě)文件刪除類</p><p> 當(dāng)前系統(tǒng)使用的文件刪除類的名稱為FileOperation,在該類
53、中的deleteFile()方法中,實(shí)例化File類的對(duì)象file,并將filename對(duì)象作為該實(shí)例化對(duì)象的參數(shù),通過(guò)file調(diào)用exists()方法,判斷filename對(duì)象內(nèi)容是否存在,如果存在將調(diào)用delete()方法執(zhí)行刪除文件的方法。</p><p><b> 代碼:</b></p><p> package com.tools;</p>
54、<p> import java.io.File;</p><p> public class FileOperation</p><p><b> {</b></p><p> public static void deleteFile(String filename)</p><p><b&
55、gt; {</b></p><p> java.io.File file = new File(filename);</p><p> if (file.exists())</p><p><b> }</b></p><p><b> }</b></p><
56、;p><b> }</b></p><p> 3.3.4 編寫(xiě)Hibernate數(shù)據(jù)庫(kù)配置文件</p><p> Hibernate配置文件主要用于配置數(shù)據(jù)庫(kù)連接和Hibernate運(yùn)行時(shí)所需的各種屬性。它同時(shí)支持XML格式的配置文件和傳統(tǒng)的properties文件配置方式,當(dāng)前系統(tǒng)采用的是XML型配置文件。XML配置文件提供了更容易的結(jié)構(gòu)和更強(qiáng)的配置能力
57、,可以直接對(duì)映射文件加以配置并由Hibernate自動(dòng)加載。而在properties文件中則無(wú)法做到這點(diǎn),必須在程序中通過(guò)編碼進(jìn)行映射文件的加載。代碼如下:</p><p> <?xml version='1.0' encoding='UTF-8'?></p><p> <!DOCTYPE hibernate-configuration
58、</p><p> public "-//Hibernate/Hibernate Configuration DTD//EN"</p><p> "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"></p><p> <hibe
59、rnate-configuration></p><p> <session-factory></p><p> <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect </property></p><p>
60、 <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property></p><p> <property name="connection.url">jdbc:microsoft:sqlserver://lo
61、calhost:1433;DatabaseName=db_wyNews</property></p><p> <property name="connection.username">sa</property></p><p> <property name="connection.password"&
62、gt;</property></p><p> <property name="show_sql">false</property></p><p> <mapping resource="com/actionForm/SortForm.hbm.xml"/></p><p>
63、 <mapping resource="com/actionForm/NewsForm.hbm.xml"/></p><p> <mapping resource="com/actionForm/AfficheForm.hbm.xml"/></p><p> <mapping resource="com/
64、actionForm/ForceForm.hbm.xml"/></p><p> <mapping resource="com/actionForm/ManagerForm.hbm.xml"/></p><p> </session-factory></p><p> </hibernate-c
65、onfiguration></p><p> 3.3.5 編寫(xiě)數(shù)據(jù)持久化類</p><p> 當(dāng)前系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)持久化類的名稱為ObjectDao。開(kāi)發(fā)當(dāng)前系統(tǒng)使用了Hibernate框架和Struts框架整合技術(shù),在編寫(xiě)書(shū)庫(kù)持久化類的代碼中,分別定義了SessionFactory類、Session類和Transaction類的屬性,之后通過(guò)靜態(tài)方法取得對(duì)數(shù)據(jù)庫(kù)的鏈接操作,最后
66、根據(jù)鏈接對(duì)象分別實(shí)現(xiàn)對(duì)數(shù)據(jù)表的添加、修改、刪除、和查詢操作。具體代碼如下:public class ObjectDao<T> {</p><p> private static SessionFactory sessionFactory ;</p><p> private static Session session = null;</p><p&g
67、t; Transaction tx = null;</p><p><b> static {</b></p><p><b> try {</b></p><p> Configuration config = new Configuration().configure();</p><p&
68、gt; sessionFactory = config.buildSessionFactory();</p><p> } catch (Exception e) {</p><p> //System.out.println("ffffffffffff");</p><p> System.out.println(e.getMessag
69、e());</p><p><b> }</b></p><p><b> }</b></p><p> 3.4 新聞查詢功能模塊</p><p> 3.4.1 新聞查詢功能模塊總體架構(gòu)</p><p> ◆ 網(wǎng)站首頁(yè)中的新聞查詢:用于在網(wǎng)站的首頁(yè)中,查詢部分新聞標(biāo)
70、題的功能。</p><p> ◆ 按大類別查詢新聞和今日新聞查看:用于按大類別查詢新聞和今日新聞查詢的功能。</p><p> ◆ 按關(guān)鍵字查詢新聞:用于按關(guān)鍵字查詢新聞。</p><p> ◆ 新聞的詳細(xì)查詢:用于對(duì)新聞內(nèi)容的詳細(xì)查詢。</p><p> 3.4.2 新聞功能模塊的ActionForm類與配置文件</p>
71、<p> 新聞查詢模塊中主要涉及到兩個(gè)方面的ActionForm類:一個(gè)是新聞小類別的ActionForm與相應(yīng)的配置文件;另一個(gè)是新聞的ActionForm類相應(yīng)的配置文件。</p><p> 在新聞小類別功能模塊中,涉及的數(shù)據(jù)表是新聞小類別信息表(tb_sort)。在新聞小類別信息表中保存著小類別的名稱和創(chuàng)建時(shí)間等內(nèi)容,根據(jù)這些信息創(chuàng)建小類別信息的ActionForm名稱為“SortForm
72、.java”關(guān)鍵代碼如下:</p><p> package com.actionForm;</p><p> import org.apache.struts.action.*;</p><p> public class SortForm extends ActionForm {</p><p> private String b
73、igSort="";//大類別名稱</p><p> private int id=-1;//自動(dòng)編號(hào)</p><p> private String smallSort="";//小類別名稱</p><p> private String createTime=""; //創(chuàng)建時(shí)間&l
74、t;/p><p> public SortForm(){}</p><p> public String getBigSort() {</p><p> return bigSort;</p><p><b> }</b></p><p> public void setBigSort(St
75、ring bigSort) {</p><p> this.bigSort = bigSort;</p><p> public void setSmallSort(String smallSort) {</p><p> this.smallSort = smallSort;</p><p><b> }</b>
76、;</p><p> public void setId(int id) {</p><p> this.id = id;</p><p><b> }</b></p><p> public void setCreateTime(String createTime) {</p><p>
77、 this.createTime = createTime;</p><p><b> }</b></p><p> public int getId() {</p><p> return id;</p><p> 新聞功能模塊的ActionForm類與配置文件</p><p> 在
78、新聞查詢功能模塊中,涉及的數(shù)據(jù)表是新聞信息表(tb_news)。在新聞信息表中保存著新聞?lì)}目、新聞主要內(nèi)容及新聞發(fā)布時(shí)間等內(nèi)容,根據(jù)這些信息創(chuàng)建新聞信息的ActionForm名稱為“NewsForm.java”,關(guān)鍵代碼如下:</p><p> package com.actionForm;</p><p> import javax.servlet.http.*;</p>
79、<p> import org.apache.struts.action.*;</p><p> public class NewsForm extends ActionForm {</p><p> private int id=-1;</p><p> private int sortId=-1;</p><p>
80、 private String content="";</p><p> private String createTime="";</p><p> private String bigSort=""; </p><p> private String title="";<
81、/p><p> private String showNews="";</p><p> public String getContent() {</p><p> return content;</p><p><b> }</b></p><p> public St
82、ring getShowNews()</p><p><b> {</b></p><p> return showNews;</p><p><b> }</b></p><p> public void setShowNews(String showNews)</p>&l
83、t;p><b> {</b></p><p> this.showNews = showNews;</p><p><b> }</b></p><p> public void setContent(String content) {</p><p> this.content =
84、 content;</p><p><b> }</b></p><p> public void setTitle(String title) {</p><p> this.title = title;</p><p><b> }</b></p><p> p
85、ublic void setCreateTime(String createTime) {</p><p> this.createTime = createTime;</p><p><b> }</b></p><p> public void setId(int id) {</p><p> this.id
86、 = id;</p><p><b> }</b></p><p> public void setSortId(int sortId) {</p><p> this.sortId = sortId;</p><p><b> }</b></p><p> pub
87、lic void setBigSort(String bigSort) {</p><p> this.bigSort = bigSort;</p><p><b> }</b></p><p> public String getCreateTime() {</p><p> return createTime
88、;</p><p><b> }</b></p><p> public String getTitle() {</p><p> return title;</p><p><b> }</b></p><p> public int getId() {</
89、p><p> return id;</p><p><b> }</b></p><p> public int getSortId() {</p><p> return sortId;</p><p><b> }</b></p><p>
90、 public String getBigSort() {</p><p> return bigSort;</p><p><b> }</b></p><p><b> }</b></p><p> 3.4.3 首頁(yè)面新聞查詢實(shí)現(xiàn)過(guò)程</p><p> 在網(wǎng)站首
91、頁(yè)中的右側(cè)頁(yè)面中主要是按不同的新聞大類別顯示新聞的標(biāo)題,這里主要存在的類別主要包括:科學(xué)教育、法制教育、時(shí)政要聞、經(jīng)濟(jì)動(dòng)向、社會(huì)現(xiàn)象以及娛樂(lè)天地6組大類別內(nèi)容。</p><p> 按各種新聞的類別顯示新聞標(biāo)題主要是通過(guò)在首頁(yè)中定義數(shù)據(jù)持久化類的實(shí)例化對(duì)象實(shí)現(xiàn),由于數(shù)據(jù)庫(kù)持久化類對(duì)數(shù)據(jù)表的操作是過(guò)Hibernate中的hql語(yǔ)句進(jìn)行操作的,因此,在首頁(yè)面中對(duì)每個(gè)類別定義如下的hql語(yǔ)句:</p>&
92、lt;p> typeNews="科學(xué)教育";</p><p> hql="from NewsForm where bigSort = '"+typeNews+"' order by id desc";</p><p> typeNews="法制教育";</p><
93、p> hql="from NewsForm where bigSort = '"+typeNews+"' order by id desc"; </p><p> typeNews="時(shí)政要聞”;</p><p> hql="from NewsForm where bigSort = '&quo
94、t;+typeNews+"' order by id desc" </p><p> typeNews="經(jīng)濟(jì)動(dòng)向";</p><p> hql="from NewsForm where bigSort = '"+typeNews+"' order by id desc"; <
95、/p><p> typeNews="娛樂(lè)天地”;</p><p> hql="from NewsForm where bigSort = '"+typeNews+"' order by id desc"; </p><p> typeNews="社會(huì)現(xiàn)象”; </p><
96、;p> hql="from NewsForm where bigSort = '"+typeNews+"' order by id desc";</p><p> 3.4.4 新聞關(guān)鍵字查詢實(shí)現(xiàn)過(guò)程</p><p> 在當(dāng)前系統(tǒng)的前臺(tái)左側(cè)頁(yè)面中存在站內(nèi)搜索的功能,在“關(guān)鍵字”文本框中輸入要搜索的內(nèi)容,單擊“search”按
97、鈕后可以進(jìn)行新聞關(guān)鍵字搜索的功能,如圖所示:</p><p> 圖 3-1 站內(nèi)搜索界面</p><p> 3.4.5 新聞詳細(xì)查詢實(shí)現(xiàn)過(guò)程</p><p> 無(wú)論在前臺(tái)頁(yè)面中進(jìn)行任何查詢的操作,在查詢結(jié)果頁(yè)面中,單擊新聞標(biāo)題超鏈接就可以進(jìn)行對(duì)新聞詳細(xì)查詢。由于管理員在后臺(tái)進(jìn)行數(shù)據(jù)維護(hù)時(shí),將新聞內(nèi)容保存在HTML網(wǎng)頁(yè)中,將HTML網(wǎng)頁(yè)的名稱保存在數(shù)據(jù)表,因此,
98、單擊每個(gè)標(biāo)題中的鏈接實(shí)際上都會(huì)出發(fā)一個(gè)HTML網(wǎng)頁(yè),該網(wǎng)頁(yè)將被彈出顯示。</p><p> 3.5 后臺(tái)系統(tǒng)架構(gòu)</p><p> 3.5.1 后臺(tái)首頁(yè)面架構(gòu)</p><p> 在當(dāng)前系統(tǒng)的后臺(tái)首頁(yè)中,管理員可以對(duì)各種類別的新聞、站內(nèi)公告以及焦點(diǎn)導(dǎo)讀進(jìn)行管理,如果登錄用戶為系統(tǒng)管理員,則可以對(duì)站內(nèi)的管理員信息進(jìn)行管理,如果登錄的用戶為普通管理員,則具有修改登錄
99、用戶信息的功能,新聞后臺(tái)首頁(yè)運(yùn)行結(jié)果</p><p> 各個(gè)部分說(shuō)明以列表的形式給出:</p><p> 表 3-7 系統(tǒng)后臺(tái)各部分功能</p><p> 3.6 管理員模塊管理</p><p> 3.6.1 管理員模塊總體架構(gòu)</p><p> 1.管理員管理模塊主要功能</p><p&
100、gt; ◆ 管理員登錄:用于核實(shí)管理員身份的功能。</p><p> ◆ 管理員查詢:用于實(shí)現(xiàn)管理員查詢的功能。</p><p> ◆ 管理員添加:用于管理員添加的功能。</p><p> ◆ 管理員密碼修改:用于修改普通管理員密碼的功能。2.管理員管理流程</p><p> 圖 3-2 管理員管理流程圖</p
101、><p> 3.6.2 管理員登錄的實(shí)現(xiàn)過(guò)程</p><p> 管理員登錄是管理員進(jìn)入后臺(tái)維護(hù)數(shù)據(jù)的唯一通道。在前臺(tái)首頁(yè)右上角單擊“進(jìn)入后臺(tái)”超鏈接,進(jìn)入到管理員登錄頁(yè)面,如圖:</p><p> 圖 3-3 后臺(tái)登錄界面</p><p> 3.7 新聞管理模塊</p><p> 3.7.1 新聞管理模塊總體架構(gòu)
102、</p><p> 1.新聞管理模塊主要功能</p><p><b> ◆ 新聞小類別添加</b></p><p><b> ◆ 新聞小類別刪除</b></p><p><b> ◆ 新聞小類別查詢</b></p><p><b>
103、◆ 新聞添加</b></p><p><b> ◆ 新聞修改</b></p><p><b> ◆ 新聞刪除</b></p><p><b> ◆ 新聞查詢</b></p><p> 3.7.2新聞?lì)悇e的實(shí)現(xiàn)類</p><p> 在
104、當(dāng)前系統(tǒng)中,新聞?lì)悇e主要是分為6大類:時(shí)政要聞、經(jīng)濟(jì)動(dòng)向、法制教育、科學(xué)教育、社會(huì)現(xiàn)象以及娛樂(lè)天地。這6大類是固定的,但是它們的小類別不是固定的,需要后臺(tái)管理員進(jìn)行維護(hù)。新聞?lì)悇e實(shí)現(xiàn)類名稱為:SortAction.java.該類繼承DispatchAction類,實(shí)現(xiàn)多業(yè)務(wù)處理的操作。</p><p><b> 代碼如下:</b></p><p> Package
105、 com.action;</p><p> Import javax.servlet.http.*;</p><p> Import org.apache.struts.action.*;</p><p> Import com.actionForm.SrotForm:</p><p> Import org.apache.strut
106、s.actions.DispatchAction;</p><p> Import com.dao.ObjectDao;</p><p> Import java.util.List;</p><p> Import java.io.UnsupportedEncodingException;</p><p> Public class
107、 SortAction extends DispatchAction</p><p><b> {</b></p><p><b> }</b></p><p> 3.7.3 新聞?lì)悇e查詢的實(shí)現(xiàn)過(guò)程</p><p> 新聞?lì)悇e信息的維護(hù)主要是新聞操作的子功能,例如單擊左側(cè)頁(yè)面中“時(shí)政要聞”的
108、超鏈接,可以查看該大類別中的所有小類別,查詢小類別信息的運(yùn)行結(jié)果如圖:</p><p> 圖 3-4 新聞?lì)悇e頁(yè)面</p><p> 實(shí)現(xiàn)“詳細(xì)類別管理”關(guān)鍵代碼如下:</p><p><b> <%</b></p><p> String sortNews=new String(request.getPa
109、rameter("bigSort").getBytes("ISO8859_1"),"gb2312");</p><p> int pagesize=10;</p><p> List list=(List)request.getAttribute("list");</p><p>
110、 int number=list.size();</p><p> //以下這段代碼是計(jì)算多少頁(yè)數(shù)</p><p> int pageNumber=number;</p><p> if(pageNumber%pagesize==0){</p><p> pageNumber=pageNumber/pagesize;</p>
111、;<p><b> }else{</b></p><p> pageNumber=pageNumber/pagesize+1;</p><p><b> }</b></p><p> //以下是計(jì)算當(dāng)前頁(yè)的頁(yè)數(shù)</p><p> int count;</p>&
112、lt;p> if(request.getParameter("count")==null){</p><p><b> count=0;</b></p><p><b> }else{</b></p><p> count=Integer.valueOf(request.getParame
113、ter("count"));</p><p><b> }</b></p><p> //以下顯示多少條紀(jì)錄</p><p> int start=count*pagesize;//開(kāi)始條數(shù)</p><p> int over=(count+1)*pagesize;//結(jié)束條數(shù)</p&g
114、t;<p> int lastCount=number-over;//還剩多少條記錄</p><p> if(lastCount<=0){</p><p> over=number;</p><p><b> }</b></p><p><b> %></b>&l
115、t;/p><p><b> <%</b></p><p> for(int i=start;i<over;i++)</p><p><b> {</b></p><p> NewsForm form=(NewsForm)list.get(i);</p><p&g
116、t; String hql="from SortForm where id='"+form.getSortId()+"'";</p><p> SortForm sortForm=(SortForm)objectDao.queryFrom(hql);</p><p><b> }%></b></
117、p><p> 3.7.4 新聞?lì)悇e添加的實(shí)現(xiàn)過(guò)程</p><p> 在新聞?lì)悇e查詢頁(yè)面上,單擊“添加類別”的超鏈接,即可顯示添加新聞?lì)悇e信息的頁(yè)面,運(yùn)行結(jié)果如圖:</p><p> 圖 3-5添加新聞?lì)悇e頁(yè)面</p><p> 添加新類別頁(yè)面提交表單如下:</p><p> 表 3-8 添加新聞?lì)悇e頁(yè)面提交表單&
118、lt;/p><p><b> 關(guān)鍵代碼如下:</b></p><p> public ActionForward selectSortAction(ActionMapping mapping,</p><p> ActionForm form, HttpServletRequest request,</p><p>
119、 HttpServletResponse response)</p><p> throws UnsupportedEncodingException</p><p><b> {</b></p><p> objectDao = new ObjectDao<SortForm>();</p><p>
120、 String bigSort = request.getParameter("bigSort");</p><p> bigSort = new String(bigSort.getBytes("ISO8859_1"), "gb2312");</p><p> String hql = "from SortForm
121、 where bigSort='" + bigSort</p><p> + "' order by id desc";</p><p> List list = objectDao.queryList(hql);</p><p> request.setAttribute("list", li
122、st);</p><p> return mapping.findForward("selectSortAction");</p><p><b> }</b></p><p> // 對(duì)新聞詳細(xì)類別插入的Action</p><p> public ActionForward insertS
123、ortAction(ActionMapping mapping,</p><p> ActionForm form, HttpServletRequest request,</p><p> HttpServletResponse response)</p><p> throws UnsupportedEncodingException</p>
124、<p><b> {</b></p><p> SortForm sortForm = (SortForm) form;</p><p> String hql = "from SortForm where bigSort = '"</p><p> + sortForm.getBigSort()
125、 + "' and smallSort = '"</p><p> + sortForm.getSmallSort() + "'";</p><p> objectDao = new ObjectDao<SortForm>();</p><p> SortForm sort = obj
126、ectDao.queryFrom(hql);</p><p> if (sort != null)</p><p><b> {</b></p><p> request.setAttribute("result", "您輸入的類別名稱重復(fù),請(qǐng)重新輸入");</p><p>
127、<b> } else</b></p><p><b> {</b></p><p> objectDao.saveT(sortForm);</p><p> request.setAttribute("result", "您輸入的類別成功");</p><
128、;p><b> }</b></p><p> return mapping.findForward("resultSortAction");</p><p><b> }</b></p><p> 3.7.5 新聞查詢的實(shí)現(xiàn)過(guò)程</p><p> 管理員登錄以后,
129、在左側(cè)區(qū)域中,單擊任意新聞?lì)悇e的類別的鏈接,都可以對(duì)新聞所在的類別進(jìn)行查詢,其中,實(shí)現(xiàn)這些鏈接是將所有的大類別信息保存在一個(gè)數(shù)組對(duì)象中,然后通過(guò)for循環(huán)顯示數(shù)組中的新聞?lì)悇e內(nèi)容,最后設(shè)置相同的超鏈接,通過(guò)for循環(huán)顯示各個(gè)類別信息的超鏈接的代碼如下:</p><p><b> <%</b></p><p> String[] typeNews={"
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新聞管理系統(tǒng)畢業(yè)論文
- 新聞消息管理系統(tǒng)-畢業(yè)論文
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——新聞發(fā)布及管理系統(tǒng)
- jsp網(wǎng)站新聞管理系統(tǒng)---畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——新聞系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)(畢業(yè)論文)
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──新聞管理、類目管理【畢業(yè)論文】
- 熱點(diǎn)新聞獲取與管理系統(tǒng)——畢業(yè)論文
- 熱點(diǎn)新聞獲取與管理系統(tǒng)——畢業(yè)論文
- 熱點(diǎn)新聞獲取與管理系統(tǒng)——畢業(yè)論文
評(píng)論
0/150
提交評(píng)論