日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

基于java的论坛管理系统设计(含源文件)

發(fā)布時間:2023/12/29 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于java的论坛管理系统设计(含源文件) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎添加微信互相交流學(xué)習(xí)哦!

項目源碼:https://gitee.com/oklongmm/biye

摘 要:當今社會正處在網(wǎng)絡(luò)時代,信息化大潮席卷全球,網(wǎng)絡(luò)正以前所未有的速度在我國普及開來。論壇以其獨特的優(yōu)勢在信息化的過程中占有重要的一席。論壇的存在使得地球村的概念離我們越來越近,使得人與人之間的溝通、交流變得格外的容易。特別是在IT領(lǐng)域,只有有了很好的交流,技術(shù)才會得到進步。因此,掌握如何設(shè)計并開發(fā)一個論壇也顯得格外的重要而且意義深遠。
論壇采用B/S體系結(jié)構(gòu),其功能是讓用戶自由地發(fā)表自己的帖子和回復(fù)其他用戶的帖子。論壇包括用戶模塊、帖子模塊、后臺管理模塊。論壇在Struts+Hibernate+Spring框架的基礎(chǔ)上,用JSP語言進行開發(fā),使用的數(shù)據(jù)庫是MySQL,開發(fā)工具為MyEclipse10。本論壇界面簡潔,具有可擴展性和可維護性。
關(guān)鍵詞:BBS,S.S.H(Struts,Hibernate,Spring),JAVA,MySQL,JSP

?
Design and implementation of BBS based on SSH framework

Abstract:Society nowadays just be placed in the network for ages, the information-based big tide rolls up the word, the network is making widely available to open in the our country with the unprecedented speed. Forum with its unique advantages in the process of information occupies the important a seats. Forum makes the existence of the concept of global village closer and closer, making communication between people, communication becomes particularly easy. Especially in the IT field, only a very good exchange, technology will be progress. Therefore, mastering how to design and develop a forum is particularly important, and far-reaching.
This forum uses the B/S system structure, its function is to let users to freely express own posts and respond to other users posts. The forum includes user module, the posts module, background management module. The forum is a based on Struts, Hibernate and Spring, develops with JSP, the use of the database is MySQL, development tools for MyEclipse10. This forum interface is simple and it has scalability and maintainability.
Keywords:BBS, SSH(Struts , Hibernate ,Spring) , JAVA , SQL ,JSP

?
目 ?錄
摘 要?? ?I
Abstract?? ?II
第 1 章 緒論?? ?1
1.1研究背景?? ?1
1.2研究目的?? ?1
1.3研究方法?? ?2
第 2 章 系統(tǒng)分析?? ?3
2.1技術(shù)分析?? ?3
2.1.1 開發(fā)語言綜述?? ?3
2.1.2 S.S.H框架的優(yōu)點?? ?3
2.1.3 系統(tǒng)層次設(shè)計?? ?5
2.2需求分析?? ?6
2.2.1功能需求?? ?6
2.2.2性能需求?? ?7
2.2.3系統(tǒng)開發(fā)運行環(huán)境?? ?7
第 3 章 系統(tǒng)設(shè)計?? ?8
3.1 概要設(shè)計?? ?8
3.1.1功能模塊設(shè)計?? ?8
3.1.2系統(tǒng)界面設(shè)計?? ?9
3.2 數(shù)據(jù)庫設(shè)計?? ?10
3.2.1概念模型設(shè)計(E-R圖)?? ?10
3.2.2數(shù)據(jù)庫表及關(guān)系建立?? ?11
3.2.3詳細數(shù)據(jù)庫結(jié)構(gòu)設(shè)計?? ?11
第 4 章 系統(tǒng)實現(xiàn)?? ?15
4.1 系統(tǒng)框架實現(xiàn)?? ?15
4.1.1底層數(shù)據(jù)庫的建立?? ?15
4.1.2持久化層的建立(Hibernate)?? ?16
4.1.3業(yè)務(wù)邏輯層的建立?? ?16
4.1.4表示層的建立?? ?16
4.2 系統(tǒng)功能模塊實現(xiàn)?? ?17
4.2.1用戶模塊實現(xiàn)?? ?17
4.2.2帖子模塊實現(xiàn)?? ?21
4.2.3后臺管理模塊實現(xiàn)?? ?23
第 5 章 系統(tǒng)測試?? ?24
5.1 測試概述?? ?24
5.1.1軟件測試的目的?? ?24
5.1.2軟件測試的任務(wù)?? ?24
5.1.3測試環(huán)境?? ?24
5.2 單元測試?? ?25
5.3 集成測試?? ?26
5.4 功能測試?? ?26
第 6 章 總結(jié)?? ?28
參考文獻?? ?29
致 ?謝?? ?30

?
第 1 章 緒論
1.1研究背景
1978年在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系統(tǒng)。之后隨著蘋果機的問世,開發(fā)出基于蘋果機的Bulletin Board System和大眾信息系統(tǒng)Peoples Message System兩種BBS系統(tǒng)。1981年IBM個人計算機誕生時,并沒有自己的BBS系統(tǒng)。直到1982年,Buss Lane 才用Basic語言為IBM個人計算機編寫了一個原型程序。其后經(jīng)過幾番增修,終于在1983年通過Capital PC User Group的Communication Special Interest Group會員的努力,改寫出了個人計算機系統(tǒng)的BBS。經(jīng)Thomas Mach整理后,終于完成了個人計算機的第1版BBS系統(tǒng)——RBBS-PC。這套BBS系統(tǒng)的最大特色是其源程序全部公開,有利于日后的修改和維護,因此后來在開發(fā)其他的BBS系統(tǒng)時都以此為框架,所以RBBS-PC贏得了BBS鼻祖的美稱。
大約是從1991年開始,國內(nèi)開始了第一個BBS論壇。經(jīng)過長時間的發(fā)展,直到1995年,隨著計算機及其外設(shè)的大幅降價,BBS論壇才逐漸被人們所認識。1996年更是以驚人的速度發(fā)展起來。國內(nèi)的BBS論壇,大多數(shù)還是大型綜合性BBS論壇。隨著計算機的普及,特別是寬帶的普及,BBS的活動將會進一步高漲。但是,隨之而來對專注于領(lǐng)域方面的BBS將會慢慢增加需求。盡管BBS論壇的數(shù)量在不斷增長,但BBS的發(fā)展過程,也出現(xiàn)了一些問題。由于國內(nèi)使用的BBS架站軟件,都是從國外引進的,因此沒有必要的中文說明。雖然一些熱心的站長翻譯了一些資料,但是僅靠這些是遠遠不夠的。而國內(nèi)自己開發(fā)的BBS基本上都是處于最原始的JSP MODEL1模式,這種模式是控制層與表示層合二為一,雖然開發(fā)簡單,但是擁有很差的擴展性,可維護性,這樣極大地限制了BBS站點的擴展。于是在這種情況下,本文提出了基于MVC模式的SSH框架的BBS論壇。本論壇的優(yōu)點在于它具有強大的可擴展性和可維護性,適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇。
1.2研究目的
進入二十一世紀,計算機技術(shù)迅速向著網(wǎng)絡(luò)化、集成化方向發(fā)展。傳統(tǒng)的單機版應(yīng)用軟件正在逐漸退出舞臺,取而代之的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中似乎存在著兩種不同的趨勢,一種是稱為客戶端——服務(wù)器的C/S結(jié)構(gòu),這類軟件具有結(jié)構(gòu)嚴謹,運行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點,被廣泛運用于局域網(wǎng)中。而另一種,也是本畢業(yè)設(shè)計所采用的,是稱為瀏覽器——服務(wù)器的B/S結(jié)構(gòu),它的特點是在客戶端直接采用了功能強大的瀏覽器軟件作為界面,其優(yōu)點在于軟件開發(fā)效率高,客戶端不受操作平臺的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,既適用于局域網(wǎng),又適用于Internet,而且投資小、見效快,用戶可以不必進行服務(wù)器方面的投資,而是去租用,甚至是免費使用ISP的服務(wù)器資源,因而受到越來越多中小型單位的青睞。
隨著Internet技術(shù)的不斷發(fā)展,以及用戶群爆炸性地增長,網(wǎng)絡(luò)不再僅僅是信息的被動獲取來源,更成為人們探討問題、交換觀點的場所,其中,網(wǎng)上論壇扮演了極其重要的角色,隨著時間的推移,論壇站點中積存了豐富的信息資源,不但有各類技術(shù)資料和新聞文檔,還包含著用戶的判斷和評論,論壇站點己成為Web信息庫的重要組成部分,自網(wǎng)上論壇誕生20多年以來,隨著Web技術(shù)的發(fā)展,己經(jīng)由原來簡單的電子公告板系統(tǒng)發(fā)展為功能豐富的網(wǎng)上論壇和虛擬社區(qū)模式。各種論壇隨著網(wǎng)絡(luò)迅速發(fā)展,幾乎充實著生活工作的每一個方面,無論是商界、政界,還是娛樂界,都有各種論壇?;ヂ?lián)網(wǎng)正在融入我們的生活,網(wǎng)絡(luò)提供給我們的不只是一個獲取信息的來源,而且還是一個可以相互交流的空間,網(wǎng)上論壇正是一種供人們進行交流的網(wǎng)絡(luò)空間, 影響和改變著我們的生活。為了方便信息交流,在結(jié)合java和ssh技術(shù)之下開發(fā)了這個快捷、界面友好的交流系統(tǒng),實現(xiàn)了一個功能相對齊全的論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗。
1.3研究方法
論壇在Struts+Spring+Hibernate 擴展Structs框架的基礎(chǔ)上,用今天主流的網(wǎng)站開發(fā)技術(shù)jsp語言進行開發(fā)。論壇將采用B/S體系結(jié)構(gòu),人們通過瀏覽器就可以訪問網(wǎng)站的主頁。在這論壇可以自由地發(fā)表自己的觀點和對論壇主題發(fā)表意見,我們還可以對網(wǎng)友的問題進行及時的解決,獲取對自己有用的知識。本網(wǎng)站按照軟件項目開發(fā)的流程進行開發(fā),對于網(wǎng)站開發(fā)的可行性分析、需求分析、概要設(shè)計、詳細設(shè)計以及對網(wǎng)站的測試與維護都有詳細的論述和實現(xiàn)過程。


