學(xué)生個(gè)人博客畢業(yè)論文_第1頁(yè)
學(xué)生個(gè)人博客畢業(yè)論文_第2頁(yè)
學(xué)生個(gè)人博客畢業(yè)論文_第3頁(yè)
學(xué)生個(gè)人博客畢業(yè)論文_第4頁(yè)
學(xué)生個(gè)人博客畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)生個(gè)人博客學(xué)生個(gè)人博客 摘要摘要:隨著科學(xué)的發(fā)展,技術(shù)的進(jìn)步,計(jì)算機(jī)在人們生活學(xué)習(xí)中扮演著越來(lái)越重要的角色。 人們開始利用計(jì)算機(jī)交流溝通也變得越來(lái)越頻繁,而博客作為交流的工具,已經(jīng)成為了 人們深度交流溝通的網(wǎng)絡(luò)新方式。 學(xué)生個(gè)人博客主要是為了方便學(xué)生在線交流,溝通,可以交流學(xué)習(xí)心得,展示個(gè)人才能, 聊天交友,還可以作為網(wǎng)絡(luò)個(gè)人日記,發(fā)表自己的心情。 本博客主要由三個(gè)功能模塊組成:注冊(cè)登錄,發(fā)表文章照片,評(píng)論及瀏覽組成。采用 javaee 三大核心框架(struts2,hibernate,spring)的設(shè)計(jì)模式,利用 hibernate 與 mysql 數(shù)據(jù)庫(kù)無(wú)縫對(duì)接,后臺(tái)數(shù)據(jù)庫(kù)是 mysq

2、l5.5,該數(shù)據(jù)庫(kù)具有是開源的數(shù)據(jù)庫(kù)系統(tǒng), 該數(shù)據(jù)庫(kù)具有較高的完整性,一致性,安全性,博客網(wǎng)站本身運(yùn)行在 tomcat6.0 服務(wù)器 上。 關(guān)鍵詞關(guān)鍵詞:博客,核心框架,學(xué)子博客,mysql 數(shù)據(jù)庫(kù) 目錄目錄 摘要摘要 .1 abstractabstract .1 第一章第一章 緒緒 論論 .4 1.11.1 選題背景選題背景.4 1.21.2 課題研究意義課題研究意義.4 1.31.3 論文的組織結(jié)構(gòu)和具體安排論文的組織結(jié)構(gòu)和具體安排.4 第二章第二章 個(gè)人博客需求分析個(gè)人博客需求分析 .5 2.12.1 可行性分析可行性分析.5 .1 技術(shù)可行性技術(shù)可行性 .5 2.1.2

3、.2.1.2.經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性 .5 2.22.2 個(gè)人博客需求概述個(gè)人博客需求概述.5 .1 網(wǎng)站目標(biāo)網(wǎng)站目標(biāo).5 2.32.3 個(gè)人博客網(wǎng)站需求模型個(gè)人博客網(wǎng)站需求模型.5 .1 功能描述功能描述.5 .2 詳細(xì)功能描述詳細(xì)功能描述.6 .3 主要功能模塊處理流程的描述主要功能模塊處理流程的描述.6 第三章第三章 整體設(shè)計(jì)整體設(shè)計(jì) .10 3.13.1 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì).10 .1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)設(shè)計(jì)概述.10 .2 用戶信息表結(jié)構(gòu)設(shè)計(jì)用戶信息表結(jié)構(gòu)設(shè)計(jì) .11 .

4、3 個(gè)性化設(shè)置表表結(jié)構(gòu)設(shè)計(jì)個(gè)性化設(shè)置表表結(jié)構(gòu)設(shè)計(jì).11 .4 文章列表表結(jié)構(gòu)設(shè)計(jì)文章列表表結(jié)構(gòu)設(shè)計(jì).11 .5 評(píng)論列表表結(jié)構(gòu)設(shè)計(jì)評(píng)論列表表結(jié)構(gòu)設(shè)計(jì).12 .6 點(diǎn)擊量列表表結(jié)構(gòu)設(shè)計(jì)點(diǎn)擊量列表表結(jié)構(gòu)設(shè)計(jì).12 .7 留言板列表表結(jié)構(gòu)設(shè)計(jì)留言板列表表結(jié)構(gòu)設(shè)計(jì).12 第四章第四章 程序設(shè)計(jì)與編碼程序設(shè)計(jì)與編碼 .13 4.14.1 開發(fā)平臺(tái)與工具開發(fā)平臺(tái)與工具.13 .1 myeclipse8.6myeclipse8.6 平臺(tái)平臺(tái).13 .2 服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù) .13 4.24.2 程序設(shè)計(jì)

5、程序設(shè)計(jì).13 .1 程序設(shè)計(jì)概述程序設(shè)計(jì)概述.13 .2 三大框架之間的連接和配置三大框架之間的連接和配置 .14 .3 注冊(cè)登錄模塊的程序設(shè)計(jì)注冊(cè)登錄模塊的程序設(shè)計(jì).20 .4 個(gè)性化設(shè)置模塊功能的實(shí)現(xiàn)個(gè)性化設(shè)置模塊功能的實(shí)現(xiàn).24 .5 發(fā)表查看文章模塊功能的實(shí)現(xiàn)發(fā)表查看文章模塊功能的實(shí)現(xiàn) .24 .6 評(píng)論模塊功能的實(shí)現(xiàn)評(píng)論模塊功能的實(shí)現(xiàn) .27 .7 相冊(cè)模塊功能的實(shí)現(xiàn)相冊(cè)模塊功能的實(shí)現(xiàn) .29 .8 組件化分頁(yè)模塊組件化分頁(yè)模塊 .31 .

