安工大軟件開發(fā)技術(shù)報告(社交SNS系統(tǒng)javaweb版_第1頁
安工大軟件開發(fā)技術(shù)報告(社交SNS系統(tǒng)javaweb版_第2頁
安工大軟件開發(fā)技術(shù)報告(社交SNS系統(tǒng)javaweb版_第3頁
安工大軟件開發(fā)技術(shù)報告(社交SNS系統(tǒng)javaweb版_第4頁
安工大軟件開發(fā)技術(shù)報告(社交SNS系統(tǒng)javaweb版_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、安徽工業(yè)大學(xué)軟 件 開 發(fā) 技 術(shù) 報 告課題名稱設(shè)計SNS設(shè)計與實現(xiàn)學(xué) 院工商學(xué)院專業(yè)班級 軟件工程1041班組 長王紀(jì)兵成 員程華濤、紀(jì)賢松、楊濤、李宗男、王紀(jì)兵指導(dǎo)教師王喜鳳、戴小平二一三 年 月 日摘 要摘要內(nèi)容:社交SNS系統(tǒng)主要是為了人與人之間的聯(lián)系,如交友、朋友之間相互聯(lián)系。關(guān)鍵詞:3-5個。社交SNS系統(tǒng)社交SNSSNS系統(tǒng)SNS交友系統(tǒng)目錄1緒 論31.1 概述31.2 開發(fā)環(huán)境與工具介紹31.2.1 MyEclipse簡介41.2.2 MySQL簡介41.2.2 社交SNS研究狀況52可行性研究52.1 技術(shù)可行性52.2 經(jīng)濟(jì)可行性52.3 操作可行性52.4 結(jié)論53系

2、統(tǒng)需求分析63.1 用戶需求分析63.1.1 用戶需求63.1.2 系統(tǒng)功能需求63.1.3 系統(tǒng)性能需求63.1.4 數(shù)據(jù)分析63.2 系統(tǒng)DFD圖63.3 系統(tǒng)E-R圖64系統(tǒng)設(shè)計74.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計74.2 功能模塊圖及分模塊功能描述74.2.1 系統(tǒng)的功能模塊圖74.2.2 系統(tǒng)功能模塊簡介75系統(tǒng)實施85.1 建立數(shù)據(jù)庫85.2 數(shù)據(jù)庫連接115.3 主要模塊實施115.3.1 登錄模塊的開發(fā)125.3.2 xxxxx125.4 系統(tǒng)測試145.4.1 軟件測試的對象175.4.2 軟件測試的結(jié)果176系統(tǒng)說明186.1 開發(fā)環(huán)境186.2 系統(tǒng)安裝與配置18總 結(jié)19參考文

3、獻(xiàn)201 緒 論1.1 概述 SNS,全稱Social Networking Services,即社會性網(wǎng)絡(luò)服務(wù),專指旨在幫助人們建立社會性網(wǎng)絡(luò)的互聯(lián)網(wǎng)應(yīng)用服務(wù)。也指社會現(xiàn)有已成熟普及的信息載體,如短信SMS服務(wù)。SNS的另一種常用解釋:全稱Social Network Site,即“社交網(wǎng)站”或“社交網(wǎng)”。 社會性網(wǎng)絡(luò)(Social Networking)是指個人之間的關(guān)系網(wǎng)絡(luò),這種基于社會網(wǎng)絡(luò)關(guān)系系統(tǒng)思想的網(wǎng)站就是社會性網(wǎng)絡(luò)網(wǎng)站(SNS網(wǎng)站)。SNS也指Social Network Software,社會性網(wǎng)絡(luò)軟件,是一個采用分布式技術(shù),通俗地說是采用P2P技術(shù),構(gòu)建的下一代基于個人的網(wǎng)絡(luò)

4、基礎(chǔ)軟件。1.2 開發(fā)環(huán)境與工具介紹開發(fā)平臺:Windows7開發(fā)工具:MyEclipse/MySQL/Navicat for MySQL/美圖秀秀/Firefox/Tomcat運(yùn)行環(huán)境:Linux/Windows1.2.1 MyEclipse簡介MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。 MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse),利用它我們可以數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及

5、應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的Java集成開發(fā)環(huán)境括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持MyEclipse 是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯,數(shù)據(jù)庫鏈接工具等多項功能。可以說MyEclipse是幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。MyEclipse 8.6 M1下載地址發(fā)布了,關(guān)注MyEclipse 8.6的朋友可以去MyEclipse官方獲取最新的MyEclipse 8.6 M1下載地址下載試用的說(需要特殊

6、手段)。隨著MyEclipse 8.5的發(fā)布,很多MyEclipse都已經(jīng)開始轉(zhuǎn)型成MyEclipse 8.5工作了,MyEclipse 8.5不但集成最新版本的Eclipse 3.5.2同時包含了大量當(dāng)前最新版的開源框架的插件支持。今天筆者瀏覽MyEclipse官方網(wǎng)站的時候,發(fā)現(xiàn)MyEclipse 8.6的第一個M版本-MyEclipse 8.6 M1下載地址已經(jīng)發(fā)布了,作為目前最新版本的MyEclipse 8.6來說包含了不少吸引人的新特性,尤其是在對主流Java框架的支持都更新了不少,由于目前MyEclipse 8.6還只是M1版本,因此作為開發(fā)版本使用估計不太可能(當(dāng)然如果喜歡嘗鮮,

7、裝個玩玩應(yīng)該是沒問題),相信在MyEclipse 8.6正式版下載地址發(fā)布的時候會有更新的開源框架版本的支持吧。MyEclipse 8.6的主要改進(jìn)是在團(tuán)隊寫作和集中工作環(huán)境的集中配置管理方面。同時MyEclipse 8.6還包含了上百個功能的改進(jìn)和新特性,這些新功能和特性將讓MyEclipse 8.6用戶在開發(fā)代碼,測試,以及部署應(yīng)用方面都得到極大的便利。相信MyEclipse 8.6下載地址發(fā)布的時候會讓MyEclipse開發(fā)者們再次興奮一下的。MyEclipse 8.6 M1主要改進(jìn)包括:1MyEclipse 8.6 M1引入了一個全新的JavaScript編輯器,該編輯器提供了更好的J

8、avaScript/HTML高亮標(biāo)記和代碼支持,同時提供了更為精確的語法校驗功能2MyEclipse 8.6 M1新增了Struts2圖形編輯器(貌似之前筆者見過Struts1.x的圖形編輯器,也是MyEclipse對Struts支持的一個賣點)3MyEclipse 8.6 M1引入了MyEclipse配置中心功能(該功能是MyEclipse 8.6中的重大賣點)4該功能包括,允許用戶更方便的安裝/卸載MyEclipse模塊5快速檢索和安裝目前最流行的Eclipse插件(貌似與IDEA一樣直接檢索到之后可以通過checkbox選擇安裝,十分方便)6瀏覽,編輯和安裝所有的軟件更新(同時支持自定義

9、升級站點)7輕松的在團(tuán)隊中共享MyEclipse 8.6工作平臺配置8通過授權(quán)獲取用戶的工作臺變更信息,同時讓用戶共享這些工作臺的配置9通過MyEclipse配置中心持久化(保存)工作臺的個性化設(shè)置10允許獨立共享工作臺配置信息,也可以通過授權(quán)讓特定的用戶更改工作臺配置信息11MyEclipse 8.6 M1新增了大量的應(yīng)用程序服務(wù)器聯(lián)接器,讓MyEclipse 8.6支持更多的應(yīng)用程序服務(wù)器。1.2.2 MySQL簡介 MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將

10、所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。MySQL是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了

11、降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)

12、,被業(yè)界稱為“LAMP“組合1.2.3社交SNS研究狀況 社會性網(wǎng)絡(luò)服務(wù)是一個平臺,建立人與人之間的社會網(wǎng)絡(luò)或社會關(guān)系的連接。例如,利益共享、活動、背景或現(xiàn)實生活中的連接。一個社會網(wǎng)絡(luò)服務(wù),包括表示每個用戶(通常是一個配置文件)的社會聯(lián)系和各種附加服務(wù)。大多數(shù)社會性網(wǎng)絡(luò)服務(wù)是基于網(wǎng)絡(luò)的在線社區(qū)服務(wù),并提供用戶在互聯(lián)網(wǎng)互動的手段,如電子郵件和即時消息。有時被認(rèn)為是一個社交網(wǎng)絡(luò)服務(wù),但在更廣泛的意義上說,社會性網(wǎng)絡(luò)服務(wù)通常是指以個人為中心的服務(wù),并以網(wǎng)上社區(qū)服務(wù)組為中心。社交網(wǎng)站允許用戶在他們的網(wǎng)絡(luò)共享他們的想法、圖片、文章、活動、事件。2011年的調(diào)查發(fā)現(xiàn),47%的美國成年人使用社交網(wǎng)絡(luò)服務(wù)。2

13、 可行性研究2.1 技術(shù)可行性 2.1.1程序語言的選擇JSP(JavaServer Pages)是一種新動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),類似其他技術(shù)標(biāo)準(zhǔn).在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片斷(Scriptlet)和JSP標(biāo)簽,構(gòu)成了JSP網(wǎng)頁(*.jsp)Servlet/JSP Container收到客戶端發(fā)出的請求時,首先執(zhí)行其中的程序片斷,軟后將執(zhí)行結(jié)果以HTML格式響應(yīng)給客戶端,其中程序片斷可以是:操作數(shù)據(jù)庫,重新定向網(wǎng)頁以及發(fā)送E-Mail等等,這些都是建立動態(tài)網(wǎng)站所需要的功能.所有程序操作都在服務(wù)器端運(yùn)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器

14、無關(guān),因此,JSP稱為Server-side Language.所以被許多人認(rèn)為是未來最有發(fā)展前途的動態(tài)網(wǎng)站技術(shù)之一。經(jīng)過比較,PHP功能相對簡單,不適合作大程序,而CGI效率相對較低,所以也不考慮,因為該系統(tǒng)并沒有原有的基礎(chǔ)平臺需要擴(kuò)展,也不需要與其他系統(tǒng)進(jìn)行太多的交互,所以使用J2EE的模式并不能夠體現(xiàn)出J2EE本身的優(yōu)勢,而JSP又是J2EE的核心技術(shù)之一,可以隨時升級為J2EE程序,這里暫時不考慮采用J2EE,這樣只需要在ASP和JSP中進(jìn)行選擇.在進(jìn)行了諸多因素的比較之后,最終認(rèn)為目前這個階段比較合適的是JSP,而選擇Struts架構(gòu)作為開發(fā)的主體框架,選用Hibernate作為數(shù)據(jù)

15、持續(xù)性處理層,則是考慮到了其高速的開發(fā)效率,及代碼重用性高,易于維護(hù)等各種優(yōu)勢。其最終目的是希望提高系統(tǒng)底層業(yè)務(wù)邏輯的可重用性,增加系統(tǒng)的可擴(kuò)展性,降低系統(tǒng)維護(hù)成本。2.1.2 JSP技術(shù)特點將內(nèi)容的生成和顯示進(jìn)行分離使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面.使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容.生成的內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans組件中,那么其他人,如Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面而不影響內(nèi)容的生成。一次編寫,到處運(yùn)行作為Java平臺的一部分,JSP擁有Java編程語言”一次編寫,到處運(yùn)行”的特點,隨著

16、越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,但并不影響當(dāng)前的應(yīng)用。JSP的平臺適應(yīng)性更廣這是JSP比ASP的優(yōu)越之處,幾乎所有的平臺都支持Java,它們可以在任何平臺下通行無阻。雖然NT的OS占據(jù)了很大的市場的份額,但在服務(wù)器方面UNIX的優(yōu)勢仍然很大。從一個平臺移植到另一個平臺,JSP和JavaBeans甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)注的字節(jié)碼與平臺無關(guān)。數(shù)據(jù)庫連接技術(shù)很多的OS中都帶有JDBC驅(qū)動程序,Java就通過JDBC與數(shù)據(jù)庫連接,執(zhí)行查詢,提取數(shù)據(jù)等操作。Sun公司還提供了JDBC-ODBC的橋連方式,因此Java也可以訪問帶有O

17、DBC驅(qū)動的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動,所以Java能訪問諸如Oracle、Sybase、MS SQL Server 和Access等類型的數(shù)據(jù)庫。2.2 經(jīng)濟(jì)可行性 系統(tǒng)的經(jīng)濟(jì)可行性指的是對組織的經(jīng)濟(jì)狀況和投資能力進(jìn)行分析,對系統(tǒng)建設(shè)、運(yùn)行和維護(hù)費(fèi)用進(jìn)行估算,對系統(tǒng)建成后可能取得的社會及經(jīng)濟(jì)效益進(jìn)行估計。本模塊簡單易開發(fā),且開發(fā)需要資金少,系統(tǒng)開發(fā)運(yùn)行后,可以實現(xiàn)企業(yè)員工信息管理的計算機(jī)化,節(jié)省了人力、物力,將人從繁重的工作業(yè)務(wù)中解脫出來,減少了信息管理中無意的錯誤,節(jié)省了大量的時間,管理效率也大幅度提高,因此,在經(jīng)濟(jì)上是可行的。所帶來的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在

18、經(jīng)濟(jì)上完全可行。2.3 操作可行性 對于用戶來說,本系統(tǒng)只要求使用者掌握一定的上網(wǎng)經(jīng)驗,經(jīng)過仔細(xì)設(shè)計和測試之后的系統(tǒng)具有操作簡單,方便靈活等優(yōu)點,足可以滿足各種用戶的不同需求,同時也方便了公司的內(nèi)部管理。管理人員及用戶一定會在短時間內(nèi)掌握并熟練使用。只要動一動鼠標(biāo)鍵盤就可以達(dá)到想要的效果2.3 模式采用本系統(tǒng)采用B/S模式。B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Serve

19、r)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet/Intranet模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。目前,軟件系統(tǒng)的改進(jìn)和升級越

