本文转自:程序员之家论坛  原文地址:http://www.phome.asia/forum/thread/20601.htm

我已把附件上传到csdn下载频道地址:http://download.csdn.net/source/1928015

也可去原文地址下载附件。(*^__^*)

前 言

当今,随着网络的迅速发展,制作BBS论坛的技术和方法也越来越多。本文主要讲述利用Java Web的相关技术来制作一个简单论坛。通过实际制作,实现了BBS论坛系统应有的一些基本功能,如:登陆功能,通过在登陆界面输入用户名和密码来实现会员的登录,用户只有登录成功了才能进行一系列的操作;注册功能,用户首次登陆,需要先注册,注册时需要用户填写个人信息;找回密码功能,当用户忘记密码时可以通过此功能找回密码,找回密码时需要用户记得注册时填写的个人信息。除此之外,还有浏览帖子、发表帖子、回复贴子以及删除帖子等等功能。制作本论坛所用的前台软件是MyEclipse,后台数据库是MySQL,运行时所用的服务器是Tomcat,综合运用了HTML、JSP以及JavaScript语言。

全文先对用到的软件进行了简单的介绍,然后依次对系统的应用进行需求分析、总体设计、详细设计;最后简要介绍了系统的发布和测试。

作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。接下来,我将详细阐述一下这些功能。
(一)、 用户登录和注册功能
进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。然后,在对应的地方分别输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。
注意:若用户名(或者密码)为空时,点击了“登录”按钮,则系统会弹出一个对话框提示你用户名(或密码)为空,请重新输入,点击对话框的“确定”按钮,即可重新回到登录界面。

注册界面如下所示:

(二)、用户找回密码功能
      在有些时候,我们可能会忘记登录密码,这时就用到了密码找回功能,通过正确的回答当初注册时的一些信息即可取回密码。
(三)、用户帖子的浏览

  当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,
(四)、用户帖子的发布/修改/删除功能

用户成功登陆后,可以进行一些操作,如发表帖子、删除自己发表的帖子等。

(五)、用户回复他人帖子
打开他人的帖子,点击“我要回复”按钮(如图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=" mce_href="discuss.jsp?pageNO=" <%=firstPage%>>【第一页】</a> </td> <td> <a href="discuss.jsp?pageNO=" mce_href="discuss.jsp?pageNO=" <%=prePage%>>【上一页】</a> </td> <td> <a href="discuss.jsp?pageNO=" mce_href="discuss.jsp?pageNO=" <%=nextPage%>>【下一页】</a> </td> <td> <a href="discuss.jsp?pageNO=

2、浏览帖子的实现
每幅帖子都有三部分组成:主题、作者和时间,通过上述分页功能选出了需
要显示出来的帖子,下面就是将它们显示在页面上的程序:

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=" mce_href="delete.jsp?id=""+id+"&replyid=0><img src="Pictures/delete.bmp" mce_src="Pictures/delete.bmp" width=20 height=20></a></td><td width=300><a href="detail.jsp?id=" mce_href="detail.jsp?id=""+ id + ">" + subject + "</a></td>"); out.print("<td width=200>" + name + "</td>"); out.print("<td width=200>" + time + "</td></tr>"); }

