课程设计基于JAVA的BBS系统的实现.doc

上传人:仙人指路1688 文档编号:2387684 上传时间:2023-02-17 格式:DOC 页数:27 大小:377.50KB
返回 下载 相关 举报
课程设计基于JAVA的BBS系统的实现.doc_第1页
第1页 / 共27页
课程设计基于JAVA的BBS系统的实现.doc_第2页
第2页 / 共27页
课程设计基于JAVA的BBS系统的实现.doc_第3页
第3页 / 共27页
课程设计基于JAVA的BBS系统的实现.doc_第4页
第4页 / 共27页
课程设计基于JAVA的BBS系统的实现.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《课程设计基于JAVA的BBS系统的实现.doc》由会员分享,可在线阅读,更多相关《课程设计基于JAVA的BBS系统的实现.doc(27页珍藏版)》请在三一办公上搜索。

1、XXX 大 学毕业设计(论文)说明书题 目: 基于JAVA的BBS系统的实现 作 者: XXX 学 号: XXXXX 系 (院): 计算机科学系 专 业: 计算机科学与技术 指导者: XXXX 评阅者: 2006 年 5 月 XXX第一章 需求分析1.1功能需求分析开发背景:论坛也称为BBS,是bulletin Board System的简称,意即电子公告板,是一种在Internet上常见的用于信息服务的Web系统,它主要给浏览者提供相互沟通的平台,以此来吸引用户,服务用户。BBS起源于20世纪80年代初。最初,论坛只是用于发布公告信息,讨论问题的在线交流平台。后来,随着网络的普及,论坛的功能

2、越来越丰富,受到广大网民的欢迎。因此,商业网站对论坛重视起来,纷纷在自己的网站上开辟论坛。作为与网民交流的园地。同时在线技术支持和在线服务也在论坛中开展起来。当代的大学生几乎都会接触甚至经常登陆自己感兴趣的论坛,在上面可以分享,也可以交流意见。本网上论坛BBS的功能:(1) 接收访问者输入的信息,将其存入网站连接的数据库,并且通过Web页面读取数据库的内容将访客的留言显示出来。因此一个留言板分为提交帖子和显示帖子详细内容两部分。(2) 此BBS主要是为了方便大家的交流及希望留言者对某一事件发表看法或提供意见和建议而设计,为了方便用户发帖,不需要用户注册账号。用户可以查看以前的帖子,也可以回复任

3、何一个帖子。(3) 管理员可以修改或删除不合适的帖子,删除时可以删除所有同主题的帖子。(4) 管理员和访客都可以搜索标题或者内容中包含特定关键字的帖子。1.2运行环境需求分析系统:windows xp浏览器:IE6.0。分辨率:最佳效果1024768像素。调试环境:tomcat6.0 jdk6.0辅助软件:Macromedia Dreamweaver 8、MyEclipse等数据库软件:mysql开发语言:jsp、html等1.3用户界面需求分析 1)发表帖子:用于发布新的帖子。 2)查看帖子详细内容:单击留言主题就可以进入查看详细的帖子内容和所有回复的帖子内容。 3)回复帖子:回复正在查看的

4、帖子。 4)管理员登陆:管理员可以登陆对论坛上的帖子进行管理。 5)更新帖子:管理员登陆后可以修改不合适的帖子。 6)删除帖子:管理员登陆后可以删除不合适的帖子。 7)查询帖子:管理员和访客都可以搜索标题或者内容中包含特定关键字的帖子。1.4数据库需求因为是运用JSP编码的网站,所以采用MYSQL作为所需的数据库,为了防止运行过程中可能遇见的读取乱码问题,在代码和数据库中都运用GBK形式进行数据的存储和提取。第二章 数据库设计2.1数据库表表1-1 数据库表字段类型含义存储格式是否为空IdInt帖子本身的编号GBKNOPidInt父帖的编号GBKNORootidInt子帖的编号GBKNOTit

5、leVarchar帖子标题的内容GBKNOContText帖子详细的内容GBKNOPdateDatatime帖子的发表时间GBKNOIsleafint回复是否根节点 (在本程序中1代表不是根节点 0代表是根节点)GBKNO2.2存储过程create database bbs;use bbs;create table article (id int primary key auto_increment,pid int,rootid int,title varchar(255),cont text,pdate datetime,isleaf int);第三章 系统设计3.1系统功能模块由于本系统要