?
第 2 章 系統(tǒng)分析
2.1技術(shù)分析
2.1.1 開發(fā)語言綜述
本系統(tǒng)是基于面向?qū)ο笏枷氲腏AVA語言中J2EE平臺進行編寫,J2EE平臺具有以下優(yōu)點。
1.簡化結(jié)構(gòu):J2EE平臺支持簡化的、基于組件開發(fā)模型,遵循J2EE標準的所有服務(wù)器都支持該模型。J2EE標準還允許客戶訂購與J2EE兼容的第三方的現(xiàn)成組件,把其部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。
2. 提高開發(fā)效率:由于組件技術(shù)的使用,可以按照開發(fā)人員的技能對應(yīng)用程序開發(fā)進行分工,并行開發(fā),提供整體開發(fā)效率。例如:圖形設(shè)計師創(chuàng)建JSP模板,商業(yè)邏輯由該領(lǐng)域的專家完成,JSP頁面由Java工程師完成,應(yīng)用程序的裝配和部署由團隊中其他的成員完成,其中許多工作可以同時進行,有助于加速應(yīng)用程序的開發(fā)。
3.易于維護:基于組件的設(shè)計簡化了應(yīng)用程序的維護。由于組件可以被獨立地更新和替代,通過更新應(yīng)用程序中特定的組件,新的功能可以被很容易地增加。
4.可伸縮性:基于J2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上,例如,可被部署到高端UNIX或其他的大型機系統(tǒng)上。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。
2.1.2 S.S.H框架的優(yōu)點
S.S.H框架是J2EE應(yīng)用中Struts+Spring+Hibernate三大免費開源框架的結(jié)合使用, 它可以看成工具,也是中間件。它是用來提高我們的開發(fā)效率,提高我們軟件產(chǎn)品的可維護性、可擴展性乃至敏捷性的。它有很多優(yōu)秀的設(shè)計理念及模式應(yīng)用。比如,Struts屬于MVC框架,關(guān)鍵是要了解MVC的概念及大致原理;Hibernate屬于ORM系統(tǒng),屬于持久層的解決方案,同樣需要對ORM的概念及原理有一個總體的了解;Spring屬于應(yīng)用程序框架,其核心是IOC容器以及AOP,Spring中還集成了很多適用東西,比如對JDBC的封裝、自己的MVC、對動態(tài)語言的簡潔訪問等。
S.S.H由以下3個框架構(gòu)成:
1.Struts框架
Struts 是Apache軟件基金會(ASF)贊助的一個開源項目。它通過采用Servlet/JSP技術(shù),實現(xiàn)了基于Java EE Web應(yīng)用的MVC設(shè)計模式的應(yīng)用框架,是MVC經(jīng)典設(shè)計模式中的一個經(jīng)典產(chǎn)品。其基本構(gòu)成如圖2.1所示。
?
圖2.1 Struts框架工作流程

2.Spring框架
Spring是一個開源框架,Spring 是于2003 年興起的一個輕量級的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring框架由以下7個部分組成。
?
圖2.2 Spring框架構(gòu)成
3.Hibernate框架
Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲地使用面向?qū)ο缶幊趟枷雭聿倏v數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
?
圖2.3 Hibernate框架

2.1.3 系統(tǒng)層次設(shè)計
系統(tǒng)根據(jù)S.S.H框架的特點,決定使用四層結(jié)構(gòu),這樣做的優(yōu)點是
1、可以分層開發(fā),訪問數(shù)據(jù)庫與業(yè)務(wù)邏輯實現(xiàn)能夠分開。
2、提高代碼的復(fù)用
表示層
業(yè)務(wù)邏輯層
持久化層
數(shù)據(jù)庫層
圖2.4 BBS系統(tǒng)的分層結(jié)構(gòu)

?
2.2需求分析
2.2.1功能需求
對于訪問論壇的用戶,可分為注冊會員和普通用戶,這兩種用戶有著不同的權(quán)限,比如普通用戶只能發(fā)普通帖,回帖,而注冊會員除此之外,還可以發(fā)含有圖片,附件的帖,并且可以對自己的注冊資料進行修改等等。
以下為用戶角色劃分:
1.普通用戶(游客):普通用戶以游客身份登錄本系統(tǒng),只具有發(fā)普通帖,回帖的功能。
2.注冊用戶:具備普通用戶所有的能力。并且注冊用戶可以發(fā)含有圖片、附件的帖,可以登錄,修改個人信息。
3.管理員:登錄以后可以對論壇系統(tǒng)進行管理,包括用戶管理、帖子管理、論壇信息管理。
本系統(tǒng)是一套網(wǎng)上交流的BBS軟件,根據(jù)用戶的需要和實際的管理條件,應(yīng)由用戶功能模塊,帖子功能模塊和后臺管理模塊等幾個模塊所構(gòu)成,用戶可以對一些數(shù)據(jù)進行查找和修改,并且注冊的用戶可以對帖子進行特定的操作,而管理員可以對用戶和帖子進行相關(guān)的管理。
鑒于本系統(tǒng)的性質(zhì),系統(tǒng)應(yīng)該實現(xiàn)以下功能。
1.?? ?用戶功能模塊
1)用戶的登錄:用戶輸入登錄信息,如用戶名、密碼,以注冊會員的身份進入論壇;
2)用戶的注冊:主要是指除管理員以外的用戶角色(一般為游客),在網(wǎng)上在線填寫一些會員的注冊信息。注冊后即可成為論壇的注冊會員;
3)用戶資料的修改:注冊會員登錄成功后,可以修改自己的注冊信息,如密碼或者其它的內(nèi)容等。
2.?? ?帖子功能模塊
1)帖子的發(fā)表:游客或者登陸成功的注冊用戶可以選擇自己感興趣的版塊,發(fā)表自己的帖子;
2)帖子的回復(fù):游客或者登陸成功的注冊用戶可以查看感興趣的帖子并且進行回復(fù)。
3.?? ?后臺管理模塊
3)用戶的管理:管理員登錄成功后,可以查看論壇的所有注冊用戶的信息并且進行必要的修改;
4)帖子的管理:管理員登錄成功后,可以查看論壇的所有版塊的所有帖子并且進行必要的管理,如刪除帖子、帖子加精、帖子置頂;
5)論壇信息的管理:管理員登錄成功后,可以查看論壇所有信息,并且可對論壇基本信息,如公告,版塊等進行管理。
2.2.2性能需求
1.?? ?響應(yīng)時間:50個用戶同時在線時響應(yīng)時間不超過3秒。
2.?? ?易用性:符合一般人的操作習(xí)慣,出現(xiàn)問題時,能夠提示。
3.?? ?可修改性:能夠根據(jù)需求,增加或減少模塊。
2.2.3系統(tǒng)開發(fā)運行環(huán)境
開發(fā)環(huán)境: Windows 7 ?Tomcat7.0 ?JDK1.6
硬件實現(xiàn): CoreP7350@2.0GHz ?4G內(nèi)存 80G硬盤
開發(fā)語言: ?Java
數(shù) 據(jù) 庫: ?MySQL5.5
開發(fā)工具: ?MyEclipse10?
預(yù)期成果: 一個可擴展的基于MVC模式的 BBS論壇

?
第 3 章 系統(tǒng)設(shè)計
3.1 概要設(shè)計
根據(jù)需求分析的結(jié)果,對系統(tǒng)進行詳細的概要設(shè)計。
3.1.1功能模塊設(shè)計
繪制出的用例圖,將本系統(tǒng)分為三個大的模塊,它們分別是會員資料模塊,帖子資料模塊和后臺管理模塊。本系統(tǒng)的功能層次圖如圖3.1所示。