20、來越頻繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對一個稍微大一點單位來說,系統(tǒng)管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構(gòu)的軟件只需要管理服務(wù)器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護(hù)。無論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會增加任何維護(hù)升級的工作量,所有的操作只需要針對服務(wù)器進(jìn)行;如果是異地,只需要把服務(wù)器連接專網(wǎng)即可,實現(xiàn)遠(yuǎn)程維護(hù)、升級和共享。所以客戶機(jī)越來越“瘦”,而服務(wù)器越來越“胖”是將來信息化發(fā)展的主流方向。今后,軟件升級和維護(hù)會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費(fèi)用的節(jié)省是顯而易見的。因此,

21、維護(hù)和升級革命的方式是“瘦”客戶機(jī),“胖”服務(wù)器?,F(xiàn)在的趨勢是凡使用B/S架構(gòu)的應(yīng)用管理軟件,只需安裝在Linux服務(wù)器上即可,而且安全性高。所以服務(wù)器操作系統(tǒng)的選擇是很多的,不管選用那種操作系統(tǒng)都可以讓大部分人使用windows作為桌面操作系統(tǒng)電腦不受影響,這就使的最流行免費(fèi)的Linux操作系統(tǒng)快速發(fā)展起來,Linux除了操作系統(tǒng)是免費(fèi)的以外,連數(shù)據(jù)庫也是免費(fèi)的。2.4 結(jié)論 綜上所述,本系統(tǒng)使用JSP開發(fā)技術(shù),工作平臺為應(yīng)用界面友好且功能強(qiáng)大的由 MyECplise軟件,服務(wù)器端腳本用JAVA腳本來編寫,客戶端腳本也用JAVA來編寫,數(shù)據(jù)庫使用mysql數(shù)據(jù)庫,服務(wù)器是TOMCAT。在大學(xué)