6、9 個(gè)人信個(gè)人信息息模塊模塊 .33 .10 留言板模塊功能的實(shí)現(xiàn)留言板模塊功能的實(shí)現(xiàn) .35 第五章第五章 測(cè)試博客測(cè)試博客 .39 5.15.1 軟件測(cè)試分析軟件測(cè)試分析.39 .1 測(cè)試的目的和重要性測(cè)試的目的和重要性 .39 .2 測(cè)試的方法與步驟測(cè)試的方法與步驟 .39 5.25.2 設(shè)計(jì)測(cè)試用例設(shè)計(jì)測(cè)試用例.39 .1 單元測(cè)試單元測(cè)試.39 .2 集成測(cè)試集成測(cè)試.41 .3 驗(yàn)收測(cè)試驗(yàn)收測(cè)試 .41 第六章第六章 結(jié)束語(yǔ)結(jié)束語(yǔ) .42 6.16.1 完成效果完成效果.42 6.26

7、.2 改進(jìn)意見改進(jìn)意見.42 6.36.3 收獲體會(huì)收獲體會(huì).42 參考文獻(xiàn)參考文獻(xiàn): .43 致致 謝謝 .44 第一章第一章 緒緒 論論 1.11.1 選題背景選題背景 在科技飛速發(fā)展的今天,互聯(lián)網(wǎng)正成為人們快速獲取、發(fā)布和傳遞信息的最為便捷的 渠道,它在人們?nèi)粘5纳詈蛯W(xué)習(xí)中發(fā)揮著重要的作用。而近年來(lái)博客和博客文化正在 成為互聯(lián)網(wǎng)的熱點(diǎn),并被視為是 e-mail,bbs,icq 之后的第四種網(wǎng)絡(luò)交流方式,由于博 客的溝通方式比電子郵件、討論群組等更為簡(jiǎn)單容易,現(xiàn)在已經(jīng)成為了家庭、公司、部 門、團(tuán)隊(duì)之間越來(lái)越盛行的溝通工具了。博客正在改變著當(dāng)今社會(huì)的交流方式,越來(lái)越 多的人選擇加入到博客的

8、陣營(yíng)。 我之所以選擇做個(gè)人博客,首先是因?yàn)榭梢詮闹袑W(xué)到很多的網(wǎng)絡(luò)和編程方面的知識(shí), 其次通過(guò)這個(gè)畢業(yè)設(shè)計(jì)可以很好的鍛煉自己的動(dòng)手能力,并提高自己的個(gè)人能力。最后 個(gè)人博客是當(dāng)前互聯(lián)網(wǎng)上的熱點(diǎn),它既可以作為一個(gè)聊天工具又能作為一個(gè)交流的平臺(tái), 對(duì)大多數(shù)人而言都是非常實(shí)用的。 1.21.2 課題研究意義課題研究意義 隨著知識(shí)經(jīng)濟(jì)的到來(lái),人們已經(jīng)開始向信息化社會(huì)邁進(jìn)。信息增長(zhǎng)的速度越來(lái)越快, 人們希望能夠用一種便捷有效的工具來(lái)處理這些信息,并從中獲取對(duì)自己有用的信息, 以提高自己的工作效率。在這個(gè)信息化的時(shí)代,網(wǎng)絡(luò)技術(shù)的運(yùn)用和發(fā)展不僅能夠造福于 人們,還能夠促進(jìn)社會(huì)的進(jìn)步,經(jīng)濟(jì)的發(fā)展。因此,作為一種

9、交流和溝通的工具,對(duì)博 客的研究是非常有必要有意義的。 1.31.3 論文的組織結(jié)構(gòu)和具體安排論文的組織結(jié)構(gòu)和具體安排 本次設(shè)計(jì)的目標(biāo)是,開發(fā)一個(gè)個(gè)人博客網(wǎng)站。借助該網(wǎng)站,不同年級(jí)不同學(xué)院的學(xué) 生可以通過(guò)查看文章學(xué)習(xí)到自己需要的知識(shí),并能夠自己發(fā)表文章,發(fā)表個(gè)人的心得體 會(huì)等。還可以上傳自己的照片,聊天交友等等。 論文分為五個(gè)部分: 第一章即本章緒論,簡(jiǎn)述開發(fā)個(gè)人博客的背景,以及研究博客的意義。 第二章為需求分析,本章中明確了博客需要實(shí)現(xiàn)的功能,分析了博客的開發(fā)流程,并介 紹根據(jù)需求選擇相應(yīng)的開發(fā)工具和技術(shù)。 第三章是總體設(shè)計(jì),詳細(xì)描述了博客需要的數(shù)據(jù)庫(kù)的設(shè)計(jì)情況,并給出了總體界面的設(shè) 計(jì)方案

10、。 第四章為博客的程序設(shè)計(jì)和具體的編碼,包括各個(gè)模塊的實(shí)現(xiàn)方法及其關(guān)鍵的代碼,并 截取了一些圖片作為參考,以便能夠更加直觀的了解博客的實(shí)現(xiàn)情況。 第五章是對(duì)博客進(jìn)行整體的測(cè)試,測(cè)試功能實(shí)現(xiàn)并對(duì)測(cè)試結(jié)果進(jìn)行記錄分析。 第六章是結(jié)束語(yǔ),總結(jié)本次設(shè)計(jì)中的難點(diǎn)和亮點(diǎn)以及自己在這次畢業(yè)設(shè)計(jì)中學(xué)到的知識(shí)。 第二章第二章 個(gè)人博客需求分析個(gè)人博客需求分析 2.12.1 可行性分析可行性分析 個(gè)人博客作為一種新的交流溝通的工具和平臺(tái),能夠有效地促進(jìn)交流,解決學(xué)生的 實(shí)際問(wèn)題,方便學(xué)生的學(xué)習(xí)生活,開發(fā)本網(wǎng)站的可行性研究如下: .1 技術(shù)可行性技術(shù)可行性 技術(shù)上的可行性分析主要分析技術(shù)條件能否順利