6、保证帖子的正常管理,那么就存在总管理员与一般用户之区别,所以就可以粗略分为两个部分,前台展示模块、管理员模块。下面我们依次画出这两个模块的大体框架图。前台部分就较为粗糙,为了限制访客的某些权利,前台的功能较少,分了4个部分,分别是发表帖子、浏览帖子、查询帖子以及回复帖子等组成。网上论坛的前台功能结构如图3-1所示。网上论坛发表帖子浏览帖子查询帖子回复帖子图3-1 医药连锁店管理系统前台功能结构图网上论坛后台管理系统是对整个系统,包括前台模块以及帖子删除和更新功能的管理。其功能结构图如图3-2所示。网上论坛发表帖子浏览帖子更新帖子回复帖子管理员登陆查询帖子删除帖子图3-2 网上论坛后台管理系统功

7、能结构图通过上述2个大的模块,本网上论坛基本构架出来了。这两个基本模块的构架为后面各个模块系统的进一步设计与研究打下良好的基础。3.2前台功能模块设计87网站首页就是公司的形象,也是整个系统的高度概括。因此网站首页包括了前台展示系统的各个重要功能,便于向访客展示系统的各个信息。首页中包括了发表新主题、查询帖子、查看帖子详细内容等功能,在进入帖子详细内容时,还有回复帖子的功能。同时也为网上论坛提供了管理的入口,方便网上论坛用户的管理登陆。网站首页运行结果如图3-3所示,浏览帖子详细内容的运行结构如图3-4所示。4312图3-3 前台首页主题列表运行结果5图3-4 前台浏览帖子详细内容运行结果根据

8、多次设计与反复修订,为了系统的整体一致性与便于维护,特别把首页部分为了以下几个部分,在首页使用包含文件的方式,把各个部分包含进来,各部分功能设计为单独的文件,这样在后期的日常维护中,如果要修改此功能的信息,那就很方便了。前台页面的各部分说明以列表形式给出,如表3.1所示。区域名称说明对应文件1发表新主题发表新的论点和想法post.jsp2查询帖子主要用于用户查找帖子articleResult.jsp3管理员登陆主要用于提供管理员登录后台的入口login.jsp4浏览帖子展示所点帖子的详细内容articleDetailFlat.jsp5回复回复正在浏览的帖子reply.jsp表3.1 前台首页解

9、析3.2.1帖子搜索模块设计帖子包含很多方面的内容和信息,很多信息是有共同点的,并且这些共同的信息可能是被访客所关注的,因为每个访客的出发点与实际需求都是不同的,那么在这些不同的需求中,我站系统根据用户习惯等来限定关键字的搜索范围,并把关键字搜索范围进行了限制,按帖子主题及详细内容对指定的帖子的关键字进行模糊查询。该功能由两部分组成,一部分是查询条件输入专区,另一部分是查询结果显示专区,查询条件输入专区的设计效果如图3-5所示。帖子搜索系统设计效果如图3-6所示。图3-5 条件输入专区页面图3-6 查询结果展示专区页面查询系统程序设计的思路是这样的,当访客输入要查询的关键字提交之后,系统根据获

10、取的关键字进行判断,如果有关键字,那么就查询表article中title和cnot字段,读取与关键字模糊匹配的信息。3.2.2帖子详细内容展现模块设计帖子详细内容展现页面是对应帖子信息的具体介绍,它展示了帖子的主题,帖子的发表时间,帖子的回复内容等信息。页面的设计效果如图3-7所示。图3-7 帖子详细内容展现页面3.2.3帖子的发表和回复模块设计 帖子的发表和回复分别链接进不一样的处理模块,但大致的思路是一致的。帖子的发表和回复的展现页面也是一样的,如图3-8所示。图3-8 帖子的发表和回复模块展现页面第四章 后台功能模块设计4.1 网上论坛管理员登陆模块网上论坛管理员登陆运行效果图如图4-1

11、所示图4-1 网上论坛管理员登陆运行页面而这个被用来进行权限判断的字段为:adminLogined,并且当adminLogined=TRUE时系统认为该用户是管理员。在系统登陆成功的时候系统自动读取该值,并赋予各一个session。4.1.1帖子的修改管理员可以任意的修改帖子信息,为此我们在修改的时候必须有一个不能被修改的参数、字段来作为我们的修改记录位置的依据,因此程序认为各个帖子的编号不能被修改。帖子的修改界面与帖子的发表界面外观上相差无几。但帖子的修改需要先从数据库中读取要修改的内容。网上论坛的修改运行效果图,如图4-2所示:图4-2 网上论坛修改运行页面网上论坛的管理,不仅是简单的展示

