?
前言:
?
當今,隨著網(wǎng)絡的迅速發(fā)展,制作BBS論壇的技術(shù)和方法也越來越多。本文主要講述利用Java Web的相關(guān)技術(shù)來制作一個簡單論壇。通過實際制作,實現(xiàn)了BBS論壇系統(tǒng)應有的一些基本功能,如:登陸功能,通過在登陸界面輸入用戶名和密碼來實現(xiàn)會員的登錄,用戶只有登錄成功了才能進行一系列的操作;注冊功能,用戶首次登陸,需要先注冊,注冊時需要用戶填寫個人信息;找回密碼功能,當用戶忘記密碼時可以通過此功能找回密碼,找回密碼時需要用戶記得注冊時填寫的個人信息。除此之外,還有瀏覽帖子、發(fā)表帖子、回復貼子以及刪除帖子等等功能。制作本論壇所用的前臺軟件是MyEclipse,后臺數(shù)據(jù)庫是MySQL,運行時所用的服務器是Tomcat,綜合運用了HTML、JSP以及JavaScript語言。
?
全文先對用到的軟件進行了簡單的介紹,然后依次對系統(tǒng)的應用進行需求分析、總體設計、詳細設計;最后簡要介紹了系統(tǒng)的發(fā)布和測試。
?
?
?
?
?
?
?
?
?
注冊界面如下所示:
?
用戶成功登陸后,可以進行一些操作,如發(fā)表帖子、刪除自己發(fā)表的帖子等。
打開他人的帖子,點擊“我要回復”按鈕(如圖4-6所示)便可對該貼進行回復,如要想對其他回復此貼的人進行回復,可以點擊回復人后面的“回復XX樓”按鈕(如圖4-7)對其進行回復。
1、管理員查看或發(fā)表帖子
管理員查看或發(fā)表帖子與普通用戶的一樣。
1、 管理員刪除帖子
管理員刪除帖子與普通用戶的區(qū)別在于,他可以刪除任何人發(fā)表的貼子,另外他還有一項特權(quán),就是可以刪除任何人回復的垃圾帖子。
部分代碼:
1、翻頁功能的實現(xiàn)
在這里可以實現(xiàn)翻頁功能,根據(jù)你的實際需求進行選擇。
功能的實現(xiàn):首先確定每頁所能容納帖子的最大數(shù)目,在這里我設定MaxNum=10;然后連接數(shù)據(jù)庫查詢帖子的總數(shù),從而判斷總的頁數(shù),即lastPage,接著根據(jù)請求的頁碼pageNO判斷出該頁碼是否合法,若pageNO<1則改正為pageNO=1,若pageNO>lastPage,即所求的頁碼超出了最大頁數(shù),則改正pageNO=lastPage,然后確定要顯示的第一個帖子的標識碼firstNum和最后一個帖子的標識碼lastNum,最后連接數(shù)據(jù)庫將標識碼在firstNum和lastNum之間的帖子的信息查詢出來。
程序為:
<% int MaxNum = 10;//每頁容納的主題論文的最大數(shù)目 int count = 0, firstPage = 1, lastPage, firstNum, lastNum, prePage, nextPage, pageNO; //firstPage表示首頁,lastPage表示末頁,pageNO表示第幾頁, //firstNum表示該頁的起始貼的ID,lastNum表示該頁的末帖的ID, //prePage表示前一頁,nextPage表示后一頁 sql = "select * from discuss"; rs = stm.executeQuery(sql); while (rs.next()) count++; if (request.getParameter("pageNO") == null) pageNO = 0; else pageNO = Integer.parseInt(request.getParameter("pageNO")); lastPage = (int) Math.ceil((double) count / MaxNum); if (pageNO == 0) pageNO = 1; if (pageNO > lastPage) pageNO = lastPage; firstNum = (pageNO - 1) * MaxNum + 1; lastNum = pageNO * MaxNum; if (pageNO == 1) prePage = 1; else prePage = pageNO - 1; if (pageNO == lastPage) nextPage = pageNO; else nextPage = pageNO + 1; sql = "select * from discuss where id between " + firstNum + " and " + lastNum; rs = stm.executeQuery(sql); %>?頁面的制作:
<form action=discuss.jsp method=post> <table border=0> <tr> <td> 目前頁數(shù): <font color=red><%=pageNO%></font> </td> <td> 總頁數(shù): <font color=red><%=lastPage%></font> </td> <td> <a href=discuss.jsp?pageNO= <%=firstPage%>>【第一頁】</a> </td> <td> <a href=discuss.jsp?pageNO= <%=prePage%>>【上一頁】</a> </td> <td> <a href=discuss.jsp?pageNO= <%=nextPage%>>【下一頁】</a> </td> <td> <a href=discuss.jsp?pageNO=<%=lastPage%>>【最后一頁】</a> </td> <td>?輸入頁次:
<input type=text size=3 name=pageNO value=1> </td> <td> <input type=submit name=send value="送出"> </td> </tr> </table> </form>?
<% String name, email, subject, content, time; int reply, id; while (rs.next()) { name = rs.getString(1); email = rs.getString(2); subject = rs.getString(3); content = rs.getString(4); time = rs.getString(5); id = rs.getInt(7); out.print("<tr bgcolor=yellow><td><a href=delete.jsp?id="+id+"&replyid=0><img src=Pictures/delete.bmp width=20 height=20></a></td><td width=300><a href=detail.jsp?id="+ id + ">" + subject + "</a></td>"); out.print("<td width=200>" + name + "</td>"); out.print("<td width=200>" + time + "</td></tr>"); } %>?
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