11、完成開發(fā)工作,能否滿足實(shí)際的需 求。本網(wǎng)站使用 java 語(yǔ)言開發(fā),利用開源的 tomcat 作為運(yùn)行服務(wù)器,用戶界面簡(jiǎn)潔, 易操作。網(wǎng)站的數(shù)據(jù)庫(kù)采用開源的 mysql 存儲(chǔ)數(shù)據(jù),mysql 能夠處理較大的數(shù)據(jù),同時(shí)保 持?jǐn)?shù)據(jù)的完整性和安全性。因此開發(fā)本網(wǎng)站的平臺(tái)是成熟可行的。 .1.2.經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性 隨著經(jīng)濟(jì)的發(fā)展,計(jì)算機(jī)的普及程度已經(jīng)非常的高了,而開發(fā)本網(wǎng)站的配置和技術(shù) 均可行,因此開發(fā)這樣的一個(gè)網(wǎng)站成本是可以控制的,并且網(wǎng)站的運(yùn)行可以加強(qiáng)學(xué)生之 間的交流和溝通,方便學(xué)生的學(xué)習(xí)生活,還可以有一定的經(jīng)濟(jì)回報(bào),因此該網(wǎng)站在經(jīng)濟(jì) 上是可行的。 2.22.2 個(gè)人博客需求概述

12、個(gè)人博客需求概述 .1 網(wǎng)站目標(biāo)網(wǎng)站目標(biāo) 本網(wǎng)站的核心架構(gòu)是 javaee 中的三大框架,在網(wǎng)站中主要有兩種類型的用戶。即注 冊(cè)用戶和非注冊(cè)用戶。注冊(cè)并登陸的用戶可以在網(wǎng)站中查看自己活著他人發(fā)表的文章, 可以上傳自己的照片,還可以對(duì)自己感興趣的文章加以標(biāo)注和評(píng)論。而對(duì)于非注冊(cè)的用 戶,只能以瀏覽者的身份進(jìn)入,可以查看網(wǎng)站中其他人發(fā)表的文章,也可以匿名的發(fā)表 評(píng)論,但是不能寫文章,也不能上傳自己的圖片等。 2.32.3 個(gè)人博客網(wǎng)站需求模型個(gè)人博客網(wǎng)站需求模型 .1 功能描述功能描述 個(gè)人博客網(wǎng)站的主要目標(biāo)是作為一個(gè)交流的工具和一個(gè)溝通的平臺(tái),讓不同年級(jí)不同 專業(yè)

13、的學(xué)生可以在這里交流學(xué)習(xí)的經(jīng)驗(yàn),可以發(fā)表自己的想法,還可以上傳自己的圖片 來(lái)聊天交友,本網(wǎng)站的基本功能如下: 1 1注冊(cè)登錄注冊(cè)登錄 凡是要發(fā)表文章顯示個(gè)人信息的用戶均必須先注冊(cè)賬號(hào),再通過(guò)登錄驗(yàn)證才能夠進(jìn)行各 種功能的操作,不注冊(cè)登錄的用戶在網(wǎng)站中權(quán)限較低。 2 2網(wǎng)站設(shè)置網(wǎng)站設(shè)置 網(wǎng)站制作者可以修改網(wǎng)頁(yè)的基本頁(yè)面,更改系統(tǒng)時(shí)間。 3.3.用戶功能用戶功能 用戶可以查看,刪除,評(píng)論相應(yīng)的文章,可以通過(guò)問(wèn)題回自己的賬戶密碼。 4.4.其他的功能其他的功能 網(wǎng)站制作者可以管理網(wǎng)站,并擁有起亞用戶所擁有的所有的權(quán)限和功能。 .2 詳細(xì)功能描述詳細(xì)功能描述 學(xué)生通過(guò)瀏覽器訪問(wèn)到本網(wǎng)站

14、,可以使用一下功能: 1)注冊(cè)用戶 按照規(guī)定注冊(cè)一個(gè)正確的賬號(hào)。 2)用戶登錄 輸入注冊(cè)過(guò)的用戶名和密碼登錄。 3)修改登錄密碼 可以修改自己的登錄密碼 4)查看文章 可以查看其它人發(fā)表的文章,也可以查看自己已經(jīng)發(fā)表過(guò)的文章。 5)修改個(gè)性化設(shè)置 可以更改個(gè)人的設(shè)置 6)評(píng)論文章 可以對(duì)好的文章進(jìn)行評(píng)論,還可以查看別人的評(píng)論。 7)上傳相冊(cè) 對(duì)登錄用戶,可以上傳自己的照片。 8)鏈接 本網(wǎng)站提供了對(duì)一些知名博客的鏈接,可以點(diǎn)擊鏈接進(jìn)入其他博客網(wǎng)站。 8)留言 本網(wǎng)站提供了留言板,所有登陸用戶都可以進(jìn)行留言或者查看別人的留言。 .3 主要功能模塊處理流程的描述主要功能模塊處理流程

15、的描述 個(gè)人博客網(wǎng)站主要可以分為幾個(gè)個(gè)大的模塊,第一個(gè)模塊是用戶注冊(cè)登錄模塊,即進(jìn)入 網(wǎng)站模塊。第二個(gè)模塊是用戶的個(gè)性化設(shè)置,第三個(gè)模塊是發(fā)表文章,查看文章內(nèi)容, 第四個(gè)模塊是相冊(cè)模塊開發(fā)與 rss 訂閱。 用戶注冊(cè)登錄模塊:用戶注冊(cè)登錄模塊: (1)功能描述 完成注冊(cè)登錄,填寫基本信息 查看并修改個(gè)人信息。 (2)具體流程圖 個(gè)性化設(shè)置模塊個(gè)性化設(shè)置模塊 (1)功能描述 可以設(shè)置個(gè)性化頁(yè)面,用于顯示在網(wǎng)站上方。 可以修改個(gè)性化語(yǔ)句。 (2)具體流程圖 發(fā)表,管理文章模塊發(fā)表,管理文章模塊 (1)功能描述 登陸成功后發(fā)表自己的文章。 查看管理自己的文章,還可以查看他人的文章。 (2)具體的流程