22、的學(xué)習(xí)中,已經(jīng)自學(xué)過JAVA這種語言,并且曾經(jīng)參加實訓(xùn)開發(fā)項目,有一定的實地開發(fā)經(jīng)驗。且熱愛計算機(jī)科學(xué),又刻苦鉆研的精神,經(jīng)過大學(xué)四年的學(xué)習(xí),相關(guān)課程已基本熟練掌握,本系統(tǒng)是在學(xué)校開發(fā),遇到問題可以與同學(xué)一起研究。因此在技術(shù)上能夠適應(yīng)本系統(tǒng)的開發(fā)。3 系統(tǒng)需求分析3.1 用戶需求分析3.1.1 用戶需求用戶需要一個SNS系統(tǒng),要求是有注冊、登錄模塊。同時注冊用戶可以發(fā)表短消息,用戶個人首頁可以顯示此消息列表。其他用戶要可以對指定用戶留言。系統(tǒng)會給被留言者發(fā)生消息提示有留言。用戶可以上傳圖片,創(chuàng)建相冊等。游客不可以直接訪問相冊、圖片,如果要訪問必須注冊成為個網(wǎng)站用戶才可以訪問。用戶可以修改自己的

23、基本資料,也可以修改密碼,同時可以上傳頭像,頭像可以實現(xiàn)在線切割用戶之間可以相互關(guān)注,兩個用戶之間可實現(xiàn)即時聊天功能3.1.2 系統(tǒng)功能需求注冊功能實現(xiàn)游客注冊登錄功能用戶可以登錄微博功能用戶可以發(fā)布短微博,所有人都可以攢可以回復(fù)微博個人中心用戶可以修改基本信息消息系統(tǒng)提示、用戶之間即時短信圖片用戶可以創(chuàng)建相冊上傳圖片3.1.3 系統(tǒng)性能需求系統(tǒng)要求能夠同時滿足10萬人同時在線3.1.4 數(shù)據(jù)分析 用戶使用郵箱作為登錄賬戶3.2 系統(tǒng)DFD圖 3.3 系統(tǒng)E-R圖 等等用戶用戶ID姓名郵箱手機(jī)密碼性別積分等級簽名頭像微博微博ID用戶ID微博內(nèi)容攢次數(shù)回復(fù)次數(shù)發(fā)布時間最后回復(fù)時間微博回復(fù)微博回復(fù)

