BBS软件概要设计说明书

BBS论坛系统概要设计说明书

一.软件概要设计

1. 数据库的建立

下载并装MySql5.5.24数据库,设置它的默认编码为GB2312,设置的账户和密码分别为root和root,把编写好的sql语句导入到数据库中并保存为BBS.sql文档。

2. 下载web静态页面并修改成动态jsp页面

下载javaworld论坛的静态页面,保存到本地,用Macromedia Dreamweaver 8打开,删除不必要的页面代码。最后包含的jsp文件有

帖子的树形展现:article.jsp 帖子的详细信息:articleDetial.jsp 帖子的平板展现:articleFlat.jsp 帖子的删除:delete.jsp 管理员的登陆:login.jsp 帖子的修改:modify.jsp 发表新的帖子:post.jsp 回复帖子:reply.jsp 搜索帖子:search.jsp

会话检测:sessionCheck.jsp

所使用的图标文件都在images文件夹中,控件文件在FCKeditor文件夹中。

3. DB,USER和Article的封装

(1)把连接数据库常用的代码都封装在DB.java中。例如创建一个数据库连接Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/bbs”,”root”,”root”);创建 Statement 、ResultSet 和一些常用的方法,在数据库使用完后一定要关闭资源调用close方法。

(2)在用户模块中把用户的基本属性都封装User.java中。例如用户的username,password,add,email,qq等等。

(3)在帖子的基本属性也封装在Article.java中,如定义:

private int id;

private int pid; private int rootid; private String title; private String cont; private Date pdate; private boolean isleaf;

每个成员变量都Getts和Setts方法等等!

以上的bean文件都是为了方便在jsp文件中调用而开发的!

4. 发帖的树形展现

帖子的树形展现,需要用到递归函数,自身调用自身,在article.jsp文件中实现,首先检查这个帖子的pid,为0的是父贴,通知检查它是不是叶子节点,当isleaf为0时,循环结束,否者继续执行直到帖子全部输出!树形代码实现如下:

private void tree(List articles ,Connection conn,int id,int grade){

String sql="select * from article where pid =" + id; Statement stmt=DB.getStmt(conn); ResultSet rs=DB.getRs(stmt,sql); try{

while(rs.next()){

Article a=new Article(); a.initFromRs(rs); a.setGrade(grade); articles.add(a); if(!a.isIsleaf()){

tree(articles,conn,a.getId(),grade+1); } }

}catch(SQLException e){ e.printStackTrace(); }finally{ DB.close(rs); } }

DB.close(stmt);

5. 帖子的详细情况

该功能比较简单,但是articleDetial.jsp要接受帖子的id参数,一定要注意接受到得参数id是String类型,需要转换成Int类型,实现:Int id = Integer.parseInt(request.getParameter(“id”)); 把接受到的id传给sql的select语句,就可把帖子a取出来放在Artile列表中。在相应的页面位置调用即可,例如在显示主题时,主题:。

在处理以上问题时一定要注意传递的id有可能是空值,做好Catch Exception 的准备。

6. 回复帖子

在回复帖子replay.jsp的实现中也要接受id和rootid两个参数,都需要相应的转换;同时为了解决中文的乱码问题,一定要要加上request.setCharacterEncoding(“GBK”);,本页面不处理接受到的id和rootid两个参数,同时把要发表的title和cont以post的方式提交给replayDeal.jsp页面处理,form表格实现如下:

"/>

"/>

标题:

内容:

而在replayDeal.jsp 文件中就要做相应的数据库update处理了代码如下:

int pid=Integer.parseInt(request.getParameter("pid"));

int rootid=Integer.parseInt(request.getParameter("rootid"));

String title=request.getParameter("title"); System.out.print(title);

String cont=request.getParameter("cont");

System.out.print(cont); Connection conn=DB.getConn();

boolean autoCommit=conn.getAutoCommit(); conn.setAutoCommit(false);

String sql="insert into article values(null,?,?,?,?,now(),?)"; PreparedStatement pstmt=DB.praStmt(conn,sql); pstmt.setInt(1,pid); pstmt.setInt(2,rootid); pstmt.setString(3,title); pstmt.setString(4,cont); pstmt.setInt(5,0); pstmt.executeUpdate();

