【正文】
錄 第 1 章 緒論 ................................................. 1 .................................................... 1 .................................................. 1 項目的作用 .................................................. 2 第 2 章 可行性分析 ............................................ 4 ............................................ 4 ................................................ 4 第 3 章 需 求分析 ............................................. 6 ............................................ 6 .......................................... 7 第 4 章 項目系統(tǒng)設(shè)計 .......................................... 7 ................................................ 7 ................................................ 7 .................................................... 9 MVC 設(shè)計模式 ............................................... 11 .......................................... 9 ............................................. 14 第 5 章 測試 ................................................ 27 ................................................... 27 ....................................................... 30 1 基于 Struts2 和 Hibernate 框架的 BBS 論壇系統(tǒng) 摘要: 如今互聯(lián)網(wǎng)迅猛發(fā)展, BBS 論壇的使用極為普遍,很多 BBS 論壇都使用了 PHP 語言制作,很少有使用 JAVA 語言編寫的大眾論壇,為了體現(xiàn) JAVA 的跨平臺性和簡單可上手,我也自己編寫了一個簡單的 BBS 論壇系統(tǒng),使用的語言環(huán)境為 JAVA,運用 3 層架構(gòu),展現(xiàn)層運用 JSP +html+css 表現(xiàn),邏輯層運用 Struts2 調(diào)度,數(shù)據(jù)持久化層用 Hibernate 實現(xiàn),數(shù)據(jù)庫使用了免費而性能優(yōu)越的 MySql,編寫工具為同樣免費的 ,做完之后能夠完成基本的論壇功能。 2 在計算機技術(shù)飛速發(fā)展的今天,沒有哪一門技術(shù)是一成不變的,很多技術(shù)都是在隨之時間的推移變得越來越完善,功能越來越強大 。 B/S結(jié)構(gòu)的優(yōu)點 有很多: 要制作 BBS論壇很明顯使用 B/S結(jié)構(gòu),所以我們的論壇就要使用 B/S結(jié)構(gòu)。 Struts由 一組相互協(xié)作的類(組件)、 Serlvet以及 jsp tag lib組成。 瀏覽器視圖 JS P控制器 A ct i o n S e r v l e tW E B 服務(wù)器S t r u t s . co n f i g . x m lA ct i o n 模型層 圖 1 Struts2 工作原理圖 ( 3) Hibernate Hibernate是連接 Java應(yīng)用程序和關(guān)系數(shù)據(jù)庫的中間件,它封裝了 JDBC,實現(xiàn)了 Java對象的持久化;封裝了所有數(shù)據(jù)訪問細節(jié),使業(yè)務(wù)邏輯層專注于業(yè)務(wù)邏輯。 第 3章 需求分析 論壇系統(tǒng)分為前臺和后臺,前臺的使用者為游客和注冊的一般用戶,其主要的功能是瀏覽主題,瀏覽詳細內(nèi)容,發(fā)表帖子,回復(fù)帖子,管理自己發(fā)表的內(nèi)容等等。當(dāng)用戶要進入系統(tǒng)是必須先輸入用戶名和密碼,按 “ 確 定” 按鈕后,系統(tǒng)辨別用戶身份,對合法用戶根據(jù)用戶的權(quán)限級別賦予相應(yīng)的使用功能 論壇的頁面的調(diào)度具體是使用 Struts2這個框架來編碼完成的,具體的跳轉(zhuǎn)關(guān)系如下圖表示: ( 1) 游客頁面的跳轉(zhuǎn) 主要重點是游客 可以有觀看瀏覽帖子的權(quán)限,卻沒有發(fā)表信息的權(quán)限,所以當(dāng)游客想要發(fā)表新帖時,6 頁面就會跳轉(zhuǎn)到登陸界面,當(dāng)然游客也可以直接點擊主頁面上的注冊鏈接直接進入注冊頁面進行注冊工作 游客L o g i n . h t m l B B S _ i n d e x . j spR e g i st . h t m l主題B B S _ d e t a i l . j sp發(fā)表回復(fù)發(fā)表新帖 圖 3 游客頁面跳轉(zhuǎn)示意圖 ( 2) 注冊用戶頁面的跳轉(zhuǎn) 注冊用戶頁面的跳轉(zhuǎn)比起游客來主要是可以發(fā)表帖子的頁面和刪除修改功能的添加 l o g i n . h t m l是否成功發(fā)表新帖 主題N e w T o p i c. j sp B B S _ d e t a i l . j spB B S _ i n d e x . j sp 回復(fù) 返回r e T o p i c . j sp B B S _ i n d e x . j spB B S _ i n d e x . j spf a i l e . j sp重新登陸用戶登陸B(tài) B S _ i n d e x . j spye sno 圖 4 注冊用戶頁面跳轉(zhuǎn)示意圖 3管理員頁面跳轉(zhuǎn) 管理員的頁面是在后臺執(zhí)行的,用 CSS編 寫的動態(tài)框架設(shè)計,在后臺可以直接進行帖子的瀏覽,用戶信息的管理和帖子的各種管理功能 7 L o g i n . h t m l發(fā)表新帖 主題刪除管理用戶u se r i n f o . j sp刪除用戶 增加用戶A d m i n / i n d e x . j sp是否成功f a i l e . j sp重新登陸管理員登陸查找用戶按照標(biāo)題查找A r t i c l e . j s p按照 id 查找 按照作者查找r e T o p i c . j spye sno 圖 5 管理員頁面跳轉(zhuǎn)示意圖 1對于游客來說 圖 6 游客功能示意圖 2對于注冊用戶 游客 瀏覽主帖子 瀏覽詳細內(nèi)容 注冊 8 圖 7 注冊用戶功能示意圖 3對于管理員 圖 8 管理員功能示意圖 注冊用戶 登錄功能 瀏覽主帖功能 瀏覽詳細內(nèi)容功能 發(fā)表新主題帖 發(fā)表回復(fù)功能 登出功能 刪除自己回復(fù) 修改自己回復(fù) 刪除自己主帖 修改自己主帖 管理員 管理用戶 管理帖子 用戶信息瀏覽 添加用戶 刪除用戶 修改用戶 瀏覽帖子 查找帖子 按照 id 查找帖子 按照標(biāo)題查找 按照作者查找 刪除帖子 發(fā)表新帖 發(fā)表回復(fù) 登錄功能 登出功能 9 MVC設(shè)計模式 MVC是 ModelViewController的簡稱,它是一種設(shè)計模式,它把應(yīng)用程序分成三個核心模塊:模型、視圖、控制器,它們各自處理自己的任務(wù)。 本項目是通過 Struts2來負(fù)責(zé)調(diào)度各個資源的分配,然后通過 Hibernate來持久化到數(shù)據(jù)庫或者是查詢修改數(shù)據(jù)庫 的設(shè)計與創(chuàng)建 我們 使用的是 MySQL,這是一種很好性能很強大的免費數(shù)據(jù)庫。具體配置如下 ?xml version=39。并且在 id的 get方法前加上標(biāo)簽Id和 GeneratedValue以便于 Hibernate調(diào)用他自動生成自增長的主鍵。 (MANAGER, user)。如果是注冊用戶也在 session中保存信息,并且也返回一條用戶登錄成功的信息 login_user_success;如果是未注冊過的用戶那么也會返回登錄失敗信息“ login_false” 然后通過Struts2的配置文件 。 int sumRecords = ()。()。然后在 通過 遍歷 %if(rootarticles!=null) { for(Article a : rootarticles) { % 來取得每條帖子的內(nèi)容將他們展示在 trtd之中就能完美的解決分頁的問題。 for(Article a:(ListArticle)()) { (a)。 ()。得到了裝滿回復(fù)帖對象的容器的話下面就好辦了 % UserDao ud = new UserDaoImpl()。 int recordOfPage = 6。 homepage = (Integer)(HOMEPAGE)。 flag = false。 ()。} if (3){ alert(用戶密碼不能于三位 )。 flag = false。 (1)。 ().mit()。 ( 7)刪除帖子的功能 刪除功能也是一個比較重要的功能,由于有子帖的存在,所以也需要遞歸刪除,試想一下,如果我們刪除了一個主題帖,但是卻沒有刪除他的回復(fù)這種情況是不是很怪異,所以我們在刪除帖子的時候一定要注意刪除他的子帖。 if((()).size()=1) { (1)。 ()。} ()。 ( 11)管理員管理帖子的功能 管理員瀏覽帖子的功能和一般用戶和游客是一樣的,也能正常的發(fā)表新帖和回復(fù),主要就是對帖子的23 查詢功能,如圖 圖 16 查找界面 圖 16 查找 界面 可以通過帖子的作者,也可以通過 id 和標(biāo)題來查找帖子,這位管理員管理帖子起到了很大的幫助,當(dāng)輸入相應(yīng)的信息后按提交就能得到想要的帖子頁面: form action=ArticleAction!Found?page=0 method=post 請輸入用戶名: input type=text name= /br input type=submit value=提交 當(dāng)提交后會調(diào)用 ArticleAction類的 Found方法并且把 page當(dāng)做參數(shù)傳進去 public String Found() { HttpServletRequest request = ()。 sumRecords = ()。 (SUMRECORDS, sumRecords)。 將跳轉(zhuǎn)到 3測試用戶發(fā)帖功能 登錄頁面后點擊發(fā)表新帖按鈕隨便發(fā)布一些信息看主頁面是否有更新,回復(fù)后是否有回 復(fù)的信息 26 圖 19 用戶登錄成功頁面 圖 20 發(fā)布新帖界面測試 圖 21 發(fā)帖測試結(jié)果 3測試管理員登陸 27 打開登陸頁面輸入用戶名和密碼為 admin, admin點擊確定。當(dāng)然BBS 論壇的發(fā)展是很快的,很多新的功能會不斷的添加進去,但最主要的交流的功能始終是不會變的,因為只有這個才是論壇的核心功能