王紅星 陳靜靜
摘要:人人網(wǎng)作為一個提供社交服務(wù)的網(wǎng)站,它為不同身份的人提供了一個全方位的互動交流平臺。該文利用SSH(StrutsSpring - Hibernate)設(shè)計和開發(fā)了人人網(wǎng)系統(tǒng),包括注冊、登錄、日志、個人資料、留言、訪問好友等功能模塊。此外,還適當(dāng)?shù)厥褂昧藈eb2.0技術(shù)-Ajax,用異步傳輸?shù)姆绞絹碓鰪娪脩趔w驗。
關(guān)鍵詞:人人網(wǎng);SSH;Ajax
中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2012)24-5932-02
Design and Implementation of RenRen Network System Based on SSH
WANG Hong -xing1, CHEN Jing-jing2
(1.DO-FLUORIDE CHEMICALS CO.,LTD, Jiaozuo 454191,China; 2.Central China Securities Nanyang Business Department, Nan? yang 473000, China)
Abstract: RenRen Network, as a provider of social services site, provides a full range of interactive communication platform for the differ ent identities. This paper uses SSH to design and develop RenRen network system., including its registration, login, log, personal informa tion, messages, access friends and other functional modules. In addition to, the system uses web2.0 technology–Ajax properly, to increase the experience of user by the method of asynchronous transmission.
Key words: RenRen Network; SSH; Ajax
近年來計算機技術(shù)的快速發(fā)展,特別是計算機網(wǎng)絡(luò)的發(fā)展,越來越深刻的改變了人們生活的方方面面。使得人們能以更低廉的價格,開發(fā)出更方便、更實用的網(wǎng)絡(luò)工具。各種在線服務(wù)系統(tǒng),更是深刻的影響了人們的聯(lián)系方式,使得人們可以在遠隔千里之遙隨時通訊。過去的種種陳舊的聯(lián)系方式,已經(jīng)不能滿足現(xiàn)代生活的需要。人人網(wǎng)作為一種方便同學(xué)之間聯(lián)系的實用系統(tǒng)便應(yīng)運而生。
人人網(wǎng)就是基于及Web等技術(shù)而建立起來的社交網(wǎng)絡(luò),幫你運營朋友圈里的朋友。通過人人網(wǎng),不僅可以展示自己,發(fā)表自己的想法、記錄生活的點滴,還可以聯(lián)絡(luò)你周圍的朋友,找老同學(xué),結(jié)識新朋友,和他們分享相片、音樂和電影,幫助你與朋友、同學(xué)、同事、家人保持更緊密的聯(lián)系。
本系統(tǒng)是基于Struts、Hibernate、Spring三大框架及Ajax等技術(shù)構(gòu)建的,運行于Web環(huán)境下,以MyEclipse7.5作為系統(tǒng)的前臺開發(fā)環(huán)境,Sql Server 2005作為后臺數(shù)據(jù)庫開發(fā),Tomcat6.0作為web服務(wù)器。可以進行注冊、登錄、編輯個人資料、留言、發(fā)表日志及尋找和訪問好友等操作。
1相關(guān)技術(shù)介紹
1.1 Struts
Struts是Apache基金會Jakarta項目組的一個Open Source項目,它采用MVC模式,能夠很好地幫助java開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts也是面向?qū)ο笤O(shè)計,將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致。
1.2 Hibernate
Hibernate是一個開放源碼的免費框架,它的功能是面向Java技術(shù)的對象或關(guān)系數(shù)據(jù)庫的一種映射工具。使用它,讓程序員與關(guān)系數(shù)據(jù)庫打交道變得異常輕松方便,就像從數(shù)據(jù)庫中取出普通Java對象一樣,不必考慮如何把它們從數(shù)據(jù)庫表中取出放入對象中或放回到相應(yīng)的地方去。
1.3 Spring
Spring是一個開源框架。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。
1.4 Ajax
Ajax是Asynchronous JavaScript and XML的簡稱,是一種由JavaScript通過XML Http Request與服務(wù)器交互更新數(shù)據(jù)的一種異步請求的技術(shù),因為通過Ajax,你只需傳遞需要更新的數(shù)據(jù),而不是整個頁面,所以Ajax很適合用于局部頻繁更新的頁面。
2系統(tǒng)分析
針對人人網(wǎng)的實際需求,該系統(tǒng)要完成以下功能:
1)用戶可注冊為人人網(wǎng)會員。
2)用戶可登陸人人網(wǎng)進行各項操作。
3)用戶在登陸人人網(wǎng)后可編輯個人資料。
4)用戶在登陸人人網(wǎng)后可發(fā)表日志,并可瀏覽、修改、刪除自己的日志。
5)用戶在登陸人人網(wǎng)后可查看好友列表。
6)用戶在登陸人人網(wǎng)后可查看訪問人數(shù),最近訪問者等信息。
7)用戶在登陸人人網(wǎng)后可進入好友主頁,可查看好友日志,留言,狀態(tài)等,但不可編輯好友發(fā)表的內(nèi)容。通過以上對系統(tǒng)功能的分析,可對系統(tǒng)功能進行模塊劃分,系統(tǒng)功能模塊結(jié)構(gòu)圖1如示。
圖1系統(tǒng)功能模塊結(jié)構(gòu)圖
1)注冊功能:用戶可通過唯一賬號在完成基本信息(密碼、生日、性別等)填寫后,注冊為人人網(wǎng)會員后,方可使用人人網(wǎng)提供的功能。
2)登陸功能:人人網(wǎng)注冊用戶可憑唯一賬號和密碼登陸人人網(wǎng),以使用其提供的功能。
3)個人資料:用戶可編輯個人資料,上傳個人頭像。
4)日志:用戶可創(chuàng)建日志分類,發(fā)表、查看、編輯和刪除日志,查看日志評論、已閱讀數(shù),評論數(shù)。
5)留言:用戶可發(fā)表留言,查看留言。
6)好友::用戶可查看好友列表,根據(jù)好友姓名,學(xué)校,工作單位等信息搜索好友,可對特定人請求加為好友;可訪問好友主頁,瀏覽、評論好友日志;可查看、評論好友狀態(tài);可給好友留言,并對好友留言進行回復(fù)。
7)通知:用戶可查看最新通知,如好友請求消息,未查看留言,未查看日志和分享的評論。
8)好友訪問:用戶可查看最近訪問者,查看已訪問人數(shù)。
9)安全中心:用戶可修改現(xiàn)有密碼,創(chuàng)建或修改密保問題及答案,用戶可在此找回密碼。
3數(shù)據(jù)庫設(shè)計
該系統(tǒng)主要包含以下數(shù)據(jù)表:
1)ren表:用于存放注冊用戶的賬號,密碼,姓名,性別,生日,家鄉(xiāng),所在地,頭像路徑等基本信息,以及學(xué)校信息,工作信息,興趣愛好,聯(lián)系方式等。
2)log表:用于存放注冊用戶所寫的日志信息,包括日志標(biāo)題,日志內(nèi)容,編輯日志時間,日志所屬分類以及日志所屬人。
3)blog_category表:用于存放注冊用戶所寫的日志的分類,用戶可自己添加分類。
4)blog_reply表用于存放注冊用戶所寫的日志的回復(fù),包括回復(fù)者,回復(fù)內(nèi)容,回復(fù)時間,所屬日志,狀態(tài)。
5)message表:用于存儲留言列表,包括留言人,留言對象,留言內(nèi)容,留言時間,留言狀態(tài)。
6)friend_request表:用于存儲好友的請求,包括發(fā)送請求者,請求對象,請求信息,請求時間。
4系統(tǒng)實現(xiàn)
1)注冊功能:注冊模塊要求用戶輸入有效信息,包括賬號,密碼,姓名,性別,生日及驗證碼,通過Javascript進行有效性驗證,其中賬號通過Ajax判斷是否已存在。若用戶輸入數(shù)據(jù)不合要求,則提示用戶修改。各項信息填寫符合要求后,點擊注冊即可完成注冊。
2)登陸功能:登陸模塊要求用戶輸入賬號和密碼,通過判斷轉(zhuǎn)入用戶主頁或返回登陸頁面。若用戶忘記密碼,可點擊“忘記密碼?”,轉(zhuǎn)到安全中心通過密保問題和密保答案找回密碼。若用戶未注冊,可在此轉(zhuǎn)入注冊頁面。
3)個人資料:用戶可編輯個人資料,此模塊將個人資料分為五個部分,基本信息、學(xué)校信息、工作信息、興趣愛好、聯(lián)系方式。省市級聯(lián)可采用Javascript方式或struts+ajax方式。省份和大學(xué)以及大學(xué)及院系的關(guān)聯(lián)采用struts+ajax方式。行業(yè)信息及入學(xué)年份下拉列表數(shù)據(jù)從數(shù)據(jù)庫中讀取。通過Javascript來控制資料編輯層的顯示和隱藏。
4)日志:分為日志列表,顯示日志,發(fā)表新日志等幾個頁面。采用JSTL標(biāo)簽顯示日志列表,日志編輯工具采用流行的Fckeditor工具。在日志列表頁面,用戶可根據(jù)日志分類查看日志,同時顯示每個分類的日志數(shù)。點擊“寫新日志”圖片按鈕進入發(fā)表新日志頁面,用戶在輸入標(biāo)題,文章,選擇日志分類后,即可提交發(fā)表文章。點擊某一日志名后,轉(zhuǎn)到日志顯示頁面,包括日志名,發(fā)表時間,所屬分類,評論數(shù),閱讀數(shù)及日志評論信息,同時用戶和好友對此篇日志發(fā)表評論。
5結(jié)束語
該系統(tǒng)運用Struts框架將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致,更有利于開發(fā)WEB應(yīng)用。Hibernate的應(yīng)用使數(shù)據(jù)的使用處理更加方便靈活,提高了代碼的重用性、程序的可行性和運行效率。而Spring的運用則大幅地減少了程序的復(fù)雜性,讓程序更加輕便。
參考文獻:
[1] Eckel B.Thinking in Java(4) [M].北京:機械工業(yè)出版社,2007.
[2]孫衛(wèi)琴.精通Hibernate[M].北京:電子工業(yè)出版社,2005.
[3] Rob Harrop.Spring專業(yè)開發(fā)指南[M].北京:電子工業(yè)出版社,2006.
[4]孫衛(wèi)琴.精通struts[M].北京:電子工業(yè)出版社,2004.
[5]彭萬波.網(wǎng)頁設(shè)計精彩實例[M].北京:電子工業(yè)出版社.2002.
[6]周之英.現(xiàn)代軟件工程[M].北京:科學(xué)出版社,2000.
[7]楊貴,楊興.21天學(xué)通JavaScript[M].北京:電子工業(yè)出版社,2009.
[8]劉乃英.JavaEE項目案例-基于Eclipse Spring Struts Hibernate[M].北京:人民郵電出版社,2008.
[9] Tom Negrino,Dori Smith.JavaScript&Ajax Sixth Edition[M].北京:人民郵電出版社,2007.
[10] SIMON BROWN.JSP編程指南[M].北京:電子工業(yè)出版社,2004.
[11]張淑梅,張海春.動態(tài)實現(xiàn)Web頁面中多級下拉菜單[J].石家莊師范??茖W(xué)校學(xué)報,2001,3(2):33-35.
[12]蔣德華,張偉.基于B_S架構(gòu)的網(wǎng)站設(shè)計研究[J].軟件導(dǎo)刊,2008,7(5):109-110.