新聞發(fā)布系統(tǒng)_第1頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGEiv新聞發(fā)布系統(tǒng)摘要21世紀是信息的時代,是網(wǎng)絡的時代,進入信息社會高速發(fā)展的時代,數(shù)字化革命給所有領域帶來新的改變。隨著Internet的普及,網(wǎng)頁逐漸融入人們的生活,快速及時地瀏覽新聞,獲取五彩繽紛的網(wǎng)上信息,已成為人們?nèi)粘I畹囊徊糠郑c此同時越來越多的企業(yè)建立了自己的信息發(fā)布網(wǎng)站,企業(yè)通過網(wǎng)站可以發(fā)布最新動態(tài),與用戶進行交流和溝通,開展電子商務等。本文使用JSP和ORACLE技術開發(fā),為了保證系統(tǒng)性能的高效性、可擴展性,以及達到數(shù)據(jù)共享和網(wǎng)絡化管理的目的,本系統(tǒng)采用B/S體系結構進行設計開發(fā)。實現(xiàn)了網(wǎng)站新聞的動態(tài)管理,使得對信息的管理更加及時、高效,提高了工作效率,具有一般新聞系統(tǒng)的功能,主要包括前臺新聞查看區(qū)和后臺管理區(qū),可為發(fā)布新聞,為網(wǎng)站提供新聞發(fā)布與管理的服務。關鍵字:JSP;ORACLE;新聞管理;Browser/ServerAbstract21stcenturyistheeraofinformation,istheeraofnetworks,enteredtheeraofrapidevelopmentoftheinformationsociety,allareasofthedigitalrevolutionbroughtnewchanges.AsthepopularityofInternet,thepagebecomesprogressivelymoreintegratedintopeople'slives,rapidandtimelynewsgetscolorfulonlineinformation,hasbecomeapartofdailylife,atthesametimemoreandmoreenterpriseshaveestablishedtheirowninformationpublishingsite,theenterprisecanpublishnewsviatheWeb,exchangeandcommunicatewiththeuser,suchase-commerce.ThisarticleusesJSPandORACLEtechnologydevelopment,inordertoensureperformanceofthesystem'sefficiency,scalability,anddatasharing,andnetworkmanagementpurposes,thesystemusesb/sarchitecturedesignanddevelopment.Realizationofdynamicmanagementofthesitenews,leadstoamoretimelyandefficientinformationmanagement,improvedproductivity,hasageneralfunctionofinformationsystem,managementzonenewsviewincludestheforegroundandthebackground,pressrelease,newspublishingandmanagementservicesforWebsites.Keywords:JSP;ORACLE;Newsmanagement;Browser/Server目錄TOC\o"1-3"\h\u摘要 iAbstract ii1緒論 11.1 研究背景 11.1.1國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢 11.1.2研究目的、意義和范圍 11.2開發(fā)工具及技術 11.2.1開發(fā)工具 11.2.2JSP 21.2.3JavaBean 31.2.4ORACLE 31.2.5Servlet 41.3運行環(huán)境要求 52需求分析 62.1功能需求 62.2性能需求 73總體設計 83.1新聞系統(tǒng)的結構模型 83.2新聞系統(tǒng)功能描述及功能模塊圖 83.3數(shù)據(jù)庫設計 103.3.2數(shù)據(jù)流圖 123.3.3表結構設計 134詳細設計 164.1首頁的設計 164.1.1功能描述及實現(xiàn)的界面 164.1.2代碼 174.2注冊登錄模塊的設計 184.2.1功能描述及實現(xiàn)的界面 184.2.2代碼 194.3管理員登錄模塊的設計 204.3.1功能描述及實現(xiàn)的界面 204.3.2代碼 204.4修改登錄密碼模塊的設計 214.4.1功能描述及實現(xiàn)的界面 214.4.2代碼 214.5注冊用戶管理模塊的設計 224.5.1功能描述及實現(xiàn)的界面 224.5.2代碼 224.6公告管理模塊的設計 244.6.1功能描述及實現(xiàn)的界面 244.6.2代碼 244.7新聞類別管理模塊的設計 254.7.1功能描述及實現(xiàn)的界面 254.7.2代碼 254.7.3功能描述及實現(xiàn)的界面 264.7.4代碼 264.8新聞信息管理模塊的設計 274.8.1功能描述及實現(xiàn)的界面 274.8.2代碼 274.8.3功能描述及實現(xiàn)的界面 284.8.4代碼 284.9留言信息管理模塊的設計 294.9.1功能描述及實現(xiàn)的界面 294.9.2代碼 295系統(tǒng)測試 315.1程序調試 315.2程序的測試 315.2.1測試的重要性及目的 315.2.2測試的步驟 325.2.3測試的主要內(nèi)容 32結論 35參考文獻 37致謝 38外文原文 39中文翻譯 46PAGE21緒論在Internet飛速發(fā)展的今天,電子數(shù)字計算機是20世紀重大科技發(fā)明之一,而互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟、生活等各個方面發(fā)揮著重要的作用。Internet上發(fā)布信息主要是通過網(wǎng)站來實現(xiàn)的,獲取信息也是要在Internet“海洋”中按照一定的檢索方式將所需要的信息從網(wǎng)站上下載下來。因此網(wǎng)站建設在Internet應用上的地位顯而易見,它已成為機關、學校、企事業(yè)單位、甚至進入尋常百姓家的信息化建設中的重要組成部分,從而倍受人們的重視。研究背景1.1.1國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢傳統(tǒng)的網(wǎng)站新聞管理方式有兩種:一種是靜態(tài)HTML頁面,更新信息時需要重新制作頁面然后上傳頁面并修改相應鏈接,這種方式因為效率太低已不多用;另一種是基于JSP和腳本語言,將動態(tài)網(wǎng)頁和數(shù)據(jù)庫結合,通過應用程序來處理新聞,這是目前較為流行的做法。JSP是Sun公司推出的一種網(wǎng)站開發(fā)技術,Sun公司借助自己在Java上的不凡造詣,又把人們引進JSP時代,JSP即JavaServerPage,它可以在Servlet和JavaBean的支持下,完成功能強大的Web應用程序。JSP網(wǎng)站架設將成為未來網(wǎng)站架設的趨勢,而國內(nèi)網(wǎng)站多數(shù)是用ASP,PHP技術實現(xiàn)的,而基于JSP的優(yōu)秀網(wǎng)站較少。1.1.2研究目的、意義和范圍該新聞發(fā)布系統(tǒng)是在后臺由人工輸入文章的內(nèi)容,然后系統(tǒng)自動將文章內(nèi)容整理保存(即存入數(shù)據(jù)庫);用戶在前臺瀏覽到的均是系統(tǒng)自動產(chǎn)生的網(wǎng)頁,所有過程均無需用戶手工制作HTML網(wǎng)頁的一種高效系統(tǒng)。該系統(tǒng)使用JSP和ORACLE數(shù)據(jù)庫技術開發(fā),實現(xiàn)了網(wǎng)站新聞的動態(tài)管理,使得對信息的管理更加及時、高效,提高了工作效率。該新聞系統(tǒng)具有一般新聞系統(tǒng)的功能,主要包括前臺新聞查看區(qū)和后臺管理區(qū),可提供新聞發(fā)布與管理的服務。該系統(tǒng)是基于B/S(Browser/Server,瀏覽器/客戶端)模式實現(xiàn),基于jsp平臺架構開發(fā)設計,主要實現(xiàn)對新聞的發(fā)布與管理功能,對新聞內(nèi)容信息的瀏覽閱讀等。隨著Internet/Intranet技術的興起,將原本在單機或本地局域網(wǎng)上運行的數(shù)據(jù)庫系統(tǒng)移植到因特網(wǎng)中,即開發(fā)基于B/S模式的新一代MIS(ManagementInformationSystem,管理信息系統(tǒng))系統(tǒng),正成為技術發(fā)展的趨勢。為了保證系統(tǒng)性能的高效性、可擴展性,以及達到數(shù)據(jù)共享和網(wǎng)絡化管理的目的,本系統(tǒng)采用B/S體系結構進行設計開發(fā)。1.2開發(fā)工具及技術1.2.1開發(fā)工具SunMicrosystems公司在推出Java語言的同時,推出了一套開發(fā)工具JDK。Sun提供的基于字符模式的Java開發(fā)工具包JDK:Java開發(fā)工具(JDK)是許多Java專家最初使用的開發(fā)環(huán)境。Java是平臺無關的語言是指用Java寫的應用程序不用修改就可在不同的軟硬件平臺上運行。Java源程序編寫借助于記事本,Editpuls,UltraEdit等第三方編輯工具。所有的Java文件編輯、編譯、調試、解釋運行都是通過使用字符命令來執(zhí)行操作。JDK由一個標準類庫和一組建立,測試及建立文檔的Java實用程序組成。其核心JavaAPI是一些預定義的類庫,開發(fā)人員需要用這些類來訪問Java語言的功能。JDK是整個Java的核心,包括了Java運行環(huán)境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎的類庫(rt.jar)。不論什么Java應用服務器實質都是內(nèi)置了某個版本的JDK。因此掌握JDK是學好Java的第一步。JDK里面是java類庫和java的語言規(guī)范,它提供的是無論你用何種開發(fā)軟件寫java程序都必須用到的類庫和java語言規(guī)范.沒有jdk,你的java程序根本就不能用。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)運行效率要比SunJDK包含的JVM高出許多。而專門運行在x86平臺的Jrocket在服務端運行效率也要比SunJDK好很多。但不管怎么說,我們還是需要先把SunJDK掌握好。1.2.2JSPJSP簡介:JSP(JavaServerPages)是一種建立在Servlet規(guī)范提供的功能之上的動態(tài)網(wǎng)頁技術,和ASP類似,它們都是在通常的網(wǎng)頁文件中嵌入腳本代碼,用于產(chǎn)生動態(tài)內(nèi)容,不過JSP文件中嵌入的是JAVA代碼和JSP標記。JSP文件在用戶第一次請求時,會被編譯成Servlet,然后由這個Servlet處理用戶的請求,所以JSP也可以看成是運行時的Servlet。Servlet是JAVA對CGI的回應。它們在服務器上執(zhí)行和解釋瀏覽器的請求,承擔客戶端和其他應用程序之間的中間層的角色。Servlet主要是把動態(tài)的內(nèi)容混合到靜態(tài)的內(nèi)容中以產(chǎn)生HTML。JSP頁面在HTML元素中潛入JAVA腳本代碼和JSP標記,使得文件長度變短,格式更加清晰。另一方面,JSP把靜態(tài)和動態(tài)的內(nèi)容分離開來,實現(xiàn)了內(nèi)容和表示的分離。使用JSP,不需要單獨配置每一個文件,只要擴展名是.jsp,JSP容器(也是Servlet容器)就會自動識別,將其轉換為Servlet為客戶端服務。術語WEB容器和JSP容器是同義的。JSP的運行原理:在JSP第一次獲得來自于客戶端瀏覽器的請求時,JSP文件將被JSP引擎(JSPengine)轉換成一個Servlet,即將”.jsp”文件編譯成JavaClass文件。當Servlet引擎接收到請求后,如果設置了使用最新的JSP,它就會去找JSP文件,檢查該文件在上次編譯后是否改動過。如果改動過,就會重新編譯生成新的Servlet,最終將請求轉交給編譯好的Servlet引擎執(zhí)行。在編譯時如果發(fā)現(xiàn)JSP文件有任何語法錯誤,轉換過程將中斷,并向客戶端發(fā)出出錯信息;如果編譯成功,則所轉換產(chǎn)生的Servlet代碼被編譯,然后該Servlet被JSP引擎加載到內(nèi)存中。此時JSP引擎還請求了jspInit()方法的執(zhí)行,并對此Servlet初始化。JspInit()方法在Servlet的生命周期中只被請求一次,然后將被調用來處理客戶端的請求和回復操作。對于所有隨后對該JSP文件的請求,服務器將檢查該JSP文件自最后一次被存取后是否經(jīng)過修改。如果沒有修改,則將請求交還給還在內(nèi)存中的Servlet的jspService()方法,執(zhí)行回復操作。由于Servlet始終駐于內(nèi)存,所以響應是非常快的。Jsp頁面在第一次訪問時由于要轉化和編譯,運行速度較慢,但是當?shù)诙卧L問該頁時,由于文件已經(jīng)被編譯成字節(jié)碼文件了,所以速度非常得快。JSP頁面的組成:JSP頁面看上去像標準的HTML和XML頁面,并附帶有JSP引擎能夠處理和解析執(zhí)行的代碼與組件。通常,JSP代碼和組件用于創(chuàng)建在最終頁面上顯示的文本。通常來說,JSP頁面包括編譯指令,聲明,表達式等內(nèi)容。(1)編譯指令:使用JSP編譯指令(〈%@和%〉內(nèi)的)來指定所使用的腳本語言,Servlet實現(xiàn)的接口,Servlet擴展的類,Servlet導入的軟件包。JSP指令的一般語法形式為:<%@指令名=“值”%>。(2)聲明:用于聲明合法的變量和方法。與任何語言相同,JSP語言使用變量來保存數(shù)據(jù)。這些變量用declaration元素聲明,聲明的語法為<%!declaration(s)%>。當頁面被初始化的時候,JSP頁面中的所有聲明都被初始化。除了簡單的變量,方法也能被聲明。聲明不對當前的輸出流產(chǎn)生任何影響。(3)表達式:通過計算表達式所得到的結果來表示某個值。表達式的形式為:<%=expression>。表達式求值的結果被強制轉換為一個字符串,并插入到當前的輸出流中。JSP的運行環(huán)境:要運行Jsp(注意,不是瀏覽Jsp頁面),需要有支持Jsp的服務器。這里分2種情況:一種是自身就支持Jsp的服務器,如Jrun,Weblogic,JSWDK等;而另一種則是在不支持Jsp的服務器上安裝Jsp引擎的插件,如在IIS,Apache等服務器上安裝WebSphere,tomcat,Resin等插件。其中主流服務器是Weblogic和tomcat.Tomcat服務器是ApacheGroupJakarta小組開發(fā)的一個免費服務器軟件,適合于嵌入Apache中使用,而且,它的源代碼可以免費獲得,你可以自由地對它進行擴充。訪問的地址http://jakarta./tomacat/index.html,Tomcat服務器的兼容性很好,如WebLogic服務器采用其為Web服務器引擎,Jbuilder將其作為標準的測試服務器,Sun公司也將其作為JSP技術應用的示例服務器。不足之處是它的配置比較麻煩,而且有一些安全性的問題沒有解決。但是Tomcat服務器有眾多大軟件公司的支持,而且服務器的性能穩(wěn)定,其發(fā)展前景很好。1.2.3JavaBeanJavaBean的技術介紹:JavaBean技術是一種基于Java的組件技術,JavaBean組件可以用來執(zhí)行復雜的計算任務,或負責與數(shù)據(jù)庫的交互以及數(shù)據(jù)的提取等,是解決代碼重用問題的一種策略。以前的組件無法實現(xiàn)真正的代碼重用,其主要原因就是它們對于處理平臺的依賴和對開發(fā)語言的依賴過重。由于Java語言在這些方面所具有的特點和優(yōu)勢,使得基于它的軟件JavaBean組件技術倍受人們的關注。它的任務就是:一次編寫,可以在任何地方執(zhí)行,可以在任何地方重用。JavaBean組件可以在任何地方?jīng)_用包括了可以在應用程序、其他組件、文檔、Web站點和應用程序構造器工具等多種方案中再利用。為了創(chuàng)建和使用Java軟件組件,JavaBean被實現(xiàn)為一種獨立于平臺和結構的應用程序接口,它的實現(xiàn)可忽略內(nèi)部的結構及細節(jié)問題,只需要定義其外部的特征及對外功能就行。其中,屬性、方法和事件三種接口可以獨立對外進行開發(fā)。JavaBean的實質就是一個.class文件,也可以成為類文件。JavaBean以binary格式保存,可以保護Java源代碼不容易被他人抄襲。1.2.4ORACLEORACLE數(shù)據(jù)庫介紹:ORACLE7.X以來引入了共享SQL和多線索服務器體系結構。這減少了ORACLE的資源占用,并增強了ORACLE的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶,而在高檔平臺上可以支持成百上千個用戶。提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。支持大量多媒體數(shù)據(jù),如二進制圖形、聲音、動畫以及多維數(shù)據(jù)結構等。提供了與第三代高級語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對數(shù)據(jù)庫中的數(shù)據(jù)進行操縱。加上它有許多優(yōu)秀的前臺開發(fā)工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速開發(fā)生成基于客戶端PC平臺的應用程序,并具有良好的移植性。提供了新的分布式數(shù)據(jù)庫能力??赏ㄟ^網(wǎng)絡較方便地讀寫遠端數(shù)據(jù)庫里的數(shù)據(jù),并有對稱復制的技術。Oracle也許是最流行的服務器,占有最大的市場份額,它被廣泛用于各個市場領域,滿足一系列的存儲需求,例如財務記錄,人力資源及訂單編制等,造成這種現(xiàn)象的原因之一在于Oracle較早的進入RDBMS(關系型數(shù)據(jù)庫管理系統(tǒng))領域,并且提供可運行于大多數(shù)操作系統(tǒng)上的數(shù)據(jù)庫版本,雖然Oracle的首選操作系統(tǒng)似乎正由Solaris轉為Linux,但是Oracle仍然在進行與其他操作系統(tǒng)的兼容工作,盡管Oracle經(jīng)常在Unix或是Linux平臺上運行,但是也有大量的Oracle在HP-UX和AIX上運行,隨著幾年前電子商務的激增,將會驅使Oracle成為WEB應用所需數(shù)據(jù)庫的選擇,這使數(shù)據(jù)庫更容易受攻擊者的控制。事實上,一旦Oracle從后臺進入前端,那么人們會更多地關注它的安全方面。1.2.5Servlet Servlet介紹: Servlet是使用Java

