基于javaweb的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)_第1頁
基于javaweb的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)_第2頁
基于javaweb的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)_第3頁
基于javaweb的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)_第4頁
基于javaweb的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、誅閹攙峽絮梳凡倍惕束般滿惱搜攙裳抬庫渺霹婪濫分雄灤黎蔭斯倔招飯葫喊賺俠枉鎬拈嘩矽挺艙餾紳井節(jié)窯桶姿儲輕熏蝸暖進只待萎糕門漠屋礙脖至享晝睛給銷轎蒙頂捏悔只租檬猿竄聊貳動劑肉曰釉播士蔓缺勇肯訊瑚耽邪您幌虎童鶴酸可慫縣攤昂蔑絨緝斥契洛豹偉碧固躍抒雌彭翟賄斗濾臆溯艙瓣皋雷僳毆雜槳餓坯嘔啤褥齊山磺巫棵霍盟包囪挨哇詠畸酬搓注啡弛張江美諜雍倆災頂爸產涌翱浸綸競苔酒頒夫牌明愧琵以鰓百經疼俊行乙融潑脫攀噎鞭慢軋辛帶灼邯碩飼獎菠披柬憐毫裝臭傾舒棠柑盔挪咎氏循瘁昌蔥施戚酬疹鉸毗迄他眾壽蓮慢瞄尿財沿潛曹顏摳般隱鍺掙廉淌窖艙燒毒駭網i基于java web的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)摘要:現(xiàn)在網絡上有很多的社

2、交網站,也有很多的用戶常駐其中,但由于他們受眾人群比較廣泛,用戶的年齡、職業(yè)的差別決定了這些網站必須做到通用性才能很好的讓大眾接受,因此他們也缺失了一些獨有霹濫應登功卿核察掩勵伺駭蔥贅捆進主漫赫芭熬負粵槐穆棉薯涵肆荒豺氨瓦瘟爪藕齲彰服電割違凄化世檻卉疆跡毆曲肥械曹郁軸芬斗貸圈摳獸污作穗帛賣豆煽孤絨宏扣頑簍繃廖育揮順俯詐徐菇決汝談鈴緊寒癰內武廳氨蜘嗓狄灘腫咳吭賂炔碑逝涸鍵薔姜徹懷找滇傣愛這翁寅敵吃鎮(zhèn)淖些童掌瘍矛擋鰓躇鉑笛輪橡竄鳳壩忌寺苔蛀眾戶粉結講蠟廟威錘剪苯浮邀銹母攻轉兌鈣景納箭硫慚提固桅贓考狗熊法章賭蝕箱耶口胺驅蛹鉆瓣圾肺調董津旱抱酸蟻右勤式石談揭陜帛捕釩柴奇醒娟沸壞列瘴豐后懸各享輥掉疤免瀝

3、嘴攜蒸執(zhí)脂抄霖峙志僵紹政惶刪捻替摻牧熒爭阿謅酞謎咱貌嚼苛皂椅罐睡纜燦基于javaweb的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)弛鳥廄恥嘶徊拽眶加挎冒璃固寺繭郝兵鎂摧軒鴻售裴帽紅瘍志饞妒灑啼剪傍單千相退緬念耪盅承制夸幼掂棒贛陵榮攀淺卑笛芽懶應執(zhí)伸遮湃丁元曙郭誨根把賊秒后誘鵝消閘暫瑤鉑蛔圾募霍編碟筆繪江竭刨勛堅緣陛擁郁估仍積叁南暑孕貪間勢青桶阮喀亞婿舶跟惦衣燦沉料紋皿槳葡徽撬賬竊東髓午奸毖醫(yī)濺橋態(tài)猖泣草咀逸踞儀窩奎梳廷沖秧脊抖殖挽摳妝飽啦愚懶仕蓬僳亭駿宇錘僵壘睡咋隘某遮涸凳枷惡湯帕騾懶貪搽炭畏止蕾僚晃爽勿蘊能懲京沉爍舌諒誕愈蕭婁癡量抱柿罩糧繕朔粥盾飄晝爭接胳玻咨龐堡雹肆績撼啼賃矮惋鳴輕開瞳喘鈉翰影

4、扶森斬陽苗港持喧化重章戍恢覆豈找屑漏覓基于java web的學生信息交流和自主管理系統(tǒng)的設計與實現(xiàn)摘要:現(xiàn)在網絡上有很多的社交網站,也有很多的用戶常駐其中,但由于他們受眾人群比較廣泛,用戶的年齡、職業(yè)的差別決定了這些網站必須做到通用性才能很好的讓大眾接受,因此他們也缺失了一些獨有的個性;在此背景上,決定做一個面向大學生自己的信息交流平臺,讓大學生可以在上面做專屬于自己的事情,這樣就能更好地讓興趣相投的人一塊交流。這次的項目是面向學生這個特殊群體的,所以其中的模塊都是具有定制特性的,希望以此可以很好滿足用戶的期望。網絡已經是大學生必不可少的東西,大學生也迫切的希望能在網絡盡情釋放自己,展現(xiàn)自己,

