版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于java web的學(xué)生信息交流和自主管理系統(tǒng)的設(shè)計與實現(xiàn)摘要:現(xiàn)在網(wǎng)絡(luò)上有很多的社交網(wǎng)站,也有很多的用戶常駐其中,但由于他們受眾人群比較廣泛,用戶的年齡、職業(yè)的差別決定了這些網(wǎng)站必須做到通用性才能很好的讓大眾接受,因此他們也缺失了一些獨有的個性;在此背景上,決定做一個面向大學(xué)生自己的信息交流平臺,讓大學(xué)生可以在上面做專屬于自己的事情,這樣就能更好地讓興趣相投的人一塊交流。這次的項目是面向?qū)W生這個特殊群體的,所以其中的模塊都是具有定制特性的,希望以此可以很好滿足用戶的期望。網(wǎng)絡(luò)已經(jīng)是大學(xué)生必不可少的東西,大學(xué)生也迫切的希望能在網(wǎng)絡(luò)盡情釋放自己,展現(xiàn)自己,這次的項目正是出于這個想法,借此打造出
2、具有獨特魅力的信息交流平臺。該項目主要是基于java web體系結(jié)構(gòu)實現(xiàn)的,開發(fā)工具為eclipse,以oracle作為數(shù)據(jù)存儲層,結(jié)合流行的開源框架struts2完成了項目的整體架構(gòu)。關(guān)鍵詞:信息交流 ;社交 ;java web ;struts2the design and implementation of students information exchange and independent management systemabstract: nowadays, there are a lot of social community web sites on the interne
3、t,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 that they will miss some uniq
4、ue 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 on a special groupstudents ,a
5、nd 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 create an information communicate
6、d 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: information exchange;social;ja
7、va web;struts2目 錄1 前言(1)1.1開發(fā)背景(1)1.2 系統(tǒng)設(shè)計的目標(biāo)(1)2 相關(guān)技術(shù)介紹(1)2.1 jsp技術(shù)簡介(1)2.2 開源框架struts2技術(shù)簡介(1)2.3 oracle數(shù)據(jù)庫技術(shù)簡介(2)2.4 jquery腳本庫技術(shù)簡介(2)2.5 eclipse開發(fā)工具簡介(3)3 系統(tǒng)的可行性研究與需求分析(3)3.1 可行性研究(3)3.1.1 技術(shù)可行性(3)3.1.2 經(jīng)濟可行性(3)3.1.3 營運可行性(3)3.2 需求分析(3)3.2.1 系統(tǒng)需求(3)3.2.2 性能需求(3)3.3 功能分析(4)4 系統(tǒng)總體設(shè)計(4)4.1 系統(tǒng)主要功能設(shè)計(4
8、)4.2 各模塊功能設(shè)計(5)4.3 數(shù)據(jù)庫設(shè)計(6)4.3.1 數(shù)據(jù)庫的邏輯結(jié)構(gòu)(6)4.3.2 數(shù)據(jù)庫的連接(10)5 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)(10)5.1 系統(tǒng)登陸模塊設(shè)計(10)5.2 系統(tǒng)注冊模塊設(shè)計(10)5.3 首頁模塊設(shè)計(11)5.4 博文模塊設(shè)計(12)5.4.1 瀏覽全部博文(12)5.4.2 發(fā)表博文(13)5.4.3 博文詳細(xì)(15)5.5 問答模塊設(shè)計(16)5.5.1 瀏覽全部問題(16)5.5.2 問答詳細(xì)(17)5.5.3 提出問題(18)5.6 個人中心設(shè)計(19)5.6.1 個人資料更新(19)5.6.2 個人內(nèi)容管理(20)5.6.3 后臺管理(20)6 系
9、統(tǒng)調(diào)試與測試(22)6.1 測試概論(22)6.2 程序的測試(22)6.2.1 學(xué)生登錄測試(22)6.2.2 學(xué)生注冊測試(23)6.2.3 發(fā)表博文測試(23)6.3 測試結(jié)果(24)結(jié)論(25)參考文獻(26)致謝(27)1 前言1.1開發(fā)背景 網(wǎng)絡(luò)已經(jīng)成為當(dāng)代大學(xué)生生活和學(xué)習(xí)中不可或缺的一樣?xùn)|西,生活中需要交流,學(xué)習(xí)上也需要交流。網(wǎng)絡(luò)正好滿足了這個需求,很多的社交網(wǎng)站也應(yīng)運而生。網(wǎng)絡(luò)交流成為了大學(xué)生的日?;顒樱x開了網(wǎng)絡(luò),很多大學(xué)生都會有一種孤獨感,或者被社會拋棄的感覺這正好反映了大學(xué)生對網(wǎng)絡(luò)的依賴性和網(wǎng)絡(luò)交流的重要性。大多數(shù)的社交網(wǎng)站用戶人群比較廣泛,用戶的年齡、職業(yè)的差別決定了這
10、些網(wǎng)站必須做到通用性才能很好的讓大眾接受,因此他們也缺失了一些獨有的個性。當(dāng)然,網(wǎng)上也有很多別具一格的社交論壇,里邊聚集著一群有共同愛好的人。在此背景上,我決定做一個面向大學(xué)生自己的信息交流平臺,用屬于大學(xué)生的元素來吸引大學(xué)生在上面綻放自己年輕的光彩。1.2 系統(tǒng)設(shè)計的目標(biāo)這次的項目是針對大學(xué)生所做的,目的是為了設(shè)計出具有學(xué)校生活色彩的應(yīng)用系統(tǒng),讓使用者可以快速的融入其中?,F(xiàn)在的大學(xué)生迫切的需要有共享自己的想法的平臺,本系統(tǒng)正是要滿足的這樣的需求。2 相關(guān)技術(shù)介紹2.1 jsp技術(shù)簡介jsp是sun公司在web編程領(lǐng)域所開發(fā)的一項技術(shù),上面可以寫html標(biāo)簽,也可以寫一下java代碼進行邏輯處
11、理,結(jié)合了顯示處理和后臺處理。受益于java語言的無平臺限制性,解釋jsp的中間件服務(wù)器可以運行在任何裝有jvm環(huán)境的機器,代碼不需要做任何的修改。2.2 開源框架struts2技術(shù)簡介struts 2是struts1的升級版本,它融合了webwork框架的優(yōu)點,吸收了很多現(xiàn)在比較流行的軟件思想,受到很多的開發(fā)者的喜愛。現(xiàn)在由apache開源組織進行維護和升級,每個開發(fā)者都可以貢獻自己的一份力量。struts2主要是對web編程中的請求控制進行了進一步的整合和封裝,簡化了很多繁瑣復(fù)雜的工作,通過幾個簡單的配置就可以讓開發(fā)者完成前臺到后臺的一系列流程。這樣可以讓開發(fā)者把精力放在業(yè)務(wù)邏輯的處理,而
12、不用重復(fù)的進行請求的處理,一定程度上提高了開發(fā)效率。圖2.1為struts2的工作流程:圖2.1 struts2工作原理2.3 oracle數(shù)據(jù)庫技術(shù)簡介oracle數(shù)據(jù)庫系統(tǒng)是一種企業(yè)級的關(guān)系型數(shù)據(jù)庫,由美國oracle公司(甲骨文)開發(fā)。它比較適合一些大中型的企業(yè)應(yīng)用。oracle數(shù)據(jù)庫系統(tǒng)是現(xiàn)今數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)庫設(shè)計原理實現(xiàn)的最為完整的數(shù)據(jù)庫,安全性很高,適合一些對信息安全有很高要求的系統(tǒng)開發(fā)。oracle現(xiàn)在的版本為oracle database 12c,其對數(shù)據(jù)庫云進行了很好的支持,對處理大數(shù)據(jù)提供了不錯的支撐。2.4 jquery腳本庫技術(shù)簡介jquery是一個開源的js腳本庫,
13、全球使用人數(shù)很高,也有很多的開發(fā)者在對其進行優(yōu)化和擴展。它主要優(yōu)點是能夠兼容多種瀏覽器,對不同的瀏覽器內(nèi)核進行了很好的兼容。使用jquery可以對dom進行很多操作,也可以讓開發(fā)者做出很多動態(tài)顯示特效。另外,它封裝的ajax功能也是非常簡便易用,功能強大。jquery提供了豐富的api供開發(fā)者使用,利用它可以很輕松的開發(fā)出強大的web系統(tǒng)。2.5 eclipse開發(fā)工具簡介eclipse是一種功能強大的集成開發(fā)工具,主要用于java語言的開發(fā)。它提供了豐富的快捷鍵,讓開發(fā)者可以利用純鍵盤進行快速的編程。eclipse允許開發(fā)者在其提供的api基礎(chǔ)上開發(fā)特殊需求的插件,此插件可以完美的融合到ec
14、lipse上,很大程度上增強的它自身的功能,方便了開發(fā)者的開發(fā)。另外,它提供的debug調(diào)試功能對于排查開發(fā)過程中難以發(fā)現(xiàn)的bug起到了很明顯的作用。3 系統(tǒng)的可行性研究與需求分析3.1 可行性研究3.1.1 技術(shù)可行性技術(shù)方面主要使用了比較流行的struts2框架,網(wǎng)上相關(guān)資料比較豐富,實現(xiàn)起來相對容易。數(shù)據(jù)庫oracle也是比較成熟的數(shù)據(jù)庫,應(yīng)對本系統(tǒng)也不會出現(xiàn)性能問題。其他的技術(shù)像ajax也有很多豐富的實例,不存在無法實現(xiàn)的問題。由此可知,技術(shù)上是可行的。3.1.2 經(jīng)濟可行性本系統(tǒng)的開發(fā)過程中所使用的資源均屬于開源免費的,不需要額外支付費用,開發(fā)人員上也不需要很大的需求,所以產(chǎn)生的費用
15、也不是很大,系統(tǒng)后期的部署和維護也是相對比較容易,對服務(wù)器的要求也不是很苛刻,所有開支不是很大,所以,經(jīng)濟上是可行的。3.1.3 營運可行性本系統(tǒng)主要是針對大學(xué)生所開發(fā)的應(yīng)用系統(tǒng),在潛在用戶量這方面是很客觀的,營運過程中,宣傳也是比較簡單,同學(xué)之間相互了解是很有效的宣傳方式。所以在運行上是可行的。3.2 需求分析在系統(tǒng)開發(fā)之前,需求分析是很關(guān)鍵的。一個好的需求直接決定了系統(tǒng)開發(fā)的成敗。需求分析主要是了解用戶的主觀想法,借此來總結(jié)需要實現(xiàn)的功能以及實現(xiàn)過程中的細(xì)節(jié)。3.2.1 系統(tǒng)需求對于該系統(tǒng)的實現(xiàn)方式,java是很好的選擇。因為java在web方向上有很多成熟的體系結(jié)構(gòu),它是經(jīng)過了很多人驗證
16、后確實可行的方案,所以使用起來會比較容易。3.2.2 性能需求系統(tǒng)運行過程中會產(chǎn)生很多的數(shù)據(jù),在數(shù)據(jù)到大一定量以后,就會導(dǎo)致系統(tǒng)性能問題。所以在實現(xiàn)方式上,數(shù)據(jù)源方面需要使用連接池加快訪問數(shù)據(jù)庫的速度,后期在服務(wù)器上需要提高服務(wù)器的配置,以達到要求的運行速度。3.3 功能分析學(xué)生信息交流平臺主要包括首頁展示,博文模塊,問答模塊,個人中心和關(guān)于。其中首頁主要是對博文和問答的一系列展示,包括最新博文,最新圖文,熱門博文,各類型博文,以及最新的待解決問題,另外還包括活躍學(xué)生的排行展示;博文模塊主要是對博文展示,發(fā)表博文,回復(fù)博文,查找博文等一系列的用戶操作;問答模塊就是對學(xué)生用戶所提問題的展現(xiàn)和其他
17、學(xué)生對其進行回答的展示,另外,提問者還可以對自己滿意的回答進行采納,此時問題狀態(tài)改為已解決;個人中心主要有基本資料,密碼,頭像的更新,另外可以管理自己的博文和問答,實現(xiàn)用戶的自主管理;此外,學(xué)生還會有自己相應(yīng)的角色,比如管理員,博文管理員,問答管理員,普通用戶,對應(yīng)的角色可以管理整個系統(tǒng)的相應(yīng)模塊,這樣就使用戶具備了后臺管理員的部分權(quán)限,默認(rèn)情況下,管理員具有所有權(quán)限,只有管理員可以管理系統(tǒng)的所有學(xué)生用戶;關(guān)于模塊就是對整個系統(tǒng)的介紹。4 系統(tǒng)總體設(shè)計4.1 系統(tǒng)主要功能設(shè)計圖4.1 功能模塊圖該系統(tǒng)主要有:首頁展示,博文模塊,問答模塊,個人中心模塊和關(guān)于模塊。其中博文模塊下有包括查看博文,發(fā)
18、表博文,回復(fù)博文和按類別、用戶、標(biāo)題查詢博文;問答模塊下有提出問題,回答問題,采納問題,查找答案等;個人中心包括用戶個人資料,密碼,頭像的修改,以及對自己博文和問答的查閱與更新,個人中心還包括后臺管理部分,用戶可以根據(jù)自己的權(quán)限做相應(yīng)的操作。圖4.1為學(xué)生信息交流平臺的功能模塊圖。4.2 各模塊功能設(shè)計主要功能有:1. 用戶登錄注冊:注冊時對用戶輸入的信息進行有效驗證,并對已經(jīng)注冊用戶名進行提示,防止出現(xiàn)同樣的用戶名。2. 博文模塊:對所有博文進行分頁展示,可以根據(jù)類別,用戶名,標(biāo)題進行查詢,點擊博文進入博文詳細(xì),可以瀏覽博文內(nèi)容和回復(fù)詳細(xì),回復(fù)具有一級回復(fù)和二級回復(fù),可對二級回復(fù)進行隱藏和顯
19、示,另外可以點擊發(fā)表博文來表達自己的觀點。3. 問答模塊:對最新的問題進行展示,可以根據(jù)關(guān)鍵字模糊查詢問題,點擊問題進入問題詳細(xì),可以查看問題詳情和回答列表,如果是提問人,還可以對滿意的答案進行采納,同樣也可以提出問題等待別人回答。4. 個人中心:首先包括對個人資料的更新,其中有個人基本資料,個人密碼,個人頭像;還有就是對自己的博文和問答的管理。個人中心還包括后臺的管理,用戶可以根據(jù)自己的權(quán)限來管理相應(yīng)的模塊。5. 關(guān)于:對本系統(tǒng)的一個介紹,讓用戶對系統(tǒng)有個全面的認(rèn)識。4.3 數(shù)據(jù)庫設(shè)計4.3.1 數(shù)據(jù)庫的邏輯結(jié)構(gòu)數(shù)據(jù)庫設(shè)計需要滿足一些嚴(yán)格的約束和規(guī)則。要搞清楚實體和表之間的對應(yīng)關(guān)系,還有他們
20、之間的各種聯(lián)系。設(shè)計過程要充分考慮數(shù)據(jù)冗余與性能上的平衡,盡量在表的設(shè)計上做到最優(yōu)。學(xué)生信息交流平臺的數(shù)據(jù)庫包含下列數(shù)據(jù)表:(1)學(xué)生信息表主要用于保存注冊用戶的各類信息,包括用戶名,密碼,昵稱,郵箱等。表4.1 學(xué)生信息表(student)名稱類型可為空注釋stunonumber(8)學(xué)生編號stuaccountvarchar2(45)y賬號stupasswordvarchar2(45)y密碼stusexvarchar2(4)y性別stunicknamevarchar2(50)y昵稱stubirthdatey生日stuphotovarchar2(100)y頭像stuhobbyvarchar2
21、(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角色權(quán)限值 (3)用戶權(quán)限表主要用于保存注冊用戶操作的各類權(quán)限。表4.3 用戶權(quán)限
22、表(permission)名稱類型可為空注釋pidnumber(4)權(quán)限idpnamevarchar2(45)y權(quán)限名稱purlvarchar2(100)y路徑 (4)博文表主要用于保存博文的各類信息,包括標(biāo)題,內(nèi)容,時間,發(fā)布人等。表4.4 博文信息表(blog)名稱類型可為空注釋blogidvarchar2(20)博文idblogtitlevarchar2(100)y博文標(biāo)題blogcontentvarchar2(4000)y博文內(nèi)容blogtagvarchar2(20)y博文標(biāo)簽blogreadnumber(8)y瀏覽數(shù)blogreplynumber(8)y回復(fù)數(shù)blogtimedate
23、y發(fā)布時間stunonumber(8)y發(fā)布人編號 (5)博文一級回復(fù)表主要用于保存注冊博文的一級回復(fù),包括id,內(nèi)容,時間,博文id等。表4.5 博文一級回復(fù)表(replyone)名稱類型可為空注釋roneidvarchar2(20)回復(fù)idronecontentvarchar2(500)y回復(fù)內(nèi)容ronedatedatey回復(fù)時間stunonumber(8)y回復(fù)人編號blogidvarchar2(20)y所回復(fù)博文 (6)博文二級回復(fù)表主要用于保存注冊博文的二級回復(fù),包括id,內(nèi)容,時間,一級回復(fù)id等。表4.6 博文二級回復(fù)表(replytwo)名稱類型可為空注釋rtwoidvarch
24、ar2(20)回復(fù)idrtwocontentvarchar2(500)y回復(fù)內(nèi)容rtwodatedatey回復(fù)時間stunonumber(8)y回復(fù)人編號roneidvarchar2(20)y一級回復(fù)id (7)問題表主要用于保存注冊問題的各類信息,包括問題標(biāo)題,內(nèi)容,時間,問題狀態(tài)等。表4.7 問題表(ask)名稱類型可為空注釋askidvarchar2(20)問題編號asktitlevarchar2(100)y問題標(biāo)題askcontentvarchar2(2000)y問題內(nèi)容askreadnumber(8)y閱讀數(shù)askanswernumber(8)y回答數(shù)asktimedatey提問時間
25、stunonumber(8)y提問人編號statusintegery問題狀態(tài) (8)回答表主要用于保存回答的各類信息,包括回答內(nèi)容,回答時間,是否采納等。表4.8 回答表(answer)名稱類型可為空注釋answeridvarchar2(20)回答idanswercontentvarchar2(1000)y回答內(nèi)容answertimedatey回答時間agreecountnumber(8)y贊同數(shù)acceptintegery是否被采納(0未采納 1已采納)stunonumber(8)y回答人編號askidvarchar2(20)y問題id (9)圖片表主要用于保存圖片的各類信息,包括圖片名稱,
26、圖片路徑,對應(yīng)表名稱,對應(yīng)記錄,上傳時間等。表4.9 圖片表(pics)名稱類型可為空注釋picidvarchar2(20)y圖片idpicnamevarchar2(100)y圖片名稱picurlvarchar2(100)y圖片路徑tablenamevarchar2(20)y對應(yīng)表名稱recodeidvarchar2(20)y對應(yīng)記錄iduptimedatey上傳時間4.3.2 數(shù)據(jù)庫的連接本系統(tǒng)運用了dbcp數(shù)據(jù)庫連接池來提高數(shù)據(jù)庫的連接效率。dbcp是 apache組織上的一個 java 連接池項目,同時也是 tomcat 使用的連接池組件。系統(tǒng)中使用dbcp需要3個jar包:common
27、s-pool.jar,commons-collections.jar; commons-dbcp.jar。系統(tǒng)中頻繁的建立數(shù)據(jù)庫連接是非常耗費資源的操作,所以dbcp連接池會預(yù)先創(chuàng)建一些連接存在內(nèi)存中維護,這樣系統(tǒng)中需要用到連接的時候直接去池中取,省掉了臨時創(chuàng)建的時間,提高了運行效率。首先需要在meta-inf中加入數(shù)據(jù)庫連接池配置文件context.xml,然后配置監(jiān)聽器初始化數(shù)據(jù)源,之后代碼中就可以使用getdatasource()得到的數(shù)據(jù)源來獲取數(shù)據(jù)庫連接。5 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)5.1 系統(tǒng)登陸模塊設(shè)計登陸模塊主要功能就是驗證用戶輸入的用戶名密碼是否正確,如果輸入有誤就進行相應(yīng)的提示,
28、如果登陸成功就跳轉(zhuǎn)到首頁。圖5.1為登陸頁面:圖5.1 系統(tǒng)登陸界面登陸過程使用jquery實現(xiàn)的ajax方式進行后臺的驗證,驗證結(jié)果通過js動態(tài)的顯示在頁面上,填寫完登陸信息發(fā)送請求到后臺,此時會經(jīng)過struts2的攔截器interceptor來查詢該用戶的具體權(quán)限,并保存到session中。這樣就可以方便的在具體的操作中判斷用戶是否具有該權(quán)限,也可以根據(jù)用戶的權(quán)限動態(tài)的顯示頁面上的模塊。5.2 系統(tǒng)注冊模塊設(shè)計圖5.2 系統(tǒng)注冊界面注冊模塊是用戶從游客到會員的必經(jīng)之道,只有注冊的用戶才能進行發(fā)表博文,提問題等一系列操作。圖5.2為注冊頁面。首先,當(dāng)用戶輸入用戶名以后會去異步請求后臺,驗證該
29、用戶名是否已經(jīng)注冊,如果已經(jīng)注冊就禁止該用戶名的重復(fù)注冊,接著會對密碼和重復(fù)密碼進行有效性驗證,判斷兩次密碼輸入是否一致,并作相應(yīng)提示。另外,還有對郵箱和手機的合法性驗證,主要是使用了正則表達式。其中,驗證郵箱合法性的正則為:/w+w+.w+$/,驗證手機合法性的正則為:/(131-9|155-9|182-9)d8$/。這樣就可以有效的避免用戶的惡意輸入。最后注冊成功后就會跳轉(zhuǎn)到登陸界面,并且用戶名輸入框已經(jīng)默認(rèn)帶有用戶剛注冊成功的用戶名,方便了用戶登陸。5.3 首頁模塊設(shè)計登陸成功后進入首頁,首頁主要是對平臺中內(nèi)容的全面展示。圖5.3為系統(tǒng)首頁:圖5.3 系統(tǒng)首頁首先會有一個圖片輪播,展示的
30、是最新的博文中所夾帶的圖片,點擊圖片可以查看該博文詳細(xì),然后就是對熱門博文以及各種類型博文的展示。5.4 博文模塊設(shè)計5.4.1 瀏覽全部博文點擊導(dǎo)航欄的博文選項,首先會進入到全部博文的頁面,上邊顯示的是根據(jù)發(fā)表時間的降序排列的所有博文的分頁顯示。左側(cè)有博文的各個分類,點擊某個分類可以選擇瀏覽具體分類的博文。下方還有博文搜索的輸入框,可以根據(jù)輸入的關(guān)鍵字按照標(biāo)題或博主搜索相關(guān)內(nèi)容。具體顯示如圖5.4:圖5.4 博文縱覽頁在blog.jsp中全部博文處只是一個空的div,頁面上所顯示的內(nèi)容都是在頁面剛開始加載時動態(tài)的去后臺請求,然后數(shù)據(jù)返回到另外一個bloglist.jsp的頁面中進行組織,最后
31、把整個頁面加載進了剛才的空白div,代碼如下:$(document).ready(function()$(#showdiv).load(/stuinfo/blog_findbytag.action?timestamp=+(new date().gettime(););5.4.2 發(fā)表博文點擊博文頁面中的發(fā)表博文按鈕就會進入到發(fā)表博文的頁面,在進入頁面前,會判斷當(dāng)前有沒有用戶登陸,如果沒有登陸就提示請登錄然后跳轉(zhuǎn)到登陸頁面,這樣可以有效避免游客的非法操作。頁面如圖5.5:圖5.5 發(fā)表博文頁其中用到了第三方插件ckeditor,這是一個富文本編輯器插件,可以取代原始的textarea文本域進行豐
32、富的文本輸入,在此基礎(chǔ)上又額外添加了上傳圖片的功能,使發(fā)表的博文可以圖文并茂,更加生動。在標(biāo)題框輸入標(biāo)題時,右上角的字?jǐn)?shù)會實時的變化,提示用戶當(dāng)前的字?jǐn)?shù),如果超過最大值就會將輸入框邊框變?yōu)榧t色來提醒用戶輸入非法。填寫完畢,點擊發(fā)表按鈕,表單中的數(shù)據(jù)會提交到后臺進行處理。其中,為了避免用戶的惡意js注入,對輸入的內(nèi)容進行了特殊字符轉(zhuǎn)義處理,替換提交內(nèi)容中的, , &。還要對博文內(nèi)容進行解析,判斷是否含有圖片,如果包含則需要提取出來進行單獨的圖片上傳和保存。其中用到了正則表達式對內(nèi)容中圖片路徑的格式進行匹配,正則表達式為:bsrc=(+)。代碼如下:/如果博文中包含img標(biāo)記if(blogcont
33、ent.indexof(img) != -1)ipicsbiz picsbiz = new picsbizimpl();pattern pattern = ppile(bsrc=(+);matcher matcher = 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(ma
34、tcher.group(1);pic.setrecodeid(blogid);pic.settablename(blog);pic.setuptime(new date();picsbiz.addpic(pic);5.4.3 博文詳細(xì)博文詳細(xì)頁主要是對博文的具體內(nèi)容,博主的信息以及該博文回復(fù)信息的一系列展示,如圖5.6。詳細(xì)頁左側(cè)會顯示發(fā)表該博文的用戶的詳細(xì)信息,右側(cè)是該博文的詳細(xì),包括博文標(biāo)題,博文類別,發(fā)表時間和博文內(nèi)容。下方就是所有的回復(fù)列表,回復(fù)包括一級回復(fù)和二級回復(fù),其中每條回復(fù)又有相應(yīng)的回復(fù)人信息。這個就涉及到數(shù)據(jù)的對應(yīng)關(guān)系,一條回復(fù)對應(yīng)唯一的一個用戶,一篇博文對應(yīng)多條一級回復(fù),一
35、條一級回復(fù)又對應(yīng)多條二級回復(fù)。所以就需要特定的數(shù)據(jù)結(jié)構(gòu)來存儲其對應(yīng)關(guān)系,使用onetoone泛型類來表示一對一的關(guān)系,使用onetomany 來表示一對多的關(guān)系,這樣查詢數(shù)據(jù)庫時,按照其要求的結(jié)果組裝數(shù)據(jù),將其封裝到對應(yīng)的一對一或一對多實體bean中,傳到前臺進行顯示。封裝的部分代碼如下:/封裝一級回復(fù)與對應(yīng)的二級回復(fù)listonetomanyonetoone, onetoone data = null;if(replyones != null)data = new arraylistonetomanyonetoone, onetoone(replyones.size();for(replyo
36、ne replyone : replyones)student student = this.studentbiz.findbystuno(replyone.getstuno();onetoone entity = new onetoone(replyone, student);listonetoone many = this.replytwobiz.findallbyroneid( and roneid=? , replyone.getroneid();data.add(new onetomanyonetoone, onetoone(entity, many);點擊一級回復(fù)中的回復(fù)按鈕會彈出
37、一個新的div層,彈出方式為淡出淡入,該實現(xiàn)是運用了jquery的動態(tài)效果。在該彈出層中對一級回復(fù)進行二次回復(fù);另外,右上角的收起回復(fù)點擊可以將二級回復(fù)隱藏,同時收起回復(fù)變?yōu)檎归_回復(fù),再次點擊可顯示二級回復(fù)。圖5.6 博文詳細(xì)頁5.5 問答模塊設(shè)計5.5.1 瀏覽全部問題點擊導(dǎo)航欄有問必答進入到問答頁面,主要有按提問時間降序排列的問題列表,按照關(guān)鍵字搜索答案的搜索框以及提出問題的按鈕。界面如圖5.7:圖5.7 有問必答頁5.5.2 問答詳細(xì)問答詳細(xì)主要是對問題的具體展現(xiàn),包括問題的標(biāo)題,內(nèi)容,提問時間,提問人以及被瀏覽次數(shù)等,下方還會有對該問題的具體回答列表。如果該問題是已采納狀態(tài),則問題下方
38、會顯示所采納的答案。右側(cè)還會有最新的幾條待解決問題供其他用戶瀏覽。界面如圖5.8:圖5.8 問答詳細(xì)頁如果當(dāng)前登錄用戶為該問題的提問人,則在每條回答的后面會有采納的按鈕,點擊采納會將該答案設(shè)為最佳答案,并將問題狀態(tài)設(shè)為已解決。此時,所有回答的采納按鈕將不會再顯示,避免重復(fù)采納。5.5.3 提出問題提出問題頁同發(fā)表博文頁基本一致,同樣是引用了第三方富文本編輯器插件ckeditor來進行問題的編輯,同樣具有圖片上傳功能。5.6 個人中心設(shè)計5.6.1 個人資料更新在個人中心,用戶可以對自己的個人資料進行查看和更新,其中包括基本信息的更新,用戶密碼的更新和用戶頭像的更新。1. 基本信息的更新包括用戶
39、生日,昵稱,性別,愛好,手機,郵箱等的更新,同樣也有相應(yīng)的有效性驗證來保證用戶輸入的合法。 界面如圖5.9:圖5.9 基本資料更新2. 個人密碼更新必須輸入原始密碼才能修改,當(dāng)用戶輸入完畢,發(fā)送請求到后臺,后臺會對原始密碼進行校驗,如果不正確會提示舊密碼不正確。3. 個人頭像更新會提供一個屬性為file的input節(jié)點用于選擇文件,后臺使用struts2的封裝好的file對象進行上傳處理。而且會對文件的格式進行驗證,如果不是.jpg,.png,.gif,.jpeg中的其中一種,則上傳失敗,頁面上顯示格式不正確提示用戶。5.6.2 個人內(nèi)容管理在內(nèi)容管理模塊中,用戶可以對自己的博文和問答進行刪除
40、和更新。博文管理中,用戶可以根據(jù)關(guān)鍵字,博文類別和博文日期進行相應(yīng)的篩選,選出符合條件的博文進行管理。管理過程中,可以批量操作,提供了全選,反選和批量刪除的按鈕方便用戶操作。界面如圖5.10:圖5.10 我的博文管理查詢中會根據(jù)用戶所選擇的的過濾條件進行針對性的篩選,對用戶選擇的條件進行過濾,沒有選擇的則默認(rèn)不作為過濾條件。其中關(guān)鍵的就是動態(tài)的拼接查詢sql語句。5.6.3 后臺管理本系統(tǒng)將后臺管理融入到了個人中心,實現(xiàn)了自我管理。每個用戶都有自己的權(quán)限,用戶可以根據(jù)自己的權(quán)限在個人中心進行相應(yīng)的后臺管理。1. 權(quán)限原理介紹 后臺管理頁面中的用戶管理,博文管理,問答管理都是根據(jù)登陸用戶的權(quán)限列
41、表動態(tài)顯示的。下表為用戶權(quán)限表:表5.1 權(quán)限具體條目表權(quán)限id權(quán)限名權(quán)限路徑1用戶管理/role_findall.action2博文管理/jsp/personal/manager/blogmanager.jsp4問答管理/jsp/personal/manager/askmanager.jsp下表為用戶角色表:表5.2 角色具體條目表角色id角色名角色值1超級管理員72博文管理員23問答管理員40普通用戶0其中,權(quán)限的id值分別設(shè)為了1,2,4;角色表中超級管理員具有所有的權(quán)限,所以其角色值為1+2+4=7;博文管理員只具有博文管理的權(quán)限,所以其角色值為2,同理問答管理員角色值為4;普通用戶沒
42、有任何權(quán)限,所以其角色值為0。這樣分配以后,用戶登陸后可以根據(jù)用戶的角色值來判斷該用戶是否具有某個權(quán)限。例如:想要判斷角色值為7的超級管理員是否具有用戶管理的權(quán)限,則需要計算該角色值按位與用戶管理權(quán)限id的結(jié)果,即7&1 != 0,如果不等于0就說明該用戶具有此權(quán)限。此方法是巧妙的利用了按位與的特性,只要符合這樣的規(guī)則,就可以很簡單的判斷對應(yīng)角色的對應(yīng)權(quán)限。2. 用戶管理在用戶管理中,管理員可以根據(jù)不同的篩選條件來選擇符合條件的用戶列表。同時,可以控制特定用戶是否有效,無效的禁止登陸,另外還可以修改用戶的角色,讓某個用戶具有特定的權(quán)限。界面如圖5.11:圖5.11 用戶管理3. 博文管理博文管
43、理中,同樣可以根據(jù)博主,博文標(biāo)簽,關(guān)鍵字和起止時間進行查詢。在查詢出的博文列表中會列出博主昵稱,博文標(biāo)題,博文標(biāo)簽和發(fā)表時間,管理員可以進行刪除和批量刪除。4. 問答管理問答管理中,管理員可以根據(jù)提問人,問題狀態(tài),關(guān)鍵字和提問時間進行查詢,列表中也會相應(yīng)的列舉出提問人昵稱,問題標(biāo)題,問題狀態(tài)和提問時間。管理員可以進行刪除和批量刪除。6 系統(tǒng)調(diào)試與測試6.1 測試概論軟件測試在系統(tǒng)開發(fā)過程中是必不可少的一個環(huán)節(jié),一個好的系統(tǒng)必然是在發(fā)布前經(jīng)歷了系統(tǒng)全面的測試。其在軟件工程學(xué)上也是有很重要的地位,因為它直接決定了一個系統(tǒng)的好與壞。軟件測試有很多種測試方法,比如白盒測試,黑盒測試,還有程序員經(jīng)常說的
44、冒煙測試,這些測試方法都能夠很有效的發(fā)現(xiàn)系統(tǒng)潛在的漏洞。只有全面的測試才能保證項目的正常發(fā)布。6.2 程序的測試6.2.1 學(xué)生登錄測試登錄過程主要是對用戶名密碼的合法性判斷,測試用例如下:表6.1 登錄測試用例編號測試項用例目的輸入數(shù)據(jù)實際結(jié)果結(jié)果比較說明001學(xué)生登陸測試用戶名密碼為空是否可登陸用戶名:空密碼:空提示輸入用戶名,輸入密碼符合002學(xué)生登陸測試用戶名不存在,是否可登陸用戶名:555密碼:555提示用戶名不存在符合003學(xué)生登陸測試密碼輸入錯誤是否可登陸用戶名:admin密碼:555提示密碼錯誤符合6.2.2 學(xué)生注冊測試注冊信息包括用戶名,密碼,昵稱,生日,愛好,郵箱和手機等
45、,測試過程主要是對這些信息的驗證,測試用例如下:表6.2 注冊測試用例編號測試項用例目的輸入數(shù)據(jù)實際結(jié)果結(jié)果比較說明001學(xué)生注冊測試已注冊用戶名是否可注冊用戶名:admin提示用戶名已存在符合002學(xué)生注冊測試兩次密碼不同是否可注冊密碼:123重復(fù)密碼:456提示兩次密碼不一致符合003學(xué)生注冊測試郵箱格式不合法是否可注冊郵箱:1111.ss提示郵箱格式不正確符合004學(xué)生注冊手機格式不正確是否可注冊手機:111222233手機格式不正確符合6.2.3 發(fā)表博文測試發(fā)表博文需要填寫博文的標(biāo)題,博文類型和博文內(nèi)容,要對標(biāo)題的長度,博文內(nèi)容進行驗證,測試用例如下:表6.3 發(fā)表博文測試用例編號測試項用例目的輸入數(shù)據(jù)實際結(jié)果結(jié)果比較說明001發(fā)表博文測試標(biāo)題為空是否可發(fā)表標(biāo)題:空標(biāo)題輸
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年家紡布藝統(tǒng)一訂購協(xié)議模板
- 2024年規(guī)范格式員工解聘協(xié)議范本
- 2024年培訓(xùn)學(xué)校業(yè)務(wù)承接協(xié)議典范
- 2024年資格認(rèn)證代理掛靠服務(wù)協(xié)議
- 2024年簡化場地租賃協(xié)議范例
- 2024年水產(chǎn)養(yǎng)殖協(xié)議范本及條款詳解
- DB11∕T 1694-2019 生活垃圾收集運輸節(jié)能規(guī)范
- 2024年設(shè)備分期付款購銷協(xié)議典范
- 2024年房產(chǎn)租賃業(yè)務(wù)協(xié)議參考
- 2024年停車場租賃模板協(xié)議
- 突發(fā)事件應(yīng)急處理知識培訓(xùn)
- 糖尿病??谱o士考試試題
- 錄音行業(yè)的就業(yè)生涯發(fā)展報告
- 人工智能概論-人工智能概述
- 鄉(xiāng)村旅游財務(wù)分析策劃方案
- 高校學(xué)生事務(wù)管理1
- (中職)ZZ030植物病蟲害防治賽項規(guī)程(7月19日更新)
- 2024年國能包神鐵路集團有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 非甾體類抗炎藥課件
- 出入庫登記管理制度
- 內(nèi)科醫(yī)生的職業(yè)認(rèn)知和自我發(fā)展
評論
0/150
提交評論