Servlet

應用程序設計接口(API)及相關類和方法的

Java

程序。除了

Java

Servlet

API,Servlet

還可以使用用以擴展和添加到

API

Java

類軟件包。Servlet

在啟用

Java

Web

服務器上或應用服務器上運行并擴展了該服務器的能力。Java

servlet對于Web服務器就好象Java

applet對于Web瀏覽器。Servlet裝入Web服務器并在Web服務器內(nèi)執(zhí)行,而applet裝入Web瀏覽器并在Web瀏覽器內(nèi)執(zhí)行。Java

Servlet

API

定義了一個servlet

和Java使能的服務器之間的一個標準接口,這使得Servlets具有跨服務器平臺的特性。

Servlet

通過創(chuàng)建一個框架來擴展服務器的能力,以提供在

Web

上進行請求和響應服務。當客戶機發(fā)送請求至服務器時,服務器可以將請求信息發(fā)送給

Servlet,并讓

Servlet

建立起服務器返回給客戶機的響應。

當啟動

Web

服務器或客戶機第一次請求服務時,可以自動裝入

Servlet。裝入后,

Servlet

繼續(xù)運行直到其它客戶機發(fā)出請求。Servlet

的功能涉及范圍很廣。例如,Servlet

可完成如下功能:

1、創(chuàng)建并返回一個包含基于客戶請求性質的動態(tài)內(nèi)容的完整的