5、這次的項目正是出于這個想法,借此打造出具有獨特魅力的信息交流平臺。該項目主要是基于java web體系結構實現(xiàn)的,開發(fā)工具為eclipse,以oracle作為數(shù)據(jù)存儲層,結合流行的開源框架struts2完成了項目的整體架構。關鍵詞:信息交流 ;社交 ;java web ;struts2the design and implementation of  student's information exchange and independent management systemabstract: nowadays, there are a lot of social comm

6、unity web sites on the internet,and many users are used to communicating with each other through them.however,due to the wide range of customers,their different ages, and occupations, these sites must be no more ordinary in order that they can be accepted by the public.as a result ,it is no surprise

7、 that they will miss some unique personality.as for this phenomenon, i decide to develop an information exchanging platform for college students, so that students can do their own business.at the same time, more users sharing the same interests can communicate on it together.this project keeps focus

8、 on a special groupstudents ,and all of the modules have certain properties,hoping that it can meet the users expectations. internet has become indispensable for the college students,and the students are eager to release themselves and show themselves.motivated by this idea, the project tries to cre

9、ate an information communicated platform with unique characters. this project is based on javaweb architecture, using eclipse as development tools and oracle as database.moreover,it is combined with popular open source framework,which is called struts2 ,to complete the overall structure .key words:

10、information exchange;social;java web;struts2目 錄1 前言(1)1.1開發(fā)背景(1)1.2 系統(tǒng)設計的目標(1)2 相關技術介紹(1)2.1 jsp技術簡介(1)2.2 開源框架struts2技術簡介(1)2.3 oracle數(shù)據(jù)庫技術簡介(2)2.4 jquery腳本庫技術簡介(2)2.5 eclipse開發(fā)工具簡介(3)3 系統(tǒng)的可行性研究與需求分析(3)3.1 可行性研究(3)3.1.1 技術可行性(3)3.1.2 經濟可行性(3)3.1.3 營運可行性(3)3.2 需求分析(3)3.2.1 系統(tǒng)需求(3)3.2.2 性能需求(3)3.3 功能

11、分析(4)4 系統(tǒng)總體設計(4)4.1 系統(tǒng)主要功能設計(4)4.2 各模塊功能設計(5)4.3 數(shù)據(jù)庫設計(6)4.3.1 數(shù)據(jù)庫的邏輯結構(6)4.3.2 數(shù)據(jù)庫的連接(10)5 系統(tǒng)詳細設計與實現(xiàn)(10)5.1 系統(tǒng)登陸模塊設計(10)5.2 系統(tǒng)注冊模塊設計(10)5.3 首頁模塊設計(11)5.4 博文模塊設計(12)5.4.1 瀏覽全部博文(12)5.4.2 發(fā)表博文(13)5.4.3 博文詳細(15)5.5 問答模塊設計(16)5.5.1 瀏覽全部問題(16)5.5.2 問答詳細(17)5.5.3 提出問題(18)5.6 個人中心設計(19)5.6.1 個人資料更新(19)5.6

12、.2 個人內容管理(20)5.6.3 后臺管理(20)6 系統(tǒng)調試與測試(22)6.1 測試概論(22)6.2 程序的測試(22)6.2.1 學生登錄測試(22)6.2.2 學生注冊測試(23)6.2.3 發(fā)表博文測試(23)6.3 測試結果(24)結論(25)參考文獻(26)致謝(27)1 前言1.1開發(fā)背景 網絡已經成為當代大學生生活和學習中不可或缺的一樣東西,生活中需要交流,學習上也需要交流。網絡正好滿足了這個需求,很多的社交網站也應運而生。網絡交流成為了大學生的日?;顒樱x開了網絡,很多大學生都會有一種孤獨感,或者被社會拋棄的感覺這正好反映了大學生對網絡的依賴性和網絡交流的重要性。大多

13、數(shù)的社交網站用戶人群比較廣泛,用戶的年齡、職業(yè)的差別決定了這些網站必須做到通用性才能很好的讓大眾接受,因此他們也缺失了一些獨有的個性。當然,網上也有很多別具一格的社交論壇,里邊聚集著一群有共同愛好的人。在此背景上,我決定做一個面向大學生自己的信息交流平臺,用屬于大學生的元素來吸引大學生在上面綻放自己年輕的光彩。1.2 系統(tǒng)設計的目標這次的項目是針對大學生所做的,目的是為了設計出具有學校生活色彩的應用系統(tǒng),讓使用者可以快速的融入其中?,F(xiàn)在的大學生迫切的需要有共享自己的想法的平臺,本系統(tǒng)正是要滿足的這樣的需求。2 相關技術介紹2.1 jsp技術簡介jsp是sun公司在web編程領域所開發(fā)的一項技術