16、圖: 相冊(cè)模塊開發(fā)與相冊(cè)模塊開發(fā)與 rssrss 訂閱:訂閱: (1)功能描述 可以點(diǎn)擊上傳圖片到服務(wù)器。 通過(guò) rss 訂閱能夠快速查找到文章和顯示新添加的文章 (2)流程圖 第三章第三章 整體設(shè)計(jì)整體設(shè)計(jì) 3.13.1 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) .1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述數(shù)據(jù)庫(kù)設(shè)計(jì)概述 數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)最核心的部分,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的設(shè)計(jì)成敗,因 此本節(jié)專門來(lái)討論有關(guān)數(shù)據(jù)庫(kù)的設(shè)計(jì)。 數(shù)據(jù)庫(kù)作為管理數(shù)據(jù)的最新技術(shù)。近年來(lái)隨著計(jì)算機(jī)的大力發(fā)展數(shù)據(jù)庫(kù)管理系統(tǒng)已 從專用的應(yīng)用程序發(fā)展成為通用的系統(tǒng)軟件。由于現(xiàn)在的數(shù)據(jù)庫(kù)都具有數(shù)據(jù)結(jié)構(gòu)化,最 低冗余度,較高的程序與數(shù)據(jù)獨(dú)立性,

17、易于擴(kuò)充,易于編制應(yīng)用程序等優(yōu)點(diǎn),較大的信 息系統(tǒng)都是建立在數(shù)據(jù)庫(kù)設(shè)計(jì)之上的。 數(shù)據(jù)庫(kù)的出現(xiàn)改變了人們存儲(chǔ)數(shù)據(jù)的方式,極大地提高了存儲(chǔ)數(shù)據(jù)的能力,方便了 人們對(duì)數(shù)據(jù)的管理和利用,并提高了人們的決策的可靠性。目前,數(shù)據(jù)庫(kù)已經(jīng)成為現(xiàn)代 信息系統(tǒng)不可分割的重要組成部分。數(shù)據(jù)庫(kù)技術(shù)也已經(jīng)成為計(jì)算機(jī)領(lǐng)域中發(fā)展最快的技 術(shù)之一。 數(shù)據(jù)庫(kù)設(shè)計(jì)是將現(xiàn)實(shí)世界的實(shí)體模型與需求轉(zhuǎn)換成數(shù)據(jù)庫(kù)的模型的過(guò)程,它是建立 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的核心問(wèn)題。數(shù)據(jù)庫(kù)及其應(yīng)用的性能都建立在良好的數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ) 之上,數(shù)據(jù)庫(kù)的數(shù)據(jù)是一切操作的基礎(chǔ),如果數(shù)據(jù)庫(kù)設(shè)計(jì)不好,那么其它一切用于提高 數(shù)據(jù)庫(kù)性能的方法收效都是有限的。數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是

18、如何使設(shè)計(jì)的數(shù)據(jù)庫(kù)能合理地 存儲(chǔ)用戶的數(shù)據(jù),方便用戶進(jìn)行數(shù)據(jù)處理。 數(shù)據(jù)庫(kù)的設(shè)計(jì)都必須遵循一定的規(guī)則,每一個(gè)數(shù)據(jù)庫(kù)都有自己不同的規(guī)則,在關(guān)系 型數(shù)據(jù)庫(kù)中,這種規(guī)則就是范式,范式是符合某一種級(jí)別的關(guān)系模式的集合。一般人們 設(shè)計(jì)數(shù)據(jù)庫(kù)都遵循第三范式。即:數(shù)據(jù)庫(kù)表中不包含已在其他表中包含的非主關(guān)鍵字信 息。采用范式減少了數(shù)據(jù)冗余,節(jié)約了存儲(chǔ)空間,同時(shí)加快了操作數(shù)據(jù)庫(kù)的速度。 整個(gè)博客網(wǎng)站所包括的信息表有 1:用戶信息表:(b_user) 2:個(gè)性化設(shè)置表:(b_blog) 3:文章列表:(b_article) 4:評(píng)論列表:(b_criticle) 5:點(diǎn)擊量列表:(b_clickrate) 5:留

19、言板列表:(guestbook)等相應(yīng)信息表??蓪⑦@些信息抽象為所需要的數(shù)據(jù)項(xiàng)和數(shù) 據(jù)結(jié)構(gòu) 1) 用戶信息表(用戶 id,用戶姓名,昵稱,郵箱,密碼,驗(yàn)證碼,是否驗(yàn)證,密保問(wèn)題, 密保答案) 2) 個(gè)性化設(shè)置表(個(gè)性化 id,用戶 id,個(gè)性化題目,個(gè)性化內(nèi)容) 3) 文章列表(文章 id,文章標(biāo)題,文章內(nèi)容,用戶姓名,發(fā)表日期,是否已讀) 4) 評(píng)論列表(評(píng)論 id,文章 id,評(píng)論內(nèi)容,用戶姓名) 5) 點(diǎn)擊量列表(點(diǎn)擊量 id,文章 id,點(diǎn)擊 ip 地址,點(diǎn)擊時(shí)間) 6) 留言板列表(留言 id,作者,標(biāo)題,內(nèi)容,留言時(shí)間) 注:帶方框的表示表的主鍵 .2 用戶信息表結(jié)

20、構(gòu)設(shè)計(jì)用戶信息表結(jié)構(gòu)設(shè)計(jì) 用戶信息表主要保存博客網(wǎng)站已經(jīng)注冊(cè)過(guò)的用戶基本信息,主要包括用戶的登錄賬 戶和密碼以及一些基本的驗(yàn)證。表的具體結(jié)構(gòu)如下所示: 用戶信息表 b_user 字段名稱數(shù)據(jù)類型 字段長(zhǎng)度 是否為空說(shuō)明 useridint 10 nokey usernamevarchar 50 no用戶名 nicknamevarchar20no昵稱 passwordvarchar20no密碼 emailvarchar50no郵箱 emailvalidatecodevarchar50no郵箱驗(yàn)證碼 isvalidateemailchar1yes郵箱是否已驗(yàn)證 questionvarchar20n