HTML頁面。

2、創(chuàng)建可嵌入到現(xiàn)有

HTML

頁面中的一部分

HTML

頁面(HTML

片段)。

3、與其它服務器資源(包括數(shù)據(jù)庫和基于

Java

的應用程序)進行通信。

4、用多個客戶機處理連接,接收多個客戶機的輸入,并將結果廣播到多個客戶機上。例如,Servlet

可以是多參與者的游戲服務器。

5、當允許在單連接方式下傳送數(shù)據(jù)的情況下,在瀏覽器上打開服務器至applet的新連接,并將該連

接保持在打開狀態(tài)。當允許客戶機和服務器簡單、高效地執(zhí)行會話的情況下,applet也可以啟動客戶瀏覽器和服務器之間的連接??梢酝ㄟ^定制協(xié)議或標準(如

IIOP)進行通信。

6、

對特殊的處理采用

MIME

類型過濾數(shù)據(jù),例如圖像轉換和服務器端包括(SSI)。

7、將定制的處理提供給所有服務器的標準例行程序。例如,Servlet

可以修改如何認證用戶。 Servlet生命周期: Servlet

的生命周期始于將它裝入

Web

服務器的內(nèi)存時,并在終止或重新裝入

Servlet

時結束。

1、初始化

在下列時刻裝入