24、ID回復(fù)內(nèi)容微博ID用戶ID回復(fù)給用戶ID回復(fù)時間相冊相冊ID相冊名稱相冊介紹相冊封面圖片用戶ID圖片總數(shù)查看次數(shù)創(chuàng)建時間圖片圖片ID圖片名稱圖片地址用戶ID相冊ID評論數(shù)查看數(shù)上傳時間掛靠到留言ID留言時間來自用戶ID發(fā)送到用戶ID留言內(nèi)容留言ID留言關(guān)注關(guān)注ID關(guān)注者用戶ID被關(guān)注用戶ID關(guān)注時間信息信息ID發(fā)送給用戶ID來自用戶ID是否已讀?信息類型內(nèi)容消息時間4 系統(tǒng)設(shè)計4.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 4.2 功能模塊圖及分模塊功能描述4.2.1 系統(tǒng)的功能模塊圖頭像在線切割上傳 、社交SNS系統(tǒng)登錄模塊注冊模塊個人中心微博模塊消息模塊留言模塊相冊模塊互相關(guān)注模塊4.2.2 系統(tǒng)功能模塊簡

25、介注冊模塊主要實現(xiàn)游客注冊功能,注冊賬號只能是郵箱前臺先通過JS驗證才能提交成功,登錄模塊實現(xiàn)用戶登錄網(wǎng)站,登錄賬戶同樣先通過JS驗證才能提交,登錄后賬號和密碼通過Cookie保存到本地相冊圖片模塊只用用戶才可以瀏覽相冊圖片,用戶可以創(chuàng)建自己的相冊同時也可以上傳圖片到該相冊個人中心模塊用戶可以修改基本信息,修改密碼,修改圖片微博模塊用戶可以發(fā)布文字和表情微博消息模塊新用戶會收到系統(tǒng)提示信息,用戶之間聊天會通過信息模塊發(fā)送給對方,其他一些操作也會通過消息提示用戶留言模塊用戶可以對他人進(jìn)行留言互相關(guān)注模塊實現(xiàn)用戶之間相互關(guān)聯(lián)5 系統(tǒng)實施5.1 建立數(shù)據(jù)庫 -用戶表create table na_u