圖3.1系統(tǒng)功能層次圖
如圖3.1,BBS系統(tǒng)實現(xiàn)了如下的功能。
1.用戶模塊:此模塊用來實現(xiàn)用戶的登陸注冊和會員資料的修改。
1).用戶登陸模塊:用戶可以通過此模塊對論壇進行登陸,登陸后便可以使用所有的會員功能,比如上傳圖片和附件等等。
2).用戶注冊模塊:沒有帳號的用戶,可以通過此模塊添加用戶信息,添加成功后便可登陸論壇,使用會員功能。
3).資料修改模塊:已注冊的用戶在登陸后,可以通過此模塊,對會員的基本資料,聯(lián)系方式,密碼,頭像等資料進行修改。 
2.帖子模塊:
1).發(fā)表帖子模塊:用戶可以在相應(yīng)的版區(qū)中,發(fā)表自己的主題,發(fā)表成功后,其他用戶便可以在相應(yīng)的版區(qū)中看到這篇帖子,并可以對其進行回復(fù)等操作。
2).回復(fù)帖子模塊:用戶在發(fā)表完主題后,用戶便可查看相關(guān)內(nèi)容,并可以對已發(fā)表的帖子進行回復(fù)。
3.后臺管理:
1).帖子管理模塊:帖子管理模塊是管理員對帖子管理的平臺,如果管理員查看到帖子有不適宜發(fā)表的內(nèi)容時,可以對帖子選擇刪除或者鎖定等操作,如果看到優(yōu)秀的帖子,還可以將帖子進行置頂,加精。
圖3.2帖子管理模塊功能層次圖
2).用戶管理模塊:管理員可以通過此模塊,對用戶進行管理,對一些不法的用戶可以修改或者刪除資料。
3).論壇管理模塊:管理員對論壇的添加,創(chuàng)建,刪除等功能都是在此模塊里進行處理。
3.1.2系統(tǒng)界面設(shè)計
對于系統(tǒng)來說,用戶界面設(shè)計將非常重要,因為一個交互良好的界面能夠加深瀏覽者的印象。設(shè)計的實現(xiàn)可以分為兩個部分。第一部分為站點的規(guī)劃及草圖的繪制,這一部分可以在紙上完成。第二部分為網(wǎng)頁的制作,這一過程是在計算機上完成的。
設(shè)計首頁的第一步是設(shè)計版面布局。我們可以將網(wǎng)頁看作傳統(tǒng)的報刊雜志來編輯,這里面有文字、圖像乃至動畫,我們要做的工作就是以最適合的方式將圖片和文字排放在頁面的不同位置。 除了要有一臺配置不錯的計算機外,軟件也是必需的。不能簡單地說一個軟件的好壞,只要是設(shè)計者使用起來覺得方便而且能得心應(yīng)手的,就可以稱為好軟件。當然,它應(yīng)該能滿足設(shè)計者的要求。常用的軟件是Macromedia的Dreamweaver以及Adobe的Photoshop。
設(shè)計是有原則的,無論使用何種手法對畫面中的元素進行組合,都一定要遵循五個大的原則:統(tǒng)一、連貫、分割、對比及和諧。
統(tǒng)一是指設(shè)計作品的整體性,一致性。設(shè)計作品的整體效果是至關(guān)重要的,在設(shè)計中切勿將各組成部分孤立分散,那樣會使畫面呈現(xiàn)出一種枝蔓紛雜的凌亂效果。
連貫是指要注意頁面的相互關(guān)系。設(shè)計中應(yīng)利用各組成部分在內(nèi)容上的內(nèi)在聯(lián)系和表現(xiàn)形式上的相互呼應(yīng),并注意整個頁面設(shè)計風格的一致性,實現(xiàn)視覺上和心理上的連貫,使整個頁面設(shè)計的各個部分極為融洽,猶如一氣呵成。
分割是指將頁面分成若干小塊,小塊之間有視覺上的不同,這樣可以使觀者一目了然。在信息量很多時為使觀者能夠看清楚,就要注意到將畫面進行有效的分割。分割不僅是表現(xiàn)形式的需要。換個角度來講,分割也可以被視為對于頁面內(nèi)容的一種分類歸納。
對比是指通過矛盾和沖突,使設(shè)計更加富有生氣。對比手法很多,例如:多與少、曲與直、強與弱、長與短、粗與細、疏與密、虛與實、主與次、黑與白、動與靜、美與丑、聚與散等等。在使用對比的時候應(yīng)慎重,對比過強容易破壞美感,影響統(tǒng)一。
和諧是指整個頁面符合美的法則,渾然一體。如果一件設(shè)計作品僅僅是色彩、形狀、線條等的隨意混合,那么作品將不但沒有“生命感”,而且也根本無法實現(xiàn)視覺設(shè)計的傳達功能。和諧不僅要看結(jié)構(gòu)形式,而且要看作品所形成的視覺效果能否與人的視覺感受形成一種溝通,產(chǎn)生心靈的共鳴。這是設(shè)計能否成功的關(guān)鍵。
3.2 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。
數(shù)據(jù)庫和設(shè)計概述
1.數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息。
2.數(shù)據(jù)庫是信息系統(tǒng)的各個部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在。
3.數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分。
3.2.1概念模型設(shè)計(E-R圖)
數(shù)據(jù)模型是是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表與操作提供一個抽象的框架。描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。?
E-R圖概念化地構(gòu)建實體間關(guān)系的模型,這使得它們區(qū)別于數(shù)據(jù)庫模型圖。E-R圖的理念是:項目所有參與者能理解E-R圖。E-R圖由不同實體類型、關(guān)系、特性和類型構(gòu)成。實體是諸如用戶的實際對象,有時更抽象,但必須有業(yè)務(wù)意義。特性用于描述實體,關(guān)系用于實體之間。
1.實體:現(xiàn)實世界中的事物;
2.屬性:事物的特性;
3.聯(lián)系:現(xiàn)實世界中事物間的關(guān)系。實體集的關(guān)系有一對一、一對多、多對多的聯(lián)系。
本系統(tǒng)的ER圖。
?
圖3.4 系統(tǒng)E-R圖
3.2.2數(shù)據(jù)庫表及關(guān)系建立
根據(jù)以上這些步驟就可以創(chuàng)建一個數(shù)據(jù)庫,依次建立下列表結(jié)構(gòu)。
1.?? ?用戶基本信息表
2.?? ?用戶詳細信息表
3.?? ?論壇帖子表
4.?? ?論壇回復(fù)表
5.?? ?論壇版區(qū)表
表與表之間的關(guān)系如下:
1.用戶基本信息表和用戶詳細信息表是一對一的關(guān)系,一個用戶對應(yīng)一個詳細信息表。
2.用戶基本信息表和論壇帖子表是一對多的關(guān)系,一個用戶可以發(fā)表多篇帖子。
3.用戶基本信息表和論壇回復(fù)表是一對多的關(guān)系,一個用戶可以回復(fù)多篇帖子。
4.論壇回復(fù)表和論壇帖子表是一對多的關(guān)系,一篇帖子后面可以跟多篇回復(fù)。
5.論壇版區(qū)表和論壇帖子表是一對多的關(guān)系,在一個版區(qū)中可以含有多篇帖子。
3.2.3詳細數(shù)據(jù)庫結(jié)構(gòu)設(shè)計
1、用戶基本信息表
用戶基本信息表中存放的是用戶登陸時所需要或者記錄用戶的基本信息,包含比如登陸名、密碼、最后登陸時間等。用戶基本信息表的建立主要是記錄用戶最常用的一些信息。    
表3.1用戶基本信息表
字段名?? ?數(shù)據(jù)類型?? ?為空?? ?說明
id?? ?int(11)?? ?否?? ?主鍵
userName?? ?varchar(20)?? ?否?? ?用戶名(唯一)
nickName?? ?varchar(60)?? ?否?? ?昵稱
passwd?? ?varchar(40)?? ?否?? ?密碼
email?? ?varchar(255)?? ?否?? ?Email
question?? ?varchar(255)?? ?否?? ?問題
answer?? ?varchar(255)?? ?否?? ?答案
regTime?? ?datetime?? ?否?? ?注冊時間
loginTime?? ?datetime?? ?否?? ?登錄時間
loginIP?? ?varchar(20)?? ?否?? ?登錄IP
coin?? ?int(11)?? ??? ?財富值

2、用戶詳細信息表
用戶詳細信息表中存放的是用戶的身高,體重,聯(lián)系方式等詳細資料,建立此表的目的是把一些用戶不經(jīng)常用到的詳細信息,單獨存放到一張表中,可以節(jié)約系統(tǒng)的資源。
表3.2 用戶詳細信息表
字段名?? ?數(shù)據(jù)類型?? ?為空?? ?說明
id?? ?int(11)?? ?否?? ?主鍵(外鍵-userInfo.id)
height?? ?varchar(255)?? ??? ?身高
weight?? ?varchar(255)?? ??? ?體重
interest?? ?varchar(255)?? ??? ?興趣
graduate?? ?varchar(255)?? ??? ?畢業(yè)院校
favourPerple?? ?varchar(255)?? ??? ?偶像
favourArt?? ?varchar(255)?? ??? ?喜愛的藝術(shù)
favourMusic?? ?varchar(255)?? ??? ?喜愛的音樂
favourPlace?? ?varchar(255)?? ??? ?喜愛的地方
favourMovie?? ?varchar(255)?? ??? ?喜愛的電影
favourBook?? ?varchar(255)?? ??? ?喜愛的書
qqNo?? ?varchar(255)?? ??? ?qq號
sex?? ?int(1)?? ??? ?性別
3、論壇帖子表
論壇帖子表存放的是用戶所發(fā)表的主題帖信息。
表3.3 論壇帖子表
字段名?? ?數(shù)據(jù)類型?? ?為空?? ?說明
id?? ?int(11)?? ?否?? ?主鍵
boardid?? ?int(11)?? ?否?? ?版區(qū)ID(外鍵-board.id)
reNum?? ?int(11)?? ??? ?回復(fù)數(shù)量
userID?? ?int(11)?? ??? ?用戶ID
userName?? ?varchar(20)?? ??? ?用戶名
nickName?? ?varchar(60)?? ??? ?昵稱
title?? ?varchar(150)?? ??? ?標題
detail?? ?text?? ??? ?內(nèi)容
click?? ?int(11)?? ??? ?點擊數(shù)
postTime?? ?datetime?? ??? ?發(fā)表時間
lastTime?? ?datetime?? ??? ?最后回復(fù)時間
delSig?? ?int(1)?? ??? ?刪除標記

4、論壇回復(fù)表
論壇回復(fù)表存放的是用戶回復(fù)主題的回復(fù)信息。
表3.4 論壇回復(fù)表
字段名?? ?數(shù)據(jù)類型?? ?為空?? ?說明
id?? ?int(11)?? ?否?? ?主鍵
pid?? ?int(11)?? ?否?? ?父級ID
userID?? ?int(11)?? ??? ?用戶ID
userName?? ?varchar(20)?? ??? ?用戶名
nickName?? ?varchar(60)?? ??? ?昵稱
context?? ?text?? ??? ?內(nèi)容
postTime?? ?datetime?? ??? ?發(fā)表時間
delSig?? ?int(1)?? ??? ?刪除標記

5、論壇版區(qū)表
論壇版區(qū)表是存放的是論壇中版塊信息。
表3.5 論壇版區(qū)表
字段名?? ?數(shù)據(jù)類型?? ?為空?? ?說明
id?? ?int(11)?? ?否?? ?主鍵
pid?? ?int(11)?? ?否?? ?父級ID
boardName?? ?varchar(60)?? ?否?? ?版區(qū)名稱
explains?? ?text?? ??? ?版區(qū)說明
mainPostNum?? ?int(11)?? ??? ?主題數(shù)量
postNum?? ?int(11)?? ??? ?回復(fù)數(shù)量
?
第 4 章 系統(tǒng)實現(xiàn)
4.1 系統(tǒng)框架實現(xiàn)
在系統(tǒng)的整體設(shè)計中,我們采取了三層結(jié)構(gòu)。這樣結(jié)構(gòu)的優(yōu)點是靈活,移植和可維護性比較高。每個層在處理程序上都應(yīng)該有一項明確的責任,而不應(yīng)該在功能上與其它層混合,并且每個層要與其它層分開的。
?
圖4.1 S.S.H框架的結(jié)合使用
4.1.1底層數(shù)據(jù)庫的建立
在前期的數(shù)據(jù)庫選用中,本系統(tǒng)選取了適合中小型網(wǎng)站的MySQL數(shù)據(jù)庫,而在數(shù)據(jù)庫的設(shè)計中,本文已經(jīng)確立了表結(jié)構(gòu)。根據(jù)這些就可以創(chuàng)建一個數(shù)據(jù)庫,在數(shù)據(jù)庫創(chuàng)建并連接好后,就可以創(chuàng)建表、修改表和刪除表,創(chuàng)建、修改、和刪除主鍵、外鍵等等。選中“spring”數(shù)據(jù)庫,“use spring;”并使用“create table <表名>”sql語句,依次創(chuàng)建以下表結(jié)構(gòu)。
表4.1表結(jié)構(gòu)
userInfo?? ?用戶基本信息表
userDetail?? ?用戶詳細信息表
boardTag?? ?論壇版區(qū)表
board?? ?論壇版塊表
forum?? ?帖子表
reply?? ?回復(fù)表