Servlet:

如果已配置自動裝入選項,則在啟動服務器時自動裝入

在服務器啟動后,客戶機首次向

Servlet

發(fā)出請求時

重新裝入

Servlet

時裝入

Servlet

后,服務器創(chuàng)建一個

Servlet

實例并且調用

Servlet

init()

方法。在初始化階段,Servlet

初始化參數(shù)被傳遞給

Servlet

配置對象。

2、請求處理

對于到達服務器的客戶機請求,服務器創(chuàng)建特定于請求的一個“請求”對象和一個“響應”對象。服務器調用

Servlet

service()

方法,該方法用于傳遞“請求”和“響應”對象。service()

方法從“請求”對象獲得請求信息、處理該請求并用“響應”對象的方法以將響應傳回客戶機。service()

方法可以調用其它方法來處理請求,例如

doGet()、doPost()

或其它的方法。

3、終止

當服務器不再需要

Servlet,

或重新裝入

Servlet

的新實例時,服務器會調用

Servlet

destroy()

方法。1.3運行環(huán)境要求設備:客戶機硬件要求:具有PentiumIII處理器以上且滿足以下要求的計算機:最低64MB內(nèi)存,最小2.1GB硬盤。服務器硬件要求:具有PentiumIII處理器以上且滿足以下要求的計算機:最低256MB內(nèi)存,最小8GB硬盤。支持程序:1、客戶端操作系統(tǒng):Windows98/NT/2000/XP或更高版本瀏覽器:IE5.0以上或Netscape同等版本以上2、服務器操作系統(tǒng):Windows2000Server或者Windows2003ServerWeb服務器:MSIIS應用服務器:TOMCAT6.0應用服務器數(shù)據(jù)庫:ORACLE2需求分析2.1功能需求該系統(tǒng)的用戶為新聞網(wǎng)站,需要經(jīng)常發(fā)布一些新聞,如何能有效地管理和發(fā)布新聞呢?最初用戶的需求為:“該新聞系統(tǒng)具有一般新聞系統(tǒng)的功能,同時具有新聞審核和不同管理員不同管理權限的功能”。通過對其它一些新聞系統(tǒng)的調查發(fā)現(xiàn),一般新聞系統(tǒng)功能如下:1、前臺按分類顯示新聞;2、搜索新聞;3、后臺管理:添加、刪除和修改新聞添加、刪除和修改用戶添加、刪除和修改新聞分類添加新聞根據(jù)網(wǎng)站新聞發(fā)布管理的實際需求,在首頁中能顯示最熱門新聞、頭條新聞和最近發(fā)布的幾條新聞等,同時在后臺發(fā)布新聞時可以添加圖片,也可以添加HTML語法,在前臺能自動根據(jù)所顯示的圖片和HTML語法來顯示新聞。在后臺管理中,因為有權限的管理員才能登錄管理后臺,所以需要有個登錄驗證模塊,而且需要根據(jù)用戶權限的不同顯示不同的管理目錄,在管理新聞和用戶時,當數(shù)據(jù)少時管理起來還比較方便,如果一多則想找到某條新聞或某個用戶就很難,所以需要有個查找(新聞標題、用戶)模塊用于查找新聞或用戶。根據(jù)以上需求分析,該系統(tǒng)要實現(xiàn)的主要功能為:1、前臺顯示新聞部分:用戶登錄區(qū)顯示最熱門的前幾條新聞顯示推薦的前幾條新聞顯示最新的前幾條新聞搜索新聞功能顯示所有新聞分類按分類/部門顯示其下的所有新聞新聞詳細信息瀏覽閱讀新聞詳細信息下的用戶評論2、后臺管理部分:登錄驗證添加、修改和刪除新聞管理發(fā)布新聞管理發(fā)布公告管理留言管理新聞類別用戶管理2.2性能需求該系統(tǒng)在性能功能上應達到如下需求:操作簡單、界面友好:完全控件式的頁面布局,使得新聞的錄入工作更簡便,許多選項包括新聞分類、來源部門等只需要點擊鼠標就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時清楚自己的操作情況。對常見網(wǎng)站的新聞管理的各個方面:新聞錄入、瀏覽、刪除、修改、搜索等方面都大體實現(xiàn),實現(xiàn)了網(wǎng)站對即時新聞的管理要求;