原创+源码 基于Java Web技术开发的BBS论坛系统相关推荐

  1. 基于Java Web技术的动车购票系统

    毕 业 设 计 中文题目 基于Java Web技术的动车购票系统 英文题目 Train ticket system based on Web Java Technology 毕业设计诚信声明书 本人郑 ...

  2. php异业联盟平台源码,基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码

    会员优惠 会员优惠 月费会员8折.年费会员5折.永久会员2折 源码介绍 基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码,支持WAP手机端+微信小程序+支付宝小程序+多种支付方式! 这 ...

  3. java图片管理系统_基于Java Web技术的图片管理系统的设计与实现.doc

    基于Java Web技术的图片管理系统 的设计与实现 本科毕业设计 目 录 第1章 引言6 1.1 课题研究目的及意义6 1.2 课题研究的内容7 2.1 用户功能需求7 图片收藏数据库查询系统图片收 ...

  4. java实现模拟考试系统,Java Web应用开发—— 在线模拟考试系统-毕业设计

    Java Web应用开发-- 在线模拟考试系统-毕业设计 毕毕 业业 设设 计(论计(论 文)文) 题题 目目 Java Web 应用开发 在线模拟考试系统的设计与实现 学学 院院 计算机学院 专专 ...

  5. 基于Java与MySQL开发的在线考试系统

    1 概述 1.1 简介 在Exam++考试系统第一版的基础上,我们对ExamStack V2.0进行了大量代码重构,同时也对数据模型做了部分调整.为了减小学员考试交卷时大量并发带来的系统风险,我们尝试 ...

  6. java 网上医院预约系统_基于java web的医院网上预约挂号系统 代码+数据库文件 齐全...

    [实例简介] 基于java web的医院网上预约挂号系统 代码+数据库文件 齐全 :直接导入myeclipse就ok了,好使.献给做这个项目的同学 [实例截图] [核心代码] guahao └── g ...

  7. 课程设计-基于SSM的在线课程教学系统代码-基于java的线上课程资源共享论坛系统

    课程设计-基于SSM的在线课程教学系统代码-基于java的线上课程资源共享论坛系统 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架:SSM 前端框架 ...

  8. GeneXus开发平台 拖拽低代码 JNPF源码,java开源快速开发平台

    GeneXus开发平台 GeneXus是一个敏捷的开发平台,使您的公司轻松应对技术的发展.GeneXus极大的简化了软件程序的开发过程,能自动生成从数据库到代码.前端到后端.服务器端到客户端服务的所有 ...

  9. java跳蚤市场源码,基于JAVA的校园网上跳蚤市场的设计与实现.doc

    本文阐述了校园网上跳蚤市场的设计与实现过程,并且详细介绍了系统的需求分析以及各部分功能的实现代码.系统的开发以Java语言为开发环境,以Eclipse软件为开发平台,以MySQL为后台数据库 ,主要实 ...

最新文章

  1. mybatis的一些基础问题
  2. wxPython:Python首选的GUI库 | CSDN博文精选
  3. 无线红外探测器04:产品测试及验证
  4. boost::math::tools::cohen_acceleration用法的测试程序
  5. c语言发牌思路,C语言发牌机程序求详细解析
  6. android 圆形边框填充颜色,如何在android中表示多种颜色的圆形边框
  7. python哪些是可变对象_python 中的可变对象与不可变对象
  8. 企业微信之发送图片消息(源码下载)
  9. js如何实现简繁体互转
  10. 雷达原理---时频分析--2.短时傅里叶变换
  11. java自身的rsa算法效率低下问题
  12. 阿里巴巴重要开源项目汇总
  13. Java多线程系列--【JUC集合02】- CopyOnWriteArrayList
  14. Matter 研讨会回顾(第二期)|乐鑫 Matter SDK 开发平台介绍和使用
  15. 无线监控安ftp服务器,ftp服务器摄像头监控
  16. R语言—90分钟从入门到精通
  17. 完美定制你的QQ,把QQ里不要的文件通通删除!
  18. War Room - 战争房间
  19. 2016中国移动办公论坛暨《2016中国移动办公男神报告》发布会成功举办
  20. 运算符(逻辑或||)和(逻辑与)和括号的优先级

热门文章

  1. 下载速率(上行速率)和上传速率(下行速率)
  2. c语言empty函数返回结果,c++中函数empty()怎么使用
  3. 常见电缆型号说明及用途
  4. たまには愛を思い出して、作者宇文
  5. 【一起学数据结构与算法】Java实现双链表
  6. JSP技术的通俗理解
  7. 遥感大辞典_《遥感大词典》的诞生侧记——向中国环境遥感学会十周年献礼
  8. 关于太阳黑子数的查询
  9. linux桌面主题包安装,Linux桌面主题GNOME安装实例
  10. 诸葛亮如何通过谈话读懂别人