?
4.1.2持久化層的建立(Hibernate)
本論壇利用了DAO設(shè)計模式結(jié)合Hibernate框架來創(chuàng)建數(shù)據(jù)持久化層。DAO(Data Access Object)模式稱為數(shù)據(jù)訪問對象模式,其本質(zhì)是向外部提供一個訪問數(shù)據(jù)源的統(tǒng)一接口,對外隱藏操作數(shù)據(jù)源的實現(xiàn)細節(jié),而DAO的實現(xiàn)使用的是Hibernate。首先,在spring的配置文件bean.xml中配置dataSource、sessionFactory、transactionManager,然后編寫entity層中的實體類。在實體類中,需要加上無參的空實現(xiàn)的構(gòu)造器,還有g(shù)etter和setter方法。Hibernate通過注解來映射(OR)對象。注解比以往使用xml文檔實現(xiàn)的映射文件更加便捷,只需在實體類中標記“@entity”、“@Id”等,便可聲明Hibernate中持久化類的屬性與數(shù)據(jù)庫對應(yīng)表之間字段的映射關(guān)系。接著是DAO接口的定義。DAO接口中定義了特定持久化類所對應(yīng)的抽象業(yè)務(wù)邏輯方法。最后是DAO接口的實現(xiàn)類。該類利用HibernateAPI實現(xiàn)DAO接口所定義的抽象方法。這樣的設(shè)計的有利于當改用其他的持久化機制或持久化中間件時(例如,出現(xiàn)了更好地ORM框架),由于DAO向上層調(diào)用者提供的接口不會變化,只需創(chuàng)建新的DAO實現(xiàn)類而無需更改應(yīng)用中的業(yè)務(wù)邏輯代碼。
4.1.3業(yè)務(wù)邏輯層的建立
本系統(tǒng)的業(yè)務(wù)邏輯是交由Struts中的Action進行判斷的,比如判斷登陸的業(yè)務(wù)邏輯時,會建立一個LoginAction類來進行邏輯判斷,而一些關(guān)聯(lián)的映射,本系統(tǒng)是寫在Struts的struts.xml中。
從編碼的視角來看,這層是最容易被忽視的一層。 我們往往在持久層周圍看到這些業(yè)務(wù)處理的代碼,這其實是不正確的,因為它導(dǎo)致了程序代碼的緊密偶合,這樣一來,隨著時間推移這些代碼很難維護。針對這一問題,本系統(tǒng)可以使用Spring框架來解決,利用Spring框架中的“依賴注射”(“控制反轉(zhuǎn)”)把程序中所涉及到包含業(yè)務(wù)邏輯和Dao的Objects,例如transaction management handler(事物管理控制)、Object Factoris(對象工廠)、service objects(服務(wù)組件)都放在Spring的容器中,通過Spring來管理。這種方式讓你的對象從創(chuàng)建中釋放了出來,降低了偶合度。
4.1.4表示層的建立
在表示層上,主要是基于JSP和AJAX異步傳輸技術(shù)來進行建立,最后通過Struts框架的struts.xml文件進行關(guān)聯(lián)映射.具體的頁面設(shè)計,會在后面的章節(jié)中進行介紹。
4.2 系統(tǒng)功能模塊實現(xiàn)
4.2.1用戶模塊實現(xiàn)
在用戶模塊的設(shè)計中,首先完成的是業(yè)務(wù)邏輯層的相應(yīng)action類的編寫,之后在通過具體的需要,編寫相應(yīng)的數(shù)據(jù)庫訪問DAO。在一切結(jié)束之后,從DAO和業(yè)務(wù)邏輯類中抽象出接口,通過Spring的IOC對接口進行對象注入。
在模塊的設(shè)計過程中,遇到的難點是在注冊時使用的AJAX異步傳輸,來判斷用戶名是否可以被注冊。AJAX技術(shù)是一個基于Javascript腳本語言的技術(shù),目前對這種技術(shù)的使用還不是很多,但通過反復(fù)的調(diào)試,逐漸的掌握了AJAX的要點。
其主要代碼如下:
function changeStyle(elementID, toStyle, showText) {
?? ?document.getElementById(elementID).className = toStyle;
?? ?document.getElementById(elementID).innerText = showText;
}