Statement stmt=DB.getStmt(conn);

stmt.executeUpdate("update article set isleaf =1 where id="+pid); conn.commit();

conn.setAutoCommit(autoCommit);

DB.close(pstmt); DB.close(stmt);

DB.close(conn); %>

回复成功后可以用javaScript实现以下自动跳转功能代码如下:

5秒钟后自动跳转,如果不跳转,请点击下面链接

主题列表

7. FCKeditor控件的应用

为了实现文本cont多样化,可以使用著名的编辑控件FCKeditor,调用的文件可以从网上下载,而实现的代码为:

{

var sBasePath

=""; }

BBS论坛系统概要设计说明书

一.软件概要设计

1. 数据库的建立

下载并装MySql5.5.24数据库,设置它的默认编码为GB2312,设置的账户和密码分别为root和root,把编写好的sql语句导入到数据库中并保存为BBS.sql文档。

2. 下载web静态页面并修改成动态jsp页面

下载javaworld论坛的静态页面,保存到本地,用Macromedia Dreamweaver 8打开,删除不必要的页面代码。最后包含的jsp文件有

帖子的树形展现:article.jsp 帖子的详细信息:articleDetial.jsp 帖子的平板展现:articleFlat.jsp 帖子的删除:delete.jsp 管理员的登陆:login.jsp 帖子的修改:modify.jsp 发表新的帖子:post.jsp 回复帖子:reply.jsp 搜索帖子:search.jsp

会话检测:sessionCheck.jsp

所使用的图标文件都在images文件夹中,控件文件在FCKeditor文件夹中。

3. DB,USER和Article的封装

(1)把连接数据库常用的代码都封装在DB.java中。例如创建一个数据库连接Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/bbs”,”root”,”root”);创建 Statement 、ResultSet 和一些常用的方法,在数据库使用完后一定要关闭资源调用close方法。

(2)在用户模块中把用户的基本属性都封装User.java中。例如用户的username,password,add,email,qq等等。

(3)在帖子的基本属性也封装在Article.java中,如定义:

private int id;

private int pid; private int rootid; private String title; private String cont; private Date pdate; private boolean isleaf;

每个成员变量都Getts和Setts方法等等!

以上的bean文件都是为了方便在jsp文件中调用而开发的!

4. 发帖的树形展现

帖子的树形展现,需要用到递归函数,自身调用自身,在article.jsp文件中实现,首先检查这个帖子的pid,为0的是父贴,通知检查它是不是叶子节点,当isleaf为0时,循环结束,否者继续执行直到帖子全部输出!树形代码实现如下:

private void tree(List articles ,Connection conn,int id,int grade){

String sql="select * from article where pid =" + id; Statement stmt=DB.getStmt(conn); ResultSet rs=DB.getRs(stmt,sql); try{

while(rs.next()){

Article a=new Article(); a.initFromRs(rs); a.setGrade(grade); articles.add(a); if(!a.isIsleaf()){

tree(articles,conn,a.getId(),grade+1); } }

}catch(SQLException e){ e.printStackTrace(); }finally{ DB.close(rs); } }

DB.close(stmt);

5. 帖子的详细情况

该功能比较简单,但是articleDetial.jsp要接受帖子的id参数,一定要注意接受到得参数id是String类型,需要转换成Int类型,实现:Int id = Integer.parseInt(request.getParameter(“id”)); 把接受到的id传给sql的select语句,就可把帖子a取出来放在Artile列表中。在相应的页面位置调用即可,例如在显示主题时,主题:。

在处理以上问题时一定要注意传递的id有可能是空值,做好Catch Exception 的准备。

6. 回复帖子

在回复帖子replay.jsp的实现中也要接受id和rootid两个参数,都需要相应的转换;同时为了解决中文的乱码问题,一定要要加上request.setCharacterEncoding(“GBK”);,本页面不处理接受到的id和rootid两个参数,同时把要发表的title和cont以post的方式提交给replayDeal.jsp页面处理,form表格实现如下:

