第一范文网 - 专业文章范例文档资料分享平台

基于JSP的BBS论坛的设计与实现

来源:用户分享 时间:2025/7/9 20:49:21 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

4.3 数据库的逻辑设计

根据数据库的概念设计,可以创建与实体对应的数据表。 1、用户表(User) 下面是对表User的具体设计

表4-1 user

1 2 3 4 5 6 字段名 userName password rePassword mainUrl loginTime gradeNo 属性 varchar(30) varchar(25) varchar(25) varchar(50) datetime int 约束 primary key 无 无 无 无 Foreign key 意义 用户名 密码 确认密码 地址 注册时间 用户等级 说明:*userName是注册用户的用户名,为User表的主键。 *password是用户密码,为用户登录时用。 *rePassword是确认密码,与用户密码对应。

*mailUrl是用户的地址,通过它,我们可以与之通过通信。 *loginTime表示用户注册的时间。

*gradeNo表示用户的等级,与登记表(grade)中的gradeId相关联,组成表的外键。共分为四个等级:菜鸟、列兵、星级标兵和士官。

*在注册过程中,password和rePassword必须一致,否则无法成功注册。 2、管理员表(admin)

表4-2 admin

1 2 3 4 字段名 adminId adminName password adminTime 属性 int varchar(25) varchar(25) datetime 约束 primary key 无 无 无 意义 管理员编号 管理员 密码 创建时间 3、帖子表(Article) 下面是对表Article的具体设计

表4-3 article

字段名 属性 约束 意义

1 2 3 4 5 6 7 8 9 10 11 id pid rootid editNo title cont pdate writer viewCount replyCount isleaf int int int Int varchar(30) text datetime varchar(30) int int int primary key 无 无 无 无 无 无 foreign key 无 无 无 帖子id 父亲id 根id 所属版块 标题 容 发帖时间 作者 帖子查看量 帖子回复量 判断帖子是否为叶子节点 判断帖子是否为精华帖 12 isEssence int 无 说明:*id是帖子的编号,为本表的主键。 *pid是父亲id的编号,表示被回复的帖子id号。

*rootid表示根贴的id号,表示最初发起主题的帖子id号。 *editNo表示帖子所属的板块号,每个版块的帖子分版块区别显示。 *title表示帖子的主题。 *cont表示帖子的容。 *pdate表示发帖的具体时间。

*writer表示发帖的作者,此外键对应user表中userName字段。 *viewCount表示帖子的查看量。 *replyCount表示帖子的回复量。

*isLeaf判断帖子是否为叶子节点,值为1时表示为非叶子节点;为0时

表示为叶子节点。

*isEssence判断帖子是否为精华帖,值为1是表示是精华帖;反之,则不

是。

4、用户等级表(grade)

图4-4 grade

字段名 属性

约束 意义

1 2 gradeId gradeCont int varchar(25) primary key 无 等级编号 等级容 5、版块类别表(edit) 图4-5 edit

字段名 属性 int varchar(25) 约束 primary key 无 意义 版块编号 版块容 1 edited 2 editName

articlePK idpidrootideditNotitlecontpdateviewCountreplyCountwriterisEssenceisLeafeditPK editIdeditNameuserPK userNamepasswordrePasswordloginTimegradeNogradePK gradeIdgradeCont

图4-5 数据库模型图

5 系统详细设计与实现

5.1 前台设计

系统的前台,即是直接面向用户的所有页面。因为前台的功能模块较多,而各个模块的实现过程都是类似的,所以对于系统前台的介绍,只是做有选择的系统重点设计介绍。

5.1.1 前台页面设计与实现 本系统的所有页面都采用了统一的简化页面框架,包括页头和容显示区。前台首页的页面运行结果已在前文中出现过,此处不再累述。

下面主要介绍前台首页面index.jsp的具体实现。由于论坛是以主题分版块展示的,下面以其中一个板块页面做详细介绍。部分主要代码如下:

<%

List

articles = new ArrayList
(); Connection conn = DB.getConn(); //创建与数据库的连结 Statement stmt = DB.createStmt(conn); //通过连结创建Statement对象 String sql = \;

ResultSet rs = DB.executeQuery(stmt, sql ); //执行sql语句,并返回结果集 while (rs.next()) { Article a = new Article(); a.initFromRs(rs); articles.add(a); }

//记录总查看量

int totalViewNum=0; //记录帖子总数

int totalArticleNum=0; /*查询出帖子的总查看量*/

for (Iterator

it = articles.iterator(); it.hasNext();) { Article a = it.next(); totalViewNum+=a.getViewCount(); }

/*查询出帖子的总回复量*/

String sql1=\; ResultSet rs1 = DB.executeQuery(stmt, sql1); rs1.next();

totalArticleNum = rs1.getInt(1);

/*查询出最后的发帖作者*/

String sql2=\; ResultSet rs2 = DB.executeQuery(stmt, sql2);

%>

while (rs2.next()) { Article a = new Article(); a.initFromRs(rs2); articles.add(a); } Iterator

it1 = articles.iterator(); Article a1=it1.next(); String lastWriter=a1.getWriter(); DB.close(rs2); DB.close(rs1); DB.close(rs); DB.close(stmt); DB.close(conn);

以上的语句实现的有三个功能:1、查询出帖子的总查看量;2、查询出帖子的总回复量;3、查询出最后的发帖作者。这些都是对整个板块的总体统计,是对板块信息的最直观的展现。

5.1.2 用户注册/登录、管理员登录 在论坛首页,提供了三个登录、注册入口,包括:用户注册/登录、管理员登录;通过点击如下,进入到对应各个界面。

1>用户注册

用户注册的网页文件对应的是“loginUser.jsp”文件,在此页面下,非注册用户可以进行注册的操作。

运行效果图如下:

搜索更多关于: 基于JSP的BBS论坛的设计与实现 的文档
基于JSP的BBS论坛的设计与实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2by3r5ti4s55t2h95x553fre38hic9011a4_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top