function checkUserName() {
?? ?var username = $('userName').value;
?? ?if (username == "" || username == null) {
?? ??? ?$('usernameMsg').innerHTML = "<font color='red'>不能為空!</font>";
?? ?} else if (!username.match(/^\w+$/)) {
?? ??? ?$('usernameMsg').innerHTML = "<font color='red'>用戶名只能由英文、數(shù)字和下劃線組成!</font>";
?? ?} else if (username.length<3||username.length>12) {
?? ??? ?$('usernameMsg').innerHTML = "<font color='red'>長度要在3到12個字符內(nèi)!</font>";
?? ?} else {
?? ??? ?$('usernameMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('usernameMsg').className = "msg1";
}

function checkNickName() {
?? ?var nickname = $('nickName').value;
?? ?if (nickname == "" || nickname == null) {
?? ??? ?$('nicknameMsg').innerHTML = "<font color='red'>請輸入昵稱.</font>";
?? ?} else {
?? ??? ?$('nicknameMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('nicknameMsg').className = "msg1";
}

function checkEmail() {
?? ?var email = $('email').value;
?? ?if (email == "" || email == null) {
?? ??? ?$('emailMsg').innerHTML = "<font color='red'>請輸入email.</font>";
?? ?} else if (!email.match(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/)) {
?? ??? ?$('emailMsg').innerHTML = "<font color='red'>請輸入正確的email.</font>";
?? ?} else {
?? ??? ?$('emailMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('emailMsg').className = "msg1";
}

function checkPassword() {
?? ?var passwd = $('passwd').value;
?? ?if (passwd == "" || passwd == null) {
?? ??? ?$('passwdMsg').innerHTML = "<font color='red'>請輸入密碼.</font>";
?? ?} else if (passwd.length < 6) {
?? ??? ?$('passwdMsg').innerHTML = "<font color='red'>密碼不能少于6個字符</font>";
?? ?} else if (passwd.length > 20) {
?? ??? ?$('passwdMsg').innerHTML = "<font color='red'>密碼不能大于20個字符</font>";
?? ?} else {
?? ??? ?$('passwdMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('passwdMsg').className = "msg1";
}

function checkRePassword() {
?? ?if ($('rePasswd').value != $('passwd').value) {
?? ??? ?$('passwdreMsg').innerHTML = "<font color='red'>不一致</font>";
?? ?} else {
?? ??? ?$('passwdreMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('passwdreMsg').className = "msg1";
}

function checkQuestion() {
?? ?if ($('question').value == "" || $('question').value == null) {
?? ??? ?$('questionMsg').innerHTML = "<font color='red'>請輸入問題.</font>";
?? ?} else {
?? ??? ?$('questionMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('questionMsg').className = "msg1";
}

function checkAnswer() {
?? ?if ($('answer').value == "" || $('answer').value == null) {
?? ??? ?$('answerMsg').innerHTML = "<font color='red'>請回答.</font>";
?? ?} else {
?? ??? ?$('answerMsg').innerHTML = "<font color='blue'>ok.</font>";
?? ?}
?? ?$('answerMsg').className = "msg1";
}

function checkUserNameAction() {
?? ?if ($('userName').value == "" || $('userName').length == 0) {
?? ??? ?alert("請?zhí)顚懹脩裘?#xff01;");
?? ??? ?return;
?? ?}
?? ?$('checkUserNameMsg').className = "msg2";
?? ?$('checkUserNameMsg').innerHTML = "檢測中,請等待...";
?? ?if (typeof XMLHttpRequest != "undefined") {
?? ??? ?var sUrl = "checkUsername.action?userName="+$('userName').value;
?? ??? ?var oRequest = new XMLHttpRequest();
?? ??? ?oRequest.onreadystatechange = function() {
?? ??? ??? ?if (oRequest.readyState == 4) {
?? ??? ??? ??? ?var result = eval('(' + oRequest.responseText + ')');
?? ??? ??? ??? ?$('checkUserNameMsg').innerHTML="<font color='blue'>"+ result.checkedMessage + "</font>";
?? ??? ??? ?}
?? ??? ?};
?? ??? ?$('checkUserNameMsg').className = "msg1";
?? ??? ?oRequest.open('POST', sUrl);
?? ??? ?oRequest.send(null);
?? ?}
}

圖4.2 ?AJAX技術(shù)在本系統(tǒng)中的應(yīng)用
當用戶登錄時,會有“自動登錄”的選項,其實現(xiàn)是在登錄時,檢測是否勾選“自動登錄”,若勾選了,會往瀏覽器發(fā)送cookie,以保留登錄信息,下次訪問時就不用再輸入用戶名和密碼就可以自動登錄了。
發(fā)送cookie代碼如下:
if (checkAuto != null && "auto".equals(this.getCheckAuto()[0])) {
?? ?Cookie cookie = new Cookie("forumCookie", this.getUsername());
?? ?cookie.setMaxAge(60 * 60 * 24 * 7);
?? ?this.getResponse().addCookie(cookie);
} else {
?? ?Cookie cookie = new Cookie("forumCookie", "forum");
?? ?this.getResponse().addCookie(cookie);
}
接收cookie代碼(攔截器)如下:
public String intercept(ActionInvocation invocation) throws Exception {
?? ??? ?ActionContext ac = invocation.getInvocationContext();
?? ??? ?HttpServletRequest request = (HttpServletRequest) ac
?? ??? ??? ??? ?.get(ServletActionContext.HTTP_REQUEST);
?? ??? ?Cookie[] cookies = request.getCookies();
?? ??? ?if (cookies != null) {
?? ??? ??? ?for (Cookie cookie : cookies) {
?? ??? ??? ??? ?if ("forumCookie".equals(cookie.getName())) {
?? ??? ??? ??? ??? ?String value = cookie.getValue();
?? ??? ??? ??? ??? ?if (!"forum".equals(value)) {
?? ??? ??? ??? ??? ??? ?Map<String, Object> session = ac.getSession();
?? ??? ??? ??? ??? ??? ?if (session.get("userInfo") == null) {
?? ??? ??? ??? ??? ??? ??? ?UserInfo userInfo = new UserInfo();
?? ??? ??? ??? ??? ??? ??? ?userInfo.setUserName(value);
?? ??? ??? ??? ??? ??? ??? ?session.put("userInfo", userInfo);
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?return invocation.invoke();
?? ?}

圖4.3 cookie的應(yīng)用

當用戶登錄成功后,用戶可以選擇進入到個人中心,來管理個人信息。個人中心分為用戶的操作框和具體信息顯示框兩部分。用戶可以選擇修改簽名、編輯頭像、更改個人信息等操作。

?
圖4.4個人中心

?
4.2.2帖子模塊實現(xiàn)
帖子模塊的完成流程和用戶模塊類似,都是先根據(jù)JSP網(wǎng)頁,建立相應(yīng)的Action邏輯判斷類,之后建立和帖子有關(guān)的數(shù)據(jù)庫訪問DAO,最后抽象出接口進行依賴注入。編寫帖子模塊首先遇到的難點是分頁功能的實現(xiàn),當打開某個論壇時,如果論壇中的帖子數(shù)量不能在一頁中顯示出來,那么怎樣進行處理。在一些參考學(xué)習(xí)后,本系統(tǒng)最后編寫了一個分頁類,來解決這個難題。Pages.java、PageList.java位于com.oyj.forum.service.web包下,其中的屬性有:
表4.2 ?Pages類的屬性
Pages.java
int page?? ?頁號
long totalNum?? ?記錄總數(shù)
int perPageNum?? ?每頁顯示記錄數(shù)
int allPage?? ?總頁數(shù)
int cpage?? ?當前頁
int spage?? ?起始記錄數(shù)

表4.3 PageList類的屬性
PageList.java
List<E> objectList?? ?記錄列表
Pages pages?? ?分頁信息

圖4.5分頁的實現(xiàn)

當用戶進入某版塊時,就會顯示出分頁信息,并且把相關(guān)的帖子發(fā)列表送給用戶。當我們每次查看某個帖子,或回復(fù)某個帖子時,回復(fù)數(shù)量、點擊數(shù)量都會進行自增。進入帖子后,系統(tǒng)會根據(jù)文章發(fā)表時間的順序,將帖子和相關(guān)的回復(fù)顯示出來。
?
圖4.6查看帖子
4.2.3后臺管理模塊實現(xiàn)
后臺管理模塊是管理員對論壇進行管理的平臺。管理員可以在此模塊中主要完成對帖子和用戶的管理,管理員可以通過用戶的ID和用戶名對其進行搜索,從而實現(xiàn)管理。
?
圖4.7 管理員對用戶進行管理

此外管理員還可以進行添加,修改論壇信息。
?
圖4.8管理員對版區(qū)進行管理
?
第 5 章 系統(tǒng)測試
5.1 測試概述
5.1.1軟件測試的目的
軟件測試是軟件開發(fā)過程中的一個重要組成部分,其目的就是對軟件產(chǎn)品(包括階段性成果)進行驗證和確認的活動過程,盡快盡早地發(fā)現(xiàn)在軟件產(chǎn)品中所存在的各種問題。
軟件測試是由“驗證(verification)”和“有效性確認(validation)”活動構(gòu)成的整體:
??? ?“驗證”是檢驗軟件是否已正確地實現(xiàn)了產(chǎn)品規(guī)格書所定義的系統(tǒng)功能和特性。驗證過程提供證據(jù)表明軟件相關(guān)產(chǎn)品與所有生命周期活動的要求(如正確性、完整性、一致性、準確性等)相一致。相當于以軟件產(chǎn)品設(shè)計規(guī)格說明書為標準進行軟件測試的活動。
??? ?“有效性確認”是確認所開發(fā)的軟件是否滿足用戶真正需求的活動。一切從客戶出發(fā),理解客戶的需求,對軟件需求定義、設(shè)計的懷疑,發(fā)現(xiàn)需求定義和產(chǎn)品設(shè)計中的問題。這主要通過各種軟件評審活動來實現(xiàn),包括讓客戶參加評審、測試活動。
5.1.2軟件測試的任務(wù)
1.?? ?尋找Bug;
2.?? ?避免軟件開發(fā)過程中的缺陷;
3.?? ?衡量軟件的品質(zhì);
4.?? ?關(guān)注用戶的需求。
總的目標是:確保軟件的質(zhì)量。
5.1.3測試環(huán)境
測試環(huán)境是在windows版本的Tomcat7.0下進行的。

5.2 單元測試
單元測試是在編碼階段,針對每個程序單元而進行的測試,其測試的對象是程序系統(tǒng)中的最小單元——類、函數(shù)、模塊或組件等。單元測試主要使用白盒測試方法,從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,檢查程序模塊或組件已實現(xiàn)的功能與定義的功能是否一致,以及編碼中是否存在錯誤。白盒測試使用了junit工具,結(jié)合Spring的事務(wù)管理,可以在不對數(shù)據(jù)庫產(chǎn)生任何影響下,安全地進行白盒測試,并且測試時可以使用Spring的容器,省去了創(chuàng)建對象的操作。
以下為UserInfoDAOimpl.java的部分測試代碼。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/beans.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class UserInfoDAOimplTest {

?? ?@Autowired
?? ?private UserInfoDAO userInfoDAO;

?? ?@Test
?? ?public void saveUserInfoTest() {
?? ??? ?UserInfo userInfo = new UserInfo();
?? ??? ?userInfo.setUserName("kevin");
?? ??? ?userInfo.setPasswd("123");
?? ??? ?userInfo.setNickName("歐文");
?? ??? ?userInfo.setQuestion("你是誰");
?? ??? ?userInfo.setAnswer("我是我");
?? ??? ?userInfoDAO.saveUserInfo(userInfo);
?? ?}

?? ?@Test
?? ?public void findUserInfoByIdTest() {
?? ??? ?UserInfo userInfo = userInfoDAO.findUserInfoById(1);
?? ??? ?System.out.println(userInfo.getNickName());
?? ?}
}

以下為BoardDAOimplTest.java的部分測試代碼。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/beans.xml" })
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class BoardDAOimplTest {
?? ?
?? ?@Autowired
?? ?private BoardDAO boardDAO;

?? ?@Test
?? ?public void testSaveBoard() {
?? ??? ?Board board = new Board();
?? ??? ?boardDAO.saveBoard(board);
?? ?}

?? ?@Test
?? ?public void testGetBoardByID() {
?? ??? ?Board board = boardDAO.getBoardByID(1);
?? ??? ?System.out.println(board.getBoardName());
?? ??? ?System.out.println("boardTag="+board.getBoardTag().getTagName());
?? ?}

?? ?@Test
?? ?public void testFindBoardsAll() {
?? ??? ?List<Board> list = boardDAO.findBoardsAll();
?? ??? ?Iterator<Board> boards = list.iterator();
?? ??? ?while(boards.hasNext()){
?? ??? ??? ?System.out.println(boards.next().getBoardName());
?? ??? ?}
?? ?}

5.3 集成測試
集成測試,也稱組裝測試、聯(lián)合測試、子系統(tǒng)測試,在單元測試的基礎(chǔ)上,按照設(shè)計要求不斷進行集成而進行的相應(yīng)測試,目的是發(fā)現(xiàn)單元之間的接口問題,如接口參數(shù)類型不匹配、接口數(shù)據(jù)在傳輸中丟失、數(shù)據(jù)誤差不斷積累等問題。
選擇什么樣的方式把單元組裝起來形成一個可運行的系統(tǒng),直接影響到測試成本,測試計劃、測試用例的設(shè)計、測試工具的選擇等。本論壇采用漸增式集成。首先對某兩、三個單元進行測試,然后將這些單元逐步組裝成較大的系統(tǒng)。在組裝的過程中,一邊連接一邊測試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題,最后完成所有單元的集成,構(gòu)造為一個完整的論壇。
5.4 功能測試
功能測試應(yīng)該在集成測試完成之后進行,而且是針對應(yīng)用系統(tǒng)進行測試。功能測試是基于產(chǎn)品功能說明書、用戶角度來對各項功能進行驗證,以確認每個功能是否都能正常使用。在測試時,不考慮程序內(nèi)部結(jié)構(gòu)和實現(xiàn)方式,只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。功能測試包括用戶界面、各種操作、不同的數(shù)據(jù)輸入輸出和存儲等的測試。

表5.1登陸測試用例
測試用例描述?? ?操作過程及數(shù)據(jù)?? ?預(yù)期結(jié)果
按不同的輸入格式輸入個人信息,進行注冊。?? ?進入注冊界面,按提示的輸入格式輸入個人信息,進行注冊。?? ?注冊成功,顯示注冊成功。居民信息保存到數(shù)據(jù)庫。
用戶名有重名的?? ?進入注冊界面,用戶名輸入,其它按提示的輸入格式輸入個人信息,進行注冊。?? ?注冊失敗,不能注冊。
郵箱按郵箱有效地址輸入,其它按規(guī)定輸入,進行注冊。?? ?進入注冊界面,輸入例如:abcd.com其它按提示的輸入格式輸入個人信息,進行注冊。?? ?注冊失敗,不能注冊。
輸入為空時,進行注冊。?? ?進入注冊界面,輸入為空,進行注冊。?? ?無法注冊

表5.2發(fā)貼測試用例
測試用例描述?? ?操作過程及數(shù)據(jù)?? ?預(yù)期結(jié)果
按要求輸入帖子的相關(guān)信息?? ?進入發(fā)貼界面,輸入帖子內(nèi)容,標題,內(nèi)容,再提交。?? ?發(fā)貼成功,跳轉(zhuǎn)到帖子界面。
沒輸入標題?? ?進入發(fā)貼界面,沒輸入標題,再提交?? ?發(fā)貼失敗。
輸入為空?? ?進入發(fā)貼界面,輸入為空,再提交。?? ?無法發(fā)貼。


?
第 6 章 總結(jié)
經(jīng)過努力,已經(jīng)基本完成了BBS系統(tǒng)的開發(fā)和設(shè)計。完成了用戶模塊、帖子模塊和后臺管理模塊的開發(fā),并基本實現(xiàn)了前期所制定的功能。
BBS系統(tǒng)在不斷的設(shè)計更改過程中,逐漸的成熟。在編碼階段,參考了一些設(shè)計模式,在業(yè)務(wù)邏輯代碼和數(shù)據(jù)庫連接DAO中抽象出了若干接口,并對其進行了對象的依賴注入,大大的減少了模塊之間的耦合,使系統(tǒng)具有很高的靈活性和可維護性,這是BBS系統(tǒng)最大的優(yōu)點。
系統(tǒng)的另一個優(yōu)點就是JQuery和AJAX異步傳輸技術(shù)的結(jié)合使用,既減輕了服務(wù)器的負擔,也加快了用戶的訪問效率。
當然BBS系統(tǒng)也存在很多不足的地方,比如用戶的權(quán)限判斷過于簡單,安全性低,希望在今后的學(xué)習(xí)中,逐步的進行改進。
通過這次的設(shè)計,加深了對S.S.H框架,以及AJAX的一些理解。對于軟件工程方面的設(shè)計思想也有了更深一步的理解,只有在不斷的實踐于學(xué)習(xí)中,才會得到最豐厚的回報。

?
參考文獻
[1]馬賽斯扎克.實用軟件工程[M].北京:機械工業(yè)出版社,2007,391-420.
[2]劉易斯.數(shù)據(jù)庫與事務(wù)處理[M].北京:機械工業(yè)出版社,2005,10-35.
[3]Dave Crane.Ajax in Action[M].北京:人民郵電出版社,2006,289-338.
[4]孫衛(wèi)琴.精通struts[M].北京:電子工業(yè)出版社,2004,50-70.
[5]孫衛(wèi)琴.精通hibernate[M].北京:電子工業(yè)出版社,2005,100-120.
[6]林信良.spring2.0技術(shù)手冊[M].北京:電子工業(yè)出版社,2006,50-100.
[7]佚名.MySQL數(shù)據(jù)庫下的JSP分頁查詢模塊源碼[EB/OL].http://developer.51cto.com/art/200907/132916.htm.
[8](美)MartyHall.Servlet與JSP核心編程[M].北京:清華大學(xué)出版社,2009,54-56.
[9]馮燕奎,趙德奎.JSP實用案例教程[M].北京:清華大學(xué)出版社,2004,70-100.
[10](美)Jim Arlow.UML2.0 and the Unified Process[M].北京:機械工業(yè)出版社,2006,30-40.
[11]徐建波,周新蓮.Web設(shè)計原理于編程技術(shù)[M].北京:中南大學(xué)出版社,2005,185-193.
[12]孫鑫編.Java Web開發(fā)詳解[M].北京:電子工業(yè)出版社,2006,189-274.
[13]林上杰,林康司.JSP2.0技術(shù)手冊[M].北京:電子工業(yè)出版社,2004,3-6.
[14]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論(第三版)[M].北京:高等教育出版社,1998.
[15]蔡劍,景楠.Java Web應(yīng)用開發(fā):J2EE和Tomcat[M].北京:清華大學(xué)出版社,2004.
[16]朱少民.軟件測試方法和技術(shù)[M].北京:清華大學(xué)出版社,2010.

?

總結(jié)

以上是生活随笔為你收集整理的基于java的论坛管理系统设计(含源文件)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久久久久久久不卡 | 亚洲 成人 欧美 | 国产91精品一区二区麻豆亚洲 | 亚洲天天干 | 天天天在线综合网 | 超碰97成人 | 美女黄频在线观看 | 在线观看aa| 精品爱爱 | 丁香亚洲| 国产高清免费av | 成人啪啪18免费游戏链接 | av在线a| 黄在线 | 色在线免费 | 91入口在线观看 | 欧美网址在线观看 | 中文字幕色婷婷在线视频 | 日韩美女黄色片 | 狠狠躁18三区二区一区ai明星 | 国产美女免费视频 | 欧美黄在线 | 国产一区二区三区在线免费观看 | 亚洲伊人网在线观看 | 国产一区二区三区四区在线 | 在线高清一区 | 成年人免费电影在线观看 | 欧美a√在线 | 精品久久久久一区二区国产 | 精品一二三四在线 | 亚洲精品国产免费 | 91在线免费观看网站 | 中文字幕在线观看亚洲 | 欧美成人中文字幕 | 亚洲蜜桃av| 亚洲精品视频在线观看网站 | 欧美韩国日本在线观看 | 久久久久久97三级 | 国产自在线 | 精品国产乱码 | 日本公妇在线观看高清 | 激情视频二区 | 在线看毛片网站 | 日本乱视频 | 国产一级视屏 | 天天摸夜夜添 | 福利一区二区三区四区 | 久久天天躁狠狠躁亚洲综合公司 | 亚洲视频免费在线观看 | 亚洲精品国产精品国自产观看浪潮 | 久久高清免费视频 | 日韩在线中文字幕 | 天天操天天爱天天干 | 久久精品首页 | 欧美日韩一区二区三区在线免费观看 | 精品久久1| 2017狠狠干| 少妇性bbb搡bbb爽爽爽欧美 | 欧美色精品天天在线观看视频 | 国产不卡在线看 | 亚洲第一av在线播放 | 97视频久久久 | 国产一区二区在线观看视频 | 成人精品视频 | 久久丁香网| 日本一区二区三区免费看 | 欧美日本在线观看视频 | 亚洲人成免费网站 | 亚洲区精品 | 免费在线成人av电影 | 四虎www | 99精品色| av福利电影 | 久久午夜色播影院免费高清 | 97品白浆高清久久久久久 | 99这里有精品 | 精品一区二区av | 国产视频在线观看免费 | 亚洲综合视频在线播放 | 在线免费观看麻豆视频 | a极黄色片| 精品国产一区二区三区免费 | 在线视频区 | 中文字幕日韩国产 | 丁香六月在线观看 | 日本丰满少妇免费一区 | 日韩r级电影在线观看 | www.com久久久 | 免费v片| 狠狠狠狠狠狠狠狠干 | 久久久国产在线视频 | 国内揄拍国产精品 | 91视频在线自拍 | 在线观看不卡视频 | 精品国产123| 国产亚洲精品久久久久秋 | 香蕉视频18 | 国产精品久久影院 | 丁香花中文字幕 | 美女视频免费一区二区 | 有码中文在线 | 欧美精品在线视频 | 亚洲国产手机在线 | www免费| 久久久精品免费看 | 久久精品99国产 | 97色婷婷成人综合在线观看 | 一级精品视频在线观看宜春院 | 成人18视频| 国产无遮挡又黄又爽在线观看 | 天天操天天干天天玩 | 一区二区三区在线免费 | 看av免费 | 久久呀| 一级黄色大片在线观看 | 国产精品不卡av | 日日日视频 | 免费精品视频在线 | 在线观看小视频 | 久久影院精品 | 成人午夜电影在线 | 婷婷丁香av | 丁香六月婷婷开心婷婷网 | 黄色录像av | 亚洲国产午夜视频 | 精品久久久久久亚洲综合网站 | 又黄又刺激 | 在线看片一区 | 91精品国自产在线观看欧美 | 91视频链接 | 免费看片网址 | 久久久久久久精 | 99中文字幕视频 | 亚洲精品男人的天堂 | 国产特级毛片aaaaaa高清 | 国产小视频你懂的在线 | 丁香久久五月 | 亚洲女欲精品久久久久久久18 | 日韩欧美99 | 精品一区二区免费在线观看 | 99久久精品国产一区二区成人 | 国产一区二区三区 在线 | 色天天| 韩国一区二区在线观看 | 久草观看视频 | 成人免费一级片 | 五月亚洲婷婷 | 成人在线免费视频观看 | 国产免费一区二区三区最新 | 五月天婷婷狠狠 | 91丨九色丨国产在线 | 欧美做受xxx| 91av在线视频播放 | 丁香在线观看完整电影视频 | 黄网站www| 久草久热 | 色网av| 日韩精品久久久久久中文字幕8 | 久久私人影院 | 国产福利一区二区三区在线观看 | 国产欧美在线一区 | 亚洲精品字幕在线观看 | 久热免费 | 亚一亚二国产专区 | 狠狠色噜噜狠狠狠狠2022 | 欧美视频在线观看免费网址 | 精品国产免费人成在线观看 | 在线观看视频黄色 | 久久午夜国产 | 日韩精品一区二区三区电影 | 精品一区二区久久久久久久网站 | 欧美日韩精品网站 | 在线播放 亚洲 | 一区二区三区日韩在线观看 | 网址你懂的在线观看 | 天堂网一区二区三区 | 91精品入口 | 99久久精品费精品 | 国产最新福利 | 九九在线国产视频 | 天天夜夜狠狠操 | 337p日本大胆噜噜噜噜 | 中文字幕在线视频精品 | 国产精品v欧美精品 | 91精品在线视频观看 | 久久国产网站 | 中文字幕成人 | 国产精品久久久久久久久久99 | 2024国产精品视频 | 久久久久国产精品视频 | 中文乱码视频在线观看 | 五月天激情在线 | 久久久91精品国产一区二区精品 | 国产看片网站 | 国产中文| 丁香5月婷婷 | 精品国产1区2区3区 国产欧美精品在线观看 | 日韩免费在线网站 | 91mv.cool在线观看 | 国产最新视频在线观看 | 成人在线视频在线观看 | 精品国产三级 | 免费观看黄 | 久久久久免费精品视频 | 91九色蝌蚪视频在线 | 国产精品视频久久久 | 久精品视频在线 | 伊人五月天综合 | 在线观看黄色大片 | 99久久精品免费看国产免费软件 | 亚洲日本va午夜在线影院 | 国产成视频在线观看 | 久久视频免费 | 超碰在线最新 | 久久精品91久久久久久再现 | 日本中文字幕久久 | 久久免费视频网 | 黄色片网站大全 | 在线观看国产日韩 | 欧美精品成人在线 | 久久在线视频精品 | 久久全国免费视频 | 久久免费精彩视频 | 亚洲精选在线观看 | 欧美激情精品久久久久久变态 | 五月婷婷综合色拍 | 精品产品国产在线不卡 | 国产精华国产精品 | 欧美午夜一区二区福利视频 | 一级一片免费观看 | 天天插日日射 | 激情综合一区 | 超碰在线98 | 久久精品日本啪啪涩涩 | 欧美性春潮 | 最新av免费在线观看 | 国产精品成人久久久久 | 久草在线费播放视频 | 叶爱av在线 | 亚洲高清视频在线播放 | 天天爽夜夜爽人人爽曰av | 久久99国产精品久久 | 在线中文字母电影观看 | 激情久久久久久久久久久久久久久久 | 日韩精品视频在线免费观看 | 成人欧美一区二区三区黑人麻豆 | 日韩欧美精选 | 久久久精品综合 | 久久久久久毛片精品免费不卡 | 成人亚洲欧美 | 一区二区三区在线免费 | 亚洲最大成人免费网站 | 色播六月天| 国产96精品 | 中文字幕影视 | 国产99久久精品一区二区永久免费 | 中文字幕国语官网在线视频 | 91九色精品女同系列 | 日日干激情五月 | 人人爽人人做 | 亚洲国产精品成人精品 | 91精品视频在线免费观看 | 99av国产精品欲麻豆 | 天天干,天天射,天天操,天天摸 | 国产手机免费视频 | 国产人成一区二区三区影院 | 欧美成人在线免费观看 | 久久的色 | 激情喷水 | 福利视频一区二区 | 99精品视频中文字幕 | 91资源在线免费观看 | 免费观看国产成人 | 五月天av在线 | 2021国产视频 | 亚洲精品国产区 | 婷婷在线色 | 久久久久久久18 | 久草免费手机视频 | 亚洲v欧美v国产v在线观看 | 婷婷四房综合激情五月 | 亚洲欧美乱综合图片区小说区 | 久久精视频 | 日日夜夜添| 亚洲成年人av | 国产免费久久久久 | 国产婷婷vvvv激情久 | 最新av在线播放 | 中文字幕在线观看完整版 | 中文字幕视频网站 | 天天操夜夜爱 | 91香蕉视频色版 | 国产午夜精品一区二区三区 | 国产亚洲久一区二区 | 国产视频一区二区在线观看 | 久久精品视频在线免费观看 | 日韩有码在线观看视频 | 亚洲欧洲av在线 | 六月丁香激情网 | 91在线看视频| 亚洲在线视频网站 | 不卡av在线免费观看 | 成人国产网址 | 中文字幕制服丝袜av久久 | 99精品在线观看视频 | 成人精品亚洲 | 少妇高潮流白浆在线观看 | 中文日韩在线视频 | 午夜久久久久 | 久久久久久久久久久免费av | 久色免费视频 | 在线欧美最极品的av | 久久精品视频在线观看 | av成人资源| 久久黄色网页 | 亚洲视频中文 | 国产成人免费在线 | 波多野结衣电影一区 | 四虎影院在线观看av | 中文字幕一区二区三区在线观看 | 欧美另类网站 | 色综合久久久 | 伊人春色电影网 | 国产免费作爱视频 | 国产第一页在线观看 | 天天干天天操人体 | 久草线| 国产精品69久久久久 | 欧美日韩国产在线一区 | 999毛片 | 97精品超碰一区二区三区 | 九九精品视频在线观看 | 久久av免费观看 | 97成人精品 | 中文字幕在线人 | 亚洲日本在线视频观看 | av资源免费观看 | 日韩中文字幕第一页 | 99在线观看视频网站 | 91成熟丰满女人少妇 | 亚洲国产小视频在线观看 | 99精品国产视频 | 99精品久久只有精品 | 99精彩视频在线观看免费 | 精品久久一区二区三区 | 久久成人免费视频 | 爱情影院aqdy鲁丝片二区 | 国产黑丝袜在线 | 国产综合在线观看视频 | 区一区二区三在线观看 | 国内精品亚洲 | 亚洲欧洲日韩在线观看 | 97在线资源 | 婷婷色av| 草久视频在线观看 | 免费日韩一区二区三区 | 黄色免费网站大全 | 亚洲欧洲精品在线 | 中文字幕日韩高清 | 午夜精品久久久久99热app | 欧美日韩精品久久久 | 国产在线专区 | 亚洲一级片在线观看 | 夜又临在线观看 | 欧美a性 | 日韩欧美成 | 91传媒视频在线观看 | 综合久久一本 | 日韩免费在线观看网站 | 欧美性大战久久久久 | 在线观看国产日韩欧美 | 99久久久久国产精品免费 | 亚洲国产字幕 | 午夜 久久 tv| 日韩欧美视频免费在线观看 | 麻豆传媒一区二区 | 999成人国产 | 国产99自拍| 91福利视频免费 | 国内亚洲精品 | 欧美日韩免费在线观看视频 | 尤物九九久久国产精品的分类 | 91精品国产自产老师啪 | 91在线九色 | 日韩av中文字幕在线免费观看 | 国产亚洲婷婷免费 | 九九精品视频在线看 | 欧美成人理伦片 | 久久成| 日韩91av| 在线视频 国产 日韩 | 超黄视频网站 | 五月婷婷综合在线视频 | 一区二区精品国产 | 在线观看日本高清mv视频 | 久久精品黄 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 在线观看的av网站 | 欧美一级片在线免费观看 | 国产三级国产精品国产专区50 | 玖玖在线看| 在线观看免费国产小视频 | 91麻豆精品国产91久久久无限制版 | 亚洲天堂精品视频在线观看 | a级黄色片视频 | 中文字幕一区二区三区乱码在线 | 人人爽人人澡人人添人人人人 | 久久国产一二区 | 国产午夜一区二区 | 国产精品第52页 | 久久亚洲专区 | 国产一级视频在线观看 | 麻豆免费视频网站 | 99r精品视频在线观看 | 色欧美成人精品a∨在线观看 | 六月色丁香 | 99久久er热在这里只有精品15 | 一级片免费观看视频 | 蜜臀av性久久久久av蜜臀妖精 | 国产日韩欧美在线一区 | 正在播放久久 | 国产高清中文字幕 | 国产成人精品午夜在线播放 | 亚洲色图27p| 在线观看视频一区二区三区 | 精品国产一区二区三区久久 | 91在线视频免费观看 | 国产经典三级 | 久久不射电影院 | 在线播放日韩av | 成人在线播放免费观看 | 欧美日bb| 在线观看成年人 | 精品一区二区在线免费观看 | av无限看| 天天干夜夜夜操天 | 在线国产专区 | 成人国产综合 | 天天综合网久久 | 婷婷色在线观看 | 亚洲二区精品 | 婷婷五天天在线视频 | 五月天综合激情网 | 91精品国产福利在线观看 | 国产麻豆精品在线观看 | 国产一区二区三精品久久久无广告 | 91桃色国产在线播放 | 日韩中文字幕免费视频 | 91九色视频在线观看 | 日本精品视频免费 | 久久国产网站 | 成人国产精品一区二区 | 免费在线观看污网站 | 99久久er热在这里只有精品15 | 91成人免费电影 | 久久免费福利 | 99精品在线免费在线观看 | 国产伦精品一区二区三区照片91 | 伊人伊成久久人综合网站 | 99久久精品视频免费 | 91传媒免费在线观看 | 免费久久精品视频 | 精品视频99 | 男女全黄一级一级高潮免费看 | 五月开心六月伊人色婷婷 | 国内免费的中文字幕 | 欧美成人999| 奇米网444 | 国产在线999| 国产又黄又爽又猛视频日本 | 成年人免费在线观看网站 | 99亚洲国产 | 国产精品一区二区久久久久 | www.黄色 | 亚洲精品午夜一区人人爽 | 欧美一区二区三区在线 | 一本一本久久aa综合精品 | 中文字幕国产一区 | 日韩av一区二区三区四区 | 91字幕 | 色婷婷午夜 | 高清av免费看 | 午夜色影院 | 中文字幕国产视频 | 黄色影院在线免费观看 | 97视频免费播放 | 欧美日本在线视频 | 国产免费大片 | 国产一级在线看 | 亚洲va欧美va | 国产成人精品综合久久久久99 | 亚洲综合狠狠干 | 亚洲视频精品 | 99国产成+人+综合+亚洲 欧美 | 狠狠的日日 | av电影中文字幕 | 在线激情小视频 | 精品免费在线视频 | 麻豆91精品视频 | 欧美一级片在线播放 | 91精品国产一区 | 亚洲婷婷在线视频 | 九九热在线精品 | 日本精品xxxx | 狂野欧美激情性xxxx欧美 | 国产精品久久久 | 九九激情视频 | av在线网站免费观看 | 一区二区三区四区久久 | 精品 一区 在线 | 久久国产成人午夜av影院潦草 | 黄色h在线观看 | 日韩午夜精品福利 | 激情伊人五月天 | 午夜美女福利直播 | 最近中文字幕免费观看 | 97超碰在线资源 | 91九色视频在线 | 成人97视频一区二区 | 麻豆视频国产在线观看 | 成人一区二区三区在线 | 亚洲无线视频 | 成人午夜电影在线播放 | 成人久久网 | 在线视频欧美精品 | 中文字幕二区三区 | 亚洲国产精品成人va在线观看 | av看片网址 | 国产人成在线视频 | 99久久精品国产亚洲 | 精品欧美日韩 | 日本精品xxxx | 国产高清视频免费 | 久久国产精品99国产 | 美女视频黄色免费 | 在线观看日韩精品 | 午夜精品一区二区三区在线播放 | 欧美一区中文字幕 | 免费国产在线观看 | 国产手机在线精品 | www.天天操 | 日本精品在线看 | 狠狠的操你 | 久久久久久蜜桃一区二区 | 国产精品完整版 | 亚洲婷婷综合色高清在线 | 99久久毛片| 99在线热播精品免费99热 | 日日操夜夜操狠狠操 | 日日草天天草 | 欧美综合干 | 国产亚州精品视频 | 国产在线精品二区 | 中文字幕一区在线观看视频 | 91精品国自产拍天天拍 | 国产精品一区二区果冻传媒 | 91网页版在线观看 | 中文字幕一二 | 国产亚洲欧美精品久久久久久 | 久草观看| 国产一区欧美二区 | 国产精品手机在线观看 | 美女视频黄免费网站 | 亚州五月| 欧美日韩国产精品一区二区 | 在线观看日韩视频 | 亚洲美女在线一区 | 日韩在线视 | 国产精品不卡在线播放 | 久久精品99国产精品日本 | 国产99re | 亚洲伊人天堂 | 欧美日韩免费一区二区 | 欧美精品国产综合久久 | 国产伦精品一区二区三区四区视频 | www.亚洲视频.com | 久久久男人的天堂 | 91毛片在线 | 国产人成在线观看 | 午夜精品视频免费在线观看 | 亚洲精品在线观看不卡 | 日韩欧美视频一区二区 | 国产成人精品一区二区在线 | 欧美视频一区二 | 亚洲黄色影院 | 九九热免费在线视频 | 91精品视频免费 | 水蜜桃亚洲一二三四在线 | 日韩精品视频在线观看网址 | 97色在线视频 | 99精品一区二区三区 | 成人av av在线 | 久久国语露脸国产精品电影 | 97麻豆视频 | 天天插天天操天天干 | 亚洲 欧美 变态 国产 另类 | 欧美一级性生活 | 欧美粗又大 | 欧美大片www| 国产精品亚 | 欧美激情视频在线免费观看 | 一区二区在线电影 | 天天操一操 | 五月婷婷久草 | 精品一区二区在线免费观看 | 亚洲在线色 | 国产精品毛片一区二区 | 91精品在线免费观看视频 | 国产免费一区二区三区最新 | 国产99久久久国产精品免费二区 | 中文字幕免费播放 | 91在线精品一区二区 | 免费看十八岁美女 | 中文字幕久久精品亚洲乱码 | 色七七亚洲影院 | 97色在线观看免费视频 | 日韩一级电影在线观看 | 日韩精品一区二区三区丰满 | 东方av在线免费观看 | 国产 一区二区三区 在线 | 久久久精品午夜 | 亚洲视频免费在线观看 | av资源在线观看 | 97精品国产97久久久久久 | www.亚洲黄色 | 久久精品5 | 国产首页 | 国产涩图| 五月婷婷深开心 | 久久久网址 | www.夜夜操.com | 亚洲国产三级在线观看 | 国内久久精品视频 | 超碰97在线人人 | 久草精品电影 | 狠狠躁天天躁综合网 | 狠狠狠狠狠狠狠狠干 | av福利在线导航 | 亚洲精品国产高清 | 91成人免费观看视频 | 国产91影院 | 中文字幕亚洲五码 | 狠狠色丁香婷婷综合最新地址 | www天天干com | 亚洲另类久久 | 亚洲情婷婷 | 91亚洲精品国偷拍 | 久草在线免费看视频 | 日韩女同一区二区三区在线观看 | 日日久视频 | 国产资源| 黄色av一区 | 亚洲天天在线日亚洲洲精 | 久草电影在线 | 激情婷婷六月 | 一本一道久久a久久精品 | 欧美成年人在线视频 | 在线看一区 | 国产第一福利 | 黄色av免费看 | 久久久精品网站 | 人成在线免费视频 | 天天爱天天舔 | 五月天婷亚洲天综合网精品偷 | 99在线国产 | 日本在线视频网址 | 国产免费一区二区三区网站免费 | 精品国产成人av在线免 | 999久久久欧美日韩黑人 | 国产精品视频资源 | 一区二区精品在线 | 国语精品久久 | 97日日碰人人模人人澡分享吧 | www99久久 | 久久亚洲免费视频 | 日韩精品欧美精品 | 黄色免费观看 | 国产精品久久久久久久久久久免费看 | 久久久电影 | 国产高清成人av | 亚洲精品乱码久久久久久蜜桃欧美 | 天天射天天操天天干 | 精品一区二区免费 | 国产视频精品久久 | 丁香资源影视免费观看 | 91麻豆福利| 亚洲资源 | 久久伊人国产精品 | 久久国产精品一区二区三区四区 | 九九精品视频在线观看 | 久久激情五月激情 | 91女人18片女毛片60分钟 | 亚洲成人一区 | 国产精品麻豆91 | 97超碰网| 久久99亚洲精品久久久久 | 人人澡人人添人人爽一区二区 | 日日麻批40分钟视频免费观看 | 国产精品美女久久久久aⅴ 干干夜夜 | 亚洲成人在线免费 | 97视频网站 | 午夜国产一区二区三区四区 | 三级黄色网址 | 99re中文字幕 | 久草视频手机在线 | 国产黄色片在线免费观看 | 久久久久久久久久久影院 | 久久久久久久久久久久久久电影 | 国产午夜av | 91久草视频 | 亚洲尺码电影av久久 | 在线观看精品黄av片免费 | 成人黄色电影免费观看 | 天天射天天色天天干 | 亚洲三级精品 | 色婷av| 啪啪动态视频 | 美女黄频| 亚洲精品在线免费观看视频 | 国产精品96久久久久久吹潮 | 成人在线视 | 日本三级不卡视频 | 99色在线 | 国产69久久久欧美一级 | 久久黄色片 | 日韩,精品电影 | 国产一线二线三线性视频 | 9在线观看免费 | 精品久久久999 | www久久| a在线观看视频 | 天天干天天射天天插 | 99久久99热这里只有精品 | 国产99久久久精品视频 | 久久成人麻豆午夜电影 | 中文字幕一区二区三区四区视频 | 丁香婷婷久久 | 国产主播99| 国产成人在线播放 | 91国内在线 | 精品毛片一区二区免费看 | 亚洲视频资源在线 | av中文字幕在线免费观看 | 欧美日韩国产色综合一二三四 | 97精品一区 | 天天操操 | 狠狠夜夜 | 超碰97在线资源站 | 亚洲成av人影院 | 免费看黄的 | 欧美三级高清 | 免费观看91| 91视频麻豆视频 | 一区二区三区免费在线 | 欧美成人亚洲成人 | 免费看的av片 | 国产成人区 | 狠狠狠干 | 成年人视频在线 | 久爱精品在线 | 日本婷婷色| 日韩av快播电影网 | 天堂av观看 | 亚洲欧美国内爽妇网 | 911免费视频| 国产精品美女久久久久久2018 | 91在线视频观看 | 国内精品小视频 | 日韩午夜电影网 | 日韩经典一区二区三区 | 精品久久久999 | 久草电影在线观看 | 亚洲人久久 | 在线黄频 | 青青草视频精品 | 免费高清在线观看成人 | 日韩影视大全 | 婷婷久久网 | 婷婷天天色| 天天干天天射天天爽 | 国产成人精品久久亚洲高清不卡 | 黄色一级在线视频 | 欧美最新另类人妖 | 97在线精品 | 久久久久免费精品视频 | 国产区在线视频 | 成人在线观看网址 | 91精品久久久久久久91蜜桃 | 国产精品mv在线观看 | 国产精品国产三级国产aⅴ9色 | 中文在线免费视频 | 99爱精品在线| 欧美成人91| 亚洲视频在线观看免费 | 美女精品网站 | 九九热精品视频在线观看 | 日韩sese | 中文字幕视频免费观看 | 国产 视频 久久 | 色吧久久 | 国产色拍拍拍拍在线精品 | 成人91在线观看 | 永久免费观看视频 | 国产男女免费完整视频 | 国产玖玖在线 | 天天操狠狠操网站 | 丁香六月婷婷激情 | 亚洲色视频 | 亚洲精品欧洲精品 | 亚洲片在线资源 | 日韩xxxbbb| 97视频免费在线看 | 国产亚洲精品美女 | 麻豆传媒在线免费看 | 偷拍福利视频一区二区三区 | 五月天狠狠操 | 一二区av| 婷婷视频在线观看 | 日韩网站在线观看 | 国产日韩中文在线 | 精品久久久久_ | 日本久久久久久久久久 | 成人av免费在线播放 | 2019精品手机国产品在线 | 久久久久久久国产精品 | 国产一级视频 | 97国产在线观看 | 特级毛片aaa | 亚洲乱码久久久 | 91精品国产电影 | 久久精品视频免费观看 | 精品国产一区二区三区久久久蜜臀 | 97色国产| 在线a人片免费观看视频 | 激情视频免费观看 | 五月天婷婷免费视频 | 天天综合视频在线观看 | 99麻豆视频 | 亚洲成人动漫在线观看 | 国产在线高清 | 欧美精品视 | 欧美成年人在线视频 | 日本丰满少妇免费一区 | 国产成人av在线 | 888av| 久久久久国产a免费观看rela | 国产福利小视频在线 | 日韩欧美xx | av日韩国产| 亚洲尺码电影av久久 | 国产精品久久久久久久久久久久午夜 | 久久久精品日本 | 亚洲黄色片在线 | 五月婷网站 | 国产欧美精品一区二区三区四区 | 国产原创在线观看 | 国产精品永久 | 91c网站色版视频 | 91精品综合在线观看 | 日韩久久电影 | 最近中文字幕完整视频高清1 | 国产精品一区二区视频 | 97色综合| 国产一区私人高清影院 | 日韩av电影手机在线观看 | 中文免费 | 国产伦精品一区二区三区… | 黄色网大全 | av夜夜操 | 欧美日韩视频精品 | 黄色日批网站 | 色综合天天综合在线视频 | 黄色一级性片 | 国产色在线 | 久久精品久久久久久久 | 久久a级片 | 国产69精品久久久久99尤 | 国产久草在线 | 黄a在线观看| 婷婷在线播放 | 91私密保健 | 在线免费黄色毛片 | 日韩欧美91| 亚洲黄色成人网 | 91爱在线| 四虎在线免费观看视频 | 久久久精品免费观看 | 婷香五月 | 99这里只有 | 久久精品中文字幕免费mv | 婷婷六月色 | 久久狠狠亚洲综合 | 91在线免费观看国产 | 日韩中文字幕亚洲一区二区va在线 | 五月婷婷中文 | 国产综合精品一区二区三区 | 成人a级大片 | 久草视频在线免费播放 | av在线免费播放网站 | 午夜视频一区二区 | 久久成 | 四虎免费av| 在线天堂中文在线资源网 | 国产乱码精品一区二区蜜臀 | 9在线观看免费高清完整版在线观看明 | 欧美激情视频一区二区三区免费 | 人人爱夜夜操 | 国产极品尤物在线 | 6699私人影院 | 久久久黄色| 久久99国产精品久久99 | 国产精品99久久免费观看 | 在线观看色网 | 狠狠色综合欧美激情 | 国产不卡片 | www.天天成人国产电影 | 亚洲做受高潮欧美裸体 | 我要看黄色一级片 | 日韩视频免费在线 | 国产精品资源 | 久久久激情视频 | 女人18精品一区二区三区 | 狠狠干网 | 99久久99久久精品国产片 | 网站免费黄色 | 国产只有精品 | 欧美激情精品久久久 | 大胆欧美gogo免费视频一二区 | 97超碰人人澡人人 | 中文字幕免费看 | 久久久91精品国产一区二区三区 | 欧美电影黄色 | 激情网五月婷婷 | 日日操天天操夜夜操 | 91福利试看| 91精品欧美一区二区三区 | 西西大胆免费视频 | 在线看国产日韩 | 成人网在线免费视频 | 91久久国产自产拍夜夜嗨 | 成人免费色 | 视频国产一区二区三区 | 亚洲黄色免费网站 | 亚洲一级影院 | 久久这里只有精品视频99 | 色婷婷www | 97超碰人人模人人人爽人人爱 | 午夜影视剧场 | 97超碰在 | 国产精品久久久久久久久久久杏吧 | 在线看福利av | 日日夜夜婷婷 | 人人看人人爱 | 97视频在线观看成人 | 成人网看片 | 91综合视频在线观看 | 久久综合亚洲鲁鲁五月久久 | 欧美国产精品久久久久久免费 | 99亚洲国产 | 夜夜躁日日躁狠狠躁 | 国产麻豆精品久久一二三 | 久久久久久久久久影视 | 伊人成人激情 | 久久免费视频这里只有精品 | 人人澡人人爽 | 亚洲成人精品国产 | 人人艹人人| 日韩欧美xxx | 狠狠色丁香婷婷综合橹88 | 国产精品一区二区三区在线播放 | www.婷婷com | 欧美一区二区三区在线视频观看 | 亚洲精品国精品久久99热一 | 5月丁香婷婷综合 | 中文字幕精品久久 | 精品欧美一区二区精品久久 | 欧美日韩国产一二三区 | 婷婷 中文字幕 | 国产电影一区二区三区四区 | 99热在线观看免费 | 中文字幕在线观看播放 | 久久久久久综合网天天 | 精品亚洲免a| 97在线精品视频 | 国产精品18毛片一区二区 | 国产精品久久久久久久久免费 | 日本高清久久久 | 欧美 日韩 国产 中文字幕 | 日韩av综合网站 | 91麻豆精品国产91久久久久 | 久久久伦理 | 天天操夜夜操夜夜操 | 亚洲在线视频网站 | 在线视频一区观看 | a视频在线观看 | 黄色www免费 | 成年人视频免费在线播放 | 日韩精品一区二区三区视频播放 |