前言:
当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。本文主要讲述利用Java Web的相关技术来制作一个简单论坛。通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息;找回密码功能,当用户忘记密码时可以通过此功能找回密码,找回密码时需要用户记得注册时填写的个人信息。除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。
全文先对用到的软件进行了简单的介绍,然后依次对系统的应用进行需求分析、总体设计、详细设计;最后简要介绍了系统的发布和测试。
注册界面如下所示:
用户成功登陆后,可以进行一些操作,如发表帖子、删除自己发表的帖子等。
打开他人的帖子,点击“我要回复”按钮(如图4-6所示)便可对该贴进行回复,如要想对其他回复此贴的人进行回复,可以点击回复人后面的“回复XX楼”按钮(如图4-7)对其进行回复。
1、管理员查看或发表帖子
管理员查看或发表帖子与普通用户的一样。
1、 管理员删除帖子
管理员删除帖子与普通用户的区别在于,他可以删除任何人发表的贴子,另外他还有一项特权,就是可以删除任何人回复的垃圾帖子。
部分代码:
1、翻页功能的实现
在这里可以实现翻页功能,根据你的实际需求进行选择。
功能的实现:首先确定每页所能容纳帖子的最大数目,在这里我设定MaxNum=10;然后连接数据库查询帖子的总数,从而判断总的页数,即lastPage,接着根据请求的页码pageNO判断出该页码是否合法,若pageNO<1则改正为pageNO=1,若pageNO>lastPage,即所求的页码超出了最大页数,则改正pageNO=lastPage,然后确定要显示的第一个帖子的标识码firstNum和最后一个帖子的标识码lastNum,最后连接数据库将标识码在firstNum和lastNum之间的帖子的信息查询出来。
程序为:
<% int MaxNum = 10;//每页容纳的主题论文的最大数目 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> 目前页数: <font color=red><%=pageNO%></font> </td> <td> 总页数: <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>"); } %>