12、,当帖子太多时,对读取的主题信息进行分页显示也是必须的。4.1.2 帖子的删除 某些广告帖、灌水帖等在论坛中是毫无意思的,所以管理员删除这些帖子才能保证论坛的秩序。管理员点击帖子前的删除即可将此帖去掉。第五章 系统实现5.1前台显示主要是访客所见的界面和访客所能实现的功能。5.1.1展现主题列表(articleFlat.jsp) 平板形式展现主题列表,插入分页代码,可展现分页效果,主要代码如下:分页代码:%final int PAGE_SIZE = 4;int pageNo = 1;String strPageNo = request.getParameter(pageNo);if (strP

13、ageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1;if (pageNo = 0)pageNo = 1;int totalPages = 0;List articles = new ArrayList();Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);ResultSet rsCount = DB

14、.executeQuery(stmtCount,select count(*) from article where pid = 0);rsCount.next();int totalRecords = rsCount.getInt(1);totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if (pageNo totalPages)pageNo = totalPages;Statement stmt = DB.createStmt(conn);int startPos = (pageNo - 1) * PAGE_SIZE;Strin

15、g sql = select * from article where pid = 0 order by pdate desc limit + startPos + , + PAGE_SIZE;System.out.println(sql);ResultSet rs = DB.executeQuery(stmt, sql);while (rs.next() Article a = new Article();a.initFromRs(rs);articles.add(a);DB.close(rsCount);DB.close(stmtCount);DB.close(rs);DB.close(s

16、tmt);DB.close(conn);%页:第-共页 -第一页|a href=articleFlat.jsp?pageNo=上一页 |a href=articleFlat.jsp?pageNo=下一页|  a href=articleFlat.jsp?pageNo=最末页 展现主题列表主要代码:主题作者   回复最后发表%int i = 0; for (Iterator it = articles.iterator(); it.hasNext();) Article a = it.next();String classStr = i % 2 = 0 ? jive-even

17、 : jive-odd;%TR class=a href=update.jsp?id=更新ahref=delete.jsp?id=&isLeaf=&pid=&from=删除A id=jive-thread-3href=articleDetailFlat.jsp?id=demi11285.1.2展现帖子详细内容(articleDetailFlat.jsp)展现特定帖子的详细信息和所有留言。主要代码如下:%String strId = request.getParameter(id);if(strId = null | strId.trim().equals() out.println(Error

18、 ID!);return;int id = 0;try id = Integer.parseInt(strId); catch (NumberFormatException e) out.println(Error ID Again!);return; List articles = new ArrayList();Connection conn = DB.getConn();String sql = select * from article where rootid = + id + order by pdate asc;Statement stmt = DB.createStmt(con

19、n);ResultSet rs = DB.executeQuery(stmt, sql);while(rs.next() Article a = new Article();a.initFromRs(rs);articles.add(a);DB.close(rs);DB.close(stmt);DB.close(conn);% % for(int i=0;i 5.1.3查询帖子(articleSearch.jsp和searchResult.jsp)根据关键字查询所关注的帖子,主要代码如下:articleSearch.jsp base href= 搜索 searchResult.jsp%Stri

20、ng keyword = new String(request.getParameter(keyword).getBytes(GBK), GBK);if(keyword = null) keyword = ;final int PAGE_SIZE = 4;int pageNo = 1;String strPageNo = request.getParameter(pageNo);if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFor

21、matException e) pageNo = 1;int totalPages = 0;List articles = new ArrayList();Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);String sqlCount = select count(*) from article where title like % + keyword + % or cont like % + keyword + %;System.out.println(sqlCount);ResultSet r

22、sCount = DB.executeQuery(stmtCount, sqlCount);rsCount.next();int totalRecords = rsCount.getInt(1);totalPages = (totalRecords + PAGE_SIZE - 1)/PAGE_SIZE;if(pageNo totalPages) pageNo = totalPages;if(pageNo 5.1.4发表新主题(post.jsp)发表新的主题供大家讨论和回复,信息提交到自身,主要代码如下:以上是处理提交到自身的信息。下面是提交信息的表格代码: 标题: 内容: 5.1.5回复帖子(

23、reply.jsp和replyDeal.jsp)发表对主题信息的看法,主要代码如下:reply.jsp input type=hidden name=pid value=/ input type=hidden name=rootId value=/ 标题: 内容: replyDeal.jsp5.2后台管理管理员登陆和管理帖子的实现。5.2.1管理员登陆(login.jsp)管理员登陆的入口,登陆后会在生成一个session用来对其管理员的身份进行验证。主要代码如下:验证账号密码代码:提交账号密码表格代码:用户名: input type=text name=username value= /密码: input type=submit value=l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号