21、o密保問(wèn)題 answervarchar50no密保答案 .3 個(gè)性化設(shè)置表表結(jié)構(gòu)設(shè)計(jì)個(gè)性化設(shè)置表表結(jié)構(gòu)設(shè)計(jì) 該表的設(shè)計(jì)主要是用于存儲(chǔ)登錄用戶的個(gè)性化設(shè)置,主要設(shè)置其頁(yè)面,包括個(gè)性化標(biāo) 題和個(gè)性化內(nèi)容,當(dāng)用戶進(jìn)入時(shí)其個(gè)性化語(yǔ)句會(huì)顯示在上方頁(yè)面的中央,表的具體結(jié)構(gòu) 設(shè)計(jì)如下所示: 個(gè)性化設(shè)置表 b_blog 字段名稱數(shù)據(jù)類型 字段長(zhǎng)度 是否為空說(shuō)明 blogidint 10 nokey useridint 10 yse 用戶 id 號(hào) blogtitlevarchar20no 個(gè)性化標(biāo)題 idiographvarchar20no個(gè)性化內(nèi)容 .4 文章列表表結(jié)構(gòu)設(shè)計(jì)文

22、章列表表結(jié)構(gòu)設(shè)計(jì) 文章列表主要用來(lái)存儲(chǔ)用戶發(fā)表的文章,包括文章的標(biāo)題,內(nèi)容,該用戶是否已閱讀, 查看的日期以及用戶名。用過(guò)該表可以讀取當(dāng)前博客網(wǎng)站的所有文章信息,還可以根據(jù) 登錄用戶名查看用戶個(gè)人發(fā)表的文章信息,表的具體結(jié)構(gòu)設(shè)計(jì)如下所示: 文章列表 b_article 字段名稱數(shù)據(jù)類型 字段長(zhǎng)度 是否為空說(shuō)明 articleidint 10 nokey titlevarchar 255 no 文章標(biāo)題 contentvarchar255no 文章內(nèi)容 usernamevarchar255no 用戶名 datedatetime19yes查看文章日期 hasreadint10no用戶是否已查看 3

23、. 評(píng)論列表表結(jié)構(gòu)設(shè)計(jì)評(píng)論列表表結(jié)構(gòu)設(shè)計(jì) 此表的設(shè)計(jì)主要用于存儲(chǔ)用戶對(duì)文章的評(píng)論信息,主要有兩種用戶:未登錄的用戶和登 錄用戶,登錄用戶在評(píng)論后會(huì)顯示其用戶名,未登錄用戶只能以匿名的方式發(fā)表評(píng)論,表 的具體結(jié)構(gòu)設(shè)計(jì)如下所示: 評(píng)論列表 b_criticle 字段名稱數(shù)據(jù)類型 字段長(zhǎng)度 是否為空說(shuō)明 critiqueidint 10 nokey articleidint 10 no 文章 id 號(hào) critiquecontentvarchar500no評(píng)論內(nèi)容 usernamevarvhar255no用戶名 .6 點(diǎn)擊量列表表結(jié)構(gòu)設(shè)計(jì)點(diǎn)擊量列表表結(jié)構(gòu)設(shè)計(jì) 該表的設(shè)

24、計(jì)主要用于記錄文章的點(diǎn)擊數(shù)量,這里要根據(jù)用戶的 ip 地址來(lái)判斷不同的用戶, 因此該表存儲(chǔ)文章的 id 號(hào),用戶的 ip 地址以及點(diǎn)擊的時(shí)間。表的具體結(jié)構(gòu)設(shè)計(jì)如下所 示: 點(diǎn)擊量列表 b_clicrate 字段名稱數(shù)據(jù)類型 字段長(zhǎng)度 是否為空說(shuō)明 clickrateid int 10 nokey articleidint 10 no 文章 id 號(hào) ipvarchar255no 訪問(wèn) ip 地址 clicktimedate10yes點(diǎn)擊的時(shí)間 .7 留言板列表表結(jié)構(gòu)設(shè)計(jì)留言板列表表結(jié)構(gòu)設(shè)計(jì) 該表的設(shè)計(jì)主要用于記錄文章的點(diǎn)擊數(shù)量,這里要根據(jù)用戶的 ip 地址來(lái)判斷不同的用戶, 因

25、此該表存儲(chǔ)文章的 id 號(hào),用戶的 ip 地址以及點(diǎn)擊的時(shí)間。表的具體結(jié)構(gòu)設(shè)計(jì)如下所 示: 留言列表 guestbook 字段名稱數(shù)據(jù)類型 字段長(zhǎng)度 是否為空說(shuō)明 id int 10 nokey authorvarther 20 yes作者 titlevarchar20yes 標(biāo)題 contentvarthar500yes評(píng)論內(nèi)容 intimevarchar20yes留言時(shí)間 第四章第四章 程序設(shè)計(jì)與編碼程序設(shè)計(jì)與編碼 4.14.1 開發(fā)平臺(tái)與工具開發(fā)平臺(tái)與工具 .1 myeclipse8.6myeclipse8.6 平臺(tái)平臺(tái) 本博客采用 myeclipse 工作平臺(tái),myec

26、lipse 企業(yè)級(jí)工作平臺(tái)(myeclipse enterprise workbench ,簡(jiǎn)稱 myeclipse)是對(duì) eclipse ide 的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和 j2ee 的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐 富的 j2ee 集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持 html, struts, jsf, css, javascript, sql, hibernate。在結(jié)構(gòu)上 myeclipse 的特征可以分為七類: 1、j2ee 模型;2、web 開發(fā)工具;3、ejb 開發(fā)工具;3、應(yīng)用程序服務(wù)器的連接; 4、j2

27、ee 項(xiàng)目部署服務(wù);6、數(shù)據(jù)庫(kù)服務(wù);7、myeclipse 整合幫助。 在個(gè)人博客的開發(fā)過(guò)程中,應(yīng)用的是 myeclipse8.6 這個(gè)版本,作為 myeclipse 較 新的版本,myeclipse8.6 中的關(guān)鍵特性有:支持最新版本的 apache tomcat,支持 spring 項(xiàng)目,spring 安全向?qū)?,spring 服務(wù)從 wsdl,spring 代碼輔助管理,完整的 java 探測(cè),支持 ajax 工具,支持 web 服務(wù)工具。因此個(gè)人博客運(yùn)行的服務(wù)器我選擇 的是新版本的 apache tomcat 6.0.35 版本。 .2 服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù) 在系