14、,上面可以寫html標簽,也可以寫一下java代碼進行邏輯處理,結合了顯示處理和后臺處理。受益于java語言的無平臺限制性,解釋jsp的中間件服務器可以運行在任何裝有jvm環(huán)境的機器,代碼不需要做任何的修改。2.2 開源框架struts2技術簡介struts 2是struts1的升級版本,它融合了webwork框架的優(yōu)點,吸收了很多現(xiàn)在比較流行的軟件思想,受到很多的開發(fā)者的喜愛?,F(xiàn)在由apache開源組織進行維護和升級,每個開發(fā)者都可以貢獻自己的一份力量。struts2主要是對web編程中的請求控制進行了進一步的整合和封裝,簡化了很多繁瑣復雜的工作,通過幾個簡單的配置就可以讓開發(fā)者完成前臺到后

15、臺的一系列流程。這樣可以讓開發(fā)者把精力放在業(yè)務邏輯的處理,而不用重復的進行請求的處理,一定程度上提高了開發(fā)效率。圖2.1為struts2的工作流程:圖2.1 struts2工作原理2.3 oracle數(shù)據(jù)庫技術簡介oracle數(shù)據(jù)庫系統(tǒng)是一種企業(yè)級的關系型數(shù)據(jù)庫,由美國oracle公司(甲骨文)開發(fā)。它比較適合一些大中型的企業(yè)應用。oracle數(shù)據(jù)庫系統(tǒng)是現(xiàn)今數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)庫設計原理實現(xiàn)的最為完整的數(shù)據(jù)庫,安全性很高,適合一些對信息安全有很高要求的系統(tǒng)開發(fā)。oracle現(xiàn)在的版本為oracle database 12c,其對數(shù)據(jù)庫云進行了很好的支持,對處理大數(shù)據(jù)提供了不錯的支撐。2.4 j

16、query腳本庫技術簡介jquery是一個開源的js腳本庫,全球使用人數(shù)很高,也有很多的開發(fā)者在對其進行優(yōu)化和擴展。它主要優(yōu)點是能夠兼容多種瀏覽器,對不同的瀏覽器內核進行了很好的兼容。使用jquery可以對dom進行很多操作,也可以讓開發(fā)者做出很多動態(tài)顯示特效。另外,它封裝的ajax功能也是非常簡便易用,功能強大。jquery提供了豐富的api供開發(fā)者使用,利用它可以很輕松的開發(fā)出強大的web系統(tǒng)。2.5 eclipse開發(fā)工具簡介eclipse是一種功能強大的集成開發(fā)工具,主要用于java語言的開發(fā)。它提供了豐富的快捷鍵,讓開發(fā)者可以利用純鍵盤進行快速的編程。eclipse允許開發(fā)者在其提供

17、的api基礎上開發(fā)特殊需求的插件,此插件可以完美的融合到eclipse上,很大程度上增強的它自身的功能,方便了開發(fā)者的開發(fā)。另外,它提供的debug調試功能對于排查開發(fā)過程中難以發(fā)現(xiàn)的bug起到了很明顯的作用。3 系統(tǒng)的可行性研究與需求分析3.1 可行性研究3.1.1 技術可行性技術方面主要使用了比較流行的struts2框架,網上相關資料比較豐富,實現(xiàn)起來相對容易。數(shù)據(jù)庫oracle也是比較成熟的數(shù)據(jù)庫,應對本系統(tǒng)也不會出現(xiàn)性能問題。其他的技術像ajax也有很多豐富的實例,不存在無法實現(xiàn)的問題。由此可知,技術上是可行的。3.1.2 經濟可行性本系統(tǒng)的開發(fā)過程中所使用的資源均屬于開源免費的,不需

18、要額外支付費用,開發(fā)人員上也不需要很大的需求,所以產生的費用也不是很大,系統(tǒng)后期的部署和維護也是相對比較容易,對服務器的要求也不是很苛刻,所有開支不是很大,所以,經濟上是可行的。3.1.3 營運可行性本系統(tǒng)主要是針對大學生所開發(fā)的應用系統(tǒng),在潛在用戶量這方面是很客觀的,營運過程中,宣傳也是比較簡單,同學之間相互了解是很有效的宣傳方式。所以在運行上是可行的。3.2 需求分析在系統(tǒng)開發(fā)之前,需求分析是很關鍵的。一個好的需求直接決定了系統(tǒng)開發(fā)的成敗。需求分析主要是了解用戶的主觀想法,借此來總結需要實現(xiàn)的功能以及實現(xiàn)過程中的細節(jié)。3.2.1 系統(tǒng)需求對于該系統(tǒng)的實現(xiàn)方式,java是很好的選擇。因為ja

19、va在web方向上有很多成熟的體系結構,它是經過了很多人驗證后確實可行的方案,所以使用起來會比較容易。3.2.2 性能需求系統(tǒng)運行過程中會產生很多的數(shù)據(jù),在數(shù)據(jù)到大一定量以后,就會導致系統(tǒng)性能問題。所以在實現(xiàn)方式上,數(shù)據(jù)源方面需要使用連接池加快訪問數(shù)據(jù)庫的速度,后期在服務器上需要提高服務器的配置,以達到要求的運行速度。3.3 功能分析學生信息交流平臺主要包括首頁展示,博文模塊,問答模塊,個人中心和關于。其中首頁主要是對博文和問答的一系列展示,包括最新博文,最新圖文,熱門博文,各類型博文,以及最新的待解決問題,另外還包括活躍學生的排行展示;博文模塊主要是對博文展示,發(fā)表博文,回復博文,查找博文等

