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