28、統(tǒng)的開發(fā)過(guò)程中使用的服務(wù)器是 tomcat,tomcat 來(lái)源于 apache 軟件基金會(huì) (apache software foundation)的 jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目, ,由 apache、sun 和 其他一些公司及個(gè)人共同開發(fā)而成。由于有了前 sun 公司的參與和支持,最新的 servlet 和 jsp 規(guī)范總是能在 tomcat 中得到體現(xiàn)。并且因?yàn)?tomcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且 免費(fèi),成為目前比較流行的 web 應(yīng)用服務(wù)器。因此本博客選擇了 tomcat 作為其服務(wù)器。 開發(fā)用的系統(tǒng)工具如下表所示: 個(gè)人博客開發(fā)平臺(tái)和工具 工具名稱用途 myeclipse

29、8.6博客的開發(fā)平臺(tái) tomcat6.0 mysql5.5 web 服務(wù)器 數(shù)據(jù)的存儲(chǔ) 4.24.2 程序設(shè)計(jì)程序設(shè)計(jì) .1 程序設(shè)計(jì)概述程序設(shè)計(jì)概述 本博客在設(shè)計(jì)的過(guò)程中運(yùn)用了當(dāng)今非常流行的編程模式-三層架構(gòu)的思想,即將界 面層,業(yè)務(wù)邏輯層,數(shù)據(jù)操作層相分離,使用 javaee 中非常著名的三大框架 (struts2,spring,hibernate)來(lái)分別實(shí)現(xiàn),其中界面層使用 struts2,業(yè)務(wù)邏輯層使用 spring,數(shù)據(jù)操作層使用 hibernate。 struts2 是用于 web 項(xiàng)目中 ui 層的開源的框架,是經(jīng)典的 mvc 模式實(shí)現(xiàn)的案例。作為 一款開源的框架

30、,struts2 具有非常明顯的優(yōu)勢(shì)和特點(diǎn):1.struts2 中將業(yè)務(wù)數(shù)據(jù),顯示頁(yè)面, 動(dòng)作處理等進(jìn)行分離,極大地方便了代碼的維護(hù)。2.struts2 采用的是 front controller 模 式來(lái)實(shí)現(xiàn)對(duì)各種觸發(fā)動(dòng)作的處理,要求所有的請(qǐng)求都經(jīng)過(guò)統(tǒng)一的入口,再進(jìn)行轉(zhuǎn)發(fā),方 便了我們對(duì)代碼的統(tǒng)一控制和管理。3.struts2 中通過(guò) action 類實(shí)現(xiàn)各種邏輯,并且利用 struts2 的核心標(biāo)簽來(lái)完成對(duì)數(shù)據(jù)的呈現(xiàn)。4.struts2 在 servlet 容器中運(yùn)行,通過(guò)配置文件 web.xml 來(lái)完成到相應(yīng)的 action 的跳轉(zhuǎn)。 spring 主要運(yùn)用于業(yè)務(wù)邏輯層,在功能上有潤(rùn)滑劑

31、的美稱。spring 主要通過(guò)控制反轉(zhuǎn), aop 應(yīng)用,面向接口編程來(lái)降低組件之間的耦合度,增加系統(tǒng)的擴(kuò)展性。spring 作為一 個(gè)分層框架,由七個(gè)定義良好的模塊組成,其中最重要的模塊是核心容器。核心容器定 義了創(chuàng)建、配置和管理 bean 的方式,并且提供了 spring 框架的基本功能。beanfactory 作 為核心容器的組件,是工廠模式的實(shí)現(xiàn)。其利用控制反轉(zhuǎn)將應(yīng)用程序的配置和應(yīng)用分開, 減少了代碼的耦合。 hibernate 主要作用于數(shù)據(jù)層,主要用于封裝數(shù)據(jù)訪問(wèn)層的組件。在應(yīng)用程序中的數(shù)據(jù) 用對(duì)象來(lái)體現(xiàn),而數(shù)據(jù)庫(kù)中,數(shù)據(jù)用表的形式保存。hibernate 利用對(duì)象- 關(guān)系映射,將

32、應(yīng)用程序中的對(duì)象(object)與表中的數(shù)據(jù)(relationship)之間的映射(mapping) 。利用 hibernate 可以直接從數(shù)據(jù)庫(kù)中取出 java 對(duì)象,并將 java 對(duì)象直接保存在數(shù)據(jù)庫(kù)中,中間 的 sql 等語(yǔ)句都被封裝了。 .2 三大框架之間的連接和配置三大框架之間的連接和配置 org.springframework.web.context.contextloaderlistener contextconfiglocation classpath:config/spring/applicationcontext.xml 根據(jù)需求將 spring 分配置文

33、件分類: 基本的配置信息(perties),主要用于連接數(shù)據(jù)庫(kù): 在 spring 的配置文件 applicationcontext.xml 中加載外部配置文件信息: classpath:config/props/perties $dialect $format_sql $show_sql config/hibernate/hbm/user.hbm.xml config/hibernate/hbm/blog.hbm.xml config/hibernate/hbm/article.hbm.xml config/hibernate/hbm/clickrate.hbm.xm

34、l config/hibernate/hbm/critique.hbm.xml 在 hibernate 的配置文件里加載數(shù)據(jù)庫(kù)表信息 hbm 配置文件主要放置表的信息:(如 article.hbm.xml 文件) struts2 的配置文件放在自定義的文件夾下: 在 web.xml 中添加 struts2 監(jiān)視器: struts2 org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter config struts-default.xml,struts-plugin.xml,config/struts/strut

35、s.xml struts2 *.action struts2 *.jsp 聲明 spring 對(duì) struts2 管理: 其中 applicationcontext-web.xml 主要用于聲明 struts2 中的 action:(部分代碼) 其中 applicationcontext-biz.xml 主要加載業(yè)務(wù)邏輯層的 action:(部分代碼) applicationcontext-dao.xml 主要加載 dao 層的 action: .3 注冊(cè)登錄模塊的程序設(shè)計(jì)注冊(cè)登錄模塊的程序設(shè)計(jì) 本模塊主要用于用戶第一次進(jìn)入時(shí)注冊(cè)和登錄,用戶注冊(cè)時(shí)根據(jù)提示正確的填寫基本 信息,