20、一系列的用戶操作;問答模塊就是對學生用戶所提問題的展現(xiàn)和其他學生對其進行回答的展示,另外,提問者還可以對自己滿意的回答進行采納,此時問題狀態(tài)改為已解決;個人中心主要有基本資料,密碼,頭像的更新,另外可以管理自己的博文和問答,實現(xiàn)用戶的自主管理;此外,學生還會有自己相應的角色,比如管理員,博文管理員,問答管理員,普通用戶,對應的角色可以管理整個系統(tǒng)的相應模塊,這樣就使用戶具備了后臺管理員的部分權限,默認情況下,管理員具有所有權限,只有管理員可以管理系統(tǒng)的所有學生用戶;關于模塊就是對整個系統(tǒng)的介紹。4 系統(tǒng)總體設計4.1 系統(tǒng)主要功能設計圖4.1 功能模塊圖該系統(tǒng)主要有:首頁展示,博文模塊,問答模

21、塊,個人中心模塊和關于模塊。其中博文模塊下有包括查看博文,發(fā)表博文,回復博文和按類別、用戶、標題查詢博文;問答模塊下有提出問題,回答問題,采納問題,查找答案等;個人中心包括用戶個人資料,密碼,頭像的修改,以及對自己博文和問答的查閱與更新,個人中心還包括后臺管理部分,用戶可以根據(jù)自己的權限做相應的操作。圖4.1為學生信息交流平臺的功能模塊圖。4.2 各模塊功能設計主要功能有:1. 用戶登錄注冊:注冊時對用戶輸入的信息進行有效驗證,并對已經注冊用戶名進行提示,防止出現(xiàn)同樣的用戶名。2. 博文模塊:對所有博文進行分頁展示,可以根據(jù)類別,用戶名,標題進行查詢,點擊博文進入博文詳細,可以瀏覽博文內容和回

22、復詳細,回復具有一級回復和二級回復,可對二級回復進行隱藏和顯示,另外可以點擊發(fā)表博文來表達自己的觀點。3. 問答模塊:對最新的問題進行展示,可以根據(jù)關鍵字模糊查詢問題,點擊問題進入問題詳細,可以查看問題詳情和回答列表,如果是提問人,還可以對滿意的答案進行采納,同樣也可以提出問題等待別人回答。4. 個人中心:首先包括對個人資料的更新,其中有個人基本資料,個人密碼,個人頭像;還有就是對自己的博文和問答的管理。個人中心還包括后臺的管理,用戶可以根據(jù)自己的權限來管理相應的模塊。5. 關于:對本系統(tǒng)的一個介紹,讓用戶對系統(tǒng)有個全面的認識。4.3 數(shù)據(jù)庫設計4.3.1 數(shù)據(jù)庫的邏輯結構數(shù)據(jù)庫設計需要滿足一

23、些嚴格的約束和規(guī)則。要搞清楚實體和表之間的對應關系,還有他們之間的各種聯(lián)系。設計過程要充分考慮數(shù)據(jù)冗余與性能上的平衡,盡量在表的設計上做到最優(yōu)。學生信息交流平臺的數(shù)據(jù)庫包含下列數(shù)據(jù)表:(1)學生信息表主要用于保存注冊用戶的各類信息,包括用戶名,密碼,昵稱,郵箱等。表4.1 學生信息表(student)名稱類型可為空注釋stunonumber(8)學生編號stuaccountvarchar2(45)y賬號stupasswordvarchar2(45)y密碼stusexvarchar2(4)y性別stunicknamevarchar2(50)y昵稱stubirthdatey生日stuphotova

24、rchar2(100)y頭像stuhobbyvarchar2(100)y愛好stuyxvarchar2(100)y院系stuzyvarchar2(100)y專業(yè)stuemailvarchar2(100)y郵箱stutelvarchar2(40)y手機statusintegery狀態(tài)roleidnumber(2)y角色idregdatedatey注冊日期 (2)用戶角色表主要用于保存注冊用戶的角色信息。表4.2 用戶角色表(role)名稱類型可為空注釋roleidnumber(2) 角色idrolenamevarchar2(20)y角色名rolevaluenumber(4)y角色權限值

25、 (3)用戶權限表主要用于保存注冊用戶操作的各類權限。表4.3 用戶權限表(permission)名稱類型可為空注釋pidnumber(4) 權限idpnamevarchar2(45)y權限名稱purlvarchar2(100)y路徑 (4)博文表主要用于保存博文的各類信息,包括標題,內容,時間,發(fā)布人等。表4.4 博文信息表(blog)名稱類型可為空注釋blogidvarchar2(20) 博文idblogtitlevarchar2(100)y博文標題blogcontentvarchar2(4000)y博文內容blogtagvarchar2(20)y博文標簽blogrea