26、ser(id bigint primary key auto_increment,name varchar(32),nameURL varchar(64) unique,email varchar(64) unique,phone varchar(16) unique,password varchar(32),gender varchar(2), -性別point bigint, -分?jǐn)?shù)level int,rmb double, sign text, -簽名touPic varchar(32),address text,type varchar(16), -權(quán)限r(nóng)egTime timestam

27、p, lastTime datetime,regIP varchar(64), lastIP varchar(64);alter table na_user alter level set default 0;alter table na_user alter point set default 0;alter table na_user alter rmb set default 0;-圖片表create table na_photo(id bigint primary key auto_increment,name varchar(64),url varchar(32),-圖片地址user

28、_id bigint,photoType_id bigint,disNum int, -評論數(shù)time timestamp -圖片上傳時間);alter table na_photo add lookNum int default 0 after disNum;-設(shè)置外鍵alter table na_photo add constraint foreign key(user_id) references na_user(id);-相冊分類create table na_photoType(id bigint primary key auto_increment,name varchar(64)

29、,user_id bigint,lookNum int default 0, -瀏覽數(shù)time timestamp); alter table na_photoType add counter int default 0 after user_id; -相冊有圖片多少(counter)alter table na_photoType add introduce text after name;alter table na_photoType add defaultImg varchar(32) default photo.png after introduce; -相冊默認(rèn)背景圖片alter

