




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目 錄1. 引言11.1國內(nèi)外研究現(xiàn)狀和開發(fā)意義11.1.1 現(xiàn)狀分析11.1.2目的意義11.1.3 技術(shù)背景11.2可行性分析21.2.1理論可行性21.2.2技術(shù)可行性分析21.2.3系統(tǒng)設(shè)計(jì)原則21.3系統(tǒng)主要內(nèi)容21.4開發(fā)環(huán)境22.程序所用的關(guān)鍵技術(shù)42.1關(guān)鍵技術(shù)42.1.1 mvc42.1.2 jsp42.1.3 servlet52.1.4 struts62.1.5 hibernate63.系統(tǒng)總體設(shè)計(jì)83.1系統(tǒng)功能分析83.2系統(tǒng)總體設(shè)計(jì)框架84.系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)104.1 e-r圖104.1.1 各實(shí)體的屬性關(guān)系104.2 數(shù)據(jù)庫具體表結(jié)構(gòu)的設(shè)計(jì)135.系統(tǒng)的實(shí)現(xiàn)165.1
2、整體功能描述165.2 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)165.2.1.用戶注冊功能設(shè)計(jì)與實(shí)現(xiàn)165.2.2.用戶登陸功能設(shè)計(jì)與實(shí)現(xiàn)175.2.3.用戶個人信息模塊功能設(shè)計(jì)與實(shí)現(xiàn)205.2.4創(chuàng)建空間模塊功能設(shè)計(jì)與實(shí)現(xiàn)215.2.5 發(fā)送短信息模塊功能設(shè)計(jì)與實(shí)現(xiàn)245.2.6查找添加好友模塊功能設(shè)計(jì)與實(shí)現(xiàn)276.測試3061 測試技術(shù)3062測試目標(biāo)3063 測試方法316.3.1 功能測試316.3.2 性能測試316.3.3 界面測試327.總結(jié)33參 考 文 獻(xiàn)34致 謝351. 引言1.1國內(nèi)外研究現(xiàn)狀和開發(fā)意義1.1.1 現(xiàn)狀分析目前網(wǎng)上這種社區(qū)網(wǎng)站也有很多,但很多都是沒有應(yīng)用最新的框架,只是單純的j
3、sp+servlet,不利于擴(kuò)展,比較陳舊。本社區(qū)網(wǎng)站通過應(yīng)用javaee1流行的struts2和hibernate框架,使代碼的書寫有了一個很好的封裝,更具有層次感,提高了代碼的閱讀性,對程序員的要求稍微提高了很多,另外一方面,網(wǎng)上針對跑步社區(qū)的網(wǎng)站目前還沒有很好的設(shè)計(jì),因此通過本次設(shè)計(jì)填補(bǔ)了這個空白?,F(xiàn)階段對網(wǎng)站的書寫主要有很多技術(shù),oracle公司的javaee,微軟公司的.net,開源的php等等,新的技術(shù)不斷打破舊的書寫風(fēng)格。本系統(tǒng)采用javaee當(dāng)前流行的mvc模式,就社區(qū)網(wǎng)站的基本功能進(jìn)行重新定位,增加了好友之間的交流功能等,把網(wǎng)站的內(nèi)容變得更加豐富。1.1.2目的意義21世紀(jì)是
4、知識經(jīng)濟(jì)時(shí)代,計(jì)算機(jī)網(wǎng)絡(luò)作為這一時(shí)代重要的生產(chǎn)工具,給各個國家?guī)砹司薮蟮陌l(fā)展機(jī)遇。計(jì)算機(jī)已經(jīng)成為我們學(xué)習(xí)和工作的得力助手,人們通過網(wǎng)絡(luò)展現(xiàn)著自己的才華,述說著自己的愛好,購買著自己的需要的產(chǎn)品。喜歡運(yùn)動的人也不例外,他們也要在網(wǎng)上購買著自己的運(yùn)動裝備,交流著自己的運(yùn)動體驗(yàn)。做為商家來說在第一時(shí)間內(nèi)捕獲到人們的需要顯得尤為重要。那么能不能在運(yùn)動的愛好者之間,運(yùn)動的愛好者與商家之間搭起一座橋梁呢?網(wǎng)絡(luò)跑步愛好者社區(qū)系統(tǒng)是專門為跑步愛好者提供的一個交流的平臺,使跑步愛好者不需要進(jìn)行面對面的交流,只需在網(wǎng)上查看跑步愛好者的個人空間,從而了解他人的跑步愛好習(xí)慣,如果與自己的愛好相同或相似,就可以加對方
5、為好友,并且能夠發(fā)送短信息給自己的跑步好友。1.1.3 技術(shù)背景在技術(shù)上java語言的跨平臺性,穩(wěn)定性是有目共睹的,而struts框架是一個比較成熟的框架,可以快速構(gòu)建整個軟件系統(tǒng)的框架結(jié)構(gòu), 并且適合中小型項(xiàng)目的開發(fā)。所以在技術(shù)選型上我采用了struts技術(shù)。在操作數(shù)據(jù)庫方面hibernate封裝的非常好,提高了開發(fā)效率。整體采用的所有技術(shù)都是現(xiàn)階段比較流行的一套javaee技術(shù)。1.2可行性分析1.2.1理論可行性該系統(tǒng)是網(wǎng)上的一個虛擬平臺,能夠模擬現(xiàn)實(shí)中的交流過程,并且展示個人的風(fēng)采,滿足廣大運(yùn)動愛好者的需求。1.2.2技術(shù)可行性分析運(yùn)用myeclipse開發(fā)工具,它是一個功能非常強(qiáng)大的
6、開發(fā)工具,myeclipse在功能上可以和tomcat進(jìn)行集成,并且能做到自動打包,并將包自動部署到服務(wù)器上。這從很大程度上提高了開發(fā)的效率,節(jié)約了開發(fā)的時(shí)間。1.2.3系統(tǒng)設(shè)計(jì)原則1. 實(shí)用性原則:確保系統(tǒng)具有良好的系統(tǒng)性能,友好的用戶界面,較高的處理效率,便于使用和維護(hù),并采用成熟的技術(shù)。2. 先進(jìn)性原則:盡量采用先進(jìn)而且成熟的技術(shù),使系統(tǒng)具有較高的技術(shù)水和較長的生命周期3. 開放性、安全性、可靠性及可擴(kuò)展性原則。4. 兼容性原則:對于所選硬件系統(tǒng)及平臺,能很好地適應(yīng)開發(fā)和使用的需要。5. 規(guī)范性原則:軟件設(shè)計(jì)過程嚴(yán)格按照“軟件工程”的規(guī)定,系統(tǒng)編碼,文檔,操作系統(tǒng)平臺以及所采用的開發(fā)方法
7、按照相應(yīng)的國際標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn)。1.3系統(tǒng)主要內(nèi)容本系統(tǒng)主要包含四個模塊:用戶登陸模塊、基本信息管理模塊、短信息管理模塊、好友管理模塊,每一個模塊都進(jìn)行了詳細(xì)的設(shè)計(jì)。使用本系統(tǒng)可以使跑步愛好者不用進(jìn)行面對面的交流,可以直接在網(wǎng)上進(jìn)行交流。1.4開發(fā)環(huán)境采用b/s架構(gòu),使用jdk1.6運(yùn)行環(huán)境;服務(wù)器操作系統(tǒng):windows;數(shù)據(jù)庫服務(wù)器:oracle10g;web服務(wù)器:tomcat6.0;開發(fā)工具:myeclipse軟件開發(fā)技術(shù):mvc jsp hibernate struts2 servlet html javascript 。2.程序所用的關(guān)鍵技術(shù)2.1關(guān)鍵技術(shù)2.1.1 mvcmvc是一
8、種架構(gòu)型模式,它本身并不引入新的功能,只是用來指導(dǎo)我們改善應(yīng)用程序的架構(gòu),使得應(yīng)用的模型和視圖相分離,從而達(dá)到更好的開發(fā)和維護(hù)效率。在mvc模式中,應(yīng)用程序被劃分成模型(model)、視圖(view)和控制器(controller)三個部分。其中,模型部分包含了應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù);視圖部分封裝了應(yīng)用程序的輸出形式(頁面、界面);而控制器部分負(fù)責(zé)協(xié)調(diào)模型和視圖,根據(jù)用戶請求來選擇要調(diào)用哪個模型來處理業(yè)務(wù),以及最終由哪個視圖為用戶做出應(yīng)答。mvc模式的這三個部分的職責(zé)非常明確,而且相互分離,每個部分都可以獨(dú)立的改變而不影響其他部分,大大提高了應(yīng)用的靈活性和重用性。使用mvc模式,可以獲得
9、以下好處:低耦合性:在mvc模式中,模型和視圖是解耦的,模型不會依賴于視圖,視圖僅僅從模型中獲取需要展示的數(shù)據(jù),不會與模型的邏輯處理相關(guān)聯(lián)。更低的開發(fā)成本:mvc模式幫我們清楚的劃分了各部分的職責(zé),讓程序員各司其職,java程序員只關(guān)心業(yè)務(wù)邏輯的實(shí)現(xiàn),也就是模型部分;而界面程序員只關(guān)心頁面展示,也就是視圖部分。 更好的可維護(hù)性:mvc模式劃分出明晰的模型和視圖,并使其解耦,在軟件需求發(fā)生變更的時(shí)候,就可以各自獨(dú)立的改變而不會相互影響,使得程序更容易維護(hù)和擴(kuò)展。2.1.2 jsp javaserverpages (jsp)【3】技術(shù)提供了一種簡單快速的方法來創(chuàng)建顯示動態(tài)生成內(nèi)容的web頁面。由s
10、un公司制定了相關(guān)的jsp技術(shù)規(guī)范,封裝了servlet,使web編程更加方便快捷,節(jié)省了程序員書寫前臺樣式的時(shí)間。該規(guī)范還定義了如何在web服務(wù)器(本系統(tǒng)用的是tomcat)和struts間進(jìn)行交互,還描述了頁面的格式和語法。jsp頁面使用xml標(biāo)簽和scriptlets(一種使用java【4,5】語言編寫的腳本代碼),封裝了生成頁面內(nèi)容的邏輯。它將各種格式的標(biāo)簽(html或者xml)直接傳遞回響應(yīng)頁面。通過這種方式,jsp頁面實(shí)現(xiàn)了頁面邏輯與其設(shè)計(jì)和顯示的分離。jsp 技術(shù)是java系列技術(shù)的一部分。jsp頁面被編譯成servlet,并可能調(diào)用javabeans【6】組件(beans)或
11、enterprisejavabeans組件(企業(yè)beans),以便在服務(wù)器端處理。因此,jsp技術(shù)在構(gòu)建可升級的基于web的應(yīng)用程 序時(shí)扮演了重要角色。 jsp【7】頁面并不局限于任何特定的平臺或web服務(wù)器上。jsp規(guī)范在業(yè)界有著廣泛的適應(yīng)性。jsp【8,9】技術(shù)廣泛應(yīng)用于各種商業(yè)網(wǎng)站,比如鐵道部的12306等等,它的設(shè)計(jì)是開放的,符合行業(yè)標(biāo)準(zhǔn)的,并支持絕大多數(shù)的服務(wù)器,通過瀏覽器進(jìn)行訪問。由于使用可重用的組件和標(biāo)簽取代了對頁面本身腳本語言的嚴(yán)重依賴,jsp技 術(shù)大大加快了開發(fā)的速度。而且jsp還支持java的原生代碼,以及框架用的ognl等表達(dá)式的語法,它有與生俱來的可適應(yīng)性,支持復(fù)雜的操
12、作。 jsp【10】是servlet技術(shù)的擴(kuò)展,本質(zhì)上是servlet的簡易方式,更強(qiáng)調(diào)應(yīng)用的外表表達(dá)。jsp編譯后是類servlet。servlet和jsp【11】最主要的不同點(diǎn)在于,servlet的應(yīng)用邏輯是在java文件中,并且完全從表示層中的html里分離開來。而jsp的情況是java和html可以組合成一個擴(kuò)展名為.jsp的文件。jsp【12】側(cè)重于視圖,servlet主要用于控制邏輯。 2.1.3 servletservlet是使用java servlet 應(yīng)用程序設(shè)計(jì)接口(api)及相關(guān)類和方法的 java 程序。除了 java servlet api,servlet 還可以使用
13、用以擴(kuò)展和添加到 api 的 java 類軟件包。servlet 在啟用 java 的 web 服務(wù)器上或應(yīng)用服務(wù)器上運(yùn)行并擴(kuò)展了該服務(wù)器的能力。java servlet對于web服務(wù)器就好象java applet對于web瀏覽器。servlet裝入web服務(wù)器并在web服務(wù)器內(nèi)執(zhí)行,而applet裝入web瀏覽器并在web瀏覽器內(nèi)執(zhí)行。 java servlet api 定義了一個servlet 和java使能的服務(wù)器之間的一個標(biāo)準(zhǔn)接口,這使得servlets具有跨服務(wù)器平臺的特性。 servlet 通過創(chuàng)建一個框架來擴(kuò)展服務(wù)器的能力,以提供在 web 上進(jìn)行請求和響應(yīng)服務(wù)。當(dāng)客戶機(jī)發(fā)送請求
14、至服務(wù)器時(shí),服務(wù)器可以將請求信息發(fā)送給 servlet,并讓 servlet 建立起服務(wù)器返回給客戶機(jī)的響應(yīng)。 當(dāng)啟動 web 服務(wù)器或客戶機(jī)第一次請求服務(wù)時(shí),可以自動裝入 servlet。裝入后, servlet 繼續(xù)運(yùn)行直到其它客戶機(jī)發(fā)出請求。servlet 的功能涉及范圍很廣。2.1.4 struts struts是一個按mvc模式設(shè)計(jì)的web層框架,其實(shí)它就是一個大大的servlet,這個servlet名為actionservlet,或是actionservlet的子類。我們可以在web.xml文件中將符合某種特征的所有請求交給這個servlet處理,這個servlet再參照一個配置文
15、件(通常為/web-inf/struts-config.xml)將各個請求分別分配給不同的action去處理。actionservlet把請求交給action去處理之前,會將請求參數(shù)封裝成一個formbean對象(就是一個java類,這個類中的每個屬性對應(yīng)一個請求參數(shù))。actionservlet把formbean對象傳遞給action的execute方法之前,可能會調(diào)用formbean的validate方法進(jìn)行校驗(yàn),只有校驗(yàn)通過后才將這個formbean對象傳遞給action的execute方法,否則,它將返回一個錯誤頁面,這個錯誤頁面由input屬性指定。action執(zhí)行完后要返回顯示的結(jié)
16、果視圖,這個結(jié)果視圖是用一個actionforward對象來表示的,actionforward對象通過struts-config.xml配置文件中的配置關(guān)聯(lián)到某個jsp【13】頁面,因?yàn)槌绦蛑惺褂玫氖窃趕truts-config.xml配置文件為jsp頁面設(shè)置的邏輯名,這樣可以實(shí)現(xiàn)action程序代碼與返回的jsp頁面名稱的解耦。2.1.5 hibernatehibernate【14】是jdbc的輕量級的對象封裝。它是一個獨(dú)立的對象持久層框架,和app server,和ejb沒有什么必然的聯(lián)系。hibernate可以用在任何jdbc可以使用的場合,例如java應(yīng)用程序的數(shù)據(jù)庫訪問代碼,dao接
17、口的實(shí)現(xiàn)類,甚至可以是bmp里面的訪問數(shù)據(jù)庫的代碼。從這個意義上來說,hibernate和ejb不是一個范疇的東西,也不存在非此即彼的關(guān)系。hibernate【15】是一個和jdbc密切關(guān)聯(lián)的框架,所以hibernate的通過加載不同數(shù)據(jù)庫的驅(qū)動,進(jìn)行連接操作,而且hibernate對數(shù)據(jù)庫的操作,打破了之前通過表操作,而是更加面向?qū)ο?,和?shù)據(jù)庫都有一定的關(guān)系,但是和使用它的java程序,和app server沒有任何關(guān)系,也不存在兼容性問題。面向?qū)ο笤O(shè)計(jì)【2】的軟件內(nèi)部運(yùn)行過程可以理解成就是在不斷創(chuàng)建各種新對象、建立對象之間的關(guān)系,調(diào)用對象的方法來改變各個對象的狀態(tài)和對象消亡的過程,不管程序
18、運(yùn)行的過程和操作怎么樣,本質(zhì)上都是要得到一個結(jié)果,程序上一個時(shí)刻和下一個時(shí)刻的運(yùn)行結(jié)果的差異就表現(xiàn)在內(nèi)存中的對象狀態(tài)發(fā)生了變化。 通過數(shù)據(jù)庫保存java程序運(yùn)行時(shí)產(chǎn)生的對象和恢復(fù)對象,其實(shí)就是實(shí)現(xiàn)了java對象與關(guān)系數(shù)據(jù)庫記錄的映射關(guān)系,稱為orm(即object relation mapping),可以通過封裝jdbc代碼來實(shí)現(xiàn)了這種功能,封裝出來的產(chǎn)品稱之為orm框架,hibernate就是其中的一種流行orm框架。使用hibernate框架,不用寫jdbc代碼,僅僅是調(diào)用一個save方法,就可以將對象保存到關(guān)系數(shù)據(jù)庫中,僅僅是調(diào)用一個get方法,就可以從數(shù)據(jù)庫中加載出一個對象。 hibe
19、rnate只需要簡單的save或者update就可以對對象進(jìn)行操作,通過自動創(chuàng)建sql語句進(jìn)行建表或者更改數(shù)據(jù)庫的操作,有一個hibernate.cfg.xml 里面配置了連接數(shù)據(jù)庫的驅(qū)動,用戶名,密碼等。在應(yīng)用hibernate時(shí),重點(diǎn)要了解session的緩存原理,級聯(lián),延遲加載和hql查詢。3.系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)功能分析作為一個在線的社區(qū)來講,首先要實(shí)現(xiàn)它的基本功能,如用戶的注冊,登陸,密碼的找回等最基本的功能,而這些是需要用戶來完成的,也就是說可以定義在用戶管理的模塊中。為了更好的展示用戶的的個人特征,也就是我們平時(shí)說的個性化,我們可以加上一個個人空間的管理。于是我們得出用戶管理信
20、息模塊的基本功能。其次為了方便用戶間的交流,系統(tǒng)提供一個收發(fā)信息的功能,它包括短信的創(chuàng)建,對已收信息和已發(fā)信息的刪除和查看等功能,最后由于系統(tǒng)是一個交流交友于一體的,所以交友這一塊內(nèi)容是必不可少的。經(jīng)過分析不難發(fā)現(xiàn),要實(shí)現(xiàn)該模塊的話必須要在功能上實(shí)現(xiàn)好友的查找,添加,刪除等功能。通過詳細(xì)的分析,下面就可以順其自然的得出相應(yīng)的整體框架。3.2系統(tǒng)總體設(shè)計(jì)框架為了提高系統(tǒng)的安全性,本系統(tǒng)使用多用戶的密碼登陸方式登陸系統(tǒng),已達(dá)到增加系統(tǒng)數(shù)據(jù)的安全性、保密性的目的。系統(tǒng)結(jié)構(gòu)總流程設(shè)計(jì)如圖3-1所示。 圖 3. 1 系統(tǒng)結(jié)構(gòu)總流程以上就是根據(jù)需求對系統(tǒng)的整體框架做出的設(shè)計(jì)。設(shè)計(jì)思路如下,先找出一個個的用
21、例,并畫出用例圖。根據(jù)他們之間的關(guān)系,對系統(tǒng)做出整合,把一個個的用例整合到一個大的系統(tǒng)模塊下。最后設(shè)計(jì)出整體的框架。4.系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)4.1 e-r圖在需求分析之后,數(shù)據(jù)庫設(shè)計(jì)的第一步就是對系統(tǒng)的概念結(jié)構(gòu)進(jìn)行設(shè)計(jì),設(shè)計(jì)的目標(biāo)是產(chǎn)生反映全組織信息需求的整體數(shù)據(jù)庫的概念結(jié)構(gòu),描述概念結(jié)構(gòu)的工具就是er圖。er圖屬于邏輯模型,以下是我對各個模塊中實(shí)體與屬性的聯(lián)系,從而再完成實(shí)體間的對應(yīng)關(guān)系。從而進(jìn)一步細(xì)化數(shù)據(jù)庫建模的信息,以更好實(shí)現(xiàn)物理模型。能更清晰的了解數(shù)據(jù)庫信息。4.1.1 各實(shí)體的屬性關(guān)系在需求分析之后,數(shù)據(jù)庫設(shè)計(jì)的第一步就是對系統(tǒng)的概念結(jié)構(gòu)進(jìn)行設(shè)計(jì),設(shè)計(jì)的目標(biāo)是產(chǎn)生反映整個系統(tǒng)信息需求的整體
22、數(shù)據(jù)庫的概念結(jié)構(gòu),描述概念結(jié)構(gòu)的工具就是er圖。詳細(xì)關(guān)系見圖。 圖4. 1 用戶登錄的e-r圖圖4. 2 用戶信息的e-r圖 圖4. 3 個性空間的e-r圖 圖4. 4 短信息的e-r圖 圖4. 5 總的e-r圖 4.2 數(shù)據(jù)庫具體表結(jié)構(gòu)的設(shè)計(jì)在確定了各實(shí)體詳細(xì)信息后,下一步就是各實(shí)體在數(shù)據(jù)庫中的具體實(shí)現(xiàn),依據(jù)e-r圖中實(shí)體的具體信息,共設(shè)計(jì)了9張數(shù)據(jù)表,主要表的描述如下:表4. 1:cp_member列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號nicknamevarchar2(20)not null用戶名passwordvarchar2(50)not null用戶密碼 表
23、4. 2:cp_graderecord列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號minpointnumbernot null最小積分maxpointnumbernot null最大積分gradenamevarchar2(20)not null等級名稱iconpathvarchar2(50)not null圖片路徑 表4. 3:cp_memberinfo列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號nicknamevarchar2(20)not null用戶名passwordvarchar2(50)not null用戶密碼gendervarchar2(1)
24、not null性別agenumbernot null年齡emailvarchar2(100)not null電子郵箱provincecity varchar2(10) null所在省份addressvarchar2(200) null詳細(xì)地址phone varchar2(50) null聯(lián)系電話passwordquestionvarchar2(200) null密碼提示問題passwordanswervarchar2(200) null密碼提示答案recommendervarchar2(20) null推薦人pointnumber null積分registerdate date null注冊
25、時(shí)間latestdate date null上次登錄時(shí)間statusnumber null狀態(tài)isonlinenumber null在線人數(shù) 表4. 4:cp_province列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號codevarchar2(20)not null序號namevarchar2(20)not null城市名字表4. 5:cp_memberspace列名數(shù)據(jù)類型可否取空備注說明idnumber not null編號opinionvarchar2(200) not null跑步習(xí)慣與主張runtimevarchar2(20) not null跑步時(shí)間runst
26、arvarchar2(50) not null喜歡的明星runhabitvarchar2(50) not null跑步愛好runplacevarchar2(20) not null跑步地點(diǎn)cellphone varchar2(50) not null手機(jī)號icon varchar2(200) not null照片表4. 6:cp_pointrecord列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號nicknamevarchar2(20)not null用戶名receivedatedatenot null接收時(shí)間表4. 7:cp_messagerecord列名數(shù)據(jù)類型可否取空備
27、注說明idnumbernot null編號sendervarchar2(20)not null發(fā)送者receivervarchar2(20)not null接受者senddatedate not null發(fā)送時(shí)間titlevarchar2(100)not null題目contentvarchar2(300)not null內(nèi)容表4. 8:cp_friendrecord列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號selfnamevarchar2(20)not null用戶名friendnamevarchar2(20)not null朋友姓名表4. 9:cp_blackreco
28、rd列名數(shù)據(jù)類型可否取空備注說明idnumbernot null編號selfnamevarchar2(20)not null用戶名blacknamevarchar2(20)not null黑名單5.系統(tǒng)的實(shí)現(xiàn)5.1整體功能描述該系統(tǒng)采用mvc(model-view-controller)框架模式進(jìn)行設(shè)計(jì),即把該系統(tǒng)的輸入、處理、輸出流程按照model、view、controller的方式進(jìn)行分離,這樣一來,每一個應(yīng)用都可以被分成三個層模型層、視圖層、控制層。在進(jìn)行各層設(shè)計(jì)前,我們需要對整個系統(tǒng)的功能結(jié)構(gòu)進(jìn)行設(shè)計(jì),在確認(rèn)系統(tǒng)功能結(jié)構(gòu)的基礎(chǔ)上將各個功能塊進(jìn)行模塊化,進(jìn)行相對獨(dú)立的設(shè)計(jì)。結(jié)合前面的需
29、求分析所描述的系統(tǒng)功能,我們可以將該系統(tǒng)劃分為如下幾個模塊:l 用戶注冊模塊l 用戶登錄模塊l 用戶個人空間模塊l 用戶個人信息模塊l 用戶信息瀏覽模塊l 用戶好友配對模塊l 用戶短信操作模塊5.2 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.2.1.用戶注冊功能設(shè)計(jì)與實(shí)現(xiàn)用戶需要填寫相應(yīng)的個人資料完成會員的注冊,同樣的用戶名不能注冊兩次,根據(jù)用戶輸入的用戶名首先在數(shù)據(jù)庫中查找是否有同樣的用戶名,如果發(fā)現(xiàn)該用戶名已存在,在struts的action中加入“addfielderror(registererror, 該用戶名不可用)”,然后前臺通過標(biāo)簽就能獲取到“該用戶不可用”的信息,將其予以顯示。注冊時(shí)設(shè)置推薦人機(jī)制,如
30、果有推薦人,跟據(jù)用戶輸入,將推薦人的積分?jǐn)?shù)進(jìn)行相應(yīng)的增加,為了防止用戶惡意注冊,注冊界面設(shè)置有隨機(jī)驗(yàn)證碼,講產(chǎn)生驗(yàn)證碼的程序封裝為一個servlet,每次刷新界面時(shí)都會有不同的驗(yàn)證碼,在提交的時(shí)候后臺需要獲取兩個驗(yàn)證碼,一個是正確的驗(yàn)證碼,一個是用戶輸入的驗(yàn)證碼,進(jìn)行比對,如果發(fā)現(xiàn)輸入一致則允許通過,驗(yàn)證碼的驗(yàn)證應(yīng)放在查詢用戶名是否重復(fù)之前,如果驗(yàn)證碼不正確,就沒必要與后臺打交道直接告訴用戶輸入正確的驗(yàn)證碼才能進(jìn)行注冊。為了避免用戶忘了密碼,采取密碼找回功能,所以注冊時(shí)需要填寫一下密碼提示問題和答案,在找回時(shí),新密碼講是由系統(tǒng)自動生成一個隨機(jī)字符串,通過彈框,顯示給用戶。具體的情況如圖5-1所
31、示。圖5. 1 注冊界面5.2.2.用戶登陸功能設(shè)計(jì)與實(shí)現(xiàn)如果第一次注冊成功,會直接跳入到登陸完成界面,登陸的時(shí)候,如果是通過訪問其他界面,struts的攔截器會講沒登陸時(shí)都統(tǒng)一攔截到login.jsp界面,需要輸入用戶名、密碼,把數(shù)據(jù)傳輸?shù)胶笈_進(jìn)行判斷,如果都正確就通過,否則將重新刷新到login.jsp,通過之后,就要進(jìn)行判斷是否是當(dāng)天的第一次登陸,如果是第一次登陸還要加入登陸操作所增加的積分,同一天登陸多次只能增加一次積分。核心代碼如下:alert();alert();alert(您的新密碼是:+);具體如圖所示: 圖5. 2 登陸界面 此外,在登陸的界面,還會有忘記密碼的信號,如果忘記
32、密碼,可以根據(jù)注冊時(shí)的問題來修改密碼,核心代碼如下:alert();具體如圖所示:圖5. 3 找回密碼的界面 登陸之后,個人基本信息會顯示登陸時(shí)間,因?yàn)閿?shù)據(jù)庫中的時(shí)間格式和前臺顯示時(shí)間不一樣,所以需要采取格式化輸出時(shí)間,用到的技術(shù)是ognl表達(dá)式里面的標(biāo)簽, 而且需要導(dǎo)入相應(yīng)的類庫,否則會不予顯示,還會顯示等級,短信息等信息。圖5. 4 登錄后所顯示的個人信息 登錄界面之后,會顯示出各個用戶的積分排名情況,用戶可以清晰明了的一眼看出自己的積分與排名,設(shè)計(jì)合理,具有可行性。圖5. 5 積分排行信息5.2.3.用戶個人信息模塊功能設(shè)計(jì)與實(shí)現(xiàn)查看個人基本信息功能,會把會員的昵稱、年齡、性別、郵箱、密
33、碼問題及答案、地址等信息羅列出來。主要顯示方法是通過調(diào)用struts的ognl表達(dá)式,例如顯示會員昵稱的表達(dá)式為$sessionscope.member.nickname ,當(dāng)然首先要保證session中保存的有member對象的信息,所以在登陸成功之后就通session.put(member, m)把member對象放入session中。如下圖所示:圖5. 6 查看個人信息5.2.4創(chuàng)建空間模塊功能設(shè)計(jì)與實(shí)現(xiàn)創(chuàng)建空間模塊功能,其中圖片需要用到struts2的文件上傳功能,需要導(dǎo)入相應(yīng)的類庫,選取較小的圖片進(jìn)行上傳到服務(wù)器,然后把路徑寫入數(shù)據(jù)庫,當(dāng)下次訪問的時(shí)候就可以瀏覽自己上次上傳的圖片,核
34、心代碼如下: 上傳個性化形象: 具體如圖所示:圖5. 7 創(chuàng)建個性空間空間創(chuàng)建成功之后,就可以看見自己的個性空間。代碼如下: * 請用一句話形容對跑步的主張:*最喜歡的體育明星:* 經(jīng)常跑步的地點(diǎn): 上傳個性化形象:!- ss具體如圖所示: 圖5. 8 個性空間5.2.5 發(fā)送短信息模塊功能設(shè)計(jì)與實(shí)現(xiàn)郵箱的收發(fā)信息功能,包括收信人昵稱,主題和內(nèi)容等主要信息,該功能涉及到message表,首先通過傳入的member信息找到發(fā)件人和收件人,當(dāng)收件人登陸后通過查看郵箱,就將所有消息收取,一一列舉。分如圖所示。圖5. 9 發(fā)送信息
35、界面圖5. 10 發(fā)件箱界面收件箱核心代碼如下:function subpage()var page=document.getelementbyid(page).value;document.location=?currentpage=+page;function delmessage()ccount = getcheckedcount(id);if (ccount = 0)alert(請至少一條信息!);return;if (confirm(確定刪除嗎?)=false)return false;document.forms.inboxform.action=;document.all(inb
36、oxform).submit();function detailmessage()ccount = getcheckedcount(id);if (ccount = 0)alert(請選擇一條信息!);return;if (ccount 1)alert(對不起,一次只能查看一條信息!);return;document.forms.inboxform.action=;document.all(inboxform).submit();具體如圖:圖5. 11 收件箱界面5.2.6查找添加好友模塊功能設(shè)計(jì)與實(shí)現(xiàn) 查看好友,添加好友和刪除好友功能,通過從數(shù)據(jù)庫中篩選出符合要求的好友信息,當(dāng)用戶點(diǎn)擊添加好
37、友按鈕的時(shí)候,在自己相應(yīng)好友字段增加一條數(shù)據(jù),當(dāng)用戶點(diǎn)擊刪除按鈕的時(shí)候,在自己相應(yīng)好友字段刪除一條數(shù)據(jù),其中好友列表的前臺代碼通過標(biāo)簽遍歷集合。具體如圖所示:圖5. 12 好友列表界面檢索好友的核心代碼如下所示:function subpage()var page=document.getelementbyid(page).value;document.forms.matchfriendform.action=?currentpage=+page;document.all(matchfriendform).submit();function frontpage()var page=docume
38、nt.getelementbyid(page).value;var num=parseint(page)-1;document.forms.matchfriendform.action=?currentpage=+num;document.all(matchfriendform).submit();function nextpage()var page=document.getelementbyid(page).value;var num=parseint(page)+1;document.forms.matchfriendform.action=?currentpage=+num;docum
39、ent.all(matchfriendform).submit();具體如圖所示:圖5. 13 檢索所有符合要求會員信息在好友管理的功能中,還會有黑名單的功能,核心代碼如下:function subpage()var page=document.getelementbyid(page).value;document.location=?currentpage=+page;function delblack()ccount = getcheckedcount(nickname);if (ccount = 0)alert(請至少一條信息!);return;if (confirm(確定刪除嗎?)=f
40、alse)return false;document.forms.blacklistform.action=;document.all(blacklistform).submit();圖5. 14 黑名單界面6.測試 系統(tǒng)測試是對整體性能的測試,主要解決各子系統(tǒng)之間的數(shù)據(jù)通信和數(shù)據(jù)共享問題以及檢測系統(tǒng)是否達(dá)到用戶的實(shí)際要求,系統(tǒng)測試的依據(jù)是系統(tǒng)分析報(bào)告。系統(tǒng)測試應(yīng)在系統(tǒng)的整個范圍內(nèi)進(jìn)行,這種測試不只對軟件進(jìn)行,而是對構(gòu)成系統(tǒng)的硬、軟件一起進(jìn)行。系統(tǒng)測試與建構(gòu)同時(shí)進(jìn)行或略慢。系統(tǒng)測試需要確認(rèn)從頭到尾的功能正常才算完成,應(yīng)當(dāng)盡量避免系統(tǒng)測試延到項(xiàng)目末尾進(jìn)行。本系統(tǒng)后臺采用的測試工具是junit,主
41、要是對數(shù)據(jù)的操作時(shí)候需要進(jìn)行測試,等測試完成之后再將寫好的代碼加入到正式的項(xiàng)目中,junit是一種單元測試,通過導(dǎo)入相應(yīng)的jar包,寫相應(yīng)的注解,就可以進(jìn)行測試。比如像在使用hibernate時(shí),我們不需要每一次都要創(chuàng)建sessionfactory,因?yàn)樗莻€重量級對象,只需要創(chuàng)建一次就可,可以減少對系統(tǒng)資源的消耗,提高系統(tǒng)運(yùn)行的效率。其他比如說電話的驗(yàn)證、兩次輸入密碼是否一致等驗(yàn)證也都采取同樣的測試方法,通過刷新界面根據(jù)顯示效果進(jìn)行不斷調(diào)整。61 測試技術(shù)1白盒測試技術(shù)(white box testing) 深入到代碼一級的測試,使用這種技術(shù)發(fā)現(xiàn)問題最早,效果也是最好的。該技術(shù)主要的特征是測
42、試對象進(jìn)入了代碼內(nèi)部,根據(jù)開發(fā)人員對代碼和對程序的熟悉程度,對有需要的部分進(jìn)行在軟件編碼階段,開發(fā)人員根據(jù)自己對代碼的理解和接觸所進(jìn)行的軟件測試叫做白盒測試。2黑盒測試技術(shù)(black box testing)黑盒測試的內(nèi)容主要有以下幾個方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結(jié)合兼容,性能測試等方面進(jìn)行,根據(jù)軟件需求,設(shè)計(jì)文檔,模擬客戶場景隨系統(tǒng)進(jìn)行實(shí)際的測試,這種測試技術(shù)是使用最多的測試技術(shù)涵蓋了測試的方方面面,可以考慮以下方面:正確性 (correctness)、可用性 (usability)、邊界條件(boundary condition)、性能 (performance
43、)。62測試目標(biāo) 1測試是一個為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。 2一個好的測試用例是揭示了迄今尚未發(fā)現(xiàn)錯誤的測試。 3一個成功的測試是揭示了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。進(jìn)行軟件工程研究的先輩們已經(jīng)幫我們統(tǒng)計(jì)出praetor原則,那就是說測試發(fā)現(xiàn)的錯誤的80%往往由程序模塊中的20%產(chǎn)生,所以我在測試時(shí)往往比較側(cè)重出現(xiàn)錯誤比較多的模塊。當(dāng)然這并不是說其他模塊的測試不重要,而是說這樣做的效率會比較高而且比較有針對性。63 測試方法6.3.1 功能測試1. 鏈接測試:測試所有鏈接是否按指示的那樣確實(shí)鏈接到了應(yīng)該鏈接的頁面;測試所鏈接的頁面是否存在;保證成績管理系統(tǒng)沒有孤立的頁面。所謂孤立頁面是指沒有
44、鏈接指向該頁面,只有知道正確的url 地址才能訪問,鏈接測試可以手動進(jìn)行,也可以自動進(jìn)行。鏈接測試必須在集成測試階段完成,也就是說,在整個成績管理系統(tǒng)的所有頁面開發(fā)完成之后進(jìn)行鏈接測試。2. 表單測試:表單提交應(yīng)當(dāng)模擬用戶提交,驗(yàn)證是否完成功能,如添加用戶,要確保提交按鈕能正常工作,當(dāng)添加完成后應(yīng)返回添加成功的消息。要測試這些程序,需要驗(yàn)證服務(wù)器能正確保存這些數(shù)據(jù),而且后臺運(yùn)行的程序能正確解釋和使用這些信息。還有數(shù)據(jù)正確性驗(yàn)證,異常處理等,最好結(jié)合易用性要求等。b/s結(jié)構(gòu)實(shí)現(xiàn)的功能可能主要的就在這里,提交數(shù)據(jù),處理數(shù)據(jù)等如果有固定的操作流程可以考慮自動化測試 工具的錄制功能,編寫可重復(fù)使用的腳本代碼,可以在測試、回歸測試時(shí)運(yùn)行以便減輕測試人員工作量。3.數(shù)據(jù)校驗(yàn):根據(jù)業(yè)務(wù)規(guī)則,需要對用戶輸入進(jìn)行校驗(yàn),則要保證這些校驗(yàn)功能正常工作。 例如:地址的字段可以用一個有效列表進(jìn)行校驗(yàn)。需要驗(yàn)證列表完整性;程序是否正確調(diào)用了該列表;列表操作是否正確,如在列表中添加一個測試值。數(shù)據(jù)校驗(yàn)測試和表單測試可能會有一些重復(fù)。6.3.2 性能測試1壓力測試:壓力測試目的是要弄清楚被測試的系統(tǒng)是不是不僅
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 按摩枕的智能化程度分析考核試卷
- 塑料廢料的分類與處理技術(shù)考核試卷
- 醫(yī)療設(shè)備手柄材料成本分析考核試卷
- 綠色化學(xué)在礦提取中的應(yīng)用考核試卷
- 成本控制流程再造考核試卷
- 寄宿生管理制度
- 公司員工打架檢討書
- 機(jī)器學(xué)習(xí)與深度學(xué)習(xí)在自動駕駛中的應(yīng)用
- 毽子舞比賽活動方案
- 河水檢測活動方案
- 仁愛初中英語九上教案設(shè)計(jì)u3t1sa
- 類證普濟(jì)本事方續(xù)集
- 緊急救護(hù)知識培訓(xùn)ppt
- LY/T 1279-2020聚氯乙烯薄膜飾面人造板
- GB/T 879.2-2018彈性圓柱銷直槽輕型
- GB/T 24218.2-2009紡織品非織造布試驗(yàn)方法第2部分:厚度的測定
- GA/T 1144-2014信息安全技術(shù)非授權(quán)外聯(lián)監(jiān)測產(chǎn)品安全技術(shù)要求
- 證券從業(yè)資格考試2023年歷年真題匯總
- 高三學(xué)生復(fù)讀第一課-主題班會課件(共68張PPT)
- 審判流程管理信息表
- 303093 池國華 《內(nèi)部控制與風(fēng)險(xiǎn)管理(第3版)》思考題和案例分析答案
評論
0/150
提交評論