即時可見:對新聞的處理(包括錄入、修改、刪除)將立即在主頁的對應欄目顯示出來,達到“即時發(fā)布、即時見效”的功能;系統(tǒng)運行應該快速、穩(wěn)定、高效和可靠;在結構上應具有很好的可擴展性,便于將來的功能擴展和維護。3總體設計3.1新聞系統(tǒng)的結構模型該系統(tǒng)的模型結構如圖3-1所示。客戶端客戶端瀏覽器客戶端瀏覽器客戶端瀏覽器Web層業(yè)務層數(shù)據(jù)訪問層系統(tǒng)配置數(shù)據(jù)庫圖3-1新聞系統(tǒng)的模型結構圖示該系統(tǒng)結構分為三個邏輯層:Web層:Web層為客戶端瀏覽器提供對應用程序的訪問,這一層是作為解決方案文件中的Web項目實現(xiàn)的。Web層由JSP.NETWeb窗體和代碼隱藏文件組成,Web窗體只是用HTML提供用戶操作,而代碼隱藏文件實現(xiàn)各種控件的事件處理程序;業(yè)務層:包含各種業(yè)務規(guī)則和邏輯的實現(xiàn),業(yè)務規(guī)則完成如客戶帳戶的驗證和字符串處理這樣的任務;數(shù)據(jù)訪問層:數(shù)據(jù)訪問層為業(yè)務層提供數(shù)據(jù)服務,這一層是作為解決方案文件中的Conn類(數(shù)據(jù)訪問類,實現(xiàn)公共操作的一個通用類)實現(xiàn)的;3.2新聞系統(tǒng)功能描述及功能模塊圖圖3-2列出系統(tǒng)的功能模塊圖。新聞評論新聞查看留言新聞評論新聞查看留言新聞發(fā)布理退出新聞系統(tǒng)首頁開始新聞搜索圖3-2系統(tǒng)的功能模塊圖工作流程為:打開該系統(tǒng)網(wǎng)站,普通瀏覽者能瀏覽、閱讀和搜索新聞,能進行注冊,注冊后為新聞輸入員,登錄進入新聞后臺管理區(qū),只有添加新聞的權限;如登錄時為新聞審核員,其不但有添加新聞的權限,還有審核和管理新聞的權限;如為系統(tǒng)管理員,其有新聞后臺管理區(qū)內(nèi)的所有權限,除具有新聞審核員所有的權限外,還有添加和管理新聞分類、添加和管理用戶、系統(tǒng)、風格和友情鏈接設置。在添加新聞時,除常規(guī)的添加新聞標題、新聞內(nèi)容、新聞作者和新聞簡介外,還可選擇是否為首頁新聞、是否為推薦新聞和是否在首頁滾動圖片(上傳圖片)等,對新聞內(nèi)容的字體、字號和字體顏色可以調整,類似Word的一些簡單的編輯功能,還可設置超鏈接和插入表格等。如添加新聞者為新聞輸入員,其所添加的新聞需要系統(tǒng)管理員或審核員經(jīng)審核后才能發(fā)布到網(wǎng)上;如是管理員或者審核員添加新聞的話,不需要再經(jīng)誰審核,直接可以發(fā)布到網(wǎng)上。管理新聞功能包括對任一條新聞內(nèi)容可作相應修改,也可刪除任何一條不再需要保留的新聞。管理新聞分類包括對新聞分類名稱作修改,也可將任一分類名刪除,刪除后其分類下的所有新聞也將被刪除。添加用戶時,用戶等級可為管理員、審核員或者輸入員之一,管理用戶包括修改用戶名、密碼和用戶等級,也可將任一用戶刪除。系統(tǒng)設置包括設置網(wǎng)站標題、網(wǎng)站地址、首頁圖片、網(wǎng)站公告(可用來顯示當前有哪些新聞輸入員所添加的新聞沒有通過審核,具體的原因理由等)、網(wǎng)站鏈接(此文本內(nèi)容可更改)和底部信息(可放置一些與站點相關的文本內(nèi)容等),對系統(tǒng)設置里的內(nèi)容,隨時可做相應的修改,這權限只有系統(tǒng)管理員才擁有。風格設置指從系統(tǒng)八種風格里任選一種作為當前網(wǎng)站的默認風格。友情鏈接主要是以圖片的形式鏈接到其它網(wǎng)站,作用跟系統(tǒng)設置里的網(wǎng)站鏈接功能一樣。系統(tǒng)功能模塊劃分:從功能描述的內(nèi)容可以看到,本系統(tǒng)可以實現(xiàn)五個完整的功能。根據(jù)這些功能,設計出系統(tǒng)的功能模塊,如圖3-3所示。圖3-3新聞發(fā)布總體系統(tǒng)功能模塊示意圖3.3數(shù)據(jù)庫設計1.ER關系圖ER關系模型如圖。評論信息擁有評論新聞信息評論信息擁有評論新聞信息M1新聞類別信息屬于類別新聞類別信息屬于類別11圖3-4ER關系模型圖2.實體屬性圖根據(jù)分析可劃分出新聞信息、新聞類別信息、評論信息和用戶信息和幾個實體,對應的實體圖分別如圖3-5至圖3-8所示。(1)新聞信息新聞內(nèi)容新聞類別新聞內(nèi)容新聞類別發(fā)布時間新聞標題發(fā)布時間新聞標題新聞信息新聞信息新聞ID新聞點擊率新聞ID新聞點擊率圖3-5新聞信息實體的E-R模型(2)評論信息評論者姓名評論內(nèi)容評論者姓名評論內(nèi)容評論ID評論時間評論ID評論時間評論信息評論信息圖3-6評論信息實體的E-R模型(3)用戶信息密碼用戶名密碼用戶名用戶信息用戶信息圖3-7用戶信息實體的E-R模型(4)新聞類別信息類別ID類別名稱類別ID類別名稱新聞類別信息新聞類別信息圖3-8新聞類別信息實體的E-R模型3.3.2數(shù)據(jù)流圖1、前臺數(shù)據(jù)流圖圖3-9前臺的數(shù)據(jù)流圖數(shù)據(jù)庫中有兩個表用于前臺的數(shù)據(jù)的存放,新聞信息表newsinfo中存放新聞的內(nèi)容,標題,點擊量等數(shù)據(jù),通過各種命令與前臺進行數(shù)據(jù)交換。留言信息表存放用戶的留言。前臺的數(shù)據(jù)流圖如圖3-9所示。2、后臺數(shù)據(jù)流圖后臺的數(shù)據(jù)流圖如圖3-10所示。評論操作信息評論操作結果評論操作信息評論操作結果圖3-10后臺數(shù)據(jù)流圖3.3.3表結構設計 本系統(tǒng)采用oracle數(shù)據(jù)庫,表的結構分別如表3-1至表3-7所示。(1)公告表T_GONGGAO表3-1公告表T_GONGGAO字段名稱數(shù)據(jù)類型說明IDVARCHAR2(50)不能為空TITLEVARCHAR2(500)公告標題CONTENTVARCHAR2(4000)公告內(nèi)容SHIJIANVARCHAR2(50)發(fā)布時間(2)留言表T_LIUYAN表3-2留言表T_LIUYAN字段名稱數(shù)據(jù)類型說明IDVARCHAR2(50)不能為空TITLEVARCHAR2(50)留言標題CONTENTVARCHAR2(4000)留言內(nèi)容SHIJIANVARCHAR2(50)留言發(fā)布時間USER_IDVARCHAR2(50)留言用戶ID(3)新聞表T_NEWS表3-3新聞表T_NEWS字段名稱數(shù)據(jù)類型說明IDVARCHAR2(50)不能為空CATELOG_IDVARCHAR2(50)新聞類別TITLEVARCHAR2(500)新聞標題CONTENTVARCHAR2(4000)新聞內(nèi)容SHIJIANVARCHAR2(50)新聞發(fā)布時間DELVARCHAR2(50)新聞是否刪除(4)用戶表T_USER表3-4用戶表T_USER字段名稱數(shù)據(jù)類型說明IDVARCHAR2(50)不能為空LOGINNAMEVARCHAR2(50)用戶登陸名LOGINPWVARCHAR2(50)用戶登陸密碼NAMEVARCHAR2(50)姓名SEXVARCHAR2(50)性別AGEVARCHAR2(50)年齡ADDRESSVARCHAR2(50)地址TELVARCHAR2(50)電話EMALLVARCHAR2(50)電子郵箱QQVARCHAR2(50)QQDELVARCHAR2(50)是否刪除(5)管理員T_ADMIN表3-5管理員T_ADMIN字段名稱數(shù)據(jù)類型說明USERIDNUMBER(4)不能為空USERNAMEVARCHAR2(50)管理員名USERPEVARCHAR2(50)管理員登陸密碼(6)新聞類別T_CATELOG表3-6新聞類別T_CATELOG字段名稱數(shù)據(jù)類型說明IDVARCHAR2(50)不能為空NAME1VARCHAR2(50)新聞類別名稱DELVARCHAR2(50)新聞類別是否刪除(7)新聞評論T_PINGLUN表3-7新聞評論T_PINGLUN字段名稱數(shù)據(jù)類型說明IDVARCHAR2(50)不能為空CONTENTVARCHAR2(4000)留言內(nèi)容SHIJIANVARCHAR2(50)留言發(fā)布時間USER_IDVARCHAR2(50) 留言用戶ID4詳細設計4.1首頁的設計4.1.1功能描述及實現(xiàn)的界面首頁:主要功能是顯示最熱門、最新和推薦的新聞,顯示新聞搜索功能、頁面新聞分類、公告,用戶登錄等,如圖4-1所示。圖4-1首頁新聞詳細內(nèi)容查看頁:在首頁里點擊新聞標題所進入的頁面,顯示當前所點擊新聞的詳細內(nèi)容,新聞標題正中加粗顯示,在添加新聞時,根據(jù)所編輯的新聞內(nèi)容對應顯示,如圖4-2所示。圖4-2新聞詳細內(nèi)容查看頁4.1.2代碼前臺首頁顯示:publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListgonggaoList=newArrayList(); Stringsql="select*fromt_gonggaoorderbyiddesc"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tgonggaogonggao=newTgonggao(); gonggao.setId(rs.getString("id")); gonggao.setTitle(rs.getString("title")); gonggao.setContent(rs.getString("content")); gonggao.setShijian(rs.getString("shijian")); gonggaoList.add(gonggao); } rs.close(); }4.2注冊登錄模塊的設計4.2.1功能描述及實現(xiàn)的界面用戶注冊界面:用戶要想在本網(wǎng)站購買商品就必須要去注冊成為本網(wǎng)站的會員,只需點擊“注冊”,如圖4-3所示。圖4-3用戶注冊界面用戶在填寫完信息后即可提交信息,如果發(fā)現(xiàn)填寫的信息有誤可以馬上點擊“清除”重添,用戶最好記住自己所添寫的信息,特別是“密碼提示”和“密碼答案”,因為這可以為你找回密碼。在提交的過程中將會有一個腳本語言函數(shù)對用戶提交的信息的要求及信息格式的正確性進行判斷用戶登錄界面:用戶填寫已注冊的用戶名和密碼登錄系統(tǒng),如圖4-4所示。圖4-4用戶登陸頁面用戶一旦成為本網(wǎng)站的會員后,即可在登陸頁面中登陸,用戶只要輸入自己的用戶名和密碼即可實現(xiàn)登陸。這里有JSP函數(shù)對用戶名和密碼進行判斷,以此來保證用戶的合法性。4.2.2代碼用戶管理:publicvoiduserReg(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringaddress=req.getParameter("address"); Stringtel=req.getParameter("tel"); Stringemail=req.getParameter("email"); Stringqq=req.getParameter("qq"); Stringdel="no"; Stringsql="insertintot_uservalues(?,?,?,?,?,?,?,?,?,?,?)"; Object[]params={id,loginname,loginpw,name,sex,age,address,tel,email,qq,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed();StringtargetURL="/common/add_success.jsp"; dispatch(targetURL,req,res); publicvoiduserLogout(HttpServletRequestreq,HttpServletResponseres) { req.getSession().setAttribute("user",null); StringtargetURL="/qiantai/default.jsp"; dispatch(targetURL,req,res); }4.3管理員登錄模塊的設計4.3.1功能描述及實現(xiàn)的界面管理員登陸界面:登陸的用戶名和密碼必須是已經(jīng)保存在數(shù)據(jù)表T_ADMIN中的數(shù)據(jù)信息如圖4-5所示。圖4-5管理員登陸界面4.3.2代碼登錄驗證:if(userType==0)//系統(tǒng)管理員登陸 { Stringsql="select*fromt_adminwhereuserName=?anduserPw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); try { ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdminadmin=newTAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",0); session.setAttribute("admin",admin); } rs.close(); } catch(SQLExceptione) { System.out.println("登錄失?。?); e.printStackTrace(); } finally { mydb.closed(); } }4.4修改登錄密碼模塊的設計4.4.1功能描述及實現(xiàn)的界面修改登陸密碼頁面:用戶可以通過兩次輸入新密碼修改現(xiàn)有密碼如圖4-6所示。圖4-6修改登陸密碼頁面4.4.2代碼修改登錄密碼:publicStringadminPwEdit(StringuserPwNew){ System.out.println("DDDD"); try { Thread.sleep(700); } catch(InterruptedExceptione) { e.printStackTrace(); } WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)session.getAttribute("admin"); Stringsql="updatet_adminsetuserPw=?whereuserId=?"; Object[]params={userPwNew,admin.getUserId()}; DBmydb=newDB(); mydb.doPstm(sql,params); return"yes";}4.5注冊用戶管理模塊的設計4.5.1功能描述及實現(xiàn)的界面注冊用戶管理頁面:管理員可以對已注冊用戶進行刪除如圖4-7所示。圖4-7注冊用戶管理頁面4.5.2代碼publicvoiduserMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListuserList=newArrayList(); Stringsql="select*fromt_userwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tuseruser=newTuser(); user.setId(rs.getString("id")); user.setLoginname(rs.getString("loginname")); user.setLoginpw(rs.getString("loginpw")); user.setLoginpw(rs.getString("loginpw")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); user.setAge(rs.getString("age")); user.setAddress(rs.getString("address")); user.setTel(rs.getString("tel")); user.setEmail(rs.getString("email")); user.setQq(rs.getString("qq")); userList.add(user); } rs.close(); } mydb.closed(); req.setAttribute("userList",userList); req.getRequestDispatcher("admin/user/userMana.jsp").forward(req,res); }4.6公告管理模塊的設計4.6.1功能描述及實現(xiàn)的界面公告管理頁面:管理員可以對公告進行查看、添加、刪除等操作如圖4-8所示。圖4-8公告管理頁面4.6.2代碼公告管理:publicvoidgonggaoAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); Stringsql="insertintot_gonggaovalues(?,?,?,?)"; Object[]params={id,title,content,shijian}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","gonggao?type=gonggaoMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }4.7新聞類別管理模塊的設計4.7.1功能描述及實現(xiàn)的界面新聞類別管理頁面:管理員可以對新聞類別進行添加、刪除處理,如圖4-9所示。圖4-9新聞類別管理頁面4.7.2代碼新聞類別刪除:publicvoidcatelogDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParameter("id"); Stringsql="updatet_catelogsetdel='yes'whereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }4.7.3功能描述及實現(xiàn)的界面新聞類別添加頁面:管理員添加新聞類別如圖4-10所示。圖4-10新聞類別添加頁面4.7.4代碼新聞類別添加:publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringname1=req.getParameter("name1"); Stringdel="no"; Stringsql="insertintot_catelogvalues(?,?,?)"; Object[]params={id,name1,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }4.8新聞信息管理模塊的設計4.8.1功能描述及實現(xiàn)的界面新聞信息管理頁面:管理員對新聞的查看、添加、刪除處理,如圖4-11所示。圖4-11新聞信息管理頁面4.8.2代碼新聞信息管理:publicvoidnewsMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListnewsList=newArrayList(); Stringsql="select*fromt_newswheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tnewsnews=newTnews(); news.setId(rs.getString("id")); news.setCatelog_id(rs.getString("catelog_id")); news.setTitle(rs.getString("title")); news.setContent(rs.getString("content")); news.setShijian(rs.getString("shijian")); news.setDel(rs.getString("del")); news.setCatelog_name(liuService.getCatelogName(rs.getString("catelog_id"))); newsList.add(news); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("newsList",newsList); req.getRequestDispatcher("admin/news/newsMana.jsp").forward(req,res); }4.8.3功能描述及實現(xiàn)的界面新聞輸入員頁面:新聞輸入員只具有添加新聞的權限,任何瀏覽者都可注冊成為新聞輸入員,但所添加的新聞并不能直接發(fā)布到網(wǎng)站上顯示,而需經(jīng)過審核員或管理員審核是否給予通過,這保證了網(wǎng)站內(nèi)容管理的合理性,并不是隨便添加的新聞都能發(fā)布如圖4-12所示。圖4-12新聞輸入員頁面4.8.4代碼新聞信息添加:publicvoidnewsAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringcatelog_id=req.getParameter("catelog_id"); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); Stringdel="no"; Stringsql="insertintot_newsvalues(?,?,?,?,?,?)"; Object[]params={id,catelog_id,title,content,shijian,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","news?type=newsMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }4.9留言信息管理模塊的設計4.9.1功能描述及實現(xiàn)的界面留言信息管理頁面:管理員對留言信息的處理,如圖4-13所示。圖4-13留言信息管理頁面4.9.2代碼留言信息管理:publicvoidliuyanDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParameter("id"); Stringsql="deletefromt_liuyanwhereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","liuyan?type=liuyanMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidliuyanMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListliuyanList=newArrayList(); Stringsql="select*fromt_liuyan"; Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tliuyanliuyan=newTliuyan(); liuyan.setId(rs.getString("id")); liuyan.setTitle(rs.getString("title")); liuyan.setContent(rs.getString("content")); liuyan.setShijian(rs.getString("shijian")); liuyan.setUser_id(rs.getString("user_id")); liuyan.setUser_name(liuService.getUserName(rs.getString("user_id"))); liuyanList.add(liuyan); } rs.close(); mydb.closed(); req.setAttribute("liuyanList",liuyanList); req.getRequestDispatcher("admin/liuyan/liuyanMana.jsp").forward(req,res); }5系統(tǒng)測試5.1程序調試在設計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法錯誤,運行程序的時候會有自動提示,而且會要

溫馨提示

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

評論

0/150

提交評論