资源描述
摘要:该文介绍了基于mvc三层模式的bbs论坛设计,使用css样式设计页面布局,javascript页面动态响应,实现记录主题帖点击浏览次数、普通用户注册、登录、发帖、回复、积分统计、文本编辑等功能,以及管理员用户对帖子的删除、修改、置顶和加精的管理功能。
关键词:mvc;l;论坛;css
中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2016)18-0088-03
1概述
信息时代的到来使得信息成为当今最重要的资源之一,internet在信息的传播中扮演了极其重要的角色。bbs论坛已经成为信息发布的重要源地,也是信息传播和交换的重要枢纽。
2系统设计与实现
功能概述:进入论坛首页可浏览帖子,用户可注册登录论坛后回复帖子及发表新帖,管理员用户登录论坛可对帖子进行管理操作。
1)帖子显示:帖子采用“平板模式”显示,即论坛首页显示各个主题贴标题,点击标题可查看主题贴详细内容及回复贴的内容。
2)帖子回复及发表:用户可对每个主题帖及回复贴进行跟帖回复,在帖子回复及发表页面加入fck插件,提供简单的文本编辑功能。
3)论坛登录:在登录界面设置登录选项,区分普通用户与管理员用户。实现登录后,普通用户与管理员用户所见的论坛界面不同,对帖子也有不同的操作权限。
4)浏览计数:主题帖的浏览次数根据用户点击帖子的次数而增加。
5)积分统计:用户注册成功后有基础积分,用户发表新帖和回复帖可得到相应积分。
6)帖子管理:管理员用户登录成功后可对帖子进行修改、删除、置顶和加精的管理操作。
2.1界面设计
标题区登录和搜索功能,显示论坛标题及欢迎语,每个界面统一使用此样式布局显示,使整个论坛更为整洁和整体化。
主题体贴列表区内设置两种颜色不同的样式显示主题帖,使帖子排列显示更为清晰。帖子区显示发帖标题,作者姓名,帖子浏览次数及发帖时间。主题帖显示出各个主题的标题,点击帖子标题,查看帖子详细内容,及所有用户和游客对主题帖的回复贴。
2.2 数据库设计
本次数据库设计采用了jdbc数据库连接池的连接方式。数据库连接池为数据库的连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个连接使用即可,在使用完毕之后再放回去。通过设定连接池的最大连接数来防止系统无尽的与数据库连接,减少系统的反应时间,也减轻系统资源的频繁分配。
数据库连接:
privatestring
根据系统功能设计,数据库主要含有普通用户表、管理员用户表和帖子信息表。其中以帖子信息表为例,如表1所示,isleaf字段用于判断帖子是否为主题帖,是否可以排列在bbs论坛首页主题帖列表内;level字段用于判断帖子优先级别,判断主题帖为置顶帖、精华帖或者是普通贴。
1)帖子显示及内容读取
bbs论坛帖子分为主题帖和回复贴两类。论坛首页的主题帖采用平板形式排列显示,即点击主题帖标题,则展开主题帖详细内容及其各个回复贴。用户点击主题帖后,通过控制器调用方法,读取数据库中帖子信息表内的所有帖子信息。根据isleaf字段的值判断帖子是否为主题帖,主题帖将在论坛首页主题帖列表显示,根据主题帖的level字段优先级别和发帖时间顺序排列,level字段值的高级别优先排列,同等级别的主题贴最新发表的优先排列。
论坛首页统计论坛所有主题帖数量,并分页显示主题帖,实现上下翻页功能。用户每点击一次主题帖标题,对应主题帖的浏览次数计数器的值将加1,则该主题帖的浏览次数将增加一次浏览记录。排列在主题贴详细内容后的各个回复贴,根据回复时间先后,采用树形结构由上向下排列显示。
2)发帖与回复
发帖与回复页面的文本编辑框内都加入fck插件,可对要发表的文本进行字体、字号、颜色、格式等进行编辑。普通用户登录成功后可发表新帖,新主题帖的isleaf字段的值自动判断为0,并将其显示在论坛首页的主题帖列表内。每个主题贴及回复贴都设置有回复按钮,点击回复按钮,则跳转至回复页面,控制器读取用户填写的要发表的回复内容,并将其添加入数据库。回复贴根据回复时间的先后顺序,依次排列于主题帖下,并在各回复贴上显示“第几楼”的回复序列号,如图3所示。 3)积分统计
每一位新用户在注册成功后,有1000分基础积分。根据用户的不同操作增加用户的积分,例如,发表一份新主题帖,用户积分增加20分;回复一次帖子,用户积分增加5分。
4)关键字搜索
在论坛首页设有搜索框,可输入搜索关键字,查询关键字相关的主题帖,并分页显示查询结果。
查询主题帖:
string(request.getparameter("search").getbytes("8859_1"),"gbk");
5)登录过滤
bbs论坛未登录用户,将直接被识别为“游客”身份。论坛用户分为普通用户和管理员用户两类。在论坛登录界面设置 “用户”和“管理员”的登录选项,用户根据自己身份情况,选择对应的登录选项,并填写登录信息。用户点击登录后,将用户选取的登录选项值及用户输入的登录信息传给控制器,由控制器根据用户选取的登录选项,调用数据库中不同的数据表的信息,与用户输入的登录信息作对比,信息对比通过,则登录成功,设置3秒后自动跳转至论坛首页,反之则登录失败,返回到登录界面,系统的登录流程如图4所示。
用户登录成功后,根据用户不同类别判断,显示对应类别的登录成功后的论坛界面。不同类别的用户登录成功后有不同操作的权限。普通用户登录成功后,可以进行发帖、回复等操作,管理员用户登录成功后,可对“普通用户”的发帖进行管理。
登录过滤:
if(loginn.equals("admin")){
if(login.islogin(stat, sql)){
session.setattribute("admin", "admin");
sessions.setattribute("adminname", usename);
response.sendredirect("successful.jsp");
}else{
session.setattribute("admin", "noadmin");
response.sendredirect("fail.jsp");
}else{
if(login.islogin(stat, sql)){
session.setattribute("user", "user");
sessions.setattribute("username", usename);
response.sendredirect("successful.jsp");
}else{
session.setattribute("user", "nouser");
response.sendredirect("fail.jsp");
}
}
6)帖子管理权限
管理员用户登录成功后,可查看主题贴的详细内容及各个回复贴的情况,可对帖子进行修改、删除、置顶以及加精的管理操作。
置顶:在帖子信息表内设计level字段,用于判断主题帖的优先级别。在bbs论坛首页的主题贴列表内,主题贴的排序顺序,是根据主题贴的level字段的值降序排列及主题帖的发帖时间降序排列。主题贴的level字段的值为第一优先考虑排序条件,当主题帖的level字段的值相同时,再根据发帖时间降序排列各个主题贴。新发表的主题贴时,其level字段的值默认为0,管理员用户点击某个主题贴置顶按钮后,对应主题贴的level字段的值从0改为2,并在对应主题贴标题后,添加小红旗图案作为置顶后的标志。置顶贴的位置跳转至论坛首页的主题贴列表的顶端。
加精:加精功能的设计与置顶类似,用帖子信息表内的level字段的值对主题帖进行判断。管理员用户点击主题帖后的加精按钮,主题帖的level字段的值从0改为1,主题帖整体先根据其level字段的值降序排列,所以精华主题帖排列在置顶主题帖后。主题帖加精后,将在对应主题帖后添加“精”字图片作为精华帖 的标志。主题帖列表框内,主题帖的排列顺序从上往下依次为置顶帖、精华帖、普通贴。
修改:管理员用户点击修改后,页面跳转至修改页面,则管理员用户可对主题帖的标题及其内容进行修改。修改界面也加入fck控件,为管理员用户提供文本样式编辑功能。
删除:管理员用户点击删除按钮后,将删除对应主题贴及其所有的回复帖。
3结束语
在信息大爆炸的今天,bbs论坛成为网络巨大的信源地和信宿地,成为信息交换的一个大平台。l成为bbs论坛开发良好工具,不断丰富bbs论坛的功能,为人们的信息获取和交换带来极大的便利。
展开阅读全文