30、table na_photo add constraint foreign key(photoType_id) references na_photoType(id);alter table na_photoType add constraint foreign key(user_id) references na_user(id);insert into na_user(name,nameURL,email,phone,password,gender,touPic) values(舊城,admin,4QrcOUm6Wau+VuBX8g+IPg=,m,wo.jpg); -home給用戶 留言表

31、 create table na_guestbook( id bigint primary key auto_increment, content text, toId bigint, fromId bigint, guestbook_id bigint, -0留言不回復(fù),1回復(fù)id留言 time timestamp ); -設(shè)置外鍵alter table na_guestbook add constraint foreign key(toId) references na_user(id);alter table na_guestbook add constraint foreign key

32、(fromId) references na_user(id);alter table na_guestbook alter guestbook_id set default 0;-微博create table na_weibo(id bigint primary key auto_increment,content text,pic varchar(512) default 0,-圖片地址待擴(kuò)展用user_id bigint,topNum int default 0, -攢次數(shù)replyNum int default 0, -回復(fù)次數(shù)sendTime timestamp, replyTime

33、 datetime -最后回復(fù)時間); -設(shè)置外鍵alter table na_weibo add constraint foreign key(user_id) references na_user(id);-微博回復(fù)create table na_weibo_reply(id bigint primary key auto_increment,content text,pic varchar(512) default 0,weibo_id bigint,user_id bigint,toId bigint default 0,time timestamp);alter table na_w

34、eibo_reply add constraint foreign key(weibo_id) references na_weibo(id);alter table na_weibo_reply add constraint foreign key(user_id) references na_user(id);-關(guān)注表create table na_follow(id bigint primary key auto_increment,u_id bigint,m_id bigint,time timestamp);alter table na_follow add constraint f

35、oreign key(u_id) references na_user(id);alter table na_follow add constraint foreign key(m_id) references na_user(id);-消息表-readed int, 0沒讀 1讀過-type int,-類型 0是系統(tǒng)消息 ,1代表用戶即時聊天信息create table na_message(id bigint primary key auto_increment,to_id bigint,fr_id bigint,readed int,type int,content text,time

36、timestamp);alter table na_message add constraint foreign key(to_id) references na_user(id);alter table na_message add constraint foreign key(fr_id) references na_user(id);alter table na_message alter readed set default 0;5.2 數(shù)據(jù)庫連接package cn.sayphone.util;import java.sql.Connection;import java.sql.Dr