36、成功后即完成。登錄時(shí)必須輸入正確的用戶名和密碼,否者會(huì)提示錯(cuò)誤,并禁止 用戶發(fā)表文章。 注冊(cè)界面 登錄界面 沒有賬號(hào)的用戶首先選擇注冊(cè)賬戶,在成功注冊(cè)后既可以開始登錄了。在正確輸入了用 戶名,密碼和驗(yàn)證碼后用戶登錄成功。這里注冊(cè)界面我用了兩種校驗(yàn),第一種是在客戶 端 jsp 頁(yè)面進(jìn)行校驗(yàn),第二層校驗(yàn)是在服務(wù)器端校驗(yàn),利用 struts2 提供的方法進(jìn)行。 注冊(cè)模塊代碼: public class doregistaction extends baseaction private user user; private string validatecode; private string get

37、errorinfo; private iuserservice userservice; /這里要利用 spring 的配置獲取器對(duì)象 public void validate() /用戶名檢驗(yàn) if(null = user.getusername() |.equals(user.getusername().trim() this.addfielderror(user.username, 用戶名不能為空); return; if(user.getusername().length()20) this.addfielderror(user.username, 用戶名長(zhǎng)度應(yīng)為 520 位); re

38、turn; /密碼檢驗(yàn) if(null = user.getpassword() |.equals(user.getpassword().trim() this.addfielderror(user.password, 密碼不能為空); return; if(user.getpassword().length() 20) this.addfielderror(user.password, 密碼長(zhǎng)度應(yīng)為 520 位); return; /確認(rèn)密碼檢驗(yàn) if(null = user.getrepassword() |.equals(user.getrepassword().trim() this.

39、addfielderror(user.repassword, 重復(fù)密碼不能為空); return; if(!user.getrepassword().equals(user.getpassword() this.addfielderror(user.repassword, 兩次輸入密碼不一致); return; /昵稱檢驗(yàn) if(null = user.getnickname() |.equals(user.getnickname().trim() this.addfielderror(user.nickname, 昵稱不能為空); return; if(user.getnickname().

40、length()20) this.addfielderror(user.nickname, 昵稱長(zhǎng)度應(yīng)為 220 位); return; /郵箱驗(yàn)證 /昵稱檢驗(yàn) if(null = user.getemail() |.equals(user.getemail().trim() this.addfielderror(user.email, 郵箱不能為空); return; if(user.getemail().length()20) this.addfielderror(user.email, 郵箱長(zhǎng)度應(yīng)為 220 位); return; /密碼保護(hù)答案檢驗(yàn) if(null = user.get

41、answer() |.equals(user.getanswer().trim() this.addfielderror(user.answer, 密碼保護(hù)答案不能為空); return; if(user.getanswer().length()50) this.addfielderror(user.answer, 問(wèn)題長(zhǎng)度應(yīng)為 250 位); return; /檢驗(yàn)驗(yàn)證碼是否正確 if(null = validatecode | .equals(validatecode) this.addfielderror(validatecode, 驗(yàn)證碼不能為空); return; /獲取生成的驗(yàn)證碼

42、 string code = (string) this.session.get(imagecode); if(!code .equals( validatecode) this.addfielderror(validatecode, 驗(yàn)證碼不正確); return; public string execute() try /模擬生成郵箱驗(yàn)證碼 string emailcode = emailcode.emailvalidatecode().tostring(); user.setemailvalidatecode(emailcode); user.setisvalidateemail(fal

43、se); /保存用戶信息到數(shù)據(jù)庫(kù) if(userservice.registuser(user) /將用戶信息放在 session 中保存 this.session.put(userregistinfo, user); return success; else /用戶名被占用 geterrorinfo = 用戶名已被占用; return input; catch (exception e) e.printstacktrace(); return error; 用戶登錄代碼: public string execute() throws exception /1 驗(yàn)證驗(yàn)證碼是否正確 if(! v

44、alidatecode .equals(string) this.session.get(imagecode) validatecodeerrorinfo = 驗(yàn)證碼錯(cuò)誤; return tologin; /2 驗(yàn)證輸入的用戶名和密碼 if(!userservice.isrightuser(user) usernameorpassworderrorinfo = 用戶名或者密碼錯(cuò)誤; return tologin; /將用戶信息保存在 session 中 this.session.put(userlogininfo,userservice.getuser(user); return succes

45、s; .4 個(gè)性化設(shè)置模塊功能的實(shí)現(xiàn)個(gè)性化設(shè)置模塊功能的實(shí)現(xiàn) 本模塊的功能是用戶對(duì)自己的頁(yè)面進(jìn)行個(gè)性化的設(shè)置,可以設(shè)置個(gè)性化標(biāo)題和內(nèi)容, 成功后會(huì)顯示在用戶頁(yè)面的上方,其中個(gè)性化設(shè)置的界面如下: 個(gè)性化設(shè)置代碼:個(gè)性化設(shè)置代碼: / 獲取個(gè)性化內(nèi)容 public blog getbloginfo(user user) list list = this.gethibernatetemplate().find(from blog blog where blog.user = + user.getuserid() ); int size = list.size(); if(list.

46、size() = 0) return null; else return list.get(size -1); /保存?zhèn)€性化內(nèi)容,更新個(gè)性化內(nèi)容 public void save(blog blog) this.gethibernatetemplate().saveorupdate(blog); 4.2.5 發(fā)表查看文章模塊功能的實(shí)現(xiàn)發(fā)表查看文章模塊功能的實(shí)現(xiàn) 該模塊主要有兩個(gè)大的部分:用戶發(fā)表文章和查看自己的文章或者其他人的文章。 用戶要發(fā)表文章必須先登錄,否者不允許發(fā)表,文章的發(fā)表的界面如下: 用戶在發(fā)表文章時(shí)還可以添加圖片和表情等信息如: 插入表情: 顯示文章: 顯示文章內(nèi)容: 發(fā)表,顯

47、示文章代碼發(fā)表,顯示文章代碼: /保存文章代碼 public void savearticle(article article) this.gethibernatetemplate().saveorupdate(article); /顯示文章代碼,這里要用到分頁(yè)顯示 public list findallarticle(user user) return this.gethibernatetemplate().find(from article art where art.username=?, user.getusername(); 分頁(yè)查詢代碼: /分頁(yè)查詢核心 public list f

48、indbypage(final user user, final page page) return this.gethibernatetemplate().executefind(new hibernatecallback() public object doinhibernate(session session) throws hibernateexception,sqlexception query query = session.createquery(from article art where art.username = ?); /設(shè)置參數(shù) query.setparameter(

49、0, user.getusername(); /設(shè)置每頁(yè)顯示多少個(gè),設(shè)置多大結(jié)果。 query.setmaxresults(page.geteverypage(); /設(shè)置起點(diǎn) query.setfirstresult(page.getbeginindex(); return query.list(); ); / 查詢文章總數(shù) public int findallarticlecount() return (long) (this.gethibernatetemplate().find(select count(*)from article ).get(0).intvalue(); / 封裝分

50、頁(yè) public page(int everypage, int totalcount, int totalpage, int currentpage, int beginindex, boolean hasprepage, boolean hasnextpage) this.everypage = everypage; this.totalcount = totalcount; this.totalpage = totalpage; this.currentpage = currentpage; this.beginindex = beginindex; this.hasprepage =

51、hasprepage; this.hasnextpage = hasnextpage; /分頁(yè)顯示 page page = new page(); page.setcurrentpage(this.getcurrentpage(); page.seteverypage(2); result result = articleservice.showarticlebypage(page); page = result.getpage(); list all = result.getlist(); /點(diǎn)擊量設(shè)置 /獲取登錄 ip loginip loginip = new loginip(); st

52、ring ip = loginip.getloginipaddress(); /獲得日期 simpledateformat sdf = new simpledateformat(yyyy-mm-dd); string stime = sdf.format(new date(); date clicktime = sdf.parse(stime); clickrate clickrate = new clickrate(); clickrate.setarticleid(articleid); clickrate.setclicktime(clicktime); clickrate.setip(

53、ip); /判斷是否已訪問(wèn)過(guò) if(!clickrateservice.isvistor(clickrate) article.sethasread(article.gethasread()+1); /將更新的點(diǎn)擊量保存到數(shù)據(jù)庫(kù)中 articleservice.savearticle(article); 4.2.6 評(píng)論模塊功能的實(shí)現(xiàn)評(píng)論模塊功能的實(shí)現(xiàn) 評(píng)論模塊主要是在查看文章后對(duì)文章內(nèi)容進(jìn)行評(píng)論,如果用戶已經(jīng)登錄則發(fā)表評(píng)論后會(huì) 顯示用戶名,會(huì)登錄的用戶只能以匿名的方式發(fā)表評(píng)論。具體的界面如下: 顯示評(píng)論: 添加評(píng)論: 顯示評(píng)論代碼:顯示評(píng)論代碼: /從數(shù)據(jù)庫(kù)中獲取評(píng)論 public list

54、 findbypage(final article article, final page page) return this.gethibernatetemplate().executefind(new hibernatecallback() public object doinhibernate(session session) throws hibernateexception,sqlexception query query = session.createquery(from critique cri where cri.articleid = ?); /設(shè)置參數(shù) query.set

55、parameter(0, article.getarticleid(); /設(shè)置每頁(yè)顯示多少個(gè),設(shè)置多大結(jié)果。 query.setmaxresults(page.geteverypage(); /設(shè)置起點(diǎn) query.setfirstresult(page.getbeginindex(); return query.list(); ); /分頁(yè)顯示評(píng)論: page page = new page(); page.setcurrentpage(this.getcurrentpage(); page.seteverypage(2); result result = critiqueservice.

56、showcritiquebypage(article, page); request.setattribute(page, result.getpage(); request.setattribute(allcri, result.getlistcritique(); 4.2.7 相冊(cè)模塊功能的實(shí)現(xiàn)相冊(cè)模塊功能的實(shí)現(xiàn) 相冊(cè)模塊主要是登錄用戶可以上傳自己的圖片,圖片最終保存在數(shù)據(jù)庫(kù)中的一個(gè)文件 夾下,根據(jù)不同的用戶來(lái)加以區(qū)分: 利用個(gè)谷歌開源的框架 grebox 查看相冊(cè)信息: 顯示相冊(cè)模塊的代碼:顯示相冊(cè)模塊的代碼: public string execute() throws excepti

57、on /獲得 username user user = (user) this.session.get(userlogininfo); username = user.getusername(); /設(shè)置文件目錄 string photopath = servletactioncontext.getservletcontext().getrealpath(/user/photo/ + username); /使用 file 封裝 file fphotopath = new file(photopath); /獲得相冊(cè)目錄的所有圖片文件 string photolist = fphotopath

58、.list(); /將圖片列表設(shè)置到 request 范圍 httpservletrequest request = servletactioncontext.getrequest(); request.setattribute(photolist, photolist); return success; 上傳圖片代碼:上傳圖片代碼: public string execute() throws exception /創(chuàng)建一個(gè)輸入流 inputstream is = new fileinputstream(myfile); /獲取用戶名 user user = (user) this.sess

59、ion.get(userlogininfo); /設(shè)置文件保存目錄 string photopath = servletactioncontext.getservletcontext().getrealpath(/user/photo/+user.getusername(); file filephotopath = new file(photopath); if(!filephotopath.isdirectory() filephotopath.mkdir(); /解決中文文件名的 went string extension = filenameutils.getextension(thi

60、s.getmyfilefilename(); string filename = uuid.randomuuid().tostring()+.+extension; /設(shè)置目標(biāo)文件 file tofile = new file(photopath,filename); /使用輸出流來(lái)包裝目標(biāo)文件 outputstream os = new fileoutputstream(tofile); byte buffer = new byte1024; int length = 0; while(length = is.read(buffer) 0) os.write(buffer, 0, lengt

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論