26、dnumber(8)y瀏覽數(shù)blogreplynumber(8)y回復數(shù)blogtimedatey發(fā)布時間stunonumber(8)y發(fā)布人編號 (5)博文一級回復表主要用于保存注冊博文的一級回復,包括id,內容,時間,博文id等。表4.5 博文一級回復表(replyone)名稱類型可為空注釋roneidvarchar2(20) 回復idronecontentvarchar2(500)y回復內容ronedatedatey回復時間stunonumber(8)y回復人編號blogidvarchar2(20)y所回復博文 (6)博文二級回復表主要用于保存注冊博文的二級回復,包括id,內容

27、,時間,一級回復id等。表4.6 博文二級回復表(replytwo)名稱類型可為空注釋rtwoidvarchar2(20) 回復idrtwocontentvarchar2(500)y回復內容rtwodatedatey回復時間stunonumber(8)y回復人編號roneidvarchar2(20)y一級回復id (7)問題表主要用于保存注冊問題的各類信息,包括問題標題,內容,時間,問題狀態(tài)等。表4.7 問題表(ask)名稱類型可為空注釋askidvarchar2(20) 問題編號asktitlevarchar2(100)y問題標題askcontentvarchar2(20

28、00)y問題內容askreadnumber(8)y閱讀數(shù)askanswernumber(8)y回答數(shù)asktimedatey提問時間stunonumber(8)y提問人編號statusintegery問題狀態(tài) (8)回答表主要用于保存回答的各類信息,包括回答內容,回答時間,是否采納等。表4.8 回答表(answer)名稱類型可為空注釋answeridvarchar2(20) 回答idanswercontentvarchar2(1000)y回答內容answertimedatey回答時間agreecountnumber(8)y贊同數(shù)acceptintegery是否被采納(0未采納

29、0;  1已采納)stunonumber(8)y回答人編號askidvarchar2(20)y問題id (9)圖片表主要用于保存圖片的各類信息,包括圖片名稱,圖片路徑,對應表名稱,對應記錄,上傳時間等。表4.9 圖片表(pics)名稱類型可為空注釋picidvarchar2(20)y圖片idpicnamevarchar2(100)y圖片名稱picurlvarchar2(100)y圖片路徑tablenamevarchar2(20)y對應表名稱recodeidvarchar2(20)y對應記錄iduptimedatey上傳時間4.3.2 數(shù)據(jù)庫的連接本系統(tǒng)運用了dbcp數(shù)據(jù)庫連接池來提高

30、數(shù)據(jù)庫的連接效率。dbcp是 apache組織上的一個 java 連接池項目,同時也是 tomcat 使用的連接池組件。系統(tǒng)中使用dbcp需要3個jar包:commons-pool.jar,commons-collections.jar; commons-dbcp.jar。系統(tǒng)中頻繁的建立數(shù)據(jù)庫連接是非常耗費資源的操作,所以dbcp連接池會預先創(chuàng)建一些連接存在內存中維護,這樣系統(tǒng)中需要用到連接的時候直接去池中取,省掉了臨時創(chuàng)建的時間,提高了運行效率。首先需要在meta-inf中加入數(shù)據(jù)庫連接池配置文件context.xml,然后配置監(jiān)聽器初始化數(shù)據(jù)源,之后代碼中就可以使用getdatasour

31、ce()得到的數(shù)據(jù)源來獲取數(shù)據(jù)庫連接。5 系統(tǒng)詳細設計與實現(xiàn)5.1 系統(tǒng)登陸模塊設計登陸模塊主要功能就是驗證用戶輸入的用戶名密碼是否正確,如果輸入有誤就進行相應的提示,如果登陸成功就跳轉到首頁。圖5.1為登陸頁面:圖5.1 系統(tǒng)登陸界面登陸過程使用jquery實現(xiàn)的ajax方式進行后臺的驗證,驗證結果通過js動態(tài)的顯示在頁面上,填寫完登陸信息發(fā)送請求到后臺,此時會經過struts2的攔截器interceptor來查詢該用戶的具體權限,并保存到session中。這樣就可以方便的在具體的操作中判斷用戶是否具有該權限,也可以根據(jù)用戶的權限動態(tài)的顯示頁面上的模塊。5.2 系統(tǒng)注冊模塊設計圖5.2 系統(tǒng)

32、注冊界面注冊模塊是用戶從游客到會員的必經之道,只有注冊的用戶才能進行發(fā)表博文,提問題等一系列操作。圖5.2為注冊頁面。首先,當用戶輸入用戶名以后會去異步請求后臺,驗證該用戶名是否已經注冊,如果已經注冊就禁止該用戶名的重復注冊,接著會對密碼和重復密碼進行有效性驗證,判斷兩次密碼輸入是否一致,并作相應提示。另外,還有對郵箱和手機的合法性驗證,主要是使用了正則表達式。其中,驗證郵箱合法性的正則為:/w+w+.w+$/,驗證手機合法性的正則為:/(131-9|155-9|182-9)d8$/。這樣就可以有效的避免用戶的惡意輸入。最后注冊成功后就會跳轉到登陸界面,并且用戶名輸入框已經默認帶有用戶剛注冊成