37、iverManager;import java.sql.SQLException;/* * 連接數(shù)據(jù)庫工具類 * author Cht、BB * */public class DBUtil /* * 獲取Connection對象 * return Java.sql.Connection * throws Exception */ public static Connection getConnection() throws Exception Connection conn = null; String className = ConfigUtil.getValue(jdbcDriverCla

38、ss);Class.forName(className);conn = DriverManager.getConnection(ConfigUtil.getValue(jdbcURL), ConfigUtil.getValue(jdbcUser), ConfigUtil.getValue(jdbcPwd); return conn; /* * 關(guān)閉Connection對象 * param conn */ public static void close(Connection conn) if(conn != null) try conn.close(); catch (SQLException

39、 e) e.printStackTrace(); public static void main(String args) try System.out.println(getConnection(); catch (Exception e) e.printStackTrace();5.3 主要模塊實施5.3.1 登錄模塊的開發(fā) String emailOrId = request.getParameter(username); System.out.println(email=+emailOrId);String password = request.getParameter(pwd);Sy

40、stem.out.println(password=+password);try UserDAO dao = (UserDAO)DAOFactory.getInstance(UserDAO);User user = dao.findByEmail(emailOrId);if(user = null)request.setAttribute(login_error, *賬號或密碼錯誤);RequestDispatcher rd = request.getRequestDispatcher(/login/index.jsp);rd.forward(request, response); else

41、if (user.getPassword().equals(MD5Util.getMD5(password) CookieUtil.addCookie(userEmail, user.getEmail(),response);CookieUtil.addCookie(userPassword,user.getPassword(), response);response.sendRedirect(index); else request.setAttribute(login_error, *賬號或密碼錯誤);RequestDispatcher rd = request.getRequestDis

42、patcher(/login/index.jsp);rd.forward(request, response); catch (Exception e) e.printStackTrace();5.3.2 注冊模塊的開發(fā) String email = request.getParameter(email);String name = request.getParameter(name);String gender = request.getParameter(gender);String password = request.getParameter(password);System.out.

43、println(gender=+gender);try UserDAO dao = (UserDAO)DAOFactory.getInstance(UserDAO);User user = dao.findByEmail(email);if(user != null)request.setAttribute(reg_error, *郵箱已被使用);RequestDispatcher rd = request.getRequestDispatcher(/reg/index.jsp);rd.forward(request, response);System.out.println(轉(zhuǎn)發(fā)結(jié)束:);e

44、lseUser u = new User();u.setEmail(email);u.setName(name);u.setGender(gender);u.setPassword(password);if(gender.equals(m)u.setTouPic(me.jpg);else if(gender.equals(w)u.setTouPic(me.jpg);else if(gender.equals(s)u.setTouPic(me.jpg);long otherId = dao.save(u);/添加系統(tǒng)注冊成功消息Message msg01 = new Message();msg0

45、1.setTo_id(otherId);msg01.setFr_id(1);msg01.setType(0);msg01.setContent(親愛的 +name+ :您成功加入了 SayPhone在遵守本站的規(guī)定的同時,享受您的愉快之旅吧!);MessageDAO msgDAO01 = (MessageDAO)DAOFactory.getInstance(MessageDAO);msgDAO01.saveSystem(msg01);/添加ID=1 關(guān)注CookieUtil.addCookie(userEmail,email, response);CookieUtil.addCookie(us

46、erPassword, MD5Util.getMD5(password), response);response.sendRedirect(request.getContextPath()+/login); catch (Exception e) e.printStackTrace();5.3.3留言模塊的開發(fā)業(yè)務(wù)處理方法public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEnco

47、ding(utf-8);response.setContentType(text/html;charset=utf-8);PrintWriter out = response.getWriter();String content = request.getParameter(content);long toId = Long.parseLong(request.getParameter(toId);/System.out.println(DealGuestbookServlet_serive-content=+content);/System.out.println(DealGuestbook

48、Servlet_serive-toId=+toId);String userEmail = CookieUtil.findCookie(userEmail, request);String userPassword = CookieUtil.findCookie(userPassword, request);UserDAO userDAO = null;User user = null;try userDAO= (UserDAO)DAOFactory.getInstance(UserDAO);user = userDAO.findByEmailPassword(userEmail, userPassword);if(user = null)response.sendRedirect(request.getContextPath()+/guestbook); catch (Exception e1) e1.printStackTrace();Guestbook guestbook = new Guestbook();guestbook.setContent(content);guestbook.setToId(toId);guestbook.setFromId(us

溫馨提示

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

評論

0/150

提交評論