"/>

"/>

标题:

内容:

而在replayDeal.jsp 文件中就要做相应的数据库update处理了代码如下:

int pid=Integer.parseInt(request.getParameter("pid"));

int rootid=Integer.parseInt(request.getParameter("rootid"));

String title=request.getParameter("title"); System.out.print(title);

String cont=request.getParameter("cont");

System.out.print(cont); Connection conn=DB.getConn();

boolean autoCommit=conn.getAutoCommit(); conn.setAutoCommit(false);

String sql="insert into article values(null,?,?,?,?,now(),?)"; PreparedStatement pstmt=DB.praStmt(conn,sql); pstmt.setInt(1,pid); pstmt.setInt(2,rootid); pstmt.setString(3,title); pstmt.setString(4,cont); pstmt.setInt(5,0); pstmt.executeUpdate();

Statement stmt=DB.getStmt(conn);

stmt.executeUpdate("update article set isleaf =1 where id="+pid); conn.commit();

conn.setAutoCommit(autoCommit);

DB.close(pstmt); DB.close(stmt);

DB.close(conn); %>

回复成功后可以用javaScript实现以下自动跳转功能代码如下:

5秒钟后自动跳转,如果不跳转,请点击下面链接

主题列表

7. FCKeditor控件的应用

为了实现文本cont多样化,可以使用著名的编辑控件FCKeditor,调用的文件可以从网上下载,而实现的代码为:

{

var sBasePath

=""; }


相关文章

  • 化妆品网上购物系统概要设计说明书
  • <Sunny Bay 化妆品网上购物系统> 概要设计说明书 作 者: 完成日期: 签 收 人: 签收日期: 修改情况记录: 目录 1 引言 ............................................ ...查看


  • 软件工程毕业论文
  • 目 第一章 第二章录绪论............................................................................................1需求分析........... ...查看


  • 论坛管理系统的设计与实现毕业论文
  • 长春工业大学学生论坛的设计与实现 摘要 摘要 随着Internet 的越来越普及,人们越来越关于这样一种交流平台――论坛.使用简单.易用的学生论坛已成为当今社会必然要求.但现有的学生论坛系统还存有一定问题,主要体现在两个方面: 一方面,论坛 ...查看


  • Java博客系统需求分析
  • 需求分析 3.1引言 3.1.1编写目的 需求分析是每个软件开发必不可少的一个阶段,也是软件开发周期的一个开始标志.需求分析是对软件系统的整体做一个简要的了解,描述系统在现实生活中的原像,完成必要的概念定义,功能解释,业务流程等等.除此之外 ...查看


  • 09级计科专业毕业设计题目
  • 09级计算机科学与技术专业毕业设计题目指南 说明:1. 每个题目的选择人数最多不能超过2名同学,否则将退回重选.(如题目要求可多 人合作,则以题目要求为准),请各班级同学自行协调解决选题冲突问题. 2.学习委员上报题目请用EXCEL 表格, ...查看


  • 电商平台项目实施方案
  • [**银行保费对帐系统] 工作组 单位: Truth Workgroup 日期: 二零零六年七月二十二日 免责声明:文档在线网(文档中国)中所有的文档资料均由文档在线网会员提供.文档在线网会对会员提供的文档资料进行筛选和编辑,但是并不声明或 ...查看


  • 软件开发过程规范-20160804
  • 内蒙古航联科技开发有限责任公司 发布日期: 2016 软件开发规范 文件编号: HLKJ/RJKF-2016 版 次: A/O 分 发 号: 受控状态:受控 编 制:运维中心 审 核: 批 准: 年3月1日 实施日期: 2016年3月1日 ...查看


  • 概要设计与详细设计的区别
  • 概要设计与详细设计的区别 概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等.同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什 ...查看


  • 软件概要设计模板
  • 软件概要设计 文件名称:XX 软件概要设计说明书 文件编号: 版 本: 共 页 拟 制 审 核 批 准 目 录 1 概述 ........................................................... ...查看


热门内容