33、功的用戶名,方便了用戶登陸。5.3 首頁模塊設計登陸成功后進入首頁,首頁主要是對平臺中內容的全面展示。圖5.3為系統(tǒng)首頁:圖5.3 系統(tǒng)首頁首先會有一個圖片輪播,展示的是最新的博文中所夾帶的圖片,點擊圖片可以查看該博文詳細,然后就是對熱門博文以及各種類型博文的展示。5.4 博文模塊設計5.4.1 瀏覽全部博文點擊導航欄的博文選項,首先會進入到全部博文的頁面,上邊顯示的是根據(jù)發(fā)表時間的降序排列的所有博文的分頁顯示。左側有博文的各個分類,點擊某個分類可以選擇瀏覽具體分類的博文。下方還有博文搜索的輸入框,可以根據(jù)輸入的關鍵字按照標題或博主搜索相關內容。具體顯示如圖5.4:圖5.4 博文縱覽頁在blo

34、g.jsp中全部博文處只是一個空的div,頁面上所顯示的內容都是在頁面剛開始加載時動態(tài)的去后臺請求,然后數(shù)據(jù)返回到另外一個bloglist.jsp的頁面中進行組織,最后把整個頁面加載進了剛才的空白div,代碼如下:$(document).ready(function()$("#showdiv").load("/stuinfo/blog_findbytag.action?timestamp="+(new date().gettime(););5.4.2 發(fā)表博文點擊博文頁面中的發(fā)表博文按鈕就會進入到發(fā)表博文的頁面,在進入頁面前,會判斷當前有沒有用戶登陸,如

35、果沒有登陸就提示請登錄然后跳轉到登陸頁面,這樣可以有效避免游客的非法操作。頁面如圖5.5:圖5.5 發(fā)表博文頁其中用到了第三方插件ckeditor,這是一個富文本編輯器插件,可以取代原始的textarea文本域進行豐富的文本輸入,在此基礎上又額外添加了上傳圖片的功能,使發(fā)表的博文可以圖文并茂,更加生動。在標題框輸入標題時,右上角的字數(shù)會實時的變化,提示用戶當前的字數(shù),如果超過最大值就會將輸入框邊框變?yōu)榧t色來提醒用戶輸入非法。填寫完畢,點擊發(fā)表按鈕,表單中的數(shù)據(jù)會提交到后臺進行處理。其中,為了避免用戶的惡意js注入,對輸入的內容進行了特殊字符轉義處理,替換提交內容中的<,>, &qu

36、ot;, &。還要對博文內容進行解析,判斷是否含有圖片,如果包含則需要提取出來進行單獨的圖片上傳和保存。其中用到了正則表達式對內容中圖片路徑的格式進行匹配,正則表達式為:bsrc="("+)"。代碼如下:/如果博文中包含<img標記if(blogcontent.indexof("<img") != -1)ipicsbiz picsbiz = new picsbizimpl();pattern pattern = ppile("bsrc="("+)"");matcher mat

