freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-基于struts2和hibernate框架的bbs論壇系統(tǒng)(參考版)

2024-12-07 19:15本頁面
  

【正文】 30 Struts2 and Hibernate framework based on the BBS system ABSTRACT Now the Inter rapid development, the use of BBS is very popular, many BBS used PHP language production, there is little use JAVA language preparation mass BBS, to reflect JAVA crossplatformability and simple can begin, I also himself wrote a simple BBS system, use language environment for JAVA, use 3 layer structure, show layer using JSP + HTML + CSS performance, logic layer using Struts2 scheduling, data persistent layer, the database with Hibernate realize the free use and the superior performance of 31 MySql, pile tools for the same , after finishing free to plete basic BBS functions. Key words: JAVA,Struts2, Hibernate, ckeditor,MySql 。 本次畢業(yè)設(shè)計是我工作前的一個巨大的挑戰(zhàn),我能夠完成他不僅需要耐性,更需要老師的幫助和同學(xué)的幫助,在這里我要感謝我的導(dǎo)師和我的同學(xué)。這樣在以后的工作中若遇到了困難,也能夠有信心通過自己的努力來克服困難。 通過測試發(fā)現(xiàn),功能基本能夠得到實現(xiàn),能夠完成 BBS 所需要具備的基本 功能,本 BBS 論壇系統(tǒng)制作是成功的,是可以運行的是可以完成他的任務(wù)的。 這個系統(tǒng)雖然能完成基本的功能,但是還是有很多局限性,譬如畫面比較簡單,很多圖片都是來源于網(wǎng)絡(luò),所以風(fēng)格迥異,還有就是這個系統(tǒng)的功能比較簡單,并沒有時下那些大型論壇的很多細(xì)微但是卻比較實用的功能,譬如會員的等級增加功能, 帖子的精華貼置頂功能等等,這些都是需要修改的地方。 經(jīng)過以上各項的測試,證明本系統(tǒng)完全可以正常運行,至此測試成功! 圖 24 用戶注銷登錄測試 經(jīng)過這幾個月的努力,終于做出來了我自己的 BBS,這個 BBS是基于 Hibernate 和 Struts2 框架制作的論壇系統(tǒng),全部是用 JAVA語言編寫的, JAVA具有面向?qū)ο蟮奶匦裕诰帉懙倪^程中極大的簡化了編程的難度,通過調(diào)用 JAVA的 API 能實現(xiàn)很多復(fù)雜的功能 。 6測 試查詢功能是否成功 查詢功能:在管理員登錄成功之后,在相應(yīng)的文本框中輸入想要查找的用戶,點擊 “ 查詢 ” 按鈕,成功即可出現(xiàn)結(jié)果頁面,頁面內(nèi)顯示查詢出來的用戶,表示測試成功。跳轉(zhuǎn)到后臺說明成功了。 (如圖19用戶登錄成功頁面) 2測試其他用戶是否能夠登錄 打開 BBS論壇頁面,輸入任意密碼,點擊 “ 登錄 ” 按鈕。 第 5章 測試 圖 18 測設(shè)登錄頁面 1測試注冊用戶登陸是否成功 打開 BBS論壇登錄頁面 (如圖 18測試登錄頁面所示) ,在 “ 用戶名 ” 里填入 cl, “ 密碼 ” 框里填入cl作為用戶登錄密碼。}} 調(diào)用方法后通過判斷傳來的到底是作者還是 id還是標(biāo)題來進(jìn)入各自的 if語句調(diào)用底層的 HSQL語句得到一個裝著想要得到的數(shù)據(jù)的 List然后通過 JSP頁面上的一個遍歷顯示出來。 return admin_indexPage。 25 } if(sumRecords0) { (ROOTARTICLES, rootarticles)。 } else if(null!=()) { rootarticles = (())。 if(a!=null) { (a)。 } else if(0!=()) { Article a = null。 if(null!=()) { rootarticles = (())。 } 24 圖 17 查找結(jié)果展示頁面 ListArticle rootarticles = new ArrayList()。 user = (User)(LOGINUSER)。 HttpSession session = ()。 % 通過這段代碼來得到注冊用戶的信息,然后遍歷到一張表格中去,這就能夠顯示用戶信息了,至于用戶的增刪改查的功能對應(yīng)到數(shù)據(jù)庫就是對用戶信息的增刪改查,具體的代碼可以參照帖 子的增刪改查,只是他對應(yīng)的是 User表中的信息,字段也都不同,但是具體的思路還是差不多的。i()。 lists = ()。 % ( 10)管理員的用戶管理模塊 管理員的作用是管理用戶信息,所以他必須要有權(quán)限查看用戶信息, 要涉及到用戶信息就要和數(shù)據(jù)庫中的 USER表打交道,查看數(shù)據(jù)庫中用戶信息如圖 圖 15查看用戶信息見面示意圖 圖 15 查看用戶信息見面示意圖 % UserDao userDao = new UserDaoImpl()。 ()。 ( 9)安全登出的功能 安全登出和登錄是一對的,當(dāng)?shù)卿浐髸?session中加入一個鍵值對結(jié)構(gòu)的信息來保存你登錄的身份,但是這個 session失效的時間一般是半小時,當(dāng)用戶想中途退出論壇是就必須要使用安全登出功能,來清22 除 session中的值防止別人繼續(xù)使用用戶的賬號進(jìn)行活動。 }} 這個方法巧妙的運用了遞歸的思想,將所有回復(fù)帖都遞歸的刪除,值得注意的一點是,當(dāng)他刪除完信息后會檢查一下他的父帖是否還有子帖,若沒有子帖了就將父帖的 isleaf設(shè)置為 1,這個很重要也很現(xiàn)實,譬如我們刪除了一條回復(fù)帖,而這條回復(fù)帖正好是主題帖的唯一一條回復(fù),那么主題帖必然會成為一個葉子節(jié)點。 return true。 ()。 (article)。 Session session = ()。 (fa)。 if(pid!=0) { Article fa = (pid)。 for(Article a :(ListArticle)list) { deleteArticleById(())。 Article article = (id)。刪除如下圖 圖 14刪除帖子示意圖 圖 14 刪除帖子示意圖 當(dāng)點擊某條要刪除的帖子是會彈出確認(rèn)窗口,當(dāng)確認(rèn)刪除后調(diào)用 ArticleAction類的 deleteArticle()方法,傳進(jìn)去帖子的 id通過 id再調(diào)用 ArticleDaoImpl類的 deleteArticleById(int id)方法實現(xiàn)刪除的功能 21 當(dāng)然這個方法的底層仍舊是對數(shù)據(jù)庫的操作。 而且回復(fù)帖必須要接收到一個參數(shù),那就是父帖的 id,只有知道了父帖的 id子帖才能設(shè)置自己的 pid這個字段,所以編寫 的時候要綁定在一起解決掉。} 依舊是使用 Hibernate的 HSQL語言將當(dāng)參數(shù)傳來的主題帖對象持久化化到數(shù)據(jù)庫中去。 if(primaryKey!=null) {return true。 ()。 Serializable primaryKey = (article)。 Session session = ()。 } else {return add_newtopic_false。 (new Date())。 %%=() % / 圖 13 ckeditor界面示意圖 通過提交按鈕將表單的信息提交到 ArticleAction這個類的 addNewTopic方法中去, public String addNewTopic() { (0)。} /script 19 這段 js的代碼寫在了注冊頁面里,當(dāng)要提交表單時,會調(diào)用這個 js代碼里的 checkreg方法,直接在客戶 端就能檢查用戶名,密碼,郵箱等等這些信息是否合法,當(dāng)只有檢查通過時,表單才會提交到數(shù)據(jù)庫,這樣大大減少了因為錯誤注冊而連接數(shù)據(jù)庫浪費的時間,這符合對性能的要求。 flag = false。} else{var regex = /^(([\\w]+)\.?)+(([\\w]+)\.?)+\.[azAZ]{2,4}$/。 ()。 flag = false。} if (!=){ alert(兩次輸入的密碼不一致 )。 ()。 flag = false。} if (==) {alert(請輸入密碼問題回答 )。 ()。 flag = false。} if (==) {alert(請輸入確認(rèn)密碼 )。 ()。 18 flag = false。} if (3 || 20) {alert(用戶名長度限制為 3 20 位 )。 ()。在注冊頁面里面加上一段 js的驗證代碼這樣就能完成表單的驗證了: script language=javascript function checkreg() { var flag = true。 通過雙目運算符用 getPage來計算出各個頁面所要取得的對應(yīng)數(shù)據(jù)庫中的信息,能夠充分的達(dá)到功能。 % getPage這個 int類型的變量在這個頁面中有著舉足輕重的作用,他是用來在各個頁面間轉(zhuǎn)換的關(guān)鍵變量,當(dāng)前如果在第一頁的話,若選擇第二頁就必須得到第二頁的內(nèi)容,點擊第三也當(dāng)然必須得到第三頁的內(nèi)容,這個 getPage就是完成這個功能的 int totalPage = maxRecord%recordOfPage==0?maxRecord/recordOfPage:maxRecord/recordOfPage+1。 int homepage = 0。 User user =(User)(LOGINUSER)。 (getPagetotalPage1?recordOfPage:maxRecordgetPage*recordOfPage)。 int totalPage = maxRecord%recordOfPage==0?maxRecord/recordOfPage:maxRecord/recordOfPage+1。 17 int maxRecord =()。 int getPage = (Integer)(PAGEOFTREE)。 ArticleTree at = new ArticleTree()。 ArticleDao ad = new ArticleDaoImpl()。 } 他通過一個判斷語句 if判斷 所得到的帖子的 isleaf字段是否為 0,如果是 0說明他還有子帖,就遞歸調(diào)用自身這個方法,循環(huán)往復(fù),從而能把所有主題帖子的所有回復(fù),甚至是針對回復(fù)的回復(fù)都給查找出來并且都存放在一個 List里面這樣就能讓調(diào)用這個方法的主體能夠得到一個裝滿回復(fù)帖子的容器 List。 ()。 if(()==0) { tree(list,a)。 Query q = (from Article article where
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1