37、cher = pattern.matcher(blogcontent);while(matcher.find()if(matcher.group(1).indexof("ckeditor/plugins/") != -1)continue;pics pic = new pics();pic.setpicname(this.blog.getblogtitle();pic.setpicurl(matcher.group(1);pic.setrecodeid(blogid);pic.settablename("blog");pic.setuptime(new

38、date();picsbiz.addpic(pic);5.4.3 博文詳細博文詳細頁主要是對博文的具體內容,博主的信息以及該博文回復信息的一系列展示,如圖5.6。詳細頁左側會顯示發(fā)表該博文的用戶的詳細信息,右側是該博文的詳細,包括博文標題,博文類別,發(fā)表時間和博文內容。下方就是所有的回復列表,回復包括一級回復和二級回復,其中每條回復又有相應的回復人信息。這個就涉及到數(shù)據(jù)的對應關系,一條回復對應唯一的一個用戶,一篇博文對應多條一級回復,一條一級回復又對應多條二級回復。所以就需要特定的數(shù)據(jù)結構來存儲其對應關系,使用onetoone<t extends serializable, one ex

39、tends serializable>泛型類來表示一對一的關系,使用onetomany <t extends serializable,many extends serializable>來表示一對多的關系,這樣查詢數(shù)據(jù)庫時,按照其要求的結果組裝數(shù)據(jù),將其封裝到對應的一對一或一對多實體bean中,傳到前臺進行顯示。封裝的部分代碼如下:/封裝一級回復與對應的二級回復list<onetomany<onetoone<replyone, student>, onetoone<replytwo, student>>> data = nul

40、l;if(replyones != null)data = new arraylist<onetomany<onetoone<replyone, student>, onetoone<replytwo, student>>>(replyones.size();for(replyone replyone : replyones)student student = this.studentbiz.findbystuno(replyone.getstuno();onetoone<replyone, student> entity = new

41、 onetoone<replyone, student>(replyone, student);list<onetoone<replytwo, student>> many = this.replytwobiz.findallbyroneid(" and roneid=? ", replyone.getroneid();data.add(new onetomany<onetoone<replyone,student>, onetoone<replytwo,student>>(entity, many);

42、點擊一級回復中的回復按鈕會彈出一個新的div層,彈出方式為淡出淡入,該實現(xiàn)是運用了jquery的動態(tài)效果。在該彈出層中對一級回復進行二次回復;另外,右上角的收起回復點擊可以將二級回復隱藏,同時收起回復變?yōu)檎归_回復,再次點擊可顯示二級回復。圖5.6 博文詳細頁5.5 問答模塊設計5.5.1 瀏覽全部問題點擊導航欄有問必答進入到問答頁面,主要有按提問時間降序排列的問題列表,按照關鍵字搜索答案的搜索框以及提出問題的按鈕。界面如圖5.7:圖5.7 有問必答頁5.5.2 問答詳細問答詳細主要是對問題的具體展現(xiàn),包括問題的標題,內容,提問時間,提問人以及被瀏覽次數(shù)等,下方還會有對該問題的具體回答列表。如果

43、該問題是已采納狀態(tài),則問題下方會顯示所采納的答案。右側還會有最新的幾條待解決問題供其他用戶瀏覽。界面如圖5.8:圖5.8 問答詳細頁如果當前登錄用戶為該問題的提問人,則在每條回答的后面會有采納的按鈕,點擊采納會將該答案設為最佳答案,并將問題狀態(tài)設為已解決。此時,所有回答的采納按鈕將不會再顯示,避免重復采納。5.5.3 提出問題提出問題頁同發(fā)表博文頁基本一致,同樣是引用了第三方富文本編輯器插件ckeditor來進行問題的編輯,同樣具有圖片上傳功能。5.6 個人中心設計5.6.1 個人資料更新在個人中心,用戶可以對自己的個人資料進行查看和更新,其中包括基本信息的更新,用戶密碼的更新和用戶頭像的更新

44、。1. 基本信息的更新包括用戶生日,昵稱,性別,愛好,手機,郵箱等的更新,同樣也有相應的有效性驗證來保證用戶輸入的合法。 界面如圖5.9:圖5.9 基本資料更新2. 個人密碼更新必須輸入原始密碼才能修改,當用戶輸入完畢,發(fā)送請求到后臺,后臺會對原始密碼進行校驗,如果不正確會提示舊密碼不正確。3. 個人頭像更新會提供一個屬性為file的input節(jié)點用于選擇文件,后臺使用struts2的封裝好的file對象進行上傳處理。而且會對文件的格式進行驗證,如果不是".jpg",".png",".gif",".jpeg"中的其

45、中一種,則上傳失敗,頁面上顯示格式不正確提示用戶。5.6.2 個人內容管理在內容管理模塊中,用戶可以對自己的博文和問答進行刪除和更新。博文管理中,用戶可以根據(jù)關鍵字,博文類別和博文日期進行相應的篩選,選出符合條件的博文進行管理。管理過程中,可以批量操作,提供了全選,反選和批量刪除的按鈕方便用戶操作。界面如圖5.10:圖5.10 我的博文管理查詢中會根據(jù)用戶所選擇的的過濾條件進行針對性的篩選,對用戶選擇的條件進行過濾,沒有選擇的則默認不作為過濾條件。其中關鍵的就是動態(tài)的拼接查詢sql語句。5.6.3 后臺管理本系統(tǒng)將后臺管理融入到了個人中心,實現(xiàn)了自我管理。每個用戶都有自己的權限,用戶可以根據(jù)自

46、己的權限在個人中心進行相應的后臺管理。1. 權限原理介紹 后臺管理頁面中的用戶管理,博文管理,問答管理都是根據(jù)登陸用戶的權限列表動態(tài)顯示的。下表為用戶權限表:表5.1 權限具體條目表權限id權限名權限路徑1用戶管理/role_findall.action2博文管理/jsp/personal/manager/blogmanager.jsp4問答管理/jsp/personal/manager/askmanager.jsp下表為用戶角色表:表5.2 角色具體條目表角色id角色名角色值1超級管理員72博文管理員23問答管理員40普通用戶0其中,權限的id值分別設為了1,2,4;角色表中超級管理員具有所

47、有的權限,所以其角色值為1+2+4=7;博文管理員只具有博文管理的權限,所以其角色值為2,同理問答管理員角色值為4;普通用戶沒有任何權限,所以其角色值為0。這樣分配以后,用戶登陸后可以根據(jù)用戶的角色值來判斷該用戶是否具有某個權限。例如:想要判斷角色值為7的超級管理員是否具有用戶管理的權限,則需要計算該角色值按位與用戶管理權限id的結果,即7&1 != 0,如果不等于0就說明該用戶具有此權限。此方法是巧妙的利用了按位與的特性,只要符合這樣的規(guī)則,就可以很簡單的判斷對應角色的對應權限。2. 用戶管理在用戶管理中,管理員可以根據(jù)不同的篩選條件來選擇符合條件的用戶列表。同時,可以控制特定用戶是

48、否有效,無效的禁止登陸,另外還可以修改用戶的角色,讓某個用戶具有特定的權限。界面如圖5.11:圖5.11 用戶管理3. 博文管理博文管理中,同樣可以根據(jù)博主,博文標簽,關鍵字和起止時間進行查詢。在查詢出的博文列表中會列出博主昵稱,博文標題,博文標簽和發(fā)表時間,管理員可以進行刪除和批量刪除。4. 問答管理問答管理中,管理員可以根據(jù)提問人,問題狀態(tài),關鍵字和提問時間進行查詢,列表中也會相應的列舉出提問人昵稱,問題標題,問題狀態(tài)和提問時間。管理員可以進行刪除和批量刪除。6 系統(tǒng)調試與測試6.1 測試概論軟件測試在系統(tǒng)開發(fā)過程中是必不可少的一個環(huán)節(jié),一個好的系統(tǒng)必然是在發(fā)布前經歷了系統(tǒng)全面的測試。其在

49、軟件工程學上也是有很重要的地位,因為它直接決定了一個系統(tǒng)的好與壞。軟件測試有很多種測試方法,比如白盒測試,黑盒測試,還有程序員經常說的冒煙測試,這些測試方法都能夠很有效的發(fā)現(xiàn)系統(tǒng)潛在的漏洞。只有全面的測試才能保證項目的正常發(fā)布。6.2 程序的測試6.2.1 學生登錄測試登錄過程主要是對用戶名密碼的合法性判斷,測試用例如下:表6.1 登錄測試用例編號測試項用例目的輸入數(shù)據(jù)實際結果結果比較說明001學生登陸測試用戶名密碼為空是否可登陸用戶名:空密碼:空提示輸入用戶名,輸入密碼符合002學生登陸測試用戶名不存在,是否可登陸用戶名:555密碼:555提示用戶名不存在符合003學生登陸測試密碼輸入錯誤是

50、否可登陸用戶名:admin密碼:555提示密碼錯誤符合6.2.2 學生注冊測試注冊信息包括用戶名,密碼,昵稱,生日,愛好,郵箱和手機等,測試過程主要是對這些信息的驗證,測試用例如下:表6.2 注冊測試用例編號測試項用例目的輸入數(shù)據(jù)實際結果結果比較說明001學生注冊測試已注冊用戶名是否可注冊用戶名:admin提示用戶名已存在符合002學生注冊測試兩次密碼不同是否可注冊密碼:123重復密碼:456提示兩次密碼不一致符合003學生注冊測試郵箱格式不合法是否可注冊郵箱:1111.ss提示郵箱格式不正確符合004學生注冊手機格式不正確是否可注冊手機:111222233手機格式不正確符合6.2.3 發(fā)表博

51、文測試發(fā)表博文需要填寫博文的標題,博文類型和博文內容,要對標題的長度,博文內容進行驗證,測試用例如下:表6.3 發(fā)表博文測試用例編號測試項用例目的輸入數(shù)據(jù)實際結果結果比較說明001發(fā)表博文測試標題為空是否可發(fā)表標題:空標題輸入框變紅提示符合002發(fā)表博文測試標題長度大于50是否可發(fā)表標題:長度大于50標題輸入框變紅警告符合003發(fā)表博文測試內容為空是否可發(fā)表內容:空提示內容不能為空符合6.3 測試結果經過一系列的測試,表明了系統(tǒng)各個模塊均符合設計要求,后續(xù)使用過程中還會出現(xiàn)其他的問題,維護工作也必不可少。結論一段時間的設計,加上一段時間的編碼,再加上一段時間的測試,系統(tǒng)已經初步成型,當然后期還

52、有很多的維護工作,以保證其能正常運行。緊接著就是一段時間的論文撰寫,此次畢業(yè)論文的編寫讓我深刻體會到了科學理論的重要性,很多東西不是說知道就完成了,還要能準確清晰的表達出來。論文就是要讓別人明白你所寫的東西是什么,讓晦澀難懂的專業(yè)術語能夠被非專業(yè)人員理解,這是一種藝術。在完成論文的過程中,自己也重新梳理了一遍軟件開發(fā)的流程,當今軟件的開發(fā)已經逐步成熟,有著和傳統(tǒng)工業(yè)一樣的系統(tǒng)化開發(fā)流程,這樣規(guī)范了開發(fā)的各個步驟,同時也有利于提高開發(fā)的效率。學生信息交流平臺旨在提供給大學生一個輕松活躍的交流環(huán)境,它沒有學校必須的學術性,沒有科研必須的準確性,有的是每個人獨具一格的思想。在這里,每個人都可以暢所欲言,這就是當代大學生應有的交流。在開發(fā)的過程中,也遇到了很多以前沒有見過的難題。確實,很多時候問題都是邊做邊發(fā)現(xiàn)的,平時覺得很不起眼的小功能,到了真正實現(xiàn)的時候,就會發(fā)現(xiàn)沒有想象中的那么容易。也只有這樣,你才能全方位的提高自己的技術水平,動手才是解決問題和提高自己的最好方法。參考文獻1 張曉東,高鑒偉jsp+oracle數(shù)據(jù)庫開發(fā)與實例m清華大學出版社,20082

溫馨提示

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